@abp/ng.theme.shared 10.1.0 → 10.2.0-rc.1
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abp-ng.theme.shared.mjs","sources":["../../../../packages/theme-shared/src/lib/adapters/date-time.adapter.ts","../../../../packages/theme-shared/src/lib/adapters/date.adapter.ts","../../../../packages/theme-shared/src/lib/adapters/datepicker-i18n.adapter.ts","../../../../packages/theme-shared/src/lib/adapters/time.adapter.ts","../../../../packages/theme-shared/src/lib/adapters/timepicker-i18n.adapter.ts","../../../../packages/theme-shared/src/lib/animations/bounce.animations.ts","../../../../packages/theme-shared/src/lib/animations/collapse.animations.ts","../../../../packages/theme-shared/src/lib/animations/fade.animations.ts","../../../../packages/theme-shared/src/lib/animations/modal.animations.ts","../../../../packages/theme-shared/src/lib/animations/slide.animations.ts","../../../../packages/theme-shared/src/lib/animations/toast.animations.ts","../../../../packages/theme-shared/src/lib/components/breadcrumb-items/breadcrumb-items.component.ts","../../../../packages/theme-shared/src/lib/components/breadcrumb-items/breadcrumb-items.component.html","../../../../packages/theme-shared/src/lib/components/breadcrumb/breadcrumb.component.ts","../../../../packages/theme-shared/src/lib/components/breadcrumb/breadcrumb.component.html","../../../../packages/theme-shared/src/lib/components/button/button.component.ts","../../../../packages/theme-shared/src/lib/models/confirmation.ts","../../../../packages/theme-shared/src/lib/tokens/confirmation-icons.token.ts","../../../../packages/theme-shared/src/lib/components/confirmation/confirmation.component.ts","../../../../packages/theme-shared/src/lib/components/confirmation/confirmation.component.html","../../../../packages/theme-shared/src/lib/components/http-error-wrapper/http-error-wrapper.component.ts","../../../../packages/theme-shared/src/lib/components/http-error-wrapper/http-error-wrapper.component.html","../../../../packages/theme-shared/src/lib/components/loader-bar/loader-bar.component.ts","../../../../packages/theme-shared/src/lib/components/loading/loading.component.ts","../../../../packages/theme-shared/src/lib/models/nav-item.ts","../../../../packages/theme-shared/src/lib/models/user-menu.ts","../../../../packages/theme-shared/src/lib/services/confirmation.service.ts","../../../../packages/theme-shared/src/lib/services/abstract-menu.service.ts","../../../../packages/theme-shared/src/lib/services/nav-items.service.ts","../../../../packages/theme-shared/src/lib/services/page-alert.service.ts","../../../../packages/theme-shared/src/lib/components/toast/toast.component.ts","../../../../packages/theme-shared/src/lib/components/toast/toast.component.html","../../../../packages/theme-shared/src/lib/components/toast-container/toast-container.component.ts","../../../../packages/theme-shared/src/lib/components/toast-container/toast-container.component.html","../../../../packages/theme-shared/src/lib/services/toaster.service.ts","../../../../packages/theme-shared/src/lib/services/user-menu.service.ts","../../../../packages/theme-shared/src/lib/tokens/http-error.token.ts","../../../../packages/theme-shared/src/lib/services/create-error-component.service.ts","../../../../packages/theme-shared/src/lib/constants/default-errors.ts","../../../../packages/theme-shared/src/lib/utils/error.utils.ts","../../../../packages/theme-shared/src/lib/services/abp-format-error-handler.service.ts","../../../../packages/theme-shared/src/lib/services/tenant-resolve-error-handler.service.ts","../../../../packages/theme-shared/src/lib/services/status-code-error-handler.service.ts","../../../../packages/theme-shared/src/lib/services/unknown-status-code-error-handler.service.ts","../../../../packages/theme-shared/src/lib/constants/styles.ts","../../../../packages/theme-shared/src/lib/tokens/append-content.token.ts","../../../../packages/theme-shared/src/lib/tokens/ngx-datatable-messages.token.ts","../../../../packages/theme-shared/src/lib/tokens/suppress-unsaved-changes-warning.token.ts","../../../../packages/theme-shared/src/lib/tokens/logo.token.ts","../../../../packages/theme-shared/src/lib/tokens/theme-change.token.ts","../../../../packages/theme-shared/src/lib/services/router-error-handler.service.ts","../../../../packages/theme-shared/src/lib/services/authentication-error-handler.service.ts","../../../../packages/theme-shared/src/lib/components/modal/modal-ref.service.ts","../../../../packages/theme-shared/src/lib/components/modal/modal.component.ts","../../../../packages/theme-shared/src/lib/components/modal/modal.component.html","../../../../packages/theme-shared/src/lib/components/modal/modal-close.directive.ts","../../../../packages/theme-shared/src/lib/components/password/password.component.ts","../../../../packages/theme-shared/src/lib/components/password/password.component.html","../../../../packages/theme-shared/src/lib/components/card/card-body.component.ts","../../../../packages/theme-shared/src/lib/components/card/card.component.ts","../../../../packages/theme-shared/src/lib/components/card/card-header.component.ts","../../../../packages/theme-shared/src/lib/components/card/card-footer.component.ts","../../../../packages/theme-shared/src/lib/components/card/card-title.directive.ts","../../../../packages/theme-shared/src/lib/components/card/card-subtitle.directive.ts","../../../../packages/theme-shared/src/lib/components/card/card-img-top.directive.ts","../../../../packages/theme-shared/src/lib/components/card/card-header.directive.ts","../../../../packages/theme-shared/src/lib/components/card/card.module.ts","../../../../packages/theme-shared/src/lib/components/checkbox/checkbox.component.ts","../../../../packages/theme-shared/src/lib/components/form-input/form-input.component.ts","../../../../packages/theme-shared/src/lib/components/internet-connection-status/internet-connection-status.component.ts","../../../../packages/theme-shared/src/lib/components/spinner/spinner.component.ts","../../../../packages/theme-shared/src/lib/directives/ellipsis.directive.ts","../../../../packages/theme-shared/src/lib/directives/loading.directive.ts","../../../../packages/theme-shared/src/lib/directives/ngx-datatable-default.directive.ts","../../../../packages/theme-shared/src/lib/directives/ngx-datatable-list.directive.ts","../../../../packages/theme-shared/src/lib/directives/visible.directive.ts","../../../../packages/theme-shared/src/lib/directives/disabled.directive.ts","../../../../packages/theme-shared/src/lib/enums/form.ts","../../../../packages/theme-shared/src/lib/handlers/document-dir.handler.ts","../../../../packages/theme-shared/src/lib/handlers/error.handler.ts","../../../../packages/theme-shared/src/lib/providers/ng-bootstrap-config.provider.ts","../../../../packages/theme-shared/src/lib/providers/route.provider.ts","../../../../packages/theme-shared/src/lib/providers/tenant-not-found.provider.ts","../../../../packages/theme-shared/src/lib/providers/error-handlers.provider.ts","../../../../packages/theme-shared/src/lib/constants/validation.ts","../../../../packages/theme-shared/src/lib/constants/scripts.ts","../../../../packages/theme-shared/src/lib/utils/date-parser-formatter.ts","../../../../packages/theme-shared/src/lib/utils/validation-utils.ts","../../../../packages/theme-shared/src/lib/providers/theme-shared-config.provider.ts","../../../../packages/theme-shared/src/lib/providers/logo.provider.ts","../../../../packages/theme-shared/src/lib/theme-shared.module.ts","../../../../packages/theme-shared/src/public-api.ts","../../../../packages/theme-shared/src/abp-ng.theme.shared.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\nimport { NgbDateStruct, NgbTimeStruct } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Injectable()\r\nexport class DateTimeAdapter {\r\n value!: Partial<NgbDateTimeStruct>;\r\n\r\n fromModel(value: string | Date): Partial<NgbDateTimeStruct> | null {\r\n if (!value) {\r\n return null;\r\n }\r\n\r\n const date = new Date(value);\r\n\r\n if (isNaN(date as unknown as number)) {\r\n return null;\r\n }\r\n\r\n this.value = {\r\n year: date.getFullYear(),\r\n month: date.getMonth() + 1,\r\n day: date.getDate(),\r\n hour: date.getHours(),\r\n minute: date.getMinutes(),\r\n second: date.getSeconds(),\r\n };\r\n\r\n return this.value;\r\n }\r\n\r\n toModel(value: Partial<NgbDateTimeStruct> | null): string {\r\n if (!value) {\r\n return '';\r\n }\r\n\r\n const now = new Date();\r\n\r\n const newValue = {\r\n year: now.getUTCFullYear(),\r\n month: now.getMonth() + 1,\r\n day: now.getDate(),\r\n hour: 0,\r\n minute: 0,\r\n second: 0,\r\n ...this.value,\r\n ...value,\r\n } as NgbDateTimeStruct;\r\n\r\n const date = new Date(\r\n Date.UTC(\r\n newValue.year,\r\n newValue.month - 1,\r\n newValue.day,\r\n newValue.hour,\r\n newValue.minute,\r\n newValue.second,\r\n ),\r\n );\r\n\r\n return date.toISOString().replace('Z', '');\r\n }\r\n}\r\n\r\ntype NgbDateTimeStruct = NgbDateStruct & NgbTimeStruct;\r\n","import { formatDate } from '@angular/common';\r\nimport { Injectable } from '@angular/core';\r\nimport { NgbDateAdapter, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Injectable()\r\nexport class DateAdapter extends NgbDateAdapter<string | Date> {\r\n fromModel(value: string | Date): NgbDateStruct | null {\r\n if (!value) return null;\r\n\r\n let date: Date;\r\n\r\n if (typeof value === 'string') {\r\n date = this.dateOf(value);\r\n } else {\r\n date = new Date(value);\r\n }\r\n\r\n if (isNaN(date as unknown as number)) return null;\r\n\r\n return {\r\n day: date.getDate(),\r\n month: date.getMonth() + 1,\r\n year: date.getFullYear(),\r\n };\r\n }\r\n\r\n toModel(value: NgbDateStruct | null): string {\r\n if (!value) return '';\r\n\r\n const date = new Date(value.year, value.month - 1, value.day);\r\n const formattedDate = formatDate(date, 'yyyy-MM-dd', 'en');\r\n\r\n return formattedDate;\r\n }\r\n\r\n protected dateOf(value: string): Date {\r\n const dateUtc = new Date(Date.parse(value));\r\n return new Date(dateUtc.getTime() + Math.abs(dateUtc.getTimezoneOffset() * 60000));\r\n }\r\n}\r\n","import { formatDate } from '@angular/common';\r\nimport { inject, Injectable, LOCALE_ID } from '@angular/core';\r\nimport { NgbDatepickerI18n, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ConfigStateService } from '@abp/ng.core';\r\n\r\n@Injectable()\r\nexport class DatepickerI18nAdapter extends NgbDatepickerI18n {\r\n private configState = inject(ConfigStateService, { optional: true });\r\n private defaultLocale = inject(LOCALE_ID);\r\n\r\n private get locale(): string {\r\n return this.configState?.getDeep('localization.currentCulture.cultureName') || this.defaultLocale;\r\n }\r\n\r\n getWeekdayLabel(weekday: number): string {\r\n const date = new Date(2017, 0, weekday + 1); // Monday = 1\r\n return formatDate(date, 'EEEEE', this.locale);\r\n }\r\n\r\n getWeekLabel(): string {\r\n return '';\r\n }\r\n\r\n getMonthShortName(month: number): string {\r\n const date = new Date(2017, month - 1, 1);\r\n return formatDate(date, 'MMM', this.locale);\r\n }\r\n\r\n getMonthFullName(month: number): string {\r\n const date = new Date(2017, month - 1, 1);\r\n return formatDate(date, 'MMMM', this.locale);\r\n }\r\n\r\n getDayAriaLabel(date: NgbDateStruct): string {\r\n const d = new Date(date.year, date.month - 1, date.day);\r\n return formatDate(d, 'fullDate', this.locale);\r\n }\r\n}\r\n","import { formatDate } from '@angular/common';\r\nimport { Injectable } from '@angular/core';\r\nimport { NgbTimeAdapter, NgbTimeStruct } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Injectable()\r\nexport class TimeAdapter extends NgbTimeAdapter<string | Date> {\r\n fromModel(value: string | Date): NgbTimeStruct | null {\r\n if (!value) return null;\r\n\r\n const date = isTimeStr(value)\r\n ? new Date(0, 0, 1, ...value.split(':').map(Number))\r\n : new Date(value);\r\n\r\n if (isNaN(date as unknown as number)) return null;\r\n\r\n return {\r\n hour: date.getHours(),\r\n minute: date.getMinutes(),\r\n second: date.getSeconds(),\r\n };\r\n }\r\n\r\n toModel(value: NgbTimeStruct | null): string {\r\n if (!value) {\r\n return null;\r\n }\r\n\r\n const date = new Date(0, 0, 1, value.hour, value.minute, value.second);\r\n const formattedDate = formatDate(date, 'HH:mm:ss', 'en');\r\n\r\n return formattedDate;\r\n }\r\n}\r\n\r\nfunction isTimeStr(value: string | Date): value is string {\r\n return /^((2[123])|[01][0-9])(:[0-5][0-9]){1,2}$/.test(String(value));\r\n}\r\n","import { formatDate } from '@angular/common';\r\nimport { inject, Injectable, LOCALE_ID } from '@angular/core';\r\nimport { NgbTimepickerI18n } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ConfigStateService } from '@abp/ng.core';\r\n\r\n@Injectable()\r\nexport class TimepickerI18nAdapter extends NgbTimepickerI18n {\r\n private configState = inject(ConfigStateService, { optional: true });\r\n private defaultLocale = inject(LOCALE_ID);\r\n\r\n private get locale(): string {\r\n return this.configState?.getDeep('localization.currentCulture.cultureName') || this.defaultLocale;\r\n }\r\n\r\n getMorningPeriod(): string {\r\n const date = new Date(2000, 0, 1, 10, 0, 0);\r\n return formatDate(date, 'a', this.locale);\r\n }\r\n\r\n getAfternoonPeriod(): string {\r\n const date = new Date(2000, 0, 1, 22, 0, 0);\r\n return formatDate(date, 'a', this.locale);\r\n }\r\n}\r\n","import { animate, animation, keyframes, style } from '@angular/animations';\r\n\r\nexport const bounceIn = animation(\r\n [\r\n style({ opacity: '0', display: '{{ display }}' }),\r\n animate(\r\n '{{ time}} {{ easing }}',\r\n keyframes([\r\n style({ opacity: '0', transform: '{{ transform }} scale(0.0)', offset: 0 }),\r\n style({ opacity: '0', transform: '{{ transform }} scale(0.8)', offset: 0.5 }),\r\n style({ opacity: '1', transform: '{{ transform }} scale(1.0)', offset: 1 }),\r\n ]),\r\n ),\r\n ],\r\n {\r\n params: {\r\n time: '350ms',\r\n easing: 'cubic-bezier(.7,.31,.72,1.47)',\r\n display: 'block',\r\n transform: 'translate(-50%, -50%)',\r\n },\r\n },\r\n);\r\n","import {\r\n animate,\r\n animation,\r\n trigger,\r\n state,\r\n style,\r\n transition,\r\n useAnimation,\r\n} from '@angular/animations';\r\n\r\nexport const collapseY = animation(\r\n [\r\n style({ height: '*', overflow: 'hidden', 'box-sizing': 'border-box' }),\r\n animate('{{ time }} {{ easing }}', style({ height: '0', padding: '0px' })),\r\n ],\r\n { params: { time: '350ms', easing: 'ease' } },\r\n);\r\n\r\nexport const collapseYWithMargin = animation(\r\n [\r\n style({ 'margin-top': '0' }),\r\n animate('{{ time }} {{ easing }}', style({ 'margin-left': '-100%' })),\r\n ],\r\n {\r\n params: { time: '500ms', easing: 'ease' },\r\n },\r\n);\r\n\r\nexport const collapseX = animation(\r\n [\r\n style({ width: '*', overflow: 'hidden', 'box-sizing': 'border-box' }),\r\n animate('{{ time }} {{ easing }}', style({ width: '0', padding: '0px' })),\r\n ],\r\n { params: { time: '350ms', easing: 'ease' } },\r\n);\r\n\r\nexport const expandY = animation(\r\n [\r\n style({ height: '0', overflow: 'hidden', 'box-sizing': 'border-box' }),\r\n animate('{{ time }} {{ easing }}', style({ height: '*', padding: '*' })),\r\n ],\r\n { params: { time: '350ms', easing: 'ease' } },\r\n);\r\n\r\nexport const expandYWithMargin = animation(\r\n [\r\n style({ 'margin-top': '-100%' }),\r\n animate('{{ time }} {{ easing }}', style({ 'margin-top': '0' })),\r\n ],\r\n {\r\n params: { time: '500ms', easing: 'ease' },\r\n },\r\n);\r\n\r\nexport const expandX = animation(\r\n [\r\n style({ width: '0', overflow: 'hidden', 'box-sizing': 'border-box' }),\r\n animate('{{ time }} {{ easing }}', style({ width: '*', padding: '*' })),\r\n ],\r\n { params: { time: '350ms', easing: 'ease' } },\r\n);\r\n\r\nexport const collapse = trigger('collapse', [\r\n state('collapsed', style({ height: '0', overflow: 'hidden' })),\r\n state('expanded', style({ height: '*', overflow: 'hidden' })),\r\n transition('expanded => collapsed', useAnimation(collapseY)),\r\n transition('collapsed => expanded', useAnimation(expandY)),\r\n]);\r\n\r\nexport const collapseWithMargin = trigger('collapseWithMargin', [\r\n state('collapsed', style({ 'margin-top': '-100%' })),\r\n state('expanded', style({ 'margin-top': '0' })),\r\n transition('expanded => collapsed', useAnimation(collapseYWithMargin), {\r\n params: { time: '400ms', easing: 'linear' },\r\n }),\r\n transition('collapsed => expanded', useAnimation(expandYWithMargin)),\r\n]);\r\n\r\nexport const collapseLinearWithMargin = trigger('collapseLinearWithMargin', [\r\n state('collapsed', style({ 'margin-top': '-100vh' })),\r\n state('expanded', style({ 'margin-top': '0' })),\r\n transition(\r\n 'expanded => collapsed',\r\n useAnimation(collapseYWithMargin, { params: { time: '200ms', easing: 'linear' } }),\r\n ),\r\n transition(\r\n 'collapsed => expanded',\r\n useAnimation(expandYWithMargin, { params: { time: '250ms', easing: 'linear' } }),\r\n ),\r\n]);\r\n","import { animate, animation, style } from '@angular/animations';\r\n\r\nexport const fadeIn = animation(\r\n [style({ opacity: '0' }), animate('{{ time}} {{ easing }}', style({ opacity: '1' }))],\r\n {\r\n params: { time: '350ms', easing: 'ease' },\r\n },\r\n);\r\n\r\nexport const fadeOut = animation(\r\n [style({ opacity: '1' }), animate('{{ time}} {{ easing }}', style({ opacity: '0' }))],\r\n { params: { time: '350ms', easing: 'ease' } },\r\n);\r\n\r\nexport const fadeInDown = animation(\r\n [\r\n style({ opacity: '0', transform: '{{ transform }} translateY(-20px)' }),\r\n animate(\r\n '{{ time }} {{ easing }}',\r\n style({ opacity: '1', transform: '{{ transform }} translateY(0)' }),\r\n ),\r\n ],\r\n { params: { time: '350ms', easing: 'ease', transform: '' } },\r\n);\r\n\r\nexport const fadeInUp = animation(\r\n [\r\n style({ opacity: '0', transform: '{{ transform }} translateY(20px)' }),\r\n animate(\r\n '{{ time }} {{ easing }}',\r\n style({ opacity: '1', transform: '{{ transform }} translateY(0)' }),\r\n ),\r\n ],\r\n { params: { time: '350ms', easing: 'ease', transform: '' } },\r\n);\r\n\r\nexport const fadeInLeft = animation(\r\n [\r\n style({ opacity: '0', transform: '{{ transform }} translateX(20px)' }),\r\n animate(\r\n '{{ time }} {{ easing }}',\r\n style({ opacity: '1', transform: '{{ transform }} translateX(0)' }),\r\n ),\r\n ],\r\n { params: { time: '350ms', easing: 'ease', transform: '' } },\r\n);\r\n\r\nexport const fadeInRight = animation(\r\n [\r\n style({ opacity: '0', transform: '{{ transform }} translateX(-20px)' }),\r\n animate(\r\n '{{ time }} {{ easing }}',\r\n style({ opacity: '1', transform: '{{ transform }} translateX(0)' }),\r\n ),\r\n ],\r\n { params: { time: '350ms', easing: 'ease', transform: '' } },\r\n);\r\n\r\nexport const fadeOutDown = animation(\r\n [\r\n style({ opacity: '1', transform: '{{ transform }} translateY(0)' }),\r\n animate(\r\n '{{ time }} {{ easing }}',\r\n style({ opacity: '0', transform: '{{ transform }} translateY(20px)' }),\r\n ),\r\n ],\r\n { params: { time: '350ms', easing: 'ease', transform: '' } },\r\n);\r\n\r\nexport const fadeOutUp = animation(\r\n [\r\n style({ opacity: '1', transform: '{{ transform }} translateY(0)' }),\r\n animate(\r\n '{{ time }} {{ easing }}',\r\n style({ opacity: '0', transform: '{{ transform }} translateY(-20px)' }),\r\n ),\r\n ],\r\n { params: { time: '350ms', easing: 'ease', transform: '' } },\r\n);\r\n\r\nexport const fadeOutLeft = animation(\r\n [\r\n style({ opacity: '1', transform: '{{ transform }} translateX(0)' }),\r\n animate(\r\n '{{ time }} {{ easing }}',\r\n style({ opacity: '0', transform: '{{ transform }} translateX(20px)' }),\r\n ),\r\n ],\r\n { params: { time: '350ms', easing: 'ease', transform: '' } },\r\n);\r\n\r\nexport const fadeOutRight = animation(\r\n [\r\n style({ opacity: '1', transform: '{{ transform }} translateX(0)' }),\r\n animate(\r\n '{{ time }} {{ easing }}',\r\n style({ opacity: '0', transform: '{{ transform }} translateX(-20px)' }),\r\n ),\r\n ],\r\n { params: { time: '350ms', easing: 'ease', transform: '' } },\r\n);\r\n","import { transition, trigger, useAnimation } from '@angular/animations';\r\nimport { fadeIn, fadeInDown, fadeOut } from './fade.animations';\r\n\r\nexport const fadeAnimation = trigger('fade', [\r\n transition(':enter', useAnimation(fadeIn)),\r\n transition(':leave', useAnimation(fadeOut)),\r\n]);\r\n\r\nexport const dialogAnimation = trigger('dialog', [\r\n transition(':enter', useAnimation(fadeInDown)),\r\n transition(':leave', useAnimation(fadeOut)),\r\n]);\r\n","import { animate, state, style, transition, trigger, query } from '@angular/animations';\r\nexport const slideFromBottom = trigger('slideFromBottom', [\r\n transition('* <=> *', [\r\n style({ 'margin-top': '20px', opacity: '0' }),\r\n animate('0.2s ease-out', style({ opacity: '1', 'margin-top': '0px' })),\r\n ]),\r\n]);\r\n","import { animate, query, style, transition, trigger } from '@angular/animations';\r\n\r\nexport const toastInOut = trigger('toastInOut', [\r\n transition('* <=> *', [\r\n query(\r\n ':enter',\r\n [\r\n style({ opacity: 0, transform: 'translateY(20px)' }),\r\n animate('350ms ease', style({ opacity: 1, transform: 'translateY(0)' })),\r\n ],\r\n { optional: true },\r\n ),\r\n query(':leave', animate('450ms ease', style({ opacity: 0 })), {\r\n optional: true,\r\n }),\r\n ]),\r\n]);\r\n","import { Component, Input } from '@angular/core';\r\nimport { NgTemplateOutlet } from '@angular/common';\r\nimport { RouterLink } from '@angular/router';\r\nimport { ABP, LocalizationPipe } from '@abp/ng.core';\r\n\r\n@Component({\r\n selector: 'abp-breadcrumb-items',\r\n templateUrl: './breadcrumb-items.component.html',\r\n imports: [NgTemplateOutlet, RouterLink, LocalizationPipe],\r\n})\r\nexport class BreadcrumbItemsComponent {\r\n @Input() items: Partial<ABP.Route>[] = [];\r\n}\r\n","@if (items.length) {\r\n <ol class=\"breadcrumb\">\r\n <li class=\"breadcrumb-item\">\r\n <a routerLink=\"/\"><i class=\"fa fa-home\" aria-hidden=\"true\"></i> </a>\r\n </li>\r\n @for (item of items; track $index; let last = $last) {\r\n <li class=\"breadcrumb-item\" [class.active]=\"last\" aria-current=\"page\">\r\n <ng-container\r\n *ngTemplateOutlet=\"item.path ? linkTemplate : textTemplate; context: { $implicit: item }\"\r\n ></ng-container>\r\n </li>\r\n }\r\n </ol>\r\n}\r\n\r\n<ng-template #linkTemplate let-item>\r\n <a [routerLink]=\"item.path\"> {{ item.name | abpLocalization }}</a>\r\n</ng-template>\r\n\r\n<ng-template #textTemplate let-item>\r\n {{ item.name | abpLocalization }}\r\n</ng-template>\r\n","import {\r\n ABP,\r\n getRoutePath,\r\n RouterEvents,\r\n RoutesService,\r\n SubscriptionService,\r\n TreeNode,\r\n} from '@abp/ng.core';\r\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnInit, inject } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport { eThemeSharedRouteNames } from '../../enums/route-names';\r\nimport { BreadcrumbItemsComponent } from '../breadcrumb-items/breadcrumb-items.component';\r\n\r\n@Component({\r\n selector: 'abp-breadcrumb',\r\n templateUrl: './breadcrumb.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [SubscriptionService],\r\n imports: [BreadcrumbItemsComponent],\r\n})\r\nexport class BreadcrumbComponent implements OnInit {\r\n readonly cdRef = inject(ChangeDetectorRef);\r\n private router = inject(Router);\r\n private routes = inject(RoutesService);\r\n private subscription = inject(SubscriptionService);\r\n private routerEvents = inject(RouterEvents);\r\n\r\n segments: Partial<ABP.Route>[] = [];\r\n\r\n ngOnInit(): void {\r\n this.subscription.addOne(\r\n this.routerEvents.getNavigationEvents('End').pipe(\r\n startWith(null),\r\n map(() => this.routes.search({ path: getRoutePath(this.router) })),\r\n ),\r\n route => {\r\n this.segments = [];\r\n if (route) {\r\n let node = { parent: route } as TreeNode<ABP.Route>;\r\n\r\n while (node.parent) {\r\n node = node.parent;\r\n const { parent, children, isLeaf, path, ...segment } = node;\r\n if (!isAdministration(segment)) this.segments.unshift(segment);\r\n }\r\n\r\n this.cdRef.detectChanges();\r\n }\r\n },\r\n );\r\n }\r\n}\r\n\r\nfunction isAdministration(route: Pick<ABP.Route, 'name'>) {\r\n return route.name === eThemeSharedRouteNames.Administration;\r\n}\r\n","<abp-breadcrumb-items [items]=\"segments\"></abp-breadcrumb-items>\r\n","/* eslint-disable @angular-eslint/no-output-native */\r\nimport {\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n OnInit,\r\n Output,\r\n Renderer2,\r\n ViewChild,\r\n inject,\r\n} from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ABP, StopPropagationDirective } from '@abp/ng.core';\r\n\r\n@Component({\r\n selector: 'abp-button',\r\n template: `\r\n <button\r\n #button\r\n [id]=\"buttonId\"\r\n [attr.type]=\"buttonType\"\r\n [attr.form]=\"formName\"\r\n [ngClass]=\"buttonClass\"\r\n [disabled]=\"loading || disabled\"\r\n (click.stop)=\"click.next($event); abpClick.next($event)\"\r\n (focus)=\"focus.next($event); abpFocus.next($event)\"\r\n (blur)=\"blur.next($event); abpBlur.next($event)\"\r\n >\r\n <i [ngClass]=\"icon\" class=\"me-1\" aria-hidden=\"true\"></i><ng-content></ng-content>\r\n </button>\r\n `,\r\n imports: [CommonModule, StopPropagationDirective],\r\n})\r\nexport class ButtonComponent implements OnInit {\r\n private renderer = inject(Renderer2);\r\n\r\n @Input()\r\n buttonId = '';\r\n\r\n @Input()\r\n buttonClass = 'btn btn-primary';\r\n\r\n @Input()\r\n buttonType = 'button';\r\n\r\n @Input()\r\n formName?: string = undefined;\r\n\r\n @Input()\r\n iconClass?: string;\r\n\r\n @Input()\r\n loading = false;\r\n\r\n @Input()\r\n disabled: boolean | undefined = false;\r\n\r\n @Input()\r\n attributes?: ABP.Dictionary<string>;\r\n\r\n @Output() readonly click = new EventEmitter<MouseEvent>();\r\n\r\n @Output() readonly focus = new EventEmitter<FocusEvent>();\r\n\r\n @Output() readonly blur = new EventEmitter<FocusEvent>();\r\n\r\n @Output() readonly abpClick = new EventEmitter<MouseEvent>();\r\n\r\n @Output() readonly abpFocus = new EventEmitter<FocusEvent>();\r\n\r\n @Output() readonly abpBlur = new EventEmitter<FocusEvent>();\r\n\r\n @ViewChild('button', { static: true })\r\n buttonRef!: ElementRef<HTMLButtonElement>;\r\n\r\n get icon(): string {\r\n return `${this.loading ? 'fa fa-spinner fa-spin' : this.iconClass || 'd-none'}`;\r\n }\r\n\r\n ngOnInit() {\r\n if (this.attributes) {\r\n Object.keys(this.attributes).forEach(key => {\r\n if (this.attributes?.[key]) {\r\n this.renderer.setAttribute(this.buttonRef.nativeElement, key, this.attributes[key]);\r\n }\r\n });\r\n }\r\n }\r\n}\r\n","import { LocalizationParam } from '@abp/ng.core';\r\n\r\nexport namespace Confirmation {\r\n export interface Options {\r\n id?: any;\r\n dismissible?: boolean;\r\n messageLocalizationParams?: string[];\r\n titleLocalizationParams?: string[];\r\n hideCancelBtn?: boolean;\r\n hideYesBtn?: boolean;\r\n cancelText?: LocalizationParam;\r\n yesText?: LocalizationParam;\r\n icon?: string;\r\n iconTemplate?:string\r\n }\r\n\r\n export interface DialogData {\r\n message: LocalizationParam;\r\n title?: LocalizationParam;\r\n severity?: Severity;\r\n options?: Partial<Options>;\r\n }\r\n\r\n export type Severity = 'neutral' | 'success' | 'info' | 'warning' | 'error';\r\n\r\n export enum Status {\r\n confirm = 'confirm',\r\n reject = 'reject',\r\n dismiss = 'dismiss',\r\n }\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport interface ConfirmationIcons {\r\n info: string;\r\n success: string;\r\n warning: string;\r\n error: string;\r\n default: string;\r\n neutral: string;\r\n}\r\n\r\nexport const CONFIRMATION_ICONS = new InjectionToken<Partial<ConfirmationIcons>>(\r\n 'CONFIRMATION_ICONS',\r\n);\r\n\r\nexport const DEFAULT_CONFIRMATION_ICONS: ConfirmationIcons = {\r\n info: 'fa fa-info-circle',\r\n success: 'fa fa-check-circle',\r\n warning: 'fa fa-exclamation-triangle',\r\n error: 'fa fa-times-circle',\r\n default: 'fa fa-question-circle',\r\n neutral: '',\r\n};\r\n","import { NgClass, AsyncPipe } from '@angular/common';\r\nimport { Component, inject } from '@angular/core';\r\nimport { ReplaySubject } from 'rxjs';\r\nimport { Confirmation } from '../../models/confirmation';\r\nimport { CONFIRMATION_ICONS, ConfirmationIcons } from '../../tokens/confirmation-icons.token';\r\nimport { LocalizationPipe } from '@abp/ng.core';\r\n\r\n@Component({\r\n selector: 'abp-confirmation',\r\n templateUrl: './confirmation.component.html',\r\n styleUrls: ['./confirmation.component.scss'],\r\n imports: [NgClass, AsyncPipe, LocalizationPipe],\r\n})\r\nexport class ConfirmationComponent {\r\n private icons = inject<ConfirmationIcons>(CONFIRMATION_ICONS);\r\n\r\n\r\n confirm = Confirmation.Status.confirm;\r\n reject = Confirmation.Status.reject;\r\n dismiss = Confirmation.Status.dismiss;\r\n\r\n confirmation$!: ReplaySubject<Confirmation.DialogData | null>;\r\n\r\n clear!: (status: Confirmation.Status) => void;\r\n\r\n close(status: Confirmation.Status) {\r\n this.clear(status);\r\n }\r\n\r\n getIconClass({ severity, options }: Confirmation.DialogData): string {\r\n if (options && options.icon) {\r\n return options.icon;\r\n }\r\n if (!this.icons) {\r\n return '';\r\n }\r\n if (severity) {\r\n return this.icons[severity];\r\n }\r\n return this.icons.default;\r\n }\r\n\r\n isCustomIconExists({ options }: Confirmation.DialogData): boolean {\r\n return !!(options && (options.iconTemplate || options.icon));\r\n }\r\n\r\n isIconTemplateExits({ options }: Confirmation.DialogData): boolean {\r\n return !!(options && options.iconTemplate);\r\n }\r\n}\r\n","@if (confirmation$ | async; as data) {\r\n <div class=\"confirmation\">\r\n <div\r\n class=\"confirmation-backdrop\"\r\n (click)=\"data.options?.dismissible ? close(dismiss) : null\"\r\n ></div>\r\n <div class=\"confirmation-dialog\">\r\n @if (data.severity || isCustomIconExists(data)) {\r\n <div class=\"icon-container\" [ngClass]=\"data.severity\">\r\n @if (isIconTemplateExits(data)) {\r\n <div [outerHTML]=\"data.options.iconTemplate\"></div>\r\n } @else {\r\n <i class=\"icon\" [ngClass]=\"getIconClass(data)\"></i>\r\n }\r\n </div>\r\n }\r\n <div class=\"content\">\r\n @if (data.title) {\r\n <h1\r\n class=\"title\"\r\n [innerHTML]=\"data.title | abpLocalization: data.options?.titleLocalizationParams\"\r\n ></h1>\r\n }\r\n @if (data.message) {\r\n <p\r\n class=\"message\"\r\n [innerHTML]=\"data.message | abpLocalization: data.options?.messageLocalizationParams\"\r\n ></p>\r\n }\r\n </div>\r\n <div class=\"footer\">\r\n @if (!data?.options?.hideCancelBtn) {\r\n <button\r\n id=\"cancel\"\r\n class=\"btn btn-outline-primary me-2\"\r\n [innerHTML]=\"data.options?.cancelText || 'AbpUi::Cancel' | abpLocalization\"\r\n (click)=\"close(reject)\"\r\n ></button>\r\n }\r\n @if (!data?.options?.hideYesBtn) {\r\n <button\r\n id=\"confirm\"\r\n class=\"btn btn-primary\"\r\n [innerHTML]=\"data.options?.yesText || 'AbpUi::Yes' | abpLocalization\"\r\n (click)=\"close(confirm)\"\r\n ></button>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n}\r\n","import {\r\n ApplicationRef,\r\n Component,\r\n inject,\r\n OnInit,\r\n ElementRef,\r\n EmbeddedViewRef,\r\n Type,\r\n ViewChild,\r\n AfterViewInit,\r\n OnDestroy,\r\n createComponent,\r\n EnvironmentInjector,\r\n DestroyRef,\r\n} from '@angular/core';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { CommonModule, DOCUMENT } from '@angular/common';\r\nimport { Router } from '@angular/router';\r\nimport { fromEvent, Subject } from 'rxjs';\r\nimport { debounceTime, filter } from 'rxjs/operators';\r\nimport { LocalizationParam, LocalizationPipe } from '@abp/ng.core';\r\nimport { ErrorScreenErrorCodes } from '../../models';\r\n\r\n@Component({\r\n selector: 'abp-http-error-wrapper',\r\n templateUrl: './http-error-wrapper.component.html',\r\n styleUrls: ['http-error-wrapper.component.scss'],\r\n imports: [CommonModule, LocalizationPipe],\r\n})\r\nexport class HttpErrorWrapperComponent implements OnInit, AfterViewInit, OnDestroy {\r\n protected readonly destroyRef = inject(DestroyRef);\r\n protected readonly document = inject(DOCUMENT);\r\n protected readonly window = this.document.defaultView;\r\n protected readonly router = inject(Router);\r\n\r\n appRef!: ApplicationRef;\r\n\r\n environmentInjector!: EnvironmentInjector;\r\n\r\n status: ErrorScreenErrorCodes = 0;\r\n\r\n title: LocalizationParam = '_::Oops!';\r\n\r\n details: LocalizationParam = '_::Sorry, an error has occured.';\r\n\r\n customComponent: Type<any> | undefined = undefined;\r\n\r\n destroy$!: Subject<void>;\r\n\r\n hideCloseIcon = false;\r\n\r\n backgroundColor!: string;\r\n\r\n isHomeShow = true;\r\n\r\n @ViewChild('container', { static: false })\r\n containerRef?: ElementRef<HTMLDivElement>;\r\n\r\n get statusText(): string {\r\n return this.status ? `[${this.status}]` : '';\r\n }\r\n\r\n ngOnInit(): void {\r\n const computedStyle = this.window.getComputedStyle(this.document.body);\r\n const backgroundColor = computedStyle?.getPropertyValue('background-color');\r\n this.backgroundColor = backgroundColor || '#fff';\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (this.customComponent) {\r\n const customComponentRef = createComponent(this.customComponent, {\r\n environmentInjector: this.environmentInjector,\r\n });\r\n\r\n customComponentRef.instance.errorStatus = this.status;\r\n\r\n //In our custom \"HttpErrorComponent\", we have a \"status\" property.\r\n //We used to have \"errorStatus\", but it wasn't signal type. \"status\" variable is signal type.\r\n //I've checked because of backward compatibility. Developers might have their own custom HttpErrorComponent.\r\n //We need to deprecated and remove \"errorStatus\" in the future.\r\n if (customComponentRef.instance.status) {\r\n customComponentRef.instance.status.set(this.status);\r\n }\r\n\r\n customComponentRef.instance.destroy$ = this.destroy$;\r\n\r\n this.appRef.attachView(customComponentRef.hostView);\r\n\r\n if (this.containerRef) {\r\n this.containerRef.nativeElement.appendChild(\r\n (customComponentRef.hostView as EmbeddedViewRef<any>).rootNodes[0],\r\n );\r\n }\r\n customComponentRef.changeDetectorRef.detectChanges();\r\n }\r\n\r\n fromEvent<KeyboardEvent>(this.document, 'keyup')\r\n .pipe(\r\n debounceTime(150),\r\n filter((key: KeyboardEvent) => key && key.key === 'Escape'),\r\n takeUntilDestroyed(this.destroyRef),\r\n )\r\n .subscribe(() => this.destroy());\r\n }\r\n\r\n goHome(): void {\r\n this.router.navigateByUrl('/', { onSameUrlNavigation: 'reload' });\r\n this.destroy();\r\n }\r\n\r\n destroy(): void {\r\n this.destroy$.next();\r\n this.destroy$.complete();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy();\r\n }\r\n}\r\n","<div\r\n #container\r\n id=\"abp-http-error-container\"\r\n class=\"error\"\r\n [style.backgroundColor]=\"backgroundColor\"\r\n>\r\n @if (!hideCloseIcon) {\r\n <button id=\"abp-close-button\" type=\"button\" class=\"btn-close me-2\" (click)=\"destroy()\"></button>\r\n }\r\n\r\n @if (!customComponent) {\r\n <div class=\"row centered\">\r\n <div class=\"col-md-12\">\r\n <div class=\"error-template\">\r\n <h1>{{ statusText }} {{ title | abpLocalization }}</h1>\r\n <div class=\"error-details\">\r\n {{ details | abpLocalization }}\r\n </div>\r\n <div class=\"error-actions\">\r\n @if (isHomeShow) {\r\n <a (click)=\"goHome()\" class=\"btn btn-primary btn-md mt-2\"\r\n ><span class=\"glyphicon glyphicon-home\"></span>\r\n {{ { key: '::Menu:Home', defaultValue: 'Home' } | abpLocalization }}\r\n </a>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n</div>\r\n","import { NgClass, NgStyle } from '@angular/common';\r\nimport { ChangeDetectorRef, Component, Input, OnDestroy, OnInit, inject } from '@angular/core';\r\nimport { combineLatest, Subscription, timer } from 'rxjs';\r\nimport { HttpWaitService, RouterWaitService, SubscriptionService } from '@abp/ng.core';\r\n\r\n@Component({\r\n selector: 'abp-loader-bar',\r\n template: `\r\n <div id=\"abp-loader-bar\" [ngClass]=\"containerClass\" [class.is-loading]=\"isLoading\">\r\n <div\r\n class=\"abp-progress\"\r\n [class.progressing]=\"progressLevel\"\r\n [style.width.vw]=\"progressLevel\"\r\n [ngStyle]=\"{\r\n 'background-color': color,\r\n 'box-shadow': boxShadow,\r\n }\"\r\n ></div>\r\n </div>\r\n `,\r\n styleUrls: ['./loader-bar.component.scss'],\r\n providers: [SubscriptionService],\r\n imports: [NgClass, NgStyle],\r\n})\r\nexport class LoaderBarComponent implements OnDestroy, OnInit {\r\n private cdRef = inject(ChangeDetectorRef);\r\n private subscription = inject(SubscriptionService);\r\n private httpWaitService = inject(HttpWaitService);\r\n private routerWaitService = inject(RouterWaitService);\r\n\r\n protected _isLoading!: boolean;\r\n\r\n @Input()\r\n set isLoading(value: boolean) {\r\n this._isLoading = value;\r\n this.cdRef.detectChanges();\r\n }\r\n get isLoading(): boolean {\r\n return this._isLoading;\r\n }\r\n\r\n @Input()\r\n containerClass = 'abp-loader-bar';\r\n\r\n @Input()\r\n color = '#77b6ff';\r\n\r\n progressLevel = 0;\r\n\r\n interval = new Subscription();\r\n\r\n timer = new Subscription();\r\n\r\n intervalPeriod = 350;\r\n\r\n stopDelay = 800;\r\n\r\n private readonly clearProgress = () => {\r\n this.progressLevel = 0;\r\n this.cdRef.detectChanges();\r\n };\r\n\r\n private readonly reportProgress = () => {\r\n if (this.progressLevel < 75) {\r\n this.progressLevel += 1 + Math.random() * 9;\r\n } else if (this.progressLevel < 90) {\r\n this.progressLevel += 0.4;\r\n } else if (this.progressLevel < 100) {\r\n this.progressLevel += 0.1;\r\n } else {\r\n this.interval.unsubscribe();\r\n }\r\n this.cdRef.detectChanges();\r\n };\r\n\r\n get boxShadow(): string {\r\n return `0 0 10px rgba(${this.color}, 0.5)`;\r\n }\r\n\r\n ngOnInit() {\r\n this.subscribeLoading();\r\n }\r\n\r\n subscribeLoading() {\r\n this.subscription.addOne(\r\n combineLatest([this.httpWaitService.getLoading$(), this.routerWaitService.getLoading$()]),\r\n ([httpLoading, routerLoading]) => {\r\n if (httpLoading || routerLoading) this.startLoading();\r\n else this.stopLoading();\r\n },\r\n );\r\n }\r\n\r\n ngOnDestroy() {\r\n this.interval.unsubscribe();\r\n }\r\n\r\n startLoading() {\r\n if (this.isLoading || !this.interval.closed) return;\r\n\r\n this.isLoading = true;\r\n this.progressLevel = 0;\r\n this.cdRef.detectChanges();\r\n this.interval = timer(0, this.intervalPeriod).subscribe(this.reportProgress);\r\n this.timer.unsubscribe();\r\n }\r\n\r\n stopLoading() {\r\n this.interval.unsubscribe();\r\n\r\n this.progressLevel = 100;\r\n this.isLoading = false;\r\n\r\n if (!this.timer.closed) return;\r\n\r\n this.timer = timer(this.stopDelay).subscribe(this.clearProgress);\r\n }\r\n}\r\n","import { Component, ViewEncapsulation } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'abp-loading',\r\n template: `\r\n <div class=\"abp-loading\">\r\n <i class=\"fa fa-spinner fa-pulse abp-spinner\" aria-hidden=\"true\"></i>\r\n </div>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n styles: [\r\n `\r\n .abp-loading {\r\n position: absolute;\r\n width: 100%;\r\n height: 100%;\r\n top: 0;\r\n left: 0;\r\n z-index: 1040;\r\n }\r\n\r\n .abp-loading .abp-spinner {\r\n position: absolute;\r\n top: 50%;\r\n left: 50%;\r\n font-size: 14px;\r\n -moz-transform: translateX(-50%) translateY(-50%);\r\n -o-transform: translateX(-50%) translateY(-50%);\r\n -ms-transform: translateX(-50%) translateY(-50%);\r\n -webkit-transform: translateX(-50%) translateY(-50%);\r\n transform: translateX(-50%) translateY(-50%);\r\n }\r\n `,\r\n ],\r\n imports: [],\r\n})\r\nexport class LoadingComponent {}\r\n","import { Injector, Type } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\n\r\nexport interface Badge {\r\n count?: number | Observable<number>;\r\n color?: string;\r\n icon?: string;\r\n}\r\n\r\nexport class NavItem {\r\n id?: string | number;\r\n name?: string;\r\n description?: string;\r\n badge?: Badge;\r\n component?: Type<any>;\r\n html?: string;\r\n action?: () => void;\r\n order?: number;\r\n requiredPolicy?: string;\r\n visible?: NavBarPropPredicate<NavItem>;\r\n icon?: string;\r\n constructor(props: Partial<NavItem>) {\r\n Object.assign(this, props);\r\n }\r\n}\r\n\r\nexport type NavBarPropPredicate<T> = (\r\n prop?: T,\r\n injector?: Injector,\r\n) => boolean | Promise<boolean> | Observable<boolean>;\r\n","import { NavItem } from './nav-item';\r\n\r\nexport class UserMenu extends NavItem {\r\n textTemplate?: UserMenuTextTemplate;\r\n}\r\n\r\nexport interface UserMenuTextTemplate {\r\n text: string;\r\n icon?: string;\r\n}\r\n","import { ContentProjectionService, LocalizationParam, PROJECTION_STRATEGY } from '@abp/ng.core';\r\nimport { ComponentRef, Injectable, inject } from '@angular/core';\r\nimport { fromEvent, Observable, ReplaySubject, Subject } from 'rxjs';\r\nimport { debounceTime, filter, takeUntil } from 'rxjs/operators';\r\nimport { ConfirmationComponent } from '../components/confirmation/confirmation.component';\r\nimport { Confirmation } from '../models/confirmation';\r\nimport { DOCUMENT } from '@angular/common';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ConfirmationService {\r\n private contentProjectionService = inject(ContentProjectionService);\r\n private document = inject(DOCUMENT);\r\n\r\n status$!: Subject<Confirmation.Status>;\r\n confirmation$ = new ReplaySubject<Confirmation.DialogData | null>(1);\r\n\r\n private containerComponentRef!: ComponentRef<ConfirmationComponent>;\r\n\r\n clear = (status: Confirmation.Status = Confirmation.Status.dismiss) => {\r\n this.confirmation$.next(null);\r\n this.status$.next(status);\r\n };\r\n\r\n private setContainer() {\r\n this.containerComponentRef = this.contentProjectionService.projectContent(\r\n PROJECTION_STRATEGY.AppendComponentToBody(ConfirmationComponent, {\r\n confirmation$: this.confirmation$,\r\n clear: this.clear,\r\n }),\r\n );\r\n\r\n setTimeout(() => {\r\n this.containerComponentRef.changeDetectorRef.detectChanges();\r\n }, 0);\r\n }\r\n\r\n info(\r\n message: LocalizationParam,\r\n title: LocalizationParam,\r\n options?: Partial<Confirmation.Options>,\r\n ): Observable<Confirmation.Status> {\r\n return this.show(message, title, 'info', options);\r\n }\r\n\r\n success(\r\n message: LocalizationParam,\r\n title: LocalizationParam,\r\n options?: Partial<Confirmation.Options>,\r\n ): Observable<Confirmation.Status> {\r\n return this.show(message, title, 'success', options);\r\n }\r\n\r\n warn(\r\n message: LocalizationParam,\r\n title: LocalizationParam,\r\n options?: Partial<Confirmation.Options>,\r\n ): Observable<Confirmation.Status> {\r\n return this.show(message, title, 'warning', options);\r\n }\r\n\r\n error(\r\n message: LocalizationParam,\r\n title: LocalizationParam,\r\n options?: Partial<Confirmation.Options>,\r\n ): Observable<Confirmation.Status> {\r\n return this.show(message, title, 'error', options);\r\n }\r\n\r\n show(\r\n message: LocalizationParam,\r\n title: LocalizationParam,\r\n severity?: Confirmation.Severity,\r\n options = {} as Partial<Confirmation.Options>,\r\n ): Observable<Confirmation.Status> {\r\n if (!this.containerComponentRef) this.setContainer();\r\n\r\n this.confirmation$.next({\r\n message,\r\n title,\r\n severity: severity || 'neutral',\r\n options,\r\n });\r\n\r\n this.status$ = new Subject();\r\n const { dismissible = true } = options;\r\n if (dismissible) this.listenToEscape();\r\n\r\n return this.status$;\r\n }\r\n\r\n private listenToEscape() {\r\n fromEvent<KeyboardEvent>(this.document, 'keyup')\r\n .pipe(\r\n takeUntil(this.status$),\r\n debounceTime(150),\r\n filter((key: KeyboardEvent) => key && key.key === 'Escape'),\r\n )\r\n .subscribe(() => {\r\n this.clear();\r\n });\r\n }\r\n}\r\n","import { BehaviorSubject, Observable } from 'rxjs';\r\nimport { NavItem } from '../models/nav-item';\r\nimport { inject, Type } from '@angular/core';\r\nimport { SORT_COMPARE_FUNC, SortableItem } from '@abp/ng.core';\r\n\r\nexport abstract class AbstractMenuService<T extends NavItem> {\r\n protected abstract baseClass: Type<any>;\r\n\r\n protected readonly sortFn: (a: SortableItem, b: SortableItem) => number;\r\n\r\n protected _items$ = new BehaviorSubject<T[]>([]);\r\n\r\n get items(): T[] {\r\n return this._items$.value;\r\n }\r\n\r\n get items$(): Observable<T[]> {\r\n return this._items$.asObservable();\r\n }\r\n\r\n constructor() {\r\n this.sortFn = inject(SORT_COMPARE_FUNC);\r\n }\r\n\r\n addItems(newItems: T[]) {\r\n const items = [...this.items];\r\n newItems.forEach(item => {\r\n const index = items.findIndex(i => i.id === item.id);\r\n const data = new this.baseClass(item);\r\n\r\n if (index > -1) {\r\n items[index] = data;\r\n return;\r\n }\r\n\r\n items.push(data);\r\n });\r\n items.sort(this.sortItems);\r\n this._items$.next(items);\r\n }\r\n\r\n removeItem(id: string | number) {\r\n const index = this.items.findIndex(item => item.id === id);\r\n\r\n if (index < 0) return;\r\n\r\n const items = [...this.items.slice(0, index), ...this.items.slice(index + 1)];\r\n this._items$.next(items);\r\n }\r\n\r\n patchItem(id: string | number, item: Partial<Omit<T, 'id'>>) {\r\n const index = this.items.findIndex(i => i.id === id);\r\n\r\n if (index < 0) return;\r\n\r\n const items = [...this.items];\r\n items[index] = new this.baseClass({ ...items[index], ...item });\r\n items.sort(this.sortItems);\r\n this._items$.next(items);\r\n }\r\n\r\n sortItems = (a: T, b: T) => {\r\n return this.sortFn(a, b);\r\n };\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { NavItem } from '../models/nav-item';\r\nimport { AbstractMenuService } from './abstract-menu.service';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class NavItemsService extends AbstractMenuService<NavItem> {\r\n protected baseClass = NavItem;\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { InternalStore } from '@abp/ng.core';\r\n\r\nexport interface PageAlert {\r\n type: 'primary' | 'secondary' | 'success' | 'danger' | 'warning' | 'info' | 'light' | 'dark';\r\n message: string;\r\n dismissible?: boolean;\r\n title?: string;\r\n messageLocalizationParams?: string[];\r\n titleLocalizationParams?: string[];\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class PageAlertService {\r\n private alerts = new InternalStore<PageAlert[]>([]);\r\n\r\n alerts$ = this.alerts.sliceState(state => state);\r\n\r\n show(alert: PageAlert) {\r\n const newAlert: PageAlert = {\r\n ...alert,\r\n dismissible: alert.dismissible ?? true,\r\n };\r\n this.alerts.set([newAlert, ...this.alerts.state]);\r\n }\r\n\r\n remove(index: number) {\r\n const alerts = [...this.alerts.state];\r\n alerts.splice(index, 1);\r\n this.alerts.set(alerts);\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { NgClass } from '@angular/common';\r\nimport { Toaster } from '../../models/toaster';\r\nimport { LocalizationPipe } from '@abp/ng.core';\r\n\r\n@Component({\r\n selector: 'abp-toast',\r\n templateUrl: './toast.component.html',\r\n styleUrls: ['./toast.component.scss'],\r\n imports: [NgClass, LocalizationPipe],\r\n})\r\nexport class ToastComponent implements OnInit {\r\n @Input()\r\n toast!: Toaster.Toast;\r\n\r\n @Output() remove = new EventEmitter<number>();\r\n\r\n get severityClass(): string {\r\n if (!this.toast || !this.toast.severity) return '';\r\n return `abp-toast-${this.toast.severity}`;\r\n }\r\n\r\n get iconClass(): string {\r\n const { iconClass } = this.toast.options || {};\r\n\r\n if (iconClass) {\r\n return iconClass;\r\n }\r\n\r\n switch (this.toast.severity) {\r\n case 'success':\r\n return 'bi-check';\r\n case 'info':\r\n return 'bi-info-circle';\r\n case 'warning':\r\n return 'bi-exclamation-triangle';\r\n case 'error':\r\n return 'bi-shield-exclamation';\r\n default:\r\n return 'bi-exclamation-triangle';\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n const { sticky, life } = this.toast.options || {};\r\n\r\n if (sticky) return;\r\n const timeout = life || 5000;\r\n setTimeout(() => {\r\n this.close();\r\n }, timeout);\r\n }\r\n\r\n close() {\r\n this.remove.emit(this.toast.options?.id);\r\n }\r\n\r\n tap() {\r\n if (this.toast.options?.tapToDismiss) this.close();\r\n }\r\n}\r\n","<div class=\"abp-toast\" [ngClass]=\"severityClass\" (click)=\"tap()\">\r\n <div class=\"abp-toast-icon\">\r\n <i class=\"bi icon\" [ngClass]=\"iconClass\" aria-hidden=\"true\"></i>\r\n </div>\r\n <div class=\"abp-toast-content\">\r\n @if (toast.options?.closable) {\r\n <button class=\"abp-toast-close-button\" (click)=\"close()\">\r\n <i class=\"bi bi-x fs-4\" aria-hidden=\"true\"></i>\r\n </button>\r\n }\r\n <div class=\"abp-toast-title\">\r\n {{ toast.title | abpLocalization: toast.options?.titleLocalizationParams }}\r\n </div>\r\n <p\r\n class=\"abp-toast-message\"\r\n [innerHTML]=\"toast.message | abpLocalization: toast.options?.messageLocalizationParams\"\r\n ></p>\r\n </div>\r\n</div>\r\n","import { Component, HostListener, Input, OnInit } from '@angular/core';\r\nimport { ReplaySubject } from 'rxjs';\r\nimport { toastInOut } from '../../animations/toast.animations';\r\nimport { Toaster } from '../../models/toaster';\r\nimport { ToastComponent } from '../toast/toast.component';\r\n\r\n@Component({\r\n selector: 'abp-toast-container',\r\n templateUrl: './toast-container.component.html',\r\n styleUrls: ['./toast-container.component.scss'],\r\n animations: [toastInOut],\r\n imports: [ToastComponent],\r\n})\r\nexport class ToastContainerComponent implements OnInit {\r\n toasts$!: ReplaySubject<Toaster.Toast[]>;\r\n\r\n remove!: (toastId: number) => void;\r\n\r\n toasts = [] as Toaster.Toast[];\r\n\r\n @Input()\r\n top?: string;\r\n\r\n @Input()\r\n right = '30px';\r\n defaultRight = '30px';\r\n defaultMobileRight = '0';\r\n\r\n @Input()\r\n bottom = '30px';\r\n\r\n @Input()\r\n left?: string;\r\n\r\n @Input()\r\n toastKey?: string;\r\n\r\n ngOnInit() {\r\n this.setDefaultRight();\r\n this.toasts$.subscribe(toasts => {\r\n this.toasts = this.toastKey\r\n ? toasts.filter(t => {\r\n return t.options && t.options.containerKey !== this.toastKey;\r\n })\r\n : toasts;\r\n });\r\n }\r\n\r\n @HostListener('window:resize')\r\n onWindowResize() {\r\n this.setDefaultRight();\r\n }\r\n\r\n setDefaultRight() {\r\n const screenWidth = window.innerWidth;\r\n if (screenWidth < 768 && this.right == this.defaultRight) {\r\n this.right = this.defaultMobileRight;\r\n }\r\n }\r\n\r\n trackByFunc(index: number, toast: Toaster.Toast) {\r\n if (!toast) return null;\r\n return toast.options?.id;\r\n }\r\n}\r\n","<div\r\n class=\"abp-toast-container\"\r\n [style.top]=\"top || 'auto'\"\r\n [style.right]=\"right || 'auto'\"\r\n [style.bottom]=\"bottom || 'auto'\"\r\n [style.left]=\"left || 'auto'\"\r\n [style.display]=\"toasts.length ? 'flex' : 'none'\"\r\n [@toastInOut]=\"toasts.length\"\r\n>\r\n @for (toast of toasts; track toast.options?.id) {\r\n <abp-toast\r\n [toast]=\"toast\"\r\n (remove)=\"remove($event)\"\r\n ></abp-toast>\r\n }\r\n</div>\r\n","import {\r\n ContentProjectionService,\r\n LocalizationParam,\r\n PROJECTION_STRATEGY,\r\n Strict,\r\n} from '@abp/ng.core';\r\nimport { ComponentRef, inject, Injectable } from '@angular/core';\r\nimport { ReplaySubject } from 'rxjs';\r\nimport { ToastContainerComponent } from '../components/toast-container/toast-container.component';\r\nimport { Toaster } from '../models';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ToasterService implements ToasterContract {\r\n private toasts$ = new ReplaySubject<Toaster.Toast[]>(1);\r\n\r\n private lastId = -1;\r\n\r\n private toasts = [] as Toaster.Toast[];\r\n\r\n private containerComponentRef!: ComponentRef<ToastContainerComponent>;\r\n private contentProjectionService: ContentProjectionService;\r\n\r\n private setContainer() {\r\n this.containerComponentRef = this.contentProjectionService.projectContent(\r\n PROJECTION_STRATEGY.AppendComponentToBody(ToastContainerComponent, {\r\n toasts$: this.toasts$,\r\n remove: this.remove,\r\n }),\r\n );\r\n\r\n this.containerComponentRef.changeDetectorRef.detectChanges();\r\n }\r\n\r\n constructor() {\r\n this.contentProjectionService = inject(ContentProjectionService);\r\n }\r\n\r\n /**\r\n * Creates an info toast with given parameters.\r\n * @param message Content of the toast\r\n * @param title Title of the toast\r\n * @param options Spesific style or structural options for individual toast\r\n */\r\n info(\r\n message: LocalizationParam,\r\n title?: LocalizationParam,\r\n options?: Partial<Toaster.ToastOptions>,\r\n ): Toaster.ToasterId {\r\n return this.show(message, title, 'info', options);\r\n }\r\n\r\n /**\r\n * Creates a success toast with given parameters.\r\n * @param message Content of the toast\r\n * @param title Title of the toast\r\n * @param options Spesific style or structural options for individual toast\r\n */\r\n success(\r\n message: LocalizationParam,\r\n title?: LocalizationParam,\r\n options?: Partial<Toaster.ToastOptions>,\r\n ): Toaster.ToasterId {\r\n return this.show(message, title, 'success', options);\r\n }\r\n\r\n /**\r\n * Creates a warning toast with given parameters.\r\n * @param message Content of the toast\r\n * @param title Title of the toast\r\n * @param options Spesific style or structural options for individual toast\r\n */\r\n warn(\r\n message: LocalizationParam,\r\n title?: LocalizationParam,\r\n options?: Partial<Toaster.ToastOptions>,\r\n ): Toaster.ToasterId {\r\n return this.show(message, title, 'warning', options);\r\n }\r\n\r\n /**\r\n * Creates an error toast with given parameters.\r\n * @param message Content of the toast\r\n * @param title Title of the toast\r\n * @param options Spesific style or structural options for individual toast\r\n */\r\n error(\r\n message: LocalizationParam,\r\n title?: LocalizationParam,\r\n options?: Partial<Toaster.ToastOptions>,\r\n ): Toaster.ToasterId {\r\n return this.show(message, title, 'error', options);\r\n }\r\n\r\n /**\r\n * Creates a toast with given parameters.\r\n * @param message Content of the toast\r\n * @param title Title of the toast\r\n * @param severity Sets color of the toast. \"success\", \"warning\" etc.\r\n * @param options Spesific style or structural options for individual toast\r\n */\r\n\r\n show(\r\n message: LocalizationParam,\r\n title: LocalizationParam | undefined = undefined,\r\n severity: Toaster.Severity = 'neutral',\r\n options = {} as Partial<Toaster.ToastOptions>,\r\n ): Toaster.ToasterId {\r\n if (!this.containerComponentRef) this.setContainer();\r\n\r\n const id = ++this.lastId;\r\n this.toasts.push({\r\n message,\r\n title,\r\n severity,\r\n options: { closable: true, id, ...options },\r\n });\r\n this.toasts$.next(this.toasts);\r\n return id;\r\n }\r\n\r\n /**\r\n * Removes the toast with given id.\r\n * @param id ID of the toast to be removed.\r\n */\r\n remove = (id: number) => {\r\n this.toasts = this.toasts.filter(toast => toast.options?.id !== id);\r\n this.toasts$.next(this.toasts);\r\n };\r\n\r\n /**\r\n * Removes all open toasts at once.\r\n */\r\n clear(containerKey?: string): void {\r\n this.toasts = !containerKey\r\n ? []\r\n : this.toasts.filter(toast => toast.options?.containerKey !== containerKey);\r\n this.toasts$.next(this.toasts);\r\n }\r\n}\r\n\r\nexport type ToasterContract = Strict<ToasterService, Toaster.Service>;\r\n","import { Injectable } from '@angular/core';\r\nimport { UserMenu } from '../models/user-menu';\r\nimport { AbstractMenuService } from './abstract-menu.service';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class UserMenuService extends AbstractMenuService<UserMenu> {\r\n protected baseClass = UserMenu;\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\nimport { CustomHttpErrorHandlerService, HttpErrorConfig, HttpErrorHandler } from '../models/common';\r\n\r\nexport const HTTP_ERROR_CONFIG = new InjectionToken<HttpErrorConfig>('HTTP_ERROR_CONFIG');\r\n\r\n/**\r\n @deprecated use **`CUSTOM_ERROR_HANDLERS`** injection token instead of this, see more info https://abp.io/docs/latest/framework/ui/angular/http-requests\r\n*/\r\nexport const HTTP_ERROR_HANDLER = new InjectionToken<HttpErrorHandler>('HTTP_ERROR_HANDLER');\r\n\r\nexport const CUSTOM_ERROR_HANDLERS = new InjectionToken<CustomHttpErrorHandlerService[]>(\r\n 'CUSTOM_ERROR_HANDLERS',\r\n);\r\n","import {\r\n ApplicationRef,\r\n ComponentRef,\r\n createComponent,\r\n EmbeddedViewRef,\r\n EnvironmentInjector,\r\n inject,\r\n Injectable,\r\n Injector,\r\n RendererFactory2,\r\n} from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { ResolveEnd } from '@angular/router';\r\nimport { Subject } from 'rxjs';\r\nimport { filter } from 'rxjs/operators';\r\nimport { RouterEvents } from '@abp/ng.core';\r\nimport { HTTP_ERROR_CONFIG } from '../tokens/http-error.token';\r\nimport { HttpErrorWrapperComponent } from '../components/http-error-wrapper/http-error-wrapper.component';\r\nimport { ErrorScreenErrorCodes } from '../models/common';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class CreateErrorComponentService {\r\n protected readonly document = inject(DOCUMENT);\r\n protected readonly rendererFactory = inject(RendererFactory2);\r\n protected readonly routerEvents = inject(RouterEvents);\r\n protected readonly injector = inject(Injector);\r\n protected readonly envInjector = inject(EnvironmentInjector);\r\n protected readonly httpErrorConfig = inject(HTTP_ERROR_CONFIG);\r\n\r\n componentRef: ComponentRef<HttpErrorWrapperComponent> | null = null;\r\n\r\n constructor() {\r\n this.listenToRouterDataResolved();\r\n }\r\n\r\n protected listenToRouterDataResolved(): void {\r\n this.routerEvents\r\n .getEvents(ResolveEnd)\r\n .pipe(filter(() => !!this.componentRef))\r\n .subscribe(() => {\r\n this.componentRef?.destroy();\r\n this.componentRef = null;\r\n });\r\n }\r\n\r\n protected getErrorHostElement(): HTMLElement {\r\n return this.document.body;\r\n }\r\n\r\n protected isCloseIconHidden(): boolean {\r\n return !!this.httpErrorConfig?.errorScreen?.hideCloseIcon;\r\n }\r\n\r\n canCreateCustomError(status: ErrorScreenErrorCodes) {\r\n const { component, forWhichErrors } = this.httpErrorConfig?.errorScreen || {};\r\n\r\n if (!component || !forWhichErrors) {\r\n return false;\r\n }\r\n\r\n return forWhichErrors.indexOf(status) > -1;\r\n }\r\n\r\n execute(instance: Partial<HttpErrorWrapperComponent>): void {\r\n const renderer = this.rendererFactory.createRenderer(null, null);\r\n const hostElement = this.getErrorHostElement();\r\n const host = renderer.selectRootElement(hostElement, true);\r\n\r\n this.componentRef = createComponent(HttpErrorWrapperComponent, {\r\n environmentInjector: this.envInjector,\r\n });\r\n\r\n for (const key in instance) {\r\n /* istanbul ignore else */\r\n if (Object.prototype.hasOwnProperty.call(this.componentRef.instance, key)) {\r\n (this.componentRef.instance as any)[key] = (instance as any)[key];\r\n }\r\n }\r\n\r\n this.componentRef.instance.hideCloseIcon = this.isCloseIconHidden();\r\n const appRef = this.injector.get(ApplicationRef);\r\n\r\n if (this.canCreateCustomError(instance.status as ErrorScreenErrorCodes)) {\r\n this.componentRef.instance.appRef = appRef;\r\n this.componentRef.instance.environmentInjector = this.envInjector;\r\n this.componentRef.instance.customComponent = this.httpErrorConfig.errorScreen?.component;\r\n }\r\n\r\n appRef.attachView(this.componentRef.hostView);\r\n renderer.appendChild(host, (this.componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0]);\r\n\r\n const destroy$ = new Subject<void>();\r\n this.componentRef.instance.destroy$ = destroy$;\r\n\r\n destroy$.subscribe(() => {\r\n this.componentRef?.destroy();\r\n this.componentRef = null;\r\n });\r\n }\r\n}\r\n","export const DEFAULT_ERROR_MESSAGES = {\r\n defaultError: {\r\n title: 'An error has occurred!',\r\n details: 'Error detail not sent by server.',\r\n },\r\n defaultError401: {\r\n title: 'You are not authenticated!',\r\n details: 'You should be authenticated (sign in) in order to perform this operation.',\r\n },\r\n defaultError403: {\r\n title: 'You are not authorized!',\r\n details: 'You are not allowed to perform this operation.',\r\n },\r\n defaultError404: {\r\n title: 'Resource not found!',\r\n details: 'The resource requested could not found on the server.',\r\n },\r\n defaultError500: {\r\n title: 'Internal server error',\r\n details: 'Error detail not sent by server.',\r\n },\r\n};\r\n\r\nexport const DEFAULT_ERROR_LOCALIZATIONS = {\r\n defaultError: {\r\n title: 'AbpUi::DefaultErrorMessage',\r\n details: 'AbpUi::DefaultErrorMessageDetail',\r\n },\r\n defaultError401: {\r\n title: 'AbpUi::DefaultErrorMessage401',\r\n details: 'AbpUi::DefaultErrorMessage401Detail',\r\n },\r\n defaultError403: {\r\n title: 'AbpUi::DefaultErrorMessage403',\r\n details: 'AbpUi::DefaultErrorMessage403Detail',\r\n },\r\n defaultError404: {\r\n title: 'AbpUi::DefaultErrorMessage404',\r\n details: 'AbpUi::DefaultErrorMessage404Detail',\r\n },\r\n defaultError500: {\r\n title: 'AbpUi::500Message',\r\n details: 'AbpUi::DefaultErrorMessage',\r\n },\r\n};\r\n\r\nexport const CUSTOM_HTTP_ERROR_HANDLER_PRIORITY = Object.freeze({\r\n veryLow: -99,\r\n low: -9,\r\n normal: 0,\r\n high: 9,\r\n veryHigh: 99,\r\n});\r\n\r\nexport const HTTP_ERROR_STATUS = {\r\n '401': 'AbpUi::401Message',\r\n '403': 'AbpUi::403Message',\r\n '404': 'AbpUi::404Message',\r\n '500': 'AbpUi::500Message',\r\n};\r\n\r\nexport const HTTP_ERROR_DETAIL = {\r\n '401': 'AbpUi::DefaultErrorMessage401Detail',\r\n '403': 'AbpUi::DefaultErrorMessage403Detail',\r\n '404': 'AbpUi::DefaultErrorMessage404Detail',\r\n '500': 'AbpUi::DefaultErrorMessage',\r\n};\r\n","import { LocalizationParam } from '@abp/ng.core';\r\nimport { DEFAULT_ERROR_LOCALIZATIONS, DEFAULT_ERROR_MESSAGES } from '../constants/default-errors';\r\n\r\nexport function getErrorFromRequestBody(body: { details?: string; message?: string } | undefined) {\r\n let message: LocalizationParam;\r\n let title: LocalizationParam;\r\n\r\n if (body.details) {\r\n message = body.details;\r\n title = body.message;\r\n } else if (body.message) {\r\n title = {\r\n key: DEFAULT_ERROR_LOCALIZATIONS.defaultError.title,\r\n defaultValue: DEFAULT_ERROR_MESSAGES.defaultError.title,\r\n };\r\n message = body.message;\r\n } else {\r\n message = {\r\n key: DEFAULT_ERROR_LOCALIZATIONS.defaultError.title,\r\n defaultValue: DEFAULT_ERROR_MESSAGES.defaultError.title,\r\n };\r\n title = '';\r\n }\r\n\r\n return { message, title };\r\n}\r\n","import { inject, Injectable } from '@angular/core';\r\nimport { AuthService } from '@abp/ng.core';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { getErrorFromRequestBody } from '../utils/error.utils';\r\nimport { CustomHttpErrorHandlerService } from '../models/common';\r\nimport { ConfirmationService } from '../services/confirmation.service';\r\nimport { CUSTOM_HTTP_ERROR_HANDLER_PRIORITY } from '../constants/default-errors';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class AbpFormatErrorHandlerService implements CustomHttpErrorHandlerService {\r\n readonly priority = CUSTOM_HTTP_ERROR_HANDLER_PRIORITY.high;\r\n private confirmationService = inject(ConfirmationService);\r\n private authService = inject(AuthService);\r\n private error: HttpErrorResponse | undefined = undefined;\r\n\r\n private navigateToLogin() {\r\n return this.authService.navigateToLogin();\r\n }\r\n\r\n canHandle(error: unknown): boolean {\r\n if (error instanceof HttpErrorResponse && error.headers.get('_AbpErrorFormat')) {\r\n this.error = error;\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n execute() {\r\n const { message, title } = getErrorFromRequestBody(this.error?.error?.error);\r\n this.confirmationService\r\n .error(message, title, {\r\n hideCancelBtn: true,\r\n yesText: 'AbpAccount::Close',\r\n })\r\n .subscribe(() => {\r\n if (this.error?.status === 401) {\r\n this.navigateToLogin();\r\n }\r\n });\r\n }\r\n}\r\n","import { CustomHttpErrorHandlerService } from '../models/common';\r\nimport { inject, Injectable } from '@angular/core';\r\nimport { AuthService, SessionStateService } from '@abp/ng.core';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { CUSTOM_HTTP_ERROR_HANDLER_PRIORITY } from '../constants/default-errors';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class TenantResolveErrorHandlerService implements CustomHttpErrorHandlerService {\r\n protected readonly sessionService = inject(SessionStateService);\r\n readonly priority = CUSTOM_HTTP_ERROR_HANDLER_PRIORITY.high;\r\n private authService = inject(AuthService);\r\n private isTenantResolveError(error: unknown) {\r\n return error instanceof HttpErrorResponse && !!error.headers.get('Abp-Tenant-Resolve-Error');\r\n }\r\n\r\n canHandle(error: unknown): boolean {\r\n return this.isTenantResolveError(error);\r\n }\r\n\r\n execute() {\r\n this.sessionService.setTenant(null);\r\n this.authService.logout().subscribe();\r\n }\r\n}\r\n","import { Confirmation, CustomHttpErrorHandlerService } from '../models';\r\nimport {\r\n CUSTOM_HTTP_ERROR_HANDLER_PRIORITY,\r\n DEFAULT_ERROR_LOCALIZATIONS,\r\n DEFAULT_ERROR_MESSAGES,\r\n} from '../constants/default-errors';\r\nimport { AuthService, LocalizationParam } from '@abp/ng.core';\r\nimport { Observable } from 'rxjs';\r\nimport { inject, Injectable } from '@angular/core';\r\nimport { ConfirmationService } from './confirmation.service';\r\nimport { CreateErrorComponentService } from './create-error-component.service';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class StatusCodeErrorHandlerService implements CustomHttpErrorHandlerService {\r\n protected readonly confirmationService = inject(ConfirmationService);\r\n protected readonly createErrorComponentService = inject(CreateErrorComponentService);\r\n protected readonly authService = inject(AuthService);\r\n\r\n protected readonly handledStatusCodes = [401, 403, 404, 500] as const;\r\n protected status: (typeof this.handledStatusCodes)[number];\r\n\r\n readonly priority = CUSTOM_HTTP_ERROR_HANDLER_PRIORITY.normal;\r\n\r\n protected navigateToLogin(): void {\r\n this.authService.navigateToLogin();\r\n }\r\n\r\n protected showConfirmation(\r\n message: LocalizationParam,\r\n title: LocalizationParam,\r\n ): Observable<Confirmation.Status> {\r\n return this.confirmationService.error(message, title, {\r\n hideCancelBtn: true,\r\n yesText: 'AbpAccount::Close',\r\n });\r\n }\r\n\r\n protected showPage(): void {\r\n const key = `defaultError${this.status}`;\r\n const shouldRemoveDetail = [401, 404].indexOf(this.status) > -1;\r\n const instance = {\r\n title: {\r\n key: DEFAULT_ERROR_LOCALIZATIONS[key]?.title,\r\n defaultValue: DEFAULT_ERROR_MESSAGES[key]?.title,\r\n },\r\n details: {\r\n key: DEFAULT_ERROR_LOCALIZATIONS[key]?.details,\r\n defaultValue: DEFAULT_ERROR_MESSAGES[key]?.details,\r\n },\r\n status: this.status,\r\n };\r\n\r\n if (shouldRemoveDetail) {\r\n delete instance.details;\r\n }\r\n\r\n this.createErrorComponentService.execute(instance);\r\n }\r\n\r\n canHandle(error): boolean {\r\n this.status = error?.status || 0;\r\n return this.handledStatusCodes.indexOf(this.status) > -1;\r\n }\r\n\r\n execute(): void {\r\n const key = `defaultError${this.status}`;\r\n const title = {\r\n key: DEFAULT_ERROR_LOCALIZATIONS[key]?.title,\r\n defaultValue: DEFAULT_ERROR_MESSAGES[key]?.title,\r\n };\r\n const message = {\r\n key: DEFAULT_ERROR_LOCALIZATIONS[key]?.details,\r\n defaultValue: DEFAULT_ERROR_MESSAGES[key]?.details,\r\n };\r\n\r\n const canCreateCustomError = this.createErrorComponentService.canCreateCustomError(this.status);\r\n\r\n switch (this.status) {\r\n case 401:\r\n case 404:\r\n if (canCreateCustomError) {\r\n this.showPage();\r\n break;\r\n }\r\n\r\n if (this.status === 401) {\r\n this.authService.navigateToLogin();\r\n break;\r\n }\r\n\r\n this.showConfirmation(title, message).subscribe();\r\n break;\r\n case 403:\r\n case 500:\r\n this.showPage();\r\n break;\r\n }\r\n }\r\n}\r\n","import { CustomHttpErrorHandlerService } from '../models';\r\nimport {\r\n CUSTOM_HTTP_ERROR_HANDLER_PRIORITY,\r\n DEFAULT_ERROR_LOCALIZATIONS,\r\n DEFAULT_ERROR_MESSAGES,\r\n} from '../constants/default-errors';\r\nimport { inject, Injectable } from '@angular/core';\r\nimport { CreateErrorComponentService } from './create-error-component.service';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class UnknownStatusCodeErrorHandlerService implements CustomHttpErrorHandlerService {\r\n readonly priority = CUSTOM_HTTP_ERROR_HANDLER_PRIORITY.normal;\r\n private statusText = 'Unknown Error';\r\n private message = '';\r\n private createErrorComponentService = inject(CreateErrorComponentService);\r\n\r\n canHandle(error: { status: number; statusText: string; message: string } | undefined): boolean {\r\n if (error && error.status === 0 && error.statusText === this.statusText) {\r\n this.message = error.message;\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n execute() {\r\n this.createErrorComponentService.execute({\r\n title: {\r\n key: DEFAULT_ERROR_LOCALIZATIONS.defaultError.title,\r\n defaultValue: DEFAULT_ERROR_MESSAGES.defaultError.title,\r\n },\r\n details: this.message,\r\n isHomeShow: false,\r\n });\r\n }\r\n}\r\n","export default `\r\n.is-invalid .form-control {\r\n border-color: #dc3545;\r\n border-style: solid !important;\r\n padding-right: calc(1.5em + .75rem);\r\n background-image: url(data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e);\r\n background-repeat: no-repeat;\r\n background-position: right calc(.375em + .1875rem) center;\r\n background-size: calc(.75em + .375rem) calc(.75em + .375rem);\r\n}\r\n\r\n.is-invalid .invalid-feedback,\r\n.is-invalid + * .invalid-feedback {\r\n display: block;\r\n}\r\n\r\n.data-tables-filter {\r\n text-align: right;\r\n}\r\n\r\n[dir=rtl] .data-tables-filter {\r\n text-align: left;\r\n}\r\n\r\n.pointer {\r\n cursor: pointer;\r\n}\r\n\r\n.navbar .dropdown-submenu a::after {\r\n transform: rotate(-90deg);\r\n position: absolute;\r\n right: 16px;\r\n top: 18px;\r\n}\r\n\r\n.navbar .dropdown-menu {\r\n min-width: 215px;\r\n}\r\n\r\n.datatable-scroll {\r\n margin-bottom: 5px !important;\r\n width: unset !important;\r\n}\r\n\r\n.ui-table-scrollable-body::-webkit-scrollbar {\r\n height: 5px !important;\r\n width: 5px !important;\r\n}\r\n\r\n.ui-table-scrollable-body::-webkit-scrollbar-track {\r\n background: #ddd;\r\n}\r\n\r\n.ui-table-scrollable-body::-webkit-scrollbar-thumb {\r\n background: #8a8686;\r\n}\r\n\r\n.abp-ellipsis-inline {\r\n display: inline-block;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n white-space: nowrap;\r\n}\r\n\r\n.abp-ellipsis {\r\n overflow: hidden !important;\r\n text-overflow: ellipsis;\r\n white-space: nowrap;\r\n}\r\n\r\n.ui-widget-overlay {\r\n z-index: 1000;\r\n}\r\n\r\n.color-white {\r\n color: #FFF !important;\r\n}\r\n\r\n.custom-checkbox > label {\r\n cursor: pointer;\r\n}\r\n\r\n/* <animations */\r\n\r\n.fade-in-top {\r\n animation: fadeInTop 0.2s ease-in-out;\r\n}\r\n\r\n.fade-out-top {\r\n animation: fadeOutTop 0.2s ease-in-out;\r\n}\r\n\r\n.abp-collapsed-height {\r\n -moz-transition: max-height linear 0.35s;\r\n -ms-transition: max-height linear 0.35s;\r\n -o-transition: max-height linear 0.35s;\r\n -webkit-transition: max-height linear 0.35s;\r\n overflow:hidden;\r\n transition:max-height 0.35s linear;\r\n height:auto;\r\n max-height: 0;\r\n}\r\n\r\n.abp-mh-25 {\r\n max-height: 25vh;\r\n}\r\n\r\n.abp-mh-50 {\r\n transition:max-height 0.65s linear;\r\n max-height: 50vh;\r\n}\r\n\r\n.abp-mh-75 {\r\n transition:max-height 0.85s linear;\r\n max-height: 75vh;\r\n}\r\n\r\n.abp-mh-100 {\r\n transition:max-height 1s linear;\r\n max-height: 100vh;\r\n}\r\n\r\n[class^=\"sorting\"] {\r\n opacity: .3;\r\n cursor: pointer;\r\n}\r\n[class^=\"sorting\"]:before {\r\n right: 0.5rem;\r\n content: \"↑\";\r\n}\r\n[class^=\"sorting\"]:after {\r\n right: 0.5rem;\r\n content: \"↓\";\r\n}\r\n\r\n.sorting_desc {\r\n opacity: 1;\r\n}\r\n.sorting_desc:before {\r\n opacity: .3;\r\n}\r\n\r\n.sorting_asc {\r\n opacity: 1;\r\n}\r\n.sorting_asc:after {\r\n opacity: .3;\r\n}\r\n.ngx-datatable.material {\r\n box-shadow: none;\r\n}\r\nngb-typeahead-window, ngb-typeahead-window.dropdown-menu {\r\n max-height: 25em;\r\n overflow-y: scroll !important;\r\n z-index: 1050;\r\n}\r\n\r\n.abp-modal-header {\r\n word-break: break-word;\r\n}\r\n\r\n\r\n@keyframes fadeInTop {\r\n from {\r\n transform: translateY(-5px);\r\n opacity: 0;\r\n }\r\n\r\n to {\r\n transform: translateY(0px);\r\n opacity: 1;\r\n }\r\n}\r\n\r\n@keyframes fadeOutTop {\r\n to {\r\n transform: translateY(-5px);\r\n opacity: 0;\r\n }\r\n}\r\n\r\n/* </animations */\r\n.ngb-dp-body {\r\n z-index: 1055 !important;\r\n}\r\n`;\r\n","import { CONTENT_STRATEGY, DomInsertionService } from '@abp/ng.core';\r\nimport { inject, InjectionToken } from '@angular/core';\r\nimport styles from '../constants/styles';\r\n\r\nexport const THEME_SHARED_APPEND_CONTENT = new InjectionToken<void>('THEME_SHARED_APPEND_CONTENT', {\r\n providedIn: 'root',\r\n factory: () => {\r\n const domInsertion: DomInsertionService = inject(DomInsertionService);\r\n\r\n domInsertion.insertContent(CONTENT_STRATEGY.AppendStyleToHead(styles));\r\n },\r\n});\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport interface NgxDatatableMessages {\r\n emptyMessage: string;\r\n errorMessage: string;\r\n totalMessage: string;\r\n selectedMessage: string;\r\n}\r\n\r\nexport const defaultNgxDatatableMessages = {\r\n emptyMessage: 'AbpUi::NoDataAvailableInDatatable',\r\n errorMessage: 'AbpUi::ErrorLoadingDatatable',\r\n totalMessage: 'AbpUi::Total',\r\n selectedMessage: 'AbpUi::Selected',\r\n};\r\n\r\nexport const NGX_DATATABLE_MESSAGES = new InjectionToken<Partial<NgxDatatableMessages>>(\r\n 'NGX_DATATABLE_MESSAGES',\r\n);\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport const SUPPRESS_UNSAVED_CHANGES_WARNING = new InjectionToken<boolean>(\r\n 'SUPPRESS_UNSAVED_CHANGES_WARNING',\r\n);\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport const LOGO_URL_TOKEN = new InjectionToken<string>('LOGO_URL_TOKEN');\r\nexport const LOGO_APP_NAME_TOKEN = new InjectionToken<string>(\r\n 'LOGO_APP_NAME_TOKEN',\r\n);\r\n","import { InjectionToken } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\n\r\nexport const THEME_CHANGE_TOKEN = new InjectionToken<Observable<{ styleName: string }>>(\r\n 'THEME_CHANGE_TOKEN',\r\n);\r\n","import { inject, Injectable } from '@angular/core';\r\nimport { NavigationError } from '@angular/router';\r\nimport { filter } from 'rxjs/operators';\r\nimport { RouterEvents } from '@abp/ng.core';\r\nimport { HTTP_ERROR_CONFIG } from '../tokens/';\r\nimport { CreateErrorComponentService } from '../services';\r\nimport { DEFAULT_ERROR_LOCALIZATIONS, DEFAULT_ERROR_MESSAGES } from '../constants/default-errors';\r\nimport { ErrorScreenErrorCodes } from '../models';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class RouterErrorHandlerService {\r\n protected readonly routerEvents = inject(RouterEvents);\r\n protected readonly httpErrorConfig = inject(HTTP_ERROR_CONFIG);\r\n protected readonly createErrorComponentService = inject(CreateErrorComponentService);\r\n\r\n protected filterRouteErrors = (navigationError: NavigationError): boolean => {\r\n if (!this.httpErrorConfig?.skipHandledErrorCodes) {\r\n return true;\r\n }\r\n\r\n return (\r\n navigationError.error?.message?.indexOf('Cannot match') > -1 &&\r\n this.httpErrorConfig.skipHandledErrorCodes.findIndex(code => code === 404) < 0\r\n );\r\n };\r\n\r\n listen() {\r\n this.routerEvents\r\n .getNavigationEvents('Error')\r\n .pipe(filter(this.filterRouteErrors))\r\n .subscribe(() => this.show404Page());\r\n }\r\n\r\n show404Page() {\r\n const instance = {\r\n title: {\r\n key: DEFAULT_ERROR_LOCALIZATIONS.defaultError404.title,\r\n defaultValue: DEFAULT_ERROR_MESSAGES.defaultError404.title,\r\n },\r\n status: <ErrorScreenErrorCodes>404,\r\n };\r\n\r\n this.createErrorComponentService.execute(instance);\r\n }\r\n}\r\n","import { inject, Injectable } from '@angular/core';\r\nimport { AuthService, ConfigStateService } from '@abp/ng.core';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { CustomHttpErrorHandlerService } from '../models/common';\r\nimport { CUSTOM_HTTP_ERROR_HANDLER_PRIORITY } from '../constants/default-errors';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class AbpAuthenticationErrorHandler implements CustomHttpErrorHandlerService {\r\n readonly priority = CUSTOM_HTTP_ERROR_HANDLER_PRIORITY.veryHigh;\r\n protected readonly authService = inject(AuthService);\r\n protected readonly configStateService = inject(ConfigStateService);\r\n\r\n canHandle(error: unknown): boolean {\r\n return error instanceof HttpErrorResponse && error.status === 401;\r\n }\r\n\r\n execute() {\r\n this.configStateService.refreshAppState().subscribe(({ currentUser }) => {\r\n if (!currentUser.isAuthenticated) {\r\n this.authService.logout({ noRedirectToLogoutUrl: true });\r\n }\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nexport type ModalDismissMode = 'hard' | 'soft';\r\n\r\nexport interface DismissableModal {\r\n dismiss(mode: ModalDismissMode): void;\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ModalRefService {\r\n modalRefs: DismissableModal[] = [];\r\n\r\n register(modal: DismissableModal) {\r\n this.modalRefs.push(modal);\r\n }\r\n unregister(modal: DismissableModal) {\r\n const index = this.modalRefs.indexOf(modal);\r\n if (index > -1) {\r\n this.modalRefs.splice(index, 1);\r\n }\r\n }\r\n\r\n dismissAll(mode: ModalDismissMode) {\r\n this.modalRefs.forEach(modal => modal.dismiss(mode));\r\n }\r\n}\r\n","import {\r\n Component,\r\n DestroyRef,\r\n OnDestroy,\r\n OnInit,\r\n TemplateRef,\r\n contentChild,\r\n effect,\r\n inject,\r\n input,\r\n model,\r\n output,\r\n viewChild,\r\n} from '@angular/core';\r\nimport { DOCUMENT, NgTemplateOutlet } from '@angular/common';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { SubscriptionService, uuid } from '@abp/ng.core';\r\nimport { NgbModal, NgbModalOptions, NgbModalRef } from '@ng-bootstrap/ng-bootstrap';\r\nimport { fromEvent } from 'rxjs';\r\nimport { debounceTime, filter } from 'rxjs/operators';\r\nimport { Confirmation } from '../../models';\r\nimport { ConfirmationService } from '../../services';\r\nimport { SUPPRESS_UNSAVED_CHANGES_WARNING } from '../../tokens/suppress-unsaved-changes-warning.token';\r\nimport { ButtonComponent } from '../button/button.component';\r\nimport { DismissableModal, ModalDismissMode, ModalRefService } from './modal-ref.service';\r\n\r\nexport type ModalSize = 'sm' | 'md' | 'lg' | 'xl';\r\n\r\n@Component({\r\n selector: 'abp-modal',\r\n templateUrl: './modal.component.html',\r\n styleUrls: ['./modal.component.scss'],\r\n providers: [SubscriptionService],\r\n imports: [NgTemplateOutlet],\r\n})\r\nexport class ModalComponent implements OnInit, OnDestroy, DismissableModal {\r\n protected readonly confirmationService = inject(ConfirmationService);\r\n protected readonly modal = inject(NgbModal);\r\n protected readonly modalRefService = inject(ModalRefService);\r\n protected readonly suppressUnsavedChangesWarningToken = inject(SUPPRESS_UNSAVED_CHANGES_WARNING, {\r\n optional: true,\r\n });\r\n protected readonly destroyRef = inject(DestroyRef);\r\n private document = inject(DOCUMENT);\r\n\r\n visible = model<boolean>(false);\r\n\r\n busy = input(false, {\r\n transform: (value: boolean) => {\r\n if (this.abpSubmit() && this.abpSubmit() instanceof ButtonComponent) {\r\n this.abpSubmit().loading = value;\r\n }\r\n return value;\r\n },\r\n });\r\n\r\n options = input<NgbModalOptions>({ keyboard: true });\r\n\r\n suppressUnsavedChangesWarning = input(this.suppressUnsavedChangesWarningToken);\r\n\r\n modalContent = viewChild<TemplateRef<any>>('modalContent');\r\n\r\n abpHeader = contentChild<TemplateRef<any>>('abpHeader');\r\n\r\n abpBody = contentChild<TemplateRef<any>>('abpBody');\r\n\r\n abpFooter = contentChild<TemplateRef<any>>('abpFooter');\r\n\r\n abpSubmit = contentChild(ButtonComponent, { read: ButtonComponent });\r\n\r\n readonly init = output();\r\n\r\n readonly appear = output();\r\n\r\n readonly disappear = output();\r\n\r\n modalRef!: NgbModalRef;\r\n\r\n isConfirmationOpen = false;\r\n\r\n modalIdentifier = `modal-${uuid()}`;\r\n\r\n get modalWindowRef() {\r\n return this.document.querySelector(`ngb-modal-window.${this.modalIdentifier}`);\r\n }\r\n\r\n get isFormDirty(): boolean {\r\n return Boolean(this.modalWindowRef?.querySelector('.ng-dirty'));\r\n }\r\n\r\n constructor() {\r\n effect(() => {\r\n this.toggle(this.visible());\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.modalRefService.register(this);\r\n }\r\n\r\n dismiss(mode: ModalDismissMode) {\r\n switch (mode) {\r\n case 'hard':\r\n this.visible.set(false);\r\n break;\r\n case 'soft':\r\n this.close();\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n protected toggle(value: boolean) {\r\n this.visible.set(value);\r\n\r\n if (!value) {\r\n this.modalRef?.dismiss();\r\n this.disappear.emit();\r\n return;\r\n }\r\n\r\n setTimeout(() => this.listen(), 0);\r\n this.modalRef = this.modal.open(this.modalContent(), {\r\n size: 'md',\r\n centered: false,\r\n keyboard: false,\r\n scrollable: true,\r\n beforeDismiss: () => {\r\n if (!this.visible()) return true;\r\n\r\n this.close();\r\n return !this.visible();\r\n },\r\n ...this.options(),\r\n windowClass: `${this.options().windowClass || ''} ${this.modalIdentifier}`,\r\n });\r\n\r\n this.appear.emit();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.modalRefService.unregister(this);\r\n this.toggle(false);\r\n }\r\n\r\n close() {\r\n if (this.busy()) return;\r\n\r\n if (this.isFormDirty && !this.suppressUnsavedChangesWarning()) {\r\n if (this.isConfirmationOpen) return;\r\n\r\n this.isConfirmationOpen = true;\r\n this.confirmationService\r\n .warn('AbpUi::AreYouSureYouWantToCancelEditingWarningMessage', 'AbpUi::AreYouSure', {\r\n dismissible: false,\r\n })\r\n .subscribe((status: Confirmation.Status) => {\r\n this.isConfirmationOpen = false;\r\n if (status === Confirmation.Status.confirm) {\r\n this.visible.set(false);\r\n }\r\n });\r\n } else {\r\n this.visible.set(false);\r\n }\r\n }\r\n\r\n listen() {\r\n if (this.modalWindowRef) {\r\n fromEvent<KeyboardEvent>(this.modalWindowRef, 'keyup')\r\n .pipe(\r\n takeUntilDestroyed(this.destroyRef),\r\n debounceTime(150),\r\n filter((key: KeyboardEvent) => key && key.key === 'Escape' && this.options().keyboard),\r\n )\r\n .subscribe(() => this.close());\r\n }\r\n\r\n fromEvent(window, 'beforeunload')\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe(event => {\r\n if (this.isFormDirty && !this.suppressUnsavedChangesWarning()) {\r\n event.preventDefault();\r\n }\r\n });\r\n\r\n this.init.emit();\r\n }\r\n}\r\n","<ng-content></ng-content>\r\n\r\n<ng-template #modalContent let-modal>\r\n @if (abpHeader()) {\r\n <div id=\"abp-modal-header\" class=\"modal-header abp-modal-header\">\r\n <ng-container *ngTemplateOutlet=\"abpHeader()\"></ng-container>\r\n \r\n <button\r\n id=\"abp-modal-close-button\"\r\n type=\"button\"\r\n class=\"btn-sm btn-close\"\r\n aria-label=\"Close\"\r\n (click)=\"modal.dismiss()\"\r\n ></button>\r\n </div>\r\n }\r\n @if (abpBody()) {\r\n <div id=\"abp-modal-body\" class=\"modal-body\">\r\n <ng-container *ngTemplateOutlet=\"abpBody()\"></ng-container>\r\n </div>\r\n }\r\n @if (abpFooter()) {\r\n <div id=\"abp-modal-footer\" class=\"modal-footer\">\r\n <ng-container *ngTemplateOutlet=\"abpFooter()\"></ng-container>\r\n </div>\r\n }\r\n</ng-template>\r\n","import { Directive, HostListener, inject } from '@angular/core';\r\nimport { ModalComponent } from './modal.component';\r\n\r\n@Directive({\r\n selector: '[abpClose]',\r\n})\r\nexport class ModalCloseDirective {\r\n private modal = inject(ModalComponent, { optional: true })!;\r\n\r\n constructor() {\r\n const modal = this.modal;\r\n\r\n if (!modal) {\r\n console.error('Please use abpClose within an abp-modal');\r\n }\r\n }\r\n\r\n @HostListener('click')\r\n onClick() {\r\n this.modal?.close();\r\n }\r\n}\r\n","import { Component, forwardRef, Input } from '@angular/core';\r\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { NgClass } from '@angular/common';\r\nimport { AbstractNgModelComponent } from '@abp/ng.core';\r\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\r\n\r\n/**\r\n * @deprecated use ShowPasswordDirective directive\r\n * https://abp.io/docs/latest/framework/ui/angular/show-password-directive\r\n */\r\n@Component({\r\n selector: 'abp-password',\r\n imports: [NgClass, FormsModule, NgxValidateCoreModule],\r\n templateUrl: `./password.component.html`,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => PasswordComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class PasswordComponent extends AbstractNgModelComponent {\r\n @Input() inputId!: string;\r\n @Input() formControlName!: string;\r\n fieldTextType?: boolean;\r\n\r\n toggleFieldTextType() {\r\n this.fieldTextType = !this.fieldTextType;\r\n }\r\n}\r\n","<div class=\"input-group\" validationTarget>\r\n <input\r\n [type]=\"fieldTextType ? 'text' : 'password'\"\r\n class=\"form-control\"\r\n [id]=\"inputId\"\r\n [(ngModel)]=\"value\"\r\n />\r\n\r\n <button class=\"btn btn-secondary\" type=\"button\" (click)=\"toggleFieldTextType()\">\r\n <i\r\n class=\"fa\"\r\n aria-hidden=\"true\"\r\n [ngClass]=\"{\r\n 'fa-eye-slash': !fieldTextType,\r\n 'fa-eye': fieldTextType\r\n }\"\r\n ></i>\r\n </button>\r\n</div>\r\n","import { Component, HostBinding, Input } from '@angular/core';\r\nimport { NgClass, NgStyle } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'abp-card-body',\r\n template: ` <div [ngClass]=\"cardBodyClass\" [ngStyle]=\"cardBodyStyle\">\r\n <ng-content></ng-content>\r\n </div>`,\r\n imports: [NgClass, NgStyle],\r\n})\r\nexport class CardBodyComponent {\r\n @HostBinding('class') componentClass = 'card-body';\r\n @Input() cardBodyClass: string;\r\n @Input() cardBodyStyle: string;\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { NgClass, NgStyle } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'abp-card',\r\n template: ` <div class=\"card\" [ngClass]=\"cardClass\" [ngStyle]=\"cardStyle\">\r\n <ng-content></ng-content>\r\n </div>`,\r\n imports: [NgClass, NgStyle],\r\n})\r\nexport class CardComponent {\r\n @Input() cardClass: string;\r\n\r\n @Input() cardStyle: string;\r\n}\r\n","import { Component, HostBinding, Input } from '@angular/core';\r\nimport { NgClass, NgStyle } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'abp-card-header',\r\n template: `\r\n <div [ngClass]=\"cardHeaderClass\" [ngStyle]=\"cardHeaderStyle\">\r\n <ng-content></ng-content>\r\n </div>\r\n `,\r\n styles: [],\r\n imports: [NgClass, NgStyle],\r\n})\r\nexport class CardHeaderComponent {\r\n @HostBinding('class') componentClass = 'card-header';\r\n @Input() cardHeaderClass: string;\r\n @Input() cardHeaderStyle: string;\r\n}\r\n","import { Component, HostBinding, Input } from '@angular/core';\r\nimport { NgClass, NgStyle } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'abp-card-footer',\r\n template: `\r\n <div [ngStyle]=\"cardFooterStyle\" [ngClass]=\"cardFooterClass\">\r\n <ng-content></ng-content>\r\n </div>\r\n `,\r\n styles: [],\r\n imports: [NgClass, NgStyle],\r\n})\r\nexport class CardFooterComponent {\r\n @HostBinding('class') componentClass = 'card-footer';\r\n @Input() cardFooterStyle: string;\r\n @Input() cardFooterClass: string;\r\n}\r\n","import { Directive, HostBinding } from '@angular/core';\r\n\r\n@Directive({\r\n selector: `abp-card-title, [abp-card-title], [abpCardTitle]`,\r\n})\r\nexport class CardTitleDirective {\r\n @HostBinding('class') directiveClass = 'card-title';\r\n}\r\n","import { Directive, HostBinding } from '@angular/core';\r\n\r\n@Directive({\r\n selector: `abp-card-subtitle, [abp-card-subtitle], [abpCardSubtitle]`,\r\n})\r\nexport class CardSubtitleDirective {\r\n @HostBinding('class') directiveClass = 'card-subtitle';\r\n}\r\n","import { Directive, HostBinding } from '@angular/core';\r\n\r\n@Directive({\r\n selector: `abp-card-img-top, [abp-card-img-top], [abpCardImgTop]`,\r\n})\r\nexport class CardImgTopDirective {\r\n @HostBinding('class') directiveClass = 'card-img-top';\r\n}\r\n","import { Directive, HostBinding } from '@angular/core';\r\n\r\n@Directive({\r\n selector: `abp-card-header, [abp-card-header], [abpCardHeader]`,\r\n})\r\nexport class CardHeaderDirective {\r\n @HostBinding('class') directiveClass = 'card-header';\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CardBodyComponent } from './card-body.component';\r\nimport { CardComponent } from './card.component';\r\nimport { CardHeaderComponent } from './card-header.component';\r\nimport { CardFooterComponent } from './card-footer.component';\r\nimport { CardTitleDirective } from './card-title.directive';\r\nimport { CardSubtitleDirective } from './card-subtitle.directive';\r\nimport { CardImgTopDirective } from './card-img-top.directive';\r\nimport { CardHeaderDirective } from './card-header.directive';\r\n\r\nexport const CARD_DIRECTIVES = [\r\n CardTitleDirective,\r\n CardSubtitleDirective,\r\n CardImgTopDirective,\r\n CardHeaderDirective,\r\n];\r\n\r\nexport const CARD_COMPONENTS = [\r\n CardComponent,\r\n CardBodyComponent,\r\n CardHeaderComponent,\r\n CardFooterComponent,\r\n];\r\n\r\n@NgModule({\r\n declarations: [],\r\n imports: [...CARD_COMPONENTS, ...CARD_DIRECTIVES],\r\n exports: [...CARD_COMPONENTS, ...CARD_DIRECTIVES],\r\n})\r\nexport class CardModule {}\r\n","import { Component, EventEmitter, forwardRef, Input, Output } from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';\r\nimport { NgClass, NgStyle } from '@angular/common';\r\nimport { AbstractNgModelComponent, LocalizationPipe } from '@abp/ng.core';\r\n\r\n@Component({\r\n selector: 'abp-checkbox',\r\n template: `\r\n <div class=\"mb-3\">\r\n <input\r\n type=\"checkbox\"\r\n [(ngModel)]=\"value\"\r\n [id]=\"checkboxId\"\r\n [readonly]=\"checkboxReadonly\"\r\n [ngClass]=\"checkboxClass\"\r\n [ngStyle]=\"checkboxStyle\"\r\n (blur)=\"checkboxBlur.next()\"\r\n (focus)=\"checkboxFocus.next()\"\r\n />\r\n @if (label) {\r\n <label [ngClass]=\"labelClass\" [for]=\"checkboxId\">\r\n {{ label | abpLocalization }}\r\n </label>\r\n }\r\n </div>\r\n `,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => FormCheckboxComponent),\r\n multi: true,\r\n },\r\n ],\r\n imports: [NgClass, NgStyle, FormsModule, LocalizationPipe],\r\n})\r\nexport class FormCheckboxComponent extends AbstractNgModelComponent {\r\n @Input() label?: string;\r\n @Input() labelClass = 'form-check-label';\r\n @Input() checkboxId!: string;\r\n @Input() checkboxStyle:\r\n | {\r\n [klass: string]: any;\r\n }\r\n | null\r\n | undefined;\r\n @Input() checkboxClass = 'form-check-input';\r\n @Input() checkboxReadonly = false;\r\n @Output() checkboxBlur = new EventEmitter<void>();\r\n @Output() checkboxFocus = new EventEmitter<void>();\r\n}\r\n","import { Component, EventEmitter, forwardRef, Input, Output } from '@angular/core';\r\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { NgClass, NgStyle } from '@angular/common';\r\nimport { AbstractNgModelComponent, LocalizationPipe } from '@abp/ng.core';\r\n\r\n@Component({\r\n selector: 'abp-form-input',\r\n template: `\r\n <div class=\"mb-3\">\r\n @if (label) {\r\n <label [ngClass]=\"labelClass\" [for]=\"inputId\">\r\n {{ label | abpLocalization }}\r\n </label>\r\n }\r\n <input\r\n type=\"text\"\r\n [id]=\"inputId\"\r\n [placeholder]=\"inputPlaceholder\"\r\n [readonly]=\"inputReadonly\"\r\n [ngClass]=\"inputClass\"\r\n [ngStyle]=\"inputStyle\"\r\n (blur)=\"formBlur.next()\"\r\n (focus)=\"formFocus.next()\"\r\n [(ngModel)]=\"value\"\r\n />\r\n </div>\r\n `,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => FormInputComponent),\r\n multi: true,\r\n },\r\n ],\r\n imports: [NgClass, NgStyle, LocalizationPipe, FormsModule],\r\n})\r\nexport class FormInputComponent extends AbstractNgModelComponent {\r\n @Input() inputId!: string;\r\n @Input() inputReadonly = false;\r\n @Input() label = '';\r\n @Input() labelClass = 'form-label';\r\n @Input() inputPlaceholder = '';\r\n @Input() inputStyle:\r\n | {\r\n [klass: string]: any;\r\n }\r\n | null\r\n | undefined;\r\n @Input() inputClass = 'form-control';\r\n @Output() formBlur = new EventEmitter<void>();\r\n @Output() formFocus = new EventEmitter<void>();\r\n}\r\n","import { Component, inject } from '@angular/core';\r\nimport { InternetConnectionService, LocalizationPipe } from '@abp/ng.core';\r\nimport { NgbTooltip } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Component({\r\n selector: 'abp-internet-status',\r\n imports: [LocalizationPipe, NgbTooltip],\r\n template: `\r\n @if (!isOnline()) {\r\n <div class=\"status-icon\">\r\n <i\r\n ngbTooltip=\"{{ 'AbpUi::InternetConnectionInfo' | abpLocalization }}\"\r\n container=\"body\"\r\n placement=\"left-top\"\r\n class=\"fa fa-wifi text-blinking blink\"\r\n >\r\n </i>\r\n </div>\r\n }\r\n `,\r\n styles: [\r\n `\r\n .blink {\r\n animation: blinker 0.9s cubic-bezier(0.5, 0, 1, 1) infinite alternate;\r\n }\r\n @keyframes blinker {\r\n 0% {\r\n color: #c1c1c1;\r\n }\r\n 70% {\r\n color: #fa2379;\r\n }\r\n 100% {\r\n color: #fa2379;\r\n }\r\n }\r\n\r\n .text-blinking {\r\n font-size: 30px;\r\n }\r\n\r\n .status-icon {\r\n position: fixed;\r\n z-index: 999999;\r\n top: 50%;\r\n left: 50%;\r\n width: 30px;\r\n text-align: center;\r\n margin-left: -15px;\r\n margin-top: -15px;\r\n translate: transform(-50%, -50%);\r\n }\r\n `,\r\n ],\r\n})\r\nexport class InternetConnectionStatusComponent {\r\n internetConnectionService = inject(InternetConnectionService);\r\n isOnline = this.internetConnectionService.networkStatus;\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'abp-spinner',\r\n template: `\r\n <div class=\"d-flex justify-content-center align-items-center border-top\" style=\"height: 62px\">\r\n <div class=\"spinner-border\" role=\"status\" id=\"loading\">\r\n <span class=\"visually-hidden\">Loading...</span>\r\n </div>\r\n </div>\r\n `,\r\n})\r\nexport class SpinnerComponent {}\r\n","import { \r\n AfterViewInit, \r\n ChangeDetectorRef, \r\n Directive, \r\n ElementRef, \r\n HostBinding, \r\n Input, \r\n inject \r\n} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[abpEllipsis]',\r\n})\r\nexport class EllipsisDirective implements AfterViewInit {\r\n private cdRef = inject(ChangeDetectorRef);\r\n private elRef = inject(ElementRef);\r\n\r\n @Input('abpEllipsis')\r\n width?: string;\r\n\r\n @HostBinding('title')\r\n @Input()\r\n title?: string;\r\n\r\n @Input('abpEllipsisEnabled')\r\n enabled = true;\r\n\r\n @HostBinding('class.abp-ellipsis-inline')\r\n get inlineClass() {\r\n return this.enabled && this.width;\r\n }\r\n\r\n @HostBinding('class.abp-ellipsis')\r\n get class() {\r\n return this.enabled && !this.width;\r\n }\r\n\r\n @HostBinding('style.max-width')\r\n get maxWidth() {\r\n return this.enabled && this.width ? this.width || '170px' : undefined;\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.title = this.title || (this.elRef.nativeElement as HTMLElement).innerText;\r\n this.cdRef.detectChanges();\r\n }\r\n}\r\n","import { \r\n ComponentFactoryResolver, \r\n ComponentRef, \r\n Directive, \r\n ElementRef, \r\n EmbeddedViewRef, \r\n HostBinding, \r\n Injector, \r\n Input, \r\n OnDestroy, \r\n OnInit, \r\n Renderer2, \r\n inject \r\n} from '@angular/core';\r\nimport { Subscription, timer } from 'rxjs';\r\nimport { take } from 'rxjs/operators';\r\nimport { LoadingComponent } from '../components';\r\n\r\n@Directive({\r\n selector: '[abpLoading]',\r\n})\r\nexport class LoadingDirective implements OnInit, OnDestroy {\r\n private elRef = inject<ElementRef<HTMLElement>>(ElementRef);\r\n private cdRes = inject(ComponentFactoryResolver);\r\n private injector = inject(Injector);\r\n private renderer = inject(Renderer2);\r\n\r\n private _loading!: boolean;\r\n\r\n @HostBinding('style.position')\r\n position = 'relative';\r\n\r\n @Input('abpLoading')\r\n get loading(): boolean {\r\n return this._loading;\r\n }\r\n\r\n set loading(newValue: boolean) {\r\n setTimeout(() => {\r\n if (!newValue && this.timerSubscription) {\r\n this.timerSubscription.unsubscribe();\r\n this.timerSubscription = null;\r\n this._loading = newValue;\r\n\r\n if (this.rootNode) {\r\n this.renderer.removeChild(this.rootNode.parentElement, this.rootNode);\r\n this.rootNode = null;\r\n }\r\n return;\r\n }\r\n\r\n this.timerSubscription = timer(this.delay)\r\n .pipe(take(1))\r\n .subscribe(() => {\r\n if (!this.componentRef) {\r\n this.componentRef = this.cdRes\r\n .resolveComponentFactory(LoadingComponent)\r\n .create(this.injector);\r\n }\r\n\r\n if (newValue && !this.rootNode) {\r\n this.rootNode = (this.componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0];\r\n this.targetElement?.appendChild(this.rootNode as HTMLDivElement);\r\n } else if (this.rootNode) {\r\n this.renderer.removeChild(this.rootNode.parentElement, this.rootNode);\r\n this.rootNode = null;\r\n }\r\n\r\n this._loading = newValue;\r\n this.timerSubscription = null;\r\n });\r\n }, 0);\r\n }\r\n\r\n @Input('abpLoadingTargetElement')\r\n targetElement: HTMLElement | undefined;\r\n\r\n @Input('abpLoadingDelay')\r\n delay = 0;\r\n\r\n componentRef!: ComponentRef<LoadingComponent>;\r\n rootNode: HTMLDivElement | null = null;\r\n timerSubscription: Subscription | null = null;\r\n\r\n ngOnInit() {\r\n if (!this.targetElement) {\r\n const { offsetHeight, offsetWidth } = this.elRef.nativeElement;\r\n if (!offsetHeight && !offsetWidth && this.elRef.nativeElement.children?.length) {\r\n this.targetElement = this.elRef.nativeElement.children[0] as HTMLElement;\r\n } else {\r\n this.targetElement = this.elRef.nativeElement;\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.timerSubscription) {\r\n this.timerSubscription.unsubscribe();\r\n }\r\n }\r\n}\r\n","import { DOCUMENT, isPlatformBrowser } from '@angular/common';\r\nimport {\r\n AfterViewInit,\r\n Directive,\r\n HostBinding,\r\n Input,\r\n OnDestroy,\r\n inject,\r\n PLATFORM_ID,\r\n} from '@angular/core';\r\nimport { ColumnMode, DatatableComponent } from '@swimlane/ngx-datatable';\r\nimport { fromEvent, Subscription } from 'rxjs';\r\nimport { debounceTime } from 'rxjs/operators';\r\n\r\n@Directive({\r\n // eslint-disable-next-line @angular-eslint/directive-selector\r\n selector: 'ngx-datatable[default]',\r\n exportAs: 'ngxDatatableDefault',\r\n})\r\nexport class NgxDatatableDefaultDirective implements AfterViewInit, OnDestroy {\r\n private table = inject(DatatableComponent);\r\n private document = inject<MockDocument>(DOCUMENT);\r\n private platformId = inject(PLATFORM_ID);\r\n\r\n private subscription = new Subscription();\r\n private resizeDiff = 0;\r\n\r\n @Input() class = 'material bordered';\r\n\r\n @HostBinding('class')\r\n get classes(): string {\r\n return `ngx-datatable ${this.class}`;\r\n }\r\n\r\n constructor() {\r\n this.table.columnMode = ColumnMode.force;\r\n this.table.footerHeight = 50;\r\n this.table.headerHeight = 50;\r\n this.table.rowHeight = 'auto';\r\n this.table.scrollbarH = true;\r\n this.table.virtualization = false;\r\n }\r\n\r\n private fixHorizontalGap(scroller: any) {\r\n const { body, documentElement } = this.document;\r\n if (isPlatformBrowser(this.platformId)) {\r\n if (documentElement.scrollHeight !== documentElement.clientHeight) {\r\n if (this.resizeDiff === 0) {\r\n this.resizeDiff = window.innerWidth - body.offsetWidth;\r\n scroller.scrollWidth -= this.resizeDiff;\r\n }\r\n } else {\r\n scroller.scrollWidth += this.resizeDiff;\r\n this.resizeDiff = 0;\r\n }\r\n }\r\n }\r\n\r\n private fixStyleOnWindowResize() {\r\n if (isPlatformBrowser(this.platformId)) {\r\n const subscription = fromEvent(window, 'resize')\r\n .pipe(debounceTime(500))\r\n .subscribe(() => {\r\n const { scroller } = this.table.bodyComponent;\r\n\r\n if (!scroller) return;\r\n\r\n this.fixHorizontalGap(scroller);\r\n });\r\n\r\n this.subscription.add(subscription);\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.fixStyleOnWindowResize();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscription.unsubscribe();\r\n }\r\n}\r\n\r\n// fix: https://github.com/angular/angular/issues/20351\r\ninterface MockDocument {\r\n body: MockBody;\r\n documentElement: MockDocumentElement;\r\n}\r\n\r\ninterface MockBody {\r\n offsetWidth: number;\r\n}\r\n\r\ninterface MockDocumentElement {\r\n clientHeight: number;\r\n scrollHeight: number;\r\n}\r\n","import {\r\n ChangeDetectorRef,\r\n Directive,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n DoCheck,\r\n SimpleChanges,\r\n inject,\r\n DestroyRef,\r\n ViewContainerRef,\r\n Renderer2,\r\n} from '@angular/core';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { distinctUntilChanged } from 'rxjs';\r\nimport { DatatableComponent } from '@swimlane/ngx-datatable';\r\nimport { ListService, LocalizationService } from '@abp/ng.core';\r\nimport {\r\n defaultNgxDatatableMessages,\r\n NGX_DATATABLE_MESSAGES,\r\n} from '../tokens/ngx-datatable-messages.token';\r\nimport { SpinnerComponent } from '../components';\r\n\r\n@Directive({\r\n // eslint-disable-next-line @angular-eslint/directive-selector\r\n selector: 'ngx-datatable[list]',\r\n exportAs: 'ngxDatatableList',\r\n})\r\nexport class NgxDatatableListDirective implements OnChanges, OnInit, DoCheck {\r\n protected readonly table = inject(DatatableComponent);\r\n protected readonly cdRef = inject(ChangeDetectorRef);\r\n protected readonly destroyRef = inject(DestroyRef);\r\n protected readonly localizationService = inject(LocalizationService);\r\n protected readonly ngxDatatableMessages = inject(NGX_DATATABLE_MESSAGES, { optional: true });\r\n protected readonly viewContainerRef = inject(ViewContainerRef);\r\n protected readonly renderer = inject(Renderer2);\r\n\r\n @Input() list!: ListService;\r\n\r\n constructor() {\r\n this.setInitialValues();\r\n }\r\n\r\n ngDoCheck(): void {\r\n this.refreshPageIfDataExist();\r\n }\r\n\r\n ngOnInit() {\r\n this.subscribeToPage();\r\n this.subscribeToSort();\r\n this.subscribeToRequestStatus();\r\n }\r\n\r\n ngOnChanges({ list }: SimpleChanges) {\r\n this.subscribeToQuery();\r\n\r\n if (!list.firstChange) return;\r\n\r\n const { maxResultCount, page } = list.currentValue;\r\n this.table.limit = maxResultCount;\r\n this.table.offset = page;\r\n }\r\n\r\n protected subscribeToRequestStatus() {\r\n const requestStatus$ = this.list.requestStatus$.pipe(distinctUntilChanged());\r\n const { emptyMessage, errorMessage } = this.ngxDatatableMessages || defaultNgxDatatableMessages;\r\n\r\n requestStatus$.subscribe(status => {\r\n this.table.loadingIndicator = false;\r\n\r\n if (status === 'idle') {\r\n return;\r\n }\r\n\r\n if (status === 'loading') {\r\n this.table.messages.emptyMessage = undefined;\r\n this.table.loadingIndicator = true;\r\n this.cdRef.detectChanges();\r\n this.updateLoadingIndicator();\r\n return;\r\n }\r\n\r\n if (status === 'error') {\r\n this.table.messages.emptyMessage = this.localizationService.instant(errorMessage);\r\n this.viewContainerRef.clear();\r\n this.cdRef.markForCheck();\r\n }\r\n\r\n if (status === 'success') {\r\n this.table.messages.emptyMessage = this.localizationService.instant(emptyMessage);\r\n this.viewContainerRef.clear();\r\n }\r\n });\r\n }\r\n\r\n protected updateLoadingIndicator() {\r\n const body = this.table.element.querySelector('datatable-body');\r\n const progress = this.table.element.querySelector('datatable-progress');\r\n\r\n if (!body) {\r\n return;\r\n }\r\n\r\n if (progress) {\r\n this.replaceLoadingIndicator(body, progress);\r\n }\r\n }\r\n\r\n protected replaceLoadingIndicator(parent: Element, placeholder: Element) {\r\n this.viewContainerRef.clear();\r\n\r\n const spinnerRef = this.viewContainerRef.createComponent(SpinnerComponent);\r\n const spinnerElement = spinnerRef.location.nativeElement;\r\n\r\n this.renderer.insertBefore(parent, spinnerElement, parent.firstChild);\r\n \r\n const placeholderParent = placeholder?.parentNode as Element | null;\r\n if (placeholderParent) {\r\n this.renderer.removeChild(placeholderParent, placeholder);\r\n }\r\n }\r\n\r\n protected setInitialValues() {\r\n this.table.externalPaging = true;\r\n this.table.externalSorting = true;\r\n\r\n const { selectedMessage, totalMessage } =\r\n this.ngxDatatableMessages || defaultNgxDatatableMessages;\r\n\r\n this.table.messages = {\r\n totalMessage: this.localizationService.instant(totalMessage),\r\n selectedMessage: this.localizationService.instant(selectedMessage),\r\n };\r\n }\r\n\r\n protected subscribeToSort() {\r\n this.table.sort\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe(({ sorts: [{ prop, dir }] }) => {\r\n if (prop === this.list.sortKey && this.list.sortOrder === 'desc') {\r\n this.list.sortKey = '';\r\n this.list.sortOrder = '';\r\n this.table.sorts = [];\r\n this.cdRef.detectChanges();\r\n } else {\r\n this.list.sortKey = prop;\r\n this.list.sortOrder = dir;\r\n }\r\n });\r\n }\r\n\r\n protected subscribeToPage() {\r\n this.table.page.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(({ offset }) => {\r\n this.setTablePage(offset);\r\n });\r\n }\r\n\r\n protected subscribeToQuery() {\r\n this.list.query$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\r\n const offset = this.list.page;\r\n if (this.table.offset !== offset) this.table.offset = offset;\r\n });\r\n }\r\n\r\n protected setTablePage(pageNum: number) {\r\n this.list.page = pageNum;\r\n this.table.offset = pageNum;\r\n }\r\n\r\n protected refreshPageIfDataExist() {\r\n if (this.table.rows?.length < 1 && this.table.count > 0) {\r\n let maxPage = Math.floor(Number(this.table.count / this.list.maxResultCount));\r\n\r\n if (this.table.count < this.list.maxResultCount) {\r\n this.setTablePage(0);\r\n return;\r\n }\r\n\r\n if (this.table.count % this.list.maxResultCount === 0) {\r\n maxPage -= 1;\r\n }\r\n\r\n if (this.list.page < maxPage) {\r\n this.setTablePage(this.list.page);\r\n return;\r\n }\r\n\r\n this.setTablePage(maxPage);\r\n }\r\n }\r\n}","import { OnInit, Directive, OnDestroy, Input, ViewContainerRef, TemplateRef, inject } from '@angular/core';\r\nimport { EMPTY, from, Observable, of, Subscription } from 'rxjs';\r\n\r\n@Directive({\r\n selector: '[abpVisible]',\r\n})\r\nexport class AbpVisibleDirective implements OnDestroy, OnInit {\r\n private viewContainerRef = inject(ViewContainerRef);\r\n private templateRef = inject<TemplateRef<unknown>>(TemplateRef);\r\n\r\n conditionSubscription: Subscription | undefined;\r\n isVisible: boolean | undefined;\r\n\r\n @Input() set abpVisible(\r\n value: boolean | Promise<boolean> | Observable<boolean> | undefined | null,\r\n ) {\r\n this.condition$ = checkType(value);\r\n this.subscribeToCondition();\r\n }\r\n\r\n private condition$: Observable<boolean> = of(false);\r\n ngOnInit(): void {\r\n this.updateVisibility();\r\n }\r\n ngOnDestroy(): void {\r\n this.conditionSubscription?.unsubscribe();\r\n }\r\n\r\n private subscribeToCondition() {\r\n this.conditionSubscription = this.condition$.subscribe(value => {\r\n this.isVisible = value;\r\n this.updateVisibility();\r\n });\r\n }\r\n private updateVisibility() {\r\n this.viewContainerRef.clear();\r\n // it should be false not falsy\r\n if (this.isVisible === false) {\r\n return;\r\n }\r\n this.viewContainerRef.createEmbeddedView(this.templateRef);\r\n }\r\n}\r\n\r\nfunction checkType(value: boolean | Promise<boolean> | Observable<boolean> | undefined | null) {\r\n if (value instanceof Promise) {\r\n return from(value);\r\n } else if (value instanceof Observable) {\r\n return value;\r\n } else if (typeof value === 'boolean') {\r\n return of(value);\r\n } else if (value === undefined || value === null) {\r\n return of(true);\r\n } else {\r\n return EMPTY;\r\n }\r\n}\r\n","import { Directive, Input, OnChanges, SimpleChanges, inject } from '@angular/core';\r\nimport { NgControl } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[abpDisabled]',\r\n})\r\nexport class DisabledDirective implements OnChanges {\r\n private ngControl = inject(NgControl, { host: true });\r\n\r\n @Input()\r\n abpDisabled = false;\r\n\r\n // Related issue: https://github.com/angular/angular/issues/35330\r\n ngOnChanges({ abpDisabled }: SimpleChanges) {\r\n if (this.ngControl.control && abpDisabled) {\r\n this.ngControl.control[abpDisabled.currentValue ? 'disable' : 'enable']();\r\n }\r\n }\r\n}\r\n","export enum eFormComponets {\r\n FormInputComponent = 'FormInputComponent',\r\n FormCheckboxComponent = 'FormCheckboxComponent',\r\n}\r\n","import { getLocaleDirection, LocalizationService } from '@abp/ng.core';\r\nimport { Injectable, Injector, inject } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { LocaleDirection } from '../models/common';\r\nimport { DOCUMENT } from '@angular/common';\r\n\r\n@Injectable()\r\nexport class DocumentDirHandlerService {\r\n protected injector = inject(Injector);\r\n\r\n private dir = new BehaviorSubject<LocaleDirection>('ltr');\r\n dir$ = this.dir.asObservable();\r\n constructor() {\r\n this.listenToLanguageChanges();\r\n }\r\n\r\n private listenToLanguageChanges() {\r\n const l10n = this.injector.get(LocalizationService);\r\n // will always listen, no need to unsubscribe\r\n l10n.currentLang$.pipe(map(locale => getLocaleDirection(locale))).subscribe(dir => {\r\n this.dir.next(dir);\r\n this.setBodyDir(dir);\r\n });\r\n }\r\n\r\n private setBodyDir(dir: LocaleDirection) {\r\n this.injector.get(DOCUMENT).body.dir = dir;\r\n this.injector.get(DOCUMENT).dir = dir;\r\n }\r\n}\r\n","import { inject, Injectable, Injector } from '@angular/core';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { Observable, of } from 'rxjs';\r\nimport { filter, switchMap } from 'rxjs/operators';\r\n\r\nimport { HttpErrorReporterService } from '@abp/ng.core';\r\n\r\nimport { CustomHttpErrorHandlerService } from '../models/common';\r\nimport { Confirmation } from '../models/confirmation';\r\n\r\nimport { CUSTOM_ERROR_HANDLERS, HTTP_ERROR_HANDLER } from '../tokens/http-error.token';\r\nimport { HTTP_ERROR_CONFIG } from '../tokens/http-error.token';\r\nimport { DEFAULT_ERROR_LOCALIZATIONS, DEFAULT_ERROR_MESSAGES } from '../constants/default-errors';\r\n\r\nimport { ConfirmationService } from '../services/confirmation.service';\r\nimport { RouterErrorHandlerService } from '../services/router-error-handler.service';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ErrorHandler {\r\n protected injector = inject(Injector);\r\n\r\n protected readonly httpErrorReporter = inject(HttpErrorReporterService);\r\n protected readonly confirmationService = inject(ConfirmationService);\r\n protected readonly routerErrorHandlerService = inject(RouterErrorHandlerService);\r\n protected readonly httpErrorConfig = inject(HTTP_ERROR_CONFIG);\r\n protected readonly customErrorHandlers = inject(CUSTOM_ERROR_HANDLERS);\r\n protected readonly httpErrorHandler = inject(HTTP_ERROR_HANDLER, { optional: true });\r\n\r\n constructor() {\r\n this.listenToRestError();\r\n this.listenToRouterError();\r\n }\r\n\r\n protected listenToRouterError() {\r\n this.routerErrorHandlerService.listen();\r\n }\r\n\r\n protected listenToRestError() {\r\n this.httpErrorReporter.reporter$\r\n .pipe(filter(this.filterRestErrors), switchMap(this.executeErrorHandler))\r\n .subscribe(err => this.handleError(err));\r\n }\r\n\r\n protected executeErrorHandler = (error: HttpErrorResponse) => {\r\n if (this.httpErrorHandler) {\r\n return this.httpErrorHandler(this.injector, error);\r\n }\r\n\r\n return of(error);\r\n };\r\n\r\n protected sortHttpErrorHandlers(\r\n a: CustomHttpErrorHandlerService,\r\n b: CustomHttpErrorHandlerService,\r\n ) {\r\n return (b.priority || 0) - (a.priority || 0);\r\n }\r\n\r\n protected handleError(err: unknown) {\r\n if (this.customErrorHandlers && this.customErrorHandlers.length) {\r\n const errorHandlerService = this.customErrorHandlers\r\n .sort(this.sortHttpErrorHandlers)\r\n .find(service => service.canHandle(err));\r\n\r\n if (errorHandlerService) {\r\n errorHandlerService.execute();\r\n return;\r\n }\r\n }\r\n\r\n this.showError().subscribe();\r\n }\r\n\r\n protected showError(): Observable<Confirmation.Status> {\r\n const title = {\r\n key: DEFAULT_ERROR_LOCALIZATIONS.defaultError.title,\r\n defaultValue: DEFAULT_ERROR_MESSAGES.defaultError.title,\r\n };\r\n const message = {\r\n key: DEFAULT_ERROR_LOCALIZATIONS.defaultError.details,\r\n defaultValue: DEFAULT_ERROR_MESSAGES.defaultError.details,\r\n };\r\n return this.confirmationService.error(message, title, {\r\n hideCancelBtn: true,\r\n yesText: 'AbpAccount::Close',\r\n });\r\n }\r\n\r\n protected filterRestErrors = ({ status }: HttpErrorResponse): boolean => {\r\n if (typeof status !== 'number') return false;\r\n\r\n if (!this.httpErrorConfig?.skipHandledErrorCodes) {\r\n return true;\r\n }\r\n\r\n return this.httpErrorConfig.skipHandledErrorCodes?.findIndex(code => code === status) < 0;\r\n };\r\n}\r\n","import { inject, provideAppInitializer } from '@angular/core';\r\nimport { NgbDatepickerI18n, NgbInputDatepickerConfig, NgbTypeaheadConfig, NgbTimepickerI18n } from '@ng-bootstrap/ng-bootstrap';\r\nimport { DatepickerI18nAdapter, TimepickerI18nAdapter } from '../adapters';\r\n\r\nexport const NG_BOOTSTRAP_CONFIG_PROVIDERS = [\r\n {\r\n provide: NgbDatepickerI18n,\r\n useClass: DatepickerI18nAdapter,\r\n },\r\n {\r\n provide: NgbTimepickerI18n,\r\n useClass: TimepickerI18nAdapter,\r\n },\r\n provideAppInitializer(() => {\r\n configureNgBootstrap();\r\n }),\r\n];\r\n\r\nexport function configureNgBootstrap() {\r\n const datepicker: NgbInputDatepickerConfig = inject(NgbInputDatepickerConfig);\r\n const typeahead: NgbTypeaheadConfig = inject(NgbTypeaheadConfig);\r\n datepicker.container = 'body';\r\n typeahead.container = 'body';\r\n}\r\n","import { RoutesService } from '@abp/ng.core';\r\nimport { inject, provideAppInitializer } from '@angular/core';\r\nimport { eThemeSharedRouteNames } from '../enums/route-names';\r\n\r\nexport const THEME_SHARED_ROUTE_PROVIDERS = [\r\n provideAppInitializer(() => {\r\n configureRoutes();\r\n }),\r\n];\r\n\r\nexport function configureRoutes() {\r\n const routesService = inject(RoutesService);\r\n routesService.add([\r\n {\r\n path: undefined,\r\n name: eThemeSharedRouteNames.Administration,\r\n iconClass: 'fa fa-wrench',\r\n order: 100,\r\n },\r\n ]);\r\n}\r\n","import { TENANT_NOT_FOUND_BY_NAME } from '@abp/ng.core';\r\nimport { inject, Provider } from '@angular/core';\r\nimport { ConfirmationService } from '../services';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { DOCUMENT } from '@angular/common';\r\n\r\nexport const tenantNotFoundProvider: Provider = {\r\n provide: TENANT_NOT_FOUND_BY_NAME,\r\n useFactory: function () {\r\n const confirm = inject(ConfirmationService);\r\n const document = inject(DOCUMENT);\r\n return (response: HttpErrorResponse) => {\r\n const { error } = response.error;\r\n // hide loading donut\r\n const appRoot = document.querySelector('app-root div.donut');\r\n if (appRoot) {\r\n appRoot.remove();\r\n }\r\n confirm.error(error.details, error.message, { hideCancelBtn: true, hideYesBtn: true });\r\n };\r\n },\r\n};\r\n","import { Provider } from '@angular/core';\r\nimport { CUSTOM_ERROR_HANDLERS } from '../tokens';\r\nimport {\r\n TenantResolveErrorHandlerService,\r\n AbpFormatErrorHandlerService,\r\n StatusCodeErrorHandlerService,\r\n UnknownStatusCodeErrorHandlerService,\r\n AbpAuthenticationErrorHandler,\r\n} from '../services';\r\n\r\nexport const DEFAULT_HANDLERS_PROVIDERS: Provider[] = [\r\n {\r\n provide: CUSTOM_ERROR_HANDLERS,\r\n multi: true,\r\n useExisting: TenantResolveErrorHandlerService,\r\n },\r\n {\r\n provide: CUSTOM_ERROR_HANDLERS,\r\n multi: true,\r\n useExisting: AbpFormatErrorHandlerService,\r\n },\r\n {\r\n provide: CUSTOM_ERROR_HANDLERS,\r\n multi: true,\r\n useExisting: StatusCodeErrorHandlerService,\r\n },\r\n {\r\n provide: CUSTOM_ERROR_HANDLERS,\r\n multi: true,\r\n useExisting: UnknownStatusCodeErrorHandlerService,\r\n },\r\n {\r\n provide: CUSTOM_ERROR_HANDLERS,\r\n multi: true,\r\n useExisting: AbpAuthenticationErrorHandler,\r\n },\r\n];\r\n","export const DEFAULT_VALIDATION_BLUEPRINTS = {\r\n creditCard: 'AbpValidation::ThisFieldIsNotAValidCreditCardNumber.',\r\n email: 'AbpValidation::ThisFieldIsNotAValidEmailAddress.',\r\n invalid: 'AbpValidation::ThisFieldIsNotValid.',\r\n max: 'AbpValidation::ThisFieldMustBeLessOrEqual{0}[{{ max }}]',\r\n maxlength:\r\n 'AbpValidation::ThisFieldMustBeAStringOrArrayTypeWithAMaximumLengthOf{0}[{{ requiredLength }}]',\r\n min: 'AbpValidation::ThisFieldMustBeGreaterThanOrEqual{0}[{{ min }}]',\r\n minlength:\r\n 'AbpValidation::ThisFieldMustBeAStringOrArrayTypeWithAMinimumLengthOf{0}[{{ requiredLength }}]',\r\n ngbDate: 'AbpValidation::ThisFieldIsNotValid.',\r\n passwordMismatch: 'AbpIdentity::Volo.Abp.Identity:PasswordConfirmationFailed',\r\n range: 'AbpValidation::ThisFieldMustBeBetween{0}And{1}[{{ min }},{{ max }}]',\r\n required: 'AbpValidation::ThisFieldIsRequired.',\r\n url: 'AbpValidation::ThisFieldIsNotAValidFullyQualifiedHttpHttpsOrFtpUrl',\r\n passwordRequiresLower: 'AbpIdentity::Volo.Abp.Identity:PasswordRequiresLower',\r\n passwordRequiresUpper: 'AbpIdentity::Volo.Abp.Identity:PasswordRequiresUpper',\r\n passwordRequiresDigit: 'AbpIdentity::Volo.Abp.Identity:PasswordRequiresDigit',\r\n passwordRequiresNonAlphanumeric: 'AbpIdentity::Volo.Abp.Identity:PasswordRequiresNonAlphanumeric',\r\n usernamePattern: 'AbpIdentity::Volo.Abp.Identity:InvalidUserName[{{ actualValue }}]',\r\n customMessage: '{{ customMessage }}'\r\n};","export default '';\r\n","import { ApplicationLocalizationConfigurationDto, ConfigStateService } from '@abp/ng.core';\r\nimport { formatDate } from '@angular/common';\r\nimport { Injectable, LOCALE_ID, inject } from '@angular/core';\r\nimport { NgbDateParserFormatter, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\r\n\r\nfunction isNumber(value: any): boolean {\r\n return !isNaN(toInteger(value));\r\n}\r\n\r\nfunction toInteger(value: any): number {\r\n return parseInt(`${value}`, 10);\r\n}\r\n\r\n@Injectable()\r\nexport class DateParserFormatter extends NgbDateParserFormatter {\r\n private configState = inject(ConfigStateService);\r\n private locale = inject(LOCALE_ID);\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n\r\n parse(value: string): NgbDateStruct | null {\r\n if (value) {\r\n const dateParts = value.trim().split('-');\r\n // TODO: CHANGED\r\n if (dateParts.length === 1 && isNumber(dateParts[0])) {\r\n return { year: toInteger(dateParts[0]), month: -1, day: -1 };\r\n } else if (dateParts.length === 2 && isNumber(dateParts[0]) && isNumber(dateParts[1])) {\r\n return { year: toInteger(dateParts[0]), month: toInteger(dateParts[1]), day: -1 };\r\n } else if (\r\n dateParts.length === 3 &&\r\n isNumber(dateParts[0]) &&\r\n isNumber(dateParts[1]) &&\r\n isNumber(dateParts[2])\r\n ) {\r\n return {\r\n year: toInteger(dateParts[0]),\r\n month: toInteger(dateParts[1]),\r\n day: toInteger(dateParts[2]),\r\n };\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n format(date: NgbDateStruct): string {\r\n if (!date) return '';\r\n\r\n const localization: ApplicationLocalizationConfigurationDto =\r\n this.configState.getOne('localization');\r\n\r\n const dateFormat =\r\n localization.currentCulture?.dateTimeFormat?.shortDatePattern || 'yyyy-MM-dd';\r\n\r\n return formatDate(new Date(date.year, date.month - 1, date.day), dateFormat, this.locale);\r\n }\r\n}\r\n","import { ABP, ConfigStateService } from '@abp/ng.core';\r\nimport { Injector } from '@angular/core';\r\nimport { AbstractControl, ValidatorFn, Validators } from '@angular/forms';\r\nimport { normalizeDiacritics, PasswordRules } from '@ngx-validate/core';\r\nimport { PasswordRule } from '../models/validation';\r\n\r\nconst { minLength, maxLength } = Validators;\r\n\r\nexport function getPasswordValidators(injector: Injector): ValidatorFn[] {\r\n const getRule = getRuleFn(injector);\r\n\r\n const passwordRulesArr = [] as PasswordRules;\r\n let requiredLength = 1;\r\n\r\n if (getRule('RequireDigit') === 'true') {\r\n passwordRulesArr.push('number');\r\n }\r\n\r\n if (getRule('RequireLowercase') === 'true') {\r\n passwordRulesArr.push('small');\r\n }\r\n\r\n if (getRule('RequireUppercase') === 'true') {\r\n passwordRulesArr.push('capital');\r\n }\r\n\r\n if (getRule('RequireNonAlphanumeric') === 'true') {\r\n passwordRulesArr.push('special');\r\n }\r\n\r\n if (Number.isInteger(+getRule('RequiredLength'))) {\r\n requiredLength = +getRule('RequiredLength');\r\n }\r\n\r\n const passwordValidators = passwordRulesArr.map(rule => validatePassword(rule));\r\n return [...passwordValidators, minLength(requiredLength), maxLength(128)];\r\n}\r\n\r\nfunction getRuleFn(injector: Injector) {\r\n const configState = injector.get(ConfigStateService);\r\n\r\n return (key: string) => {\r\n const passwordRules: ABP.Dictionary<string> = configState.getSettings('Identity.Password');\r\n\r\n return (passwordRules[`Abp.Identity.Password.${key}`] || '').toLowerCase();\r\n };\r\n}\r\nconst errorMessageMap = {\r\n small: 'passwordRequiresLower',\r\n capital: 'passwordRequiresUpper',\r\n number: 'passwordRequiresDigit',\r\n special: 'passwordRequiresNonAlphanumeric',\r\n};\r\n\r\nexport function validatePassword(shouldContain: PasswordRule): ValidatorFn {\r\n return (control: AbstractControl) => {\r\n if (!control.value) return null;\r\n\r\n const value = normalizeDiacritics(control.value);\r\n\r\n const regexMap = {\r\n small: /.*[a-z].*/,\r\n capital: /.*[A-Z].*/,\r\n number: /.*[0-9].*/,\r\n special: /.*[^0-9a-zA-Z].*/,\r\n };\r\n const regex = regexMap[shouldContain];\r\n\r\n const isValid = regex.test(value);\r\n\r\n if (isValid) {\r\n return null;\r\n }\r\n\r\n const error = errorMessageMap[shouldContain];\r\n\r\n return {\r\n [error]: true,\r\n };\r\n };\r\n}\r\n","import { Provider, makeEnvironmentProviders, inject, provideAppInitializer } from '@angular/core';\r\nimport { NgbDateParserFormatter } from '@ng-bootstrap/ng-bootstrap';\r\nimport {\r\n VALIDATION_BLUEPRINTS,\r\n VALIDATION_MAP_ERRORS_FN,\r\n defaultMapErrorsFn,\r\n VALIDATION_VALIDATE_ON_SUBMIT,\r\n Validation,\r\n} from '@ngx-validate/core';\r\nimport { DEFAULT_VALIDATION_BLUEPRINTS } from '../constants';\r\nimport { DocumentDirHandlerService, ErrorHandler } from '../handlers';\r\nimport { HttpErrorConfig } from '../models';\r\nimport {\r\n THEME_SHARED_APPEND_CONTENT,\r\n HTTP_ERROR_CONFIG,\r\n CONFIRMATION_ICONS,\r\n ConfirmationIcons,\r\n DEFAULT_CONFIRMATION_ICONS,\r\n} from '../tokens';\r\nimport { DateParserFormatter } from '../utils';\r\nimport {\r\n DEFAULT_HANDLERS_PROVIDERS,\r\n NG_BOOTSTRAP_CONFIG_PROVIDERS,\r\n THEME_SHARED_ROUTE_PROVIDERS,\r\n tenantNotFoundProvider,\r\n} from './';\r\n\r\nexport enum ThemeSharedFeatureKind {\r\n HttpErrorConfig,\r\n ValidationBluePrint,\r\n ValidationErrorsFn,\r\n ValidateOnSubmit,\r\n Validation,\r\n ConfirmationIcons,\r\n}\r\n\r\nexport interface ThemeSharedFeature<KindT extends ThemeSharedFeatureKind> {\r\n ɵkind: KindT;\r\n ɵproviders: Provider[];\r\n}\r\n\r\nfunction makeThemeSharedFeature<KindT extends ThemeSharedFeatureKind>(\r\n kind: KindT,\r\n providers: Provider[],\r\n): ThemeSharedFeature<KindT> {\r\n return {\r\n ɵkind: kind,\r\n ɵproviders: providers,\r\n };\r\n}\r\n\r\nexport function withHttpErrorConfig(\r\n httpErrorConfig: HttpErrorConfig,\r\n): ThemeSharedFeature<ThemeSharedFeatureKind.HttpErrorConfig> {\r\n return makeThemeSharedFeature(ThemeSharedFeatureKind.HttpErrorConfig, [\r\n {\r\n provide: HTTP_ERROR_CONFIG,\r\n useValue: httpErrorConfig,\r\n },\r\n ]);\r\n}\r\n\r\nexport function withValidationBluePrint(\r\n bluePrints: Validation.Blueprints,\r\n): ThemeSharedFeature<ThemeSharedFeatureKind.ValidationBluePrint> {\r\n return makeThemeSharedFeature(ThemeSharedFeatureKind.ValidationBluePrint, [\r\n {\r\n provide: VALIDATION_BLUEPRINTS,\r\n useValue: {\r\n ...DEFAULT_VALIDATION_BLUEPRINTS,\r\n ...(bluePrints || {}),\r\n },\r\n },\r\n ]);\r\n}\r\n\r\nexport function withValidationMapErrorsFn(\r\n mapErrorsFn: Validation.MapErrorsFn,\r\n): ThemeSharedFeature<ThemeSharedFeatureKind.ValidationErrorsFn> {\r\n return makeThemeSharedFeature(ThemeSharedFeatureKind.ValidationErrorsFn, [\r\n {\r\n provide: VALIDATION_MAP_ERRORS_FN,\r\n useValue: mapErrorsFn || defaultMapErrorsFn,\r\n },\r\n ]);\r\n}\r\n\r\nexport function withValidateOnSubmit(\r\n validateOnSubmit: boolean,\r\n): ThemeSharedFeature<ThemeSharedFeatureKind.ValidateOnSubmit> {\r\n return makeThemeSharedFeature(ThemeSharedFeatureKind.ValidateOnSubmit, [\r\n {\r\n provide: VALIDATION_VALIDATE_ON_SUBMIT,\r\n useValue: validateOnSubmit,\r\n },\r\n ]);\r\n}\r\n\r\nexport function withConfirmationIcon(\r\n confirmationIcons: Partial<ConfirmationIcons>,\r\n): ThemeSharedFeature<ThemeSharedFeatureKind.HttpErrorConfig> {\r\n return makeThemeSharedFeature(ThemeSharedFeatureKind.HttpErrorConfig, [\r\n {\r\n provide: CONFIRMATION_ICONS,\r\n useValue: { ...DEFAULT_CONFIRMATION_ICONS, ...(confirmationIcons || {}) },\r\n },\r\n ]);\r\n}\r\n\r\nexport function provideAbpThemeShared(...features: ThemeSharedFeature<ThemeSharedFeatureKind>[]) {\r\n const providers = [\r\n provideAppInitializer(() => {\r\n inject(ErrorHandler);\r\n inject(THEME_SHARED_APPEND_CONTENT);\r\n inject(DocumentDirHandlerService);\r\n }),\r\n THEME_SHARED_ROUTE_PROVIDERS,\r\n { provide: HTTP_ERROR_CONFIG, useValue: undefined },\r\n { provide: NgbDateParserFormatter, useClass: DateParserFormatter },\r\n NG_BOOTSTRAP_CONFIG_PROVIDERS,\r\n {\r\n provide: VALIDATION_BLUEPRINTS,\r\n useValue: { ...DEFAULT_VALIDATION_BLUEPRINTS },\r\n },\r\n {\r\n provide: VALIDATION_MAP_ERRORS_FN,\r\n useValue: defaultMapErrorsFn,\r\n },\r\n {\r\n provide: VALIDATION_VALIDATE_ON_SUBMIT,\r\n useValue: undefined,\r\n },\r\n DocumentDirHandlerService,\r\n {\r\n provide: CONFIRMATION_ICONS,\r\n useValue: { ...DEFAULT_CONFIRMATION_ICONS },\r\n },\r\n tenantNotFoundProvider,\r\n DEFAULT_HANDLERS_PROVIDERS,\r\n ];\r\n\r\n for (const feature of features) {\r\n providers.push(...feature.ɵproviders);\r\n }\r\n\r\n return makeEnvironmentProviders(providers);\r\n}\r\n","import { Environment } from '@abp/ng.core';\r\nimport {\r\n EnvironmentProviders,\r\n makeEnvironmentProviders,\r\n Provider,\r\n} from '@angular/core';\r\nimport { LOGO_APP_NAME_TOKEN, LOGO_URL_TOKEN } from '../tokens/logo.token';\r\n\r\nexport enum LogoFeatureKind {\r\n Options,\r\n}\r\n\r\nexport interface LogoFeature<KindT extends LogoFeatureKind> {\r\n ɵkind: KindT;\r\n ɵproviders: (Provider | EnvironmentProviders)[];\r\n}\r\n\r\nfunction makeLogoFeature<KindT extends LogoFeatureKind>(\r\n kind: KindT,\r\n providers: (Provider | EnvironmentProviders)[],\r\n): LogoFeature<KindT> {\r\n return {\r\n ɵkind: kind,\r\n ɵproviders: providers,\r\n };\r\n}\r\n\r\nexport function withEnvironmentOptions(\r\n options = {} as Environment,\r\n): LogoFeature<LogoFeatureKind.Options> {\r\n const { name, logoUrl } = options.application || {};\r\n\r\n return makeLogoFeature(LogoFeatureKind.Options, [\r\n {\r\n provide: LOGO_URL_TOKEN,\r\n useValue: logoUrl || '',\r\n },\r\n {\r\n provide: LOGO_APP_NAME_TOKEN,\r\n useValue: name || 'ProjectName',\r\n },\r\n ]);\r\n}\r\n\r\nexport function provideLogo(\r\n ...features: LogoFeature<LogoFeatureKind>[]\r\n): EnvironmentProviders {\r\n const providers: (Provider | EnvironmentProviders)[] = [];\r\n features.forEach(({ ɵproviders }) => providers.push(...ɵproviders));\r\n return makeEnvironmentProviders(providers);\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\r\nimport { NgxDatatableModule } from '@swimlane/ngx-datatable';\r\nimport {\r\n BreadcrumbItemsComponent,\r\n BreadcrumbComponent,\r\n ButtonComponent,\r\n ConfirmationComponent,\r\n HttpErrorWrapperComponent,\r\n LoaderBarComponent,\r\n LoadingComponent,\r\n ModalComponent,\r\n ToastContainerComponent,\r\n ToastComponent,\r\n ModalCloseDirective,\r\n PasswordComponent,\r\n CardModule,\r\n FormInputComponent,\r\n FormCheckboxComponent,\r\n} from './components';\r\nimport {\r\n LoadingDirective,\r\n NgxDatatableDefaultDirective,\r\n NgxDatatableListDirective,\r\n AbpVisibleDirective,\r\n DisabledDirective,\r\n} from './directives';\r\nimport { RootParams } from './models';\r\nimport {\r\n provideAbpThemeShared,\r\n withConfirmationIcon,\r\n withHttpErrorConfig,\r\n withValidateOnSubmit,\r\n withValidationBluePrint,\r\n withValidationMapErrorsFn,\r\n} from './providers';\r\n\r\nexport const THEME_SHARED_EXPORTS = [\r\n BreadcrumbComponent,\r\n BreadcrumbItemsComponent,\r\n ButtonComponent,\r\n ConfirmationComponent,\r\n LoaderBarComponent,\r\n LoadingComponent,\r\n ModalComponent,\r\n ToastComponent,\r\n ToastContainerComponent,\r\n LoadingDirective,\r\n ModalCloseDirective,\r\n FormInputComponent,\r\n FormCheckboxComponent,\r\n HttpErrorWrapperComponent,\r\n NgxDatatableModule,\r\n NgxValidateCoreModule,\r\n CardModule,\r\n DisabledDirective,\r\n AbpVisibleDirective,\r\n NgxDatatableListDirective,\r\n NgxDatatableDefaultDirective,\r\n PasswordComponent,\r\n];\r\n\r\n@NgModule({\r\n imports: [...THEME_SHARED_EXPORTS],\r\n declarations: [],\r\n exports: [...THEME_SHARED_EXPORTS],\r\n})\r\nexport class BaseThemeSharedModule {}\r\n\r\n@NgModule({\r\n imports: [BaseThemeSharedModule],\r\n exports: [BaseThemeSharedModule],\r\n})\r\nexport class ThemeSharedModule {\r\n /**\r\n * @deprecated forRoot method is deprecated, use `provideAbpThemeShared` *function* for config settings.\r\n */\r\n static forRoot(\r\n { httpErrorConfig, validation = {}, confirmationIcons = {} } = {} as RootParams,\r\n ): ModuleWithProviders<ThemeSharedModule> {\r\n return {\r\n ngModule: ThemeSharedModule,\r\n providers: [\r\n provideAbpThemeShared(\r\n withHttpErrorConfig(httpErrorConfig),\r\n withValidationBluePrint(validation.blueprints),\r\n withValidationMapErrorsFn(validation.mapErrorsFn),\r\n withValidateOnSubmit(validation.validateOnSubmit),\r\n withConfirmationIcon(confirmationIcons),\r\n ),\r\n ],\r\n };\r\n }\r\n}\r\n","/*\r\n * Public API Surface of theme-shared\r\n */\r\n\r\nexport * from './lib/adapters';\r\nexport * from './lib/animations';\r\nexport * from './lib/components';\r\nexport * from './lib/directives';\r\nexport * from './lib/enums';\r\nexport * from './lib/handlers';\r\nexport * from './lib/models';\r\nexport * from './lib/providers';\r\nexport * from './lib/services';\r\nexport * from './lib/theme-shared.module';\r\nexport * from './lib/tokens';\r\nexport * from './lib/utils';\r\nexport * from './lib/constants';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"abp-ng.theme.shared.mjs","sources":["../../../../packages/theme-shared/src/lib/adapters/date-time.adapter.ts","../../../../packages/theme-shared/src/lib/adapters/date.adapter.ts","../../../../packages/theme-shared/src/lib/adapters/datepicker-i18n.adapter.ts","../../../../packages/theme-shared/src/lib/adapters/time.adapter.ts","../../../../packages/theme-shared/src/lib/adapters/timepicker-i18n.adapter.ts","../../../../packages/theme-shared/src/lib/animations/bounce.animations.ts","../../../../packages/theme-shared/src/lib/animations/collapse.animations.ts","../../../../packages/theme-shared/src/lib/animations/fade.animations.ts","../../../../packages/theme-shared/src/lib/animations/modal.animations.ts","../../../../packages/theme-shared/src/lib/animations/slide.animations.ts","../../../../packages/theme-shared/src/lib/animations/toast.animations.ts","../../../../packages/theme-shared/src/lib/components/breadcrumb-items/breadcrumb-items.component.ts","../../../../packages/theme-shared/src/lib/components/breadcrumb-items/breadcrumb-items.component.html","../../../../packages/theme-shared/src/lib/components/breadcrumb/breadcrumb.component.ts","../../../../packages/theme-shared/src/lib/components/breadcrumb/breadcrumb.component.html","../../../../packages/theme-shared/src/lib/components/button/button.component.ts","../../../../packages/theme-shared/src/lib/models/confirmation.ts","../../../../packages/theme-shared/src/lib/tokens/confirmation-icons.token.ts","../../../../packages/theme-shared/src/lib/components/confirmation/confirmation.component.ts","../../../../packages/theme-shared/src/lib/components/confirmation/confirmation.component.html","../../../../packages/theme-shared/src/lib/components/http-error-wrapper/http-error-wrapper.component.ts","../../../../packages/theme-shared/src/lib/components/http-error-wrapper/http-error-wrapper.component.html","../../../../packages/theme-shared/src/lib/components/loader-bar/loader-bar.component.ts","../../../../packages/theme-shared/src/lib/components/loading/loading.component.ts","../../../../packages/theme-shared/src/lib/models/nav-item.ts","../../../../packages/theme-shared/src/lib/models/user-menu.ts","../../../../packages/theme-shared/src/lib/services/confirmation.service.ts","../../../../packages/theme-shared/src/lib/services/abstract-menu.service.ts","../../../../packages/theme-shared/src/lib/services/nav-items.service.ts","../../../../packages/theme-shared/src/lib/services/page-alert.service.ts","../../../../packages/theme-shared/src/lib/components/toast/toast.component.ts","../../../../packages/theme-shared/src/lib/components/toast/toast.component.html","../../../../packages/theme-shared/src/lib/components/toast-container/toast-container.component.ts","../../../../packages/theme-shared/src/lib/components/toast-container/toast-container.component.html","../../../../packages/theme-shared/src/lib/services/toaster.service.ts","../../../../packages/theme-shared/src/lib/services/user-menu.service.ts","../../../../packages/theme-shared/src/lib/tokens/http-error.token.ts","../../../../packages/theme-shared/src/lib/services/create-error-component.service.ts","../../../../packages/theme-shared/src/lib/constants/default-errors.ts","../../../../packages/theme-shared/src/lib/utils/error.utils.ts","../../../../packages/theme-shared/src/lib/services/abp-format-error-handler.service.ts","../../../../packages/theme-shared/src/lib/services/tenant-resolve-error-handler.service.ts","../../../../packages/theme-shared/src/lib/services/status-code-error-handler.service.ts","../../../../packages/theme-shared/src/lib/services/unknown-status-code-error-handler.service.ts","../../../../packages/theme-shared/src/lib/constants/styles.ts","../../../../packages/theme-shared/src/lib/tokens/append-content.token.ts","../../../../packages/theme-shared/src/lib/tokens/ngx-datatable-messages.token.ts","../../../../packages/theme-shared/src/lib/tokens/suppress-unsaved-changes-warning.token.ts","../../../../packages/theme-shared/src/lib/tokens/logo.token.ts","../../../../packages/theme-shared/src/lib/tokens/theme-change.token.ts","../../../../packages/theme-shared/src/lib/services/router-error-handler.service.ts","../../../../packages/theme-shared/src/lib/services/authentication-error-handler.service.ts","../../../../packages/theme-shared/src/lib/components/modal/modal-ref.service.ts","../../../../packages/theme-shared/src/lib/components/modal/modal.component.ts","../../../../packages/theme-shared/src/lib/components/modal/modal.component.html","../../../../packages/theme-shared/src/lib/components/modal/modal-close.directive.ts","../../../../packages/theme-shared/src/lib/components/password/password.component.ts","../../../../packages/theme-shared/src/lib/components/password/password.component.html","../../../../packages/theme-shared/src/lib/components/card/card-body.component.ts","../../../../packages/theme-shared/src/lib/components/card/card.component.ts","../../../../packages/theme-shared/src/lib/components/card/card-header.component.ts","../../../../packages/theme-shared/src/lib/components/card/card-footer.component.ts","../../../../packages/theme-shared/src/lib/components/card/card-title.directive.ts","../../../../packages/theme-shared/src/lib/components/card/card-subtitle.directive.ts","../../../../packages/theme-shared/src/lib/components/card/card-img-top.directive.ts","../../../../packages/theme-shared/src/lib/components/card/card-header.directive.ts","../../../../packages/theme-shared/src/lib/components/card/card.module.ts","../../../../packages/theme-shared/src/lib/components/checkbox/checkbox.component.ts","../../../../packages/theme-shared/src/lib/components/form-input/form-input.component.ts","../../../../packages/theme-shared/src/lib/components/internet-connection-status/internet-connection-status.component.ts","../../../../packages/theme-shared/src/lib/components/spinner/spinner.component.ts","../../../../packages/theme-shared/src/lib/directives/ellipsis.directive.ts","../../../../packages/theme-shared/src/lib/directives/loading.directive.ts","../../../../packages/theme-shared/src/lib/directives/ngx-datatable-default.directive.ts","../../../../packages/theme-shared/src/lib/directives/ngx-datatable-list.directive.ts","../../../../packages/theme-shared/src/lib/directives/visible.directive.ts","../../../../packages/theme-shared/src/lib/directives/disabled.directive.ts","../../../../packages/theme-shared/src/lib/enums/form.ts","../../../../packages/theme-shared/src/lib/handlers/document-dir.handler.ts","../../../../packages/theme-shared/src/lib/handlers/error.handler.ts","../../../../packages/theme-shared/src/lib/providers/ng-bootstrap-config.provider.ts","../../../../packages/theme-shared/src/lib/providers/route.provider.ts","../../../../packages/theme-shared/src/lib/providers/tenant-not-found.provider.ts","../../../../packages/theme-shared/src/lib/providers/error-handlers.provider.ts","../../../../packages/theme-shared/src/lib/constants/validation.ts","../../../../packages/theme-shared/src/lib/constants/scripts.ts","../../../../packages/theme-shared/src/lib/utils/date-parser-formatter.ts","../../../../packages/theme-shared/src/lib/utils/validation-utils.ts","../../../../packages/theme-shared/src/lib/providers/theme-shared-config.provider.ts","../../../../packages/theme-shared/src/lib/providers/logo.provider.ts","../../../../packages/theme-shared/src/lib/theme-shared.module.ts","../../../../packages/theme-shared/src/public-api.ts","../../../../packages/theme-shared/src/abp-ng.theme.shared.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\nimport { NgbDateStruct, NgbTimeStruct } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Injectable()\r\nexport class DateTimeAdapter {\r\n value!: Partial<NgbDateTimeStruct>;\r\n\r\n fromModel(value: string | Date): Partial<NgbDateTimeStruct> | null {\r\n if (!value) {\r\n return null;\r\n }\r\n\r\n const date = new Date(value);\r\n\r\n if (isNaN(date as unknown as number)) {\r\n return null;\r\n }\r\n\r\n this.value = {\r\n year: date.getFullYear(),\r\n month: date.getMonth() + 1,\r\n day: date.getDate(),\r\n hour: date.getHours(),\r\n minute: date.getMinutes(),\r\n second: date.getSeconds(),\r\n };\r\n\r\n return this.value;\r\n }\r\n\r\n toModel(value: Partial<NgbDateTimeStruct> | null): string {\r\n if (!value) {\r\n return '';\r\n }\r\n\r\n const now = new Date();\r\n\r\n const newValue = {\r\n year: now.getUTCFullYear(),\r\n month: now.getMonth() + 1,\r\n day: now.getDate(),\r\n hour: 0,\r\n minute: 0,\r\n second: 0,\r\n ...this.value,\r\n ...value,\r\n } as NgbDateTimeStruct;\r\n\r\n const date = new Date(\r\n Date.UTC(\r\n newValue.year,\r\n newValue.month - 1,\r\n newValue.day,\r\n newValue.hour,\r\n newValue.minute,\r\n newValue.second,\r\n ),\r\n );\r\n\r\n return date.toISOString().replace('Z', '');\r\n }\r\n}\r\n\r\ntype NgbDateTimeStruct = NgbDateStruct & NgbTimeStruct;\r\n","import { formatDate } from '@angular/common';\r\nimport { Injectable } from '@angular/core';\r\nimport { NgbDateAdapter, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Injectable()\r\nexport class DateAdapter extends NgbDateAdapter<string | Date> {\r\n fromModel(value: string | Date): NgbDateStruct | null {\r\n if (!value) return null;\r\n\r\n let date: Date;\r\n\r\n if (typeof value === 'string') {\r\n date = this.dateOf(value);\r\n } else {\r\n date = new Date(value);\r\n }\r\n\r\n if (isNaN(date as unknown as number)) return null;\r\n\r\n return {\r\n day: date.getDate(),\r\n month: date.getMonth() + 1,\r\n year: date.getFullYear(),\r\n };\r\n }\r\n\r\n toModel(value: NgbDateStruct | null): string {\r\n if (!value) return '';\r\n\r\n const date = new Date(value.year, value.month - 1, value.day);\r\n const formattedDate = formatDate(date, 'yyyy-MM-dd', 'en');\r\n\r\n return formattedDate;\r\n }\r\n\r\n protected dateOf(value: string): Date {\r\n const dateUtc = new Date(Date.parse(value));\r\n return new Date(dateUtc.getTime() + Math.abs(dateUtc.getTimezoneOffset() * 60000));\r\n }\r\n}\r\n","import { formatDate } from '@angular/common';\r\nimport { inject, Injectable, LOCALE_ID } from '@angular/core';\r\nimport { NgbDatepickerI18n, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ConfigStateService } from '@abp/ng.core';\r\n\r\n@Injectable()\r\nexport class DatepickerI18nAdapter extends NgbDatepickerI18n {\r\n private configState = inject(ConfigStateService, { optional: true });\r\n private defaultLocale = inject(LOCALE_ID);\r\n\r\n private get locale(): string {\r\n return this.configState?.getDeep('localization.currentCulture.cultureName') || this.defaultLocale;\r\n }\r\n\r\n getWeekdayLabel(weekday: number): string {\r\n const date = new Date(2017, 0, weekday + 1); // Monday = 1\r\n return formatDate(date, 'EEEEE', this.locale);\r\n }\r\n\r\n getWeekLabel(): string {\r\n return '';\r\n }\r\n\r\n getMonthShortName(month: number): string {\r\n const date = new Date(2017, month - 1, 1);\r\n return formatDate(date, 'MMM', this.locale);\r\n }\r\n\r\n getMonthFullName(month: number): string {\r\n const date = new Date(2017, month - 1, 1);\r\n return formatDate(date, 'MMMM', this.locale);\r\n }\r\n\r\n getDayAriaLabel(date: NgbDateStruct): string {\r\n const d = new Date(date.year, date.month - 1, date.day);\r\n return formatDate(d, 'fullDate', this.locale);\r\n }\r\n}\r\n","import { formatDate } from '@angular/common';\r\nimport { Injectable } from '@angular/core';\r\nimport { NgbTimeAdapter, NgbTimeStruct } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Injectable()\r\nexport class TimeAdapter extends NgbTimeAdapter<string | Date> {\r\n fromModel(value: string | Date): NgbTimeStruct | null {\r\n if (!value) return null;\r\n\r\n const date = isTimeStr(value)\r\n ? new Date(0, 0, 1, ...value.split(':').map(Number))\r\n : new Date(value);\r\n\r\n if (isNaN(date as unknown as number)) return null;\r\n\r\n return {\r\n hour: date.getHours(),\r\n minute: date.getMinutes(),\r\n second: date.getSeconds(),\r\n };\r\n }\r\n\r\n toModel(value: NgbTimeStruct | null): string {\r\n if (!value) {\r\n return null;\r\n }\r\n\r\n const date = new Date(0, 0, 1, value.hour, value.minute, value.second);\r\n const formattedDate = formatDate(date, 'HH:mm:ss', 'en');\r\n\r\n return formattedDate;\r\n }\r\n}\r\n\r\nfunction isTimeStr(value: string | Date): value is string {\r\n return /^((2[123])|[01][0-9])(:[0-5][0-9]){1,2}$/.test(String(value));\r\n}\r\n","import { formatDate } from '@angular/common';\r\nimport { inject, Injectable, LOCALE_ID } from '@angular/core';\r\nimport { NgbTimepickerI18n } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ConfigStateService } from '@abp/ng.core';\r\n\r\n@Injectable()\r\nexport class TimepickerI18nAdapter extends NgbTimepickerI18n {\r\n private configState = inject(ConfigStateService, { optional: true });\r\n private defaultLocale = inject(LOCALE_ID);\r\n\r\n private get locale(): string {\r\n return this.configState?.getDeep('localization.currentCulture.cultureName') || this.defaultLocale;\r\n }\r\n\r\n getMorningPeriod(): string {\r\n const date = new Date(2000, 0, 1, 10, 0, 0);\r\n return formatDate(date, 'a', this.locale);\r\n }\r\n\r\n getAfternoonPeriod(): string {\r\n const date = new Date(2000, 0, 1, 22, 0, 0);\r\n return formatDate(date, 'a', this.locale);\r\n }\r\n}\r\n","import { animate, animation, keyframes, style } from '@angular/animations';\r\n\r\nexport const bounceIn = animation(\r\n [\r\n style({ opacity: '0', display: '{{ display }}' }),\r\n animate(\r\n '{{ time}} {{ easing }}',\r\n keyframes([\r\n style({ opacity: '0', transform: '{{ transform }} scale(0.0)', offset: 0 }),\r\n style({ opacity: '0', transform: '{{ transform }} scale(0.8)', offset: 0.5 }),\r\n style({ opacity: '1', transform: '{{ transform }} scale(1.0)', offset: 1 }),\r\n ]),\r\n ),\r\n ],\r\n {\r\n params: {\r\n time: '350ms',\r\n easing: 'cubic-bezier(.7,.31,.72,1.47)',\r\n display: 'block',\r\n transform: 'translate(-50%, -50%)',\r\n },\r\n },\r\n);\r\n","import {\r\n animate,\r\n animation,\r\n trigger,\r\n state,\r\n style,\r\n transition,\r\n useAnimation,\r\n} from '@angular/animations';\r\n\r\nexport const collapseY = animation(\r\n [\r\n style({ height: '*', overflow: 'hidden', 'box-sizing': 'border-box' }),\r\n animate('{{ time }} {{ easing }}', style({ height: '0', padding: '0px' })),\r\n ],\r\n { params: { time: '350ms', easing: 'ease' } },\r\n);\r\n\r\nexport const collapseYWithMargin = animation(\r\n [\r\n style({ 'margin-top': '0' }),\r\n animate('{{ time }} {{ easing }}', style({ 'margin-left': '-100%' })),\r\n ],\r\n {\r\n params: { time: '500ms', easing: 'ease' },\r\n },\r\n);\r\n\r\nexport const collapseX = animation(\r\n [\r\n style({ width: '*', overflow: 'hidden', 'box-sizing': 'border-box' }),\r\n animate('{{ time }} {{ easing }}', style({ width: '0', padding: '0px' })),\r\n ],\r\n { params: { time: '350ms', easing: 'ease' } },\r\n);\r\n\r\nexport const expandY = animation(\r\n [\r\n style({ height: '0', overflow: 'hidden', 'box-sizing': 'border-box' }),\r\n animate('{{ time }} {{ easing }}', style({ height: '*', padding: '*' })),\r\n ],\r\n { params: { time: '350ms', easing: 'ease' } },\r\n);\r\n\r\nexport const expandYWithMargin = animation(\r\n [\r\n style({ 'margin-top': '-100%' }),\r\n animate('{{ time }} {{ easing }}', style({ 'margin-top': '0' })),\r\n ],\r\n {\r\n params: { time: '500ms', easing: 'ease' },\r\n },\r\n);\r\n\r\nexport const expandX = animation(\r\n [\r\n style({ width: '0', overflow: 'hidden', 'box-sizing': 'border-box' }),\r\n animate('{{ time }} {{ easing }}', style({ width: '*', padding: '*' })),\r\n ],\r\n { params: { time: '350ms', easing: 'ease' } },\r\n);\r\n\r\nexport const collapse = trigger('collapse', [\r\n state('collapsed', style({ height: '0', overflow: 'hidden' })),\r\n state('expanded', style({ height: '*', overflow: 'hidden' })),\r\n transition('expanded => collapsed', useAnimation(collapseY)),\r\n transition('collapsed => expanded', useAnimation(expandY)),\r\n]);\r\n\r\nexport const collapseWithMargin = trigger('collapseWithMargin', [\r\n state('collapsed', style({ 'margin-top': '-100%' })),\r\n state('expanded', style({ 'margin-top': '0' })),\r\n transition('expanded => collapsed', useAnimation(collapseYWithMargin), {\r\n params: { time: '400ms', easing: 'linear' },\r\n }),\r\n transition('collapsed => expanded', useAnimation(expandYWithMargin)),\r\n]);\r\n\r\nexport const collapseLinearWithMargin = trigger('collapseLinearWithMargin', [\r\n state('collapsed', style({ 'margin-top': '-100vh' })),\r\n state('expanded', style({ 'margin-top': '0' })),\r\n transition(\r\n 'expanded => collapsed',\r\n useAnimation(collapseYWithMargin, { params: { time: '200ms', easing: 'linear' } }),\r\n ),\r\n transition(\r\n 'collapsed => expanded',\r\n useAnimation(expandYWithMargin, { params: { time: '250ms', easing: 'linear' } }),\r\n ),\r\n]);\r\n","import { animate, animation, style } from '@angular/animations';\r\n\r\nexport const fadeIn = animation(\r\n [style({ opacity: '0' }), animate('{{ time}} {{ easing }}', style({ opacity: '1' }))],\r\n {\r\n params: { time: '350ms', easing: 'ease' },\r\n },\r\n);\r\n\r\nexport const fadeOut = animation(\r\n [style({ opacity: '1' }), animate('{{ time}} {{ easing }}', style({ opacity: '0' }))],\r\n { params: { time: '350ms', easing: 'ease' } },\r\n);\r\n\r\nexport const fadeInDown = animation(\r\n [\r\n style({ opacity: '0', transform: '{{ transform }} translateY(-20px)' }),\r\n animate(\r\n '{{ time }} {{ easing }}',\r\n style({ opacity: '1', transform: '{{ transform }} translateY(0)' }),\r\n ),\r\n ],\r\n { params: { time: '350ms', easing: 'ease', transform: '' } },\r\n);\r\n\r\nexport const fadeInUp = animation(\r\n [\r\n style({ opacity: '0', transform: '{{ transform }} translateY(20px)' }),\r\n animate(\r\n '{{ time }} {{ easing }}',\r\n style({ opacity: '1', transform: '{{ transform }} translateY(0)' }),\r\n ),\r\n ],\r\n { params: { time: '350ms', easing: 'ease', transform: '' } },\r\n);\r\n\r\nexport const fadeInLeft = animation(\r\n [\r\n style({ opacity: '0', transform: '{{ transform }} translateX(20px)' }),\r\n animate(\r\n '{{ time }} {{ easing }}',\r\n style({ opacity: '1', transform: '{{ transform }} translateX(0)' }),\r\n ),\r\n ],\r\n { params: { time: '350ms', easing: 'ease', transform: '' } },\r\n);\r\n\r\nexport const fadeInRight = animation(\r\n [\r\n style({ opacity: '0', transform: '{{ transform }} translateX(-20px)' }),\r\n animate(\r\n '{{ time }} {{ easing }}',\r\n style({ opacity: '1', transform: '{{ transform }} translateX(0)' }),\r\n ),\r\n ],\r\n { params: { time: '350ms', easing: 'ease', transform: '' } },\r\n);\r\n\r\nexport const fadeOutDown = animation(\r\n [\r\n style({ opacity: '1', transform: '{{ transform }} translateY(0)' }),\r\n animate(\r\n '{{ time }} {{ easing }}',\r\n style({ opacity: '0', transform: '{{ transform }} translateY(20px)' }),\r\n ),\r\n ],\r\n { params: { time: '350ms', easing: 'ease', transform: '' } },\r\n);\r\n\r\nexport const fadeOutUp = animation(\r\n [\r\n style({ opacity: '1', transform: '{{ transform }} translateY(0)' }),\r\n animate(\r\n '{{ time }} {{ easing }}',\r\n style({ opacity: '0', transform: '{{ transform }} translateY(-20px)' }),\r\n ),\r\n ],\r\n { params: { time: '350ms', easing: 'ease', transform: '' } },\r\n);\r\n\r\nexport const fadeOutLeft = animation(\r\n [\r\n style({ opacity: '1', transform: '{{ transform }} translateX(0)' }),\r\n animate(\r\n '{{ time }} {{ easing }}',\r\n style({ opacity: '0', transform: '{{ transform }} translateX(20px)' }),\r\n ),\r\n ],\r\n { params: { time: '350ms', easing: 'ease', transform: '' } },\r\n);\r\n\r\nexport const fadeOutRight = animation(\r\n [\r\n style({ opacity: '1', transform: '{{ transform }} translateX(0)' }),\r\n animate(\r\n '{{ time }} {{ easing }}',\r\n style({ opacity: '0', transform: '{{ transform }} translateX(-20px)' }),\r\n ),\r\n ],\r\n { params: { time: '350ms', easing: 'ease', transform: '' } },\r\n);\r\n","import { transition, trigger, useAnimation } from '@angular/animations';\r\nimport { fadeIn, fadeInDown, fadeOut } from './fade.animations';\r\n\r\nexport const fadeAnimation = trigger('fade', [\r\n transition(':enter', useAnimation(fadeIn)),\r\n transition(':leave', useAnimation(fadeOut)),\r\n]);\r\n\r\nexport const dialogAnimation = trigger('dialog', [\r\n transition(':enter', useAnimation(fadeInDown)),\r\n transition(':leave', useAnimation(fadeOut)),\r\n]);\r\n","import { animate, state, style, transition, trigger, query } from '@angular/animations';\r\nexport const slideFromBottom = trigger('slideFromBottom', [\r\n transition('* <=> *', [\r\n style({ 'margin-top': '20px', opacity: '0' }),\r\n animate('0.2s ease-out', style({ opacity: '1', 'margin-top': '0px' })),\r\n ]),\r\n]);\r\n","import { animate, query, style, transition, trigger } from '@angular/animations';\r\n\r\nexport const toastInOut = trigger('toastInOut', [\r\n transition('* <=> *', [\r\n query(\r\n ':enter',\r\n [\r\n style({ opacity: 0, transform: 'translateY(20px)' }),\r\n animate('350ms ease', style({ opacity: 1, transform: 'translateY(0)' })),\r\n ],\r\n { optional: true },\r\n ),\r\n query(':leave', animate('450ms ease', style({ opacity: 0 })), {\r\n optional: true,\r\n }),\r\n ]),\r\n]);\r\n","import { Component, input } from '@angular/core';\r\nimport { NgTemplateOutlet } from '@angular/common';\r\nimport { RouterLink } from '@angular/router';\r\nimport { ABP, LocalizationPipe } from '@abp/ng.core';\r\n\r\n@Component({\r\n selector: 'abp-breadcrumb-items',\r\n templateUrl: './breadcrumb-items.component.html',\r\n imports: [NgTemplateOutlet, RouterLink, LocalizationPipe],\r\n})\r\nexport class BreadcrumbItemsComponent {\r\n readonly items = input<Partial<ABP.Route>[]>([]);\r\n}\r\n","@if (items().length) {\r\n <ol class=\"breadcrumb\">\r\n <li class=\"breadcrumb-item\">\r\n <a routerLink=\"/\"><i class=\"fa fa-home\" aria-hidden=\"true\"></i> </a>\r\n </li>\r\n @for (item of items(); track $index; let last = $last) {\r\n <li class=\"breadcrumb-item\" [class.active]=\"last\" aria-current=\"page\">\r\n <ng-container\r\n *ngTemplateOutlet=\"item.path ? linkTemplate : textTemplate; context: { $implicit: item }\"\r\n ></ng-container>\r\n </li>\r\n }\r\n </ol>\r\n}\r\n\r\n<ng-template #linkTemplate let-item>\r\n <a [routerLink]=\"item.path\"> {{ item.name | abpLocalization }}</a>\r\n</ng-template>\r\n\r\n<ng-template #textTemplate let-item>\r\n {{ item.name | abpLocalization }}\r\n</ng-template>\r\n","import {\r\n ABP,\r\n getRoutePath,\r\n RouterEvents,\r\n RoutesService,\r\n SubscriptionService,\r\n TreeNode,\r\n} from '@abp/ng.core';\r\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnInit, inject } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport { eThemeSharedRouteNames } from '../../enums/route-names';\r\nimport { BreadcrumbItemsComponent } from '../breadcrumb-items/breadcrumb-items.component';\r\n\r\n@Component({\r\n selector: 'abp-breadcrumb',\r\n templateUrl: './breadcrumb.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [SubscriptionService],\r\n imports: [BreadcrumbItemsComponent],\r\n})\r\nexport class BreadcrumbComponent implements OnInit {\r\n readonly cdRef = inject(ChangeDetectorRef);\r\n private router = inject(Router);\r\n private routes = inject(RoutesService);\r\n private subscription = inject(SubscriptionService);\r\n private routerEvents = inject(RouterEvents);\r\n\r\n segments: Partial<ABP.Route>[] = [];\r\n\r\n ngOnInit(): void {\r\n this.subscription.addOne(\r\n this.routerEvents.getNavigationEvents('End').pipe(\r\n startWith(null),\r\n map(() => this.routes.search({ path: getRoutePath(this.router) })),\r\n ),\r\n route => {\r\n this.segments = [];\r\n if (route) {\r\n let node = { parent: route } as TreeNode<ABP.Route>;\r\n\r\n while (node.parent) {\r\n node = node.parent;\r\n const { parent, children, isLeaf, path, ...segment } = node;\r\n if (!isAdministration(segment)) this.segments.unshift(segment);\r\n }\r\n\r\n this.cdRef.detectChanges();\r\n }\r\n },\r\n );\r\n }\r\n}\r\n\r\nfunction isAdministration(route: Pick<ABP.Route, 'name'>) {\r\n return route.name === eThemeSharedRouteNames.Administration;\r\n}\r\n","<abp-breadcrumb-items [items]=\"segments\"></abp-breadcrumb-items>\r\n","/* eslint-disable @angular-eslint/no-output-native */\r\nimport {\r\n Component,\r\n ElementRef,\r\n OnInit,\r\n Renderer2,\r\n computed,\r\n inject,\r\n input,\r\n output,\r\n signal,\r\n viewChild,\r\n} from '@angular/core';\r\nimport { ABP, StopPropagationDirective } from '@abp/ng.core';\r\n\r\n@Component({\r\n selector: 'abp-button',\r\n template: `\r\n <button\r\n #button\r\n [id]=\"buttonId()\"\r\n [attr.type]=\"buttonType()\"\r\n [attr.form]=\"formName()\"\r\n [class]=\"buttonClass()\"\r\n [disabled]=\"isLoading() || disabled()\"\r\n (click.stop)=\"click.emit($event); abpClick.emit($event)\"\r\n (focus)=\"focus.emit($event); abpFocus.emit($event)\"\r\n (blur)=\"blur.emit($event); abpBlur.emit($event)\"\r\n >\r\n <i [class]=\"icon()\" class=\"me-1\" aria-hidden=\"true\"></i><ng-content></ng-content>\r\n </button>\r\n `,\r\n imports: [StopPropagationDirective],\r\n})\r\nexport class ButtonComponent implements OnInit {\r\n private renderer = inject(Renderer2);\r\n\r\n readonly buttonId = input('');\r\n readonly buttonClass = input('btn btn-primary');\r\n readonly buttonType = input('button');\r\n readonly formName = input<string | undefined>(undefined);\r\n readonly iconClass = input<string | undefined>(undefined);\r\n readonly loadingInput = input(false, { alias: 'loading' });\r\n readonly disabled = input<boolean | undefined>(false);\r\n readonly attributes = input<ABP.Dictionary<string> | undefined>(undefined);\r\n\r\n // Internal writable signal for loading state - can be set programmatically\r\n private readonly _loading = signal(false);\r\n\r\n // Computed that combines input and internal state\r\n readonly isLoading = computed(() => this.loadingInput() || this._loading());\r\n\r\n // Getter/setter for backward compatibility (used by ModalComponent)\r\n get loading(): boolean {\r\n return this._loading();\r\n }\r\n set loading(value: boolean) {\r\n this._loading.set(value);\r\n }\r\n\r\n readonly click = output<MouseEvent>();\r\n readonly focus = output<FocusEvent>();\r\n readonly blur = output<FocusEvent>();\r\n readonly abpClick = output<MouseEvent>();\r\n readonly abpFocus = output<FocusEvent>();\r\n readonly abpBlur = output<FocusEvent>();\r\n\r\n readonly buttonRef = viewChild.required<ElementRef<HTMLButtonElement>>('button');\r\n\r\n protected readonly icon = computed(() => {\r\n return this.isLoading() ? 'fa fa-spinner fa-spin' : this.iconClass() || 'd-none';\r\n });\r\n\r\n ngOnInit() {\r\n const attributes = this.attributes();\r\n if (attributes) {\r\n Object.keys(attributes).forEach(key => {\r\n if (attributes[key]) {\r\n this.renderer.setAttribute(this.buttonRef().nativeElement, key, attributes[key]);\r\n }\r\n });\r\n }\r\n }\r\n}\r\n","import { LocalizationParam } from '@abp/ng.core';\r\n\r\nexport namespace Confirmation {\r\n export interface Options {\r\n id?: any;\r\n dismissible?: boolean;\r\n messageLocalizationParams?: string[];\r\n titleLocalizationParams?: string[];\r\n hideCancelBtn?: boolean;\r\n hideYesBtn?: boolean;\r\n cancelText?: LocalizationParam;\r\n yesText?: LocalizationParam;\r\n icon?: string;\r\n iconTemplate?:string\r\n }\r\n\r\n export interface DialogData {\r\n message: LocalizationParam;\r\n title?: LocalizationParam;\r\n severity?: Severity;\r\n options?: Partial<Options>;\r\n }\r\n\r\n export type Severity = 'neutral' | 'success' | 'info' | 'warning' | 'error';\r\n\r\n export enum Status {\r\n confirm = 'confirm',\r\n reject = 'reject',\r\n dismiss = 'dismiss',\r\n }\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport interface ConfirmationIcons {\r\n info: string;\r\n success: string;\r\n warning: string;\r\n error: string;\r\n default: string;\r\n neutral: string;\r\n}\r\n\r\nexport const CONFIRMATION_ICONS = new InjectionToken<Partial<ConfirmationIcons>>(\r\n 'CONFIRMATION_ICONS',\r\n);\r\n\r\nexport const DEFAULT_CONFIRMATION_ICONS: ConfirmationIcons = {\r\n info: 'fa fa-info-circle',\r\n success: 'fa fa-check-circle',\r\n warning: 'fa fa-exclamation-triangle',\r\n error: 'fa fa-times-circle',\r\n default: 'fa fa-question-circle',\r\n neutral: '',\r\n};\r\n","import { AsyncPipe } from '@angular/common';\r\nimport { Component, inject } from '@angular/core';\r\nimport { ReplaySubject } from 'rxjs';\r\nimport { Confirmation } from '../../models/confirmation';\r\nimport { CONFIRMATION_ICONS, ConfirmationIcons } from '../../tokens/confirmation-icons.token';\r\nimport { LocalizationPipe } from '@abp/ng.core';\r\n\r\n@Component({\r\n selector: 'abp-confirmation',\r\n templateUrl: './confirmation.component.html',\r\n styleUrls: ['./confirmation.component.scss'],\r\n imports: [AsyncPipe, LocalizationPipe],\r\n})\r\nexport class ConfirmationComponent {\r\n private icons = inject<ConfirmationIcons>(CONFIRMATION_ICONS);\r\n\r\n\r\n confirm = Confirmation.Status.confirm;\r\n reject = Confirmation.Status.reject;\r\n dismiss = Confirmation.Status.dismiss;\r\n\r\n confirmation$!: ReplaySubject<Confirmation.DialogData | null>;\r\n\r\n clear!: (status: Confirmation.Status) => void;\r\n\r\n close(status: Confirmation.Status) {\r\n this.clear(status);\r\n }\r\n\r\n getIconClass({ severity, options }: Confirmation.DialogData): string {\r\n if (options && options.icon) {\r\n return options.icon;\r\n }\r\n if (!this.icons) {\r\n return '';\r\n }\r\n if (severity) {\r\n return this.icons[severity];\r\n }\r\n return this.icons.default;\r\n }\r\n\r\n isCustomIconExists({ options }: Confirmation.DialogData): boolean {\r\n return !!(options && (options.iconTemplate || options.icon));\r\n }\r\n\r\n isIconTemplateExits({ options }: Confirmation.DialogData): boolean {\r\n return !!(options && options.iconTemplate);\r\n }\r\n}\r\n","@if (confirmation$ | async; as data) {\r\n<div class=\"confirmation\">\r\n <div class=\"confirmation-backdrop\" (click)=\"data.options?.dismissible ? close(dismiss) : null\"></div>\r\n <div class=\"confirmation-dialog\">\r\n @if (data.severity || isCustomIconExists(data)) {\r\n <div class=\"icon-container\" [class]=\"data.severity\">\r\n @if (isIconTemplateExits(data)) {\r\n <div [outerHTML]=\"data.options.iconTemplate\"></div>\r\n } @else {\r\n <i class=\"icon\" [class]=\"getIconClass(data)\"></i>\r\n }\r\n </div>\r\n }\r\n <div class=\"content\">\r\n @if (data.title) {\r\n <h1 class=\"title\" [innerHTML]=\"data.title | abpLocalization: data.options?.titleLocalizationParams\"></h1>\r\n }\r\n @if (data.message) {\r\n <p class=\"message\" [innerHTML]=\"data.message | abpLocalization: data.options?.messageLocalizationParams\"></p>\r\n }\r\n </div>\r\n <div class=\"footer\">\r\n @if (!data?.options?.hideCancelBtn) {\r\n <button id=\"cancel\" class=\"btn btn-outline-primary me-2\"\r\n [innerHTML]=\"data.options?.cancelText || 'AbpUi::Cancel' | abpLocalization\" (click)=\"close(reject)\"></button>\r\n }\r\n @if (!data?.options?.hideYesBtn) {\r\n <button id=\"confirm\" class=\"btn btn-primary\" [innerHTML]=\"data.options?.yesText || 'AbpUi::Yes' | abpLocalization\"\r\n (click)=\"close(confirm)\"></button>\r\n }\r\n </div>\r\n </div>\r\n</div>\r\n}","import {\r\n ApplicationRef,\r\n Component,\r\n inject,\r\n OnInit,\r\n ElementRef,\r\n EmbeddedViewRef,\r\n Type,\r\n AfterViewInit,\r\n OnDestroy,\r\n createComponent,\r\n EnvironmentInjector,\r\n DestroyRef,\r\n viewChild\r\n} from '@angular/core';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { Router } from '@angular/router';\r\nimport { fromEvent, Subject } from 'rxjs';\r\nimport { debounceTime, filter } from 'rxjs/operators';\r\nimport { LocalizationParam, LocalizationPipe } from '@abp/ng.core';\r\nimport { ErrorScreenErrorCodes } from '../../models';\r\n\r\n@Component({\r\n selector: 'abp-http-error-wrapper',\r\n templateUrl: './http-error-wrapper.component.html',\r\n styleUrls: ['http-error-wrapper.component.scss'],\r\n imports: [LocalizationPipe],\r\n})\r\nexport class HttpErrorWrapperComponent implements OnInit, AfterViewInit, OnDestroy {\r\n protected readonly destroyRef = inject(DestroyRef);\r\n protected readonly document = inject(DOCUMENT);\r\n protected readonly window = this.document.defaultView;\r\n protected readonly router = inject(Router);\r\n\r\n appRef!: ApplicationRef;\r\n\r\n environmentInjector!: EnvironmentInjector;\r\n\r\n status: ErrorScreenErrorCodes = 0;\r\n\r\n title: LocalizationParam = '_::Oops!';\r\n\r\n details: LocalizationParam = '_::Sorry, an error has occured.';\r\n\r\n customComponent: Type<any> | undefined = undefined;\r\n\r\n destroy$!: Subject<void>;\r\n\r\n hideCloseIcon = false;\r\n\r\n backgroundColor!: string;\r\n\r\n isHomeShow = true;\r\n\r\n readonly containerRef = viewChild<ElementRef<HTMLDivElement>>('container');\r\n\r\n get statusText(): string {\r\n return this.status ? `[${this.status}]` : '';\r\n }\r\n\r\n ngOnInit(): void {\r\n const computedStyle = this.window.getComputedStyle(this.document.body);\r\n const backgroundColor = computedStyle?.getPropertyValue('background-color');\r\n this.backgroundColor = backgroundColor || '#fff';\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (this.customComponent) {\r\n const customComponentRef = createComponent(this.customComponent, {\r\n environmentInjector: this.environmentInjector,\r\n });\r\n\r\n customComponentRef.instance.errorStatus = this.status;\r\n\r\n //In our custom \"HttpErrorComponent\", we have a \"status\" property.\r\n //We used to have \"errorStatus\", but it wasn't signal type. \"status\" variable is signal type.\r\n //I've checked because of backward compatibility. Developers might have their own custom HttpErrorComponent.\r\n //We need to deprecated and remove \"errorStatus\" in the future.\r\n if (customComponentRef.instance.status) {\r\n customComponentRef.instance.status.set(this.status);\r\n }\r\n\r\n customComponentRef.instance.destroy$ = this.destroy$;\r\n\r\n this.appRef.attachView(customComponentRef.hostView);\r\n\r\n const containerRef = this.containerRef();\r\n if (containerRef) {\r\n containerRef.nativeElement.appendChild(\r\n (customComponentRef.hostView as EmbeddedViewRef<any>).rootNodes[0],\r\n );\r\n }\r\n customComponentRef.changeDetectorRef.detectChanges();\r\n }\r\n\r\n fromEvent<KeyboardEvent>(this.document, 'keyup')\r\n .pipe(\r\n debounceTime(150),\r\n filter((key: KeyboardEvent) => key && key.key === 'Escape'),\r\n takeUntilDestroyed(this.destroyRef),\r\n )\r\n .subscribe(() => this.destroy());\r\n }\r\n\r\n goHome(): void {\r\n this.router.navigateByUrl('/', { onSameUrlNavigation: 'reload' });\r\n this.destroy();\r\n }\r\n\r\n destroy(): void {\r\n this.destroy$.next();\r\n this.destroy$.complete();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy();\r\n }\r\n}\r\n","<div\r\n #container\r\n id=\"abp-http-error-container\"\r\n class=\"error\"\r\n [style.backgroundColor]=\"backgroundColor\"\r\n>\r\n @if (!hideCloseIcon) {\r\n <button id=\"abp-close-button\" type=\"button\" class=\"btn-close me-2\" (click)=\"destroy()\"></button>\r\n }\r\n\r\n @if (!customComponent) {\r\n <div class=\"row centered\">\r\n <div class=\"col-md-12\">\r\n <div class=\"error-template\">\r\n <h1>{{ statusText }} {{ title | abpLocalization }}</h1>\r\n <div class=\"error-details\">\r\n {{ details | abpLocalization }}\r\n </div>\r\n <div class=\"error-actions\">\r\n @if (isHomeShow) {\r\n <a (click)=\"goHome()\" class=\"btn btn-primary btn-md mt-2\"\r\n ><span class=\"glyphicon glyphicon-home\"></span>\r\n {{ { key: '::Menu:Home', defaultValue: 'Home' } | abpLocalization }}\r\n </a>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n</div>\r\n","import { ChangeDetectorRef, Component, OnDestroy, OnInit, inject, input, effect, signal } from '@angular/core';\r\nimport { combineLatest, Subscription, timer } from 'rxjs';\r\nimport { HttpWaitService, RouterWaitService, SubscriptionService } from '@abp/ng.core';\r\n\r\n@Component({\r\n selector: 'abp-loader-bar',\r\n template: `\r\n <div id=\"abp-loader-bar\" [class]=\"containerClass()\" [class.is-loading]=\"isLoading()\">\r\n <div\r\n class=\"abp-progress\"\r\n [class.progressing]=\"progressLevel\"\r\n [style.width.vw]=\"progressLevel\"\r\n [style]=\"{\r\n 'background-color': color(),\r\n 'box-shadow': boxShadow,\r\n }\"\r\n ></div>\r\n </div>\r\n `,\r\n styleUrls: ['./loader-bar.component.scss'],\r\n providers: [SubscriptionService],\r\n imports: [],\r\n})\r\nexport class LoaderBarComponent implements OnDestroy, OnInit {\r\n private cdRef = inject(ChangeDetectorRef);\r\n private subscription = inject(SubscriptionService);\r\n private httpWaitService = inject(HttpWaitService);\r\n private routerWaitService = inject(RouterWaitService);\r\n\r\n readonly isLoadingInput = input(false, { alias: 'isLoading' });\r\n readonly containerClass = input('abp-loader-bar');\r\n readonly color = input('#77b6ff');\r\n\r\n protected readonly isLoading = signal(false);\r\n\r\n progressLevel = 0;\r\n interval = new Subscription();\r\n timer = new Subscription();\r\n intervalPeriod = 350;\r\n stopDelay = 800;\r\n\r\n constructor() {\r\n effect(() => {\r\n const value = this.isLoadingInput();\r\n this.isLoading.set(value);\r\n this.cdRef.detectChanges();\r\n });\r\n }\r\n\r\n private readonly clearProgress = () => {\r\n this.progressLevel = 0;\r\n this.cdRef.detectChanges();\r\n };\r\n\r\n private readonly reportProgress = () => {\r\n if (this.progressLevel < 75) {\r\n this.progressLevel += 1 + Math.random() * 9;\r\n } else if (this.progressLevel < 90) {\r\n this.progressLevel += 0.4;\r\n } else if (this.progressLevel < 100) {\r\n this.progressLevel += 0.1;\r\n } else {\r\n this.interval.unsubscribe();\r\n }\r\n this.cdRef.detectChanges();\r\n };\r\n\r\n get boxShadow(): string {\r\n return `0 0 10px rgba(${this.color()}, 0.5)`;\r\n }\r\n\r\n ngOnInit() {\r\n this.subscribeLoading();\r\n }\r\n\r\n subscribeLoading() {\r\n this.subscription.addOne(\r\n combineLatest([this.httpWaitService.getLoading$(), this.routerWaitService.getLoading$()]),\r\n ([httpLoading, routerLoading]) => {\r\n if (httpLoading || routerLoading) this.startLoading();\r\n else this.stopLoading();\r\n },\r\n );\r\n }\r\n\r\n ngOnDestroy() {\r\n this.interval.unsubscribe();\r\n }\r\n\r\n startLoading() {\r\n if (this.isLoading() || !this.interval.closed) return;\r\n\r\n this.isLoading.set(true);\r\n this.progressLevel = 0;\r\n this.cdRef.detectChanges();\r\n this.interval = timer(0, this.intervalPeriod).subscribe(this.reportProgress);\r\n this.timer.unsubscribe();\r\n }\r\n\r\n stopLoading() {\r\n this.interval.unsubscribe();\r\n\r\n this.progressLevel = 100;\r\n this.isLoading.set(false);\r\n\r\n if (!this.timer.closed) return;\r\n\r\n this.timer = timer(this.stopDelay).subscribe(this.clearProgress);\r\n }\r\n}\r\n","import { Component, ViewEncapsulation } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'abp-loading',\r\n template: `\r\n <div class=\"abp-loading\">\r\n <i class=\"fa fa-spinner fa-pulse abp-spinner\" aria-hidden=\"true\"></i>\r\n </div>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n styles: [\r\n `\r\n .abp-loading {\r\n position: absolute;\r\n width: 100%;\r\n height: 100%;\r\n top: 0;\r\n left: 0;\r\n z-index: 1040;\r\n }\r\n\r\n .abp-loading .abp-spinner {\r\n position: absolute;\r\n top: 50%;\r\n left: 50%;\r\n font-size: 14px;\r\n -moz-transform: translateX(-50%) translateY(-50%);\r\n -o-transform: translateX(-50%) translateY(-50%);\r\n -ms-transform: translateX(-50%) translateY(-50%);\r\n -webkit-transform: translateX(-50%) translateY(-50%);\r\n transform: translateX(-50%) translateY(-50%);\r\n }\r\n `,\r\n ],\r\n imports: [],\r\n})\r\nexport class LoadingComponent {}\r\n","import { Injector, Type } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\n\r\nexport interface Badge {\r\n count?: number | Observable<number>;\r\n color?: string;\r\n icon?: string;\r\n}\r\n\r\nexport class NavItem {\r\n id?: string | number;\r\n name?: string;\r\n description?: string;\r\n badge?: Badge;\r\n component?: Type<any>;\r\n html?: string;\r\n action?: () => void;\r\n order?: number;\r\n requiredPolicy?: string;\r\n visible?: NavBarPropPredicate<NavItem>;\r\n icon?: string;\r\n constructor(props: Partial<NavItem>) {\r\n Object.assign(this, props);\r\n }\r\n}\r\n\r\nexport type NavBarPropPredicate<T> = (\r\n prop?: T,\r\n injector?: Injector,\r\n) => boolean | Promise<boolean> | Observable<boolean>;\r\n","import { NavItem } from './nav-item';\r\n\r\nexport class UserMenu extends NavItem {\r\n textTemplate?: UserMenuTextTemplate;\r\n}\r\n\r\nexport interface UserMenuTextTemplate {\r\n text: string;\r\n icon?: string;\r\n}\r\n","import { ContentProjectionService, LocalizationParam, PROJECTION_STRATEGY } from '@abp/ng.core';\r\nimport { ComponentRef, Injectable, inject } from '@angular/core';\r\nimport { fromEvent, Observable, ReplaySubject, Subject } from 'rxjs';\r\nimport { debounceTime, filter, takeUntil } from 'rxjs/operators';\r\nimport { ConfirmationComponent } from '../components/confirmation/confirmation.component';\r\nimport { Confirmation } from '../models/confirmation';\r\nimport { DOCUMENT } from '@angular/common';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ConfirmationService {\r\n private contentProjectionService = inject(ContentProjectionService);\r\n private document = inject(DOCUMENT);\r\n\r\n status$!: Subject<Confirmation.Status>;\r\n confirmation$ = new ReplaySubject<Confirmation.DialogData | null>(1);\r\n\r\n private containerComponentRef!: ComponentRef<ConfirmationComponent>;\r\n\r\n clear = (status: Confirmation.Status = Confirmation.Status.dismiss) => {\r\n this.confirmation$.next(null);\r\n this.status$.next(status);\r\n };\r\n\r\n private setContainer() {\r\n this.containerComponentRef = this.contentProjectionService.projectContent(\r\n PROJECTION_STRATEGY.AppendComponentToBody(ConfirmationComponent, {\r\n confirmation$: this.confirmation$,\r\n clear: this.clear,\r\n }),\r\n );\r\n\r\n setTimeout(() => {\r\n this.containerComponentRef.changeDetectorRef.detectChanges();\r\n }, 0);\r\n }\r\n\r\n info(\r\n message: LocalizationParam,\r\n title: LocalizationParam,\r\n options?: Partial<Confirmation.Options>,\r\n ): Observable<Confirmation.Status> {\r\n return this.show(message, title, 'info', options);\r\n }\r\n\r\n success(\r\n message: LocalizationParam,\r\n title: LocalizationParam,\r\n options?: Partial<Confirmation.Options>,\r\n ): Observable<Confirmation.Status> {\r\n return this.show(message, title, 'success', options);\r\n }\r\n\r\n warn(\r\n message: LocalizationParam,\r\n title: LocalizationParam,\r\n options?: Partial<Confirmation.Options>,\r\n ): Observable<Confirmation.Status> {\r\n return this.show(message, title, 'warning', options);\r\n }\r\n\r\n error(\r\n message: LocalizationParam,\r\n title: LocalizationParam,\r\n options?: Partial<Confirmation.Options>,\r\n ): Observable<Confirmation.Status> {\r\n return this.show(message, title, 'error', options);\r\n }\r\n\r\n show(\r\n message: LocalizationParam,\r\n title: LocalizationParam,\r\n severity?: Confirmation.Severity,\r\n options = {} as Partial<Confirmation.Options>,\r\n ): Observable<Confirmation.Status> {\r\n if (!this.containerComponentRef) this.setContainer();\r\n\r\n this.confirmation$.next({\r\n message,\r\n title,\r\n severity: severity || 'neutral',\r\n options,\r\n });\r\n\r\n this.status$ = new Subject();\r\n const { dismissible = true } = options;\r\n if (dismissible) this.listenToEscape();\r\n\r\n return this.status$;\r\n }\r\n\r\n private listenToEscape() {\r\n fromEvent<KeyboardEvent>(this.document, 'keyup')\r\n .pipe(\r\n takeUntil(this.status$),\r\n debounceTime(150),\r\n filter((key: KeyboardEvent) => key && key.key === 'Escape'),\r\n )\r\n .subscribe(() => {\r\n this.clear();\r\n });\r\n }\r\n}\r\n","import { BehaviorSubject, Observable } from 'rxjs';\r\nimport { NavItem } from '../models/nav-item';\r\nimport { inject, Type } from '@angular/core';\r\nimport { SORT_COMPARE_FUNC, SortableItem } from '@abp/ng.core';\r\n\r\nexport abstract class AbstractMenuService<T extends NavItem> {\r\n protected abstract baseClass: Type<any>;\r\n\r\n protected readonly sortFn: (a: SortableItem, b: SortableItem) => number;\r\n\r\n protected _items$ = new BehaviorSubject<T[]>([]);\r\n\r\n get items(): T[] {\r\n return this._items$.value;\r\n }\r\n\r\n get items$(): Observable<T[]> {\r\n return this._items$.asObservable();\r\n }\r\n\r\n constructor() {\r\n this.sortFn = inject(SORT_COMPARE_FUNC);\r\n }\r\n\r\n addItems(newItems: T[]) {\r\n const items = [...this.items];\r\n newItems.forEach(item => {\r\n const index = items.findIndex(i => i.id === item.id);\r\n const data = new this.baseClass(item);\r\n\r\n if (index > -1) {\r\n items[index] = data;\r\n return;\r\n }\r\n\r\n items.push(data);\r\n });\r\n items.sort(this.sortItems);\r\n this._items$.next(items);\r\n }\r\n\r\n removeItem(id: string | number) {\r\n const index = this.items.findIndex(item => item.id === id);\r\n\r\n if (index < 0) return;\r\n\r\n const items = [...this.items.slice(0, index), ...this.items.slice(index + 1)];\r\n this._items$.next(items);\r\n }\r\n\r\n patchItem(id: string | number, item: Partial<Omit<T, 'id'>>) {\r\n const index = this.items.findIndex(i => i.id === id);\r\n\r\n if (index < 0) return;\r\n\r\n const items = [...this.items];\r\n items[index] = new this.baseClass({ ...items[index], ...item });\r\n items.sort(this.sortItems);\r\n this._items$.next(items);\r\n }\r\n\r\n sortItems = (a: T, b: T) => {\r\n return this.sortFn(a, b);\r\n };\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { NavItem } from '../models/nav-item';\r\nimport { AbstractMenuService } from './abstract-menu.service';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class NavItemsService extends AbstractMenuService<NavItem> {\r\n protected baseClass = NavItem;\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { InternalStore } from '@abp/ng.core';\r\n\r\nexport interface PageAlert {\r\n type: 'primary' | 'secondary' | 'success' | 'danger' | 'warning' | 'info' | 'light' | 'dark';\r\n message: string;\r\n dismissible?: boolean;\r\n title?: string;\r\n messageLocalizationParams?: string[];\r\n titleLocalizationParams?: string[];\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class PageAlertService {\r\n private alerts = new InternalStore<PageAlert[]>([]);\r\n\r\n alerts$ = this.alerts.sliceState(state => state);\r\n\r\n show(alert: PageAlert) {\r\n const newAlert: PageAlert = {\r\n ...alert,\r\n dismissible: alert.dismissible ?? true,\r\n };\r\n this.alerts.set([newAlert, ...this.alerts.state]);\r\n }\r\n\r\n remove(index: number) {\r\n const alerts = [...this.alerts.state];\r\n alerts.splice(index, 1);\r\n this.alerts.set(alerts);\r\n }\r\n}\r\n","import { Component, OnInit, input, output } from '@angular/core';\r\nimport { Toaster } from '../../models/toaster';\r\nimport { LocalizationPipe } from '@abp/ng.core';\r\n\r\n@Component({\r\n selector: 'abp-toast',\r\n templateUrl: './toast.component.html',\r\n styleUrls: ['./toast.component.scss'],\r\n imports: [LocalizationPipe],\r\n})\r\nexport class ToastComponent implements OnInit {\r\n readonly toast = input.required<Toaster.Toast>();\r\n\r\n readonly remove = output<number>();\r\n\r\n get severityClass(): string {\r\n const toast = this.toast();\r\n if (!toast || !toast.severity) return '';\r\n return `abp-toast-${toast.severity}`;\r\n }\r\n\r\n get iconClass(): string {\r\n const { iconClass } = this.toast().options || {};\r\n\r\n if (iconClass) {\r\n return iconClass;\r\n }\r\n\r\n switch (this.toast().severity) {\r\n case 'success':\r\n return 'bi-check';\r\n case 'info':\r\n return 'bi-info-circle';\r\n case 'warning':\r\n return 'bi-exclamation-triangle';\r\n case 'error':\r\n return 'bi-shield-exclamation';\r\n default:\r\n return 'bi-exclamation-triangle';\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n const { sticky, life } = this.toast().options || {};\r\n\r\n if (sticky) return;\r\n const timeout = life || 5000;\r\n setTimeout(() => {\r\n this.close();\r\n }, timeout);\r\n }\r\n\r\n close() {\r\n this.remove.emit(this.toast().options?.id);\r\n }\r\n\r\n tap() {\r\n if (this.toast().options?.tapToDismiss) this.close();\r\n }\r\n}\r\n","<div class=\"abp-toast\" [class]=\"severityClass\" (click)=\"tap()\">\r\n <div class=\"abp-toast-icon\">\r\n <i class=\"bi icon\" [class]=\"iconClass\" aria-hidden=\"true\"></i>\r\n </div>\r\n <div class=\"abp-toast-content\">\r\n @if (toast().options?.closable) {\r\n <button class=\"abp-toast-close-button\" (click)=\"close()\">\r\n <i class=\"bi bi-x fs-4\" aria-hidden=\"true\"></i>\r\n </button>\r\n }\r\n <div class=\"abp-toast-title\">\r\n {{ toast().title | abpLocalization: toast().options?.titleLocalizationParams }}\r\n </div>\r\n <p class=\"abp-toast-message\"\r\n [innerHTML]=\"toast().message | abpLocalization: toast().options?.messageLocalizationParams\"></p>\r\n </div>\r\n</div>","import { Component, OnInit, input, signal, effect } from '@angular/core';\r\nimport { ReplaySubject } from 'rxjs';\r\nimport { toastInOut } from '../../animations/toast.animations';\r\nimport { Toaster } from '../../models/toaster';\r\nimport { ToastComponent } from '../toast/toast.component';\r\n\r\n@Component({\r\n selector: 'abp-toast-container',\r\n templateUrl: './toast-container.component.html',\r\n styleUrls: ['./toast-container.component.scss'],\r\n animations: [toastInOut],\r\n imports: [ToastComponent],\r\n host: {\r\n '(window:resize)': 'onWindowResize()'\r\n }\r\n})\r\nexport class ToastContainerComponent implements OnInit {\r\n toasts$!: ReplaySubject<Toaster.Toast[]>;\r\n\r\n remove!: (toastId: number) => void;\r\n\r\n toasts = [] as Toaster.Toast[];\r\n\r\n readonly top = input<string | undefined>(undefined);\r\n readonly rightInput = input('30px', { alias: 'right' });\r\n readonly bottom = input('30px');\r\n readonly left = input<string | undefined>(undefined);\r\n readonly toastKey = input<string | undefined>(undefined);\r\n\r\n protected readonly right = signal('30px');\r\n readonly defaultRight = '30px';\r\n readonly defaultMobileRight = '0';\r\n\r\n constructor() {\r\n effect(() => {\r\n this.right.set(this.rightInput());\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.setDefaultRight();\r\n this.toasts$.subscribe(toasts => {\r\n this.toasts = this.toastKey()\r\n ? toasts.filter(t => {\r\n return t.options && t.options.containerKey !== this.toastKey();\r\n })\r\n : toasts;\r\n });\r\n }\r\n\r\n onWindowResize() {\r\n this.setDefaultRight();\r\n }\r\n\r\n setDefaultRight() {\r\n const screenWidth = window.innerWidth;\r\n if (screenWidth < 768 && this.right() === this.defaultRight) {\r\n this.right.set(this.defaultMobileRight);\r\n }\r\n }\r\n\r\n trackByFunc(index: number, toast: Toaster.Toast) {\r\n if (!toast) return null;\r\n return toast.options?.id;\r\n }\r\n}\r\n","<div\r\n class=\"abp-toast-container\"\r\n [style.top]=\"top() || 'auto'\"\r\n [style.right]=\"right() || 'auto'\"\r\n [style.bottom]=\"bottom() || 'auto'\"\r\n [style.left]=\"left() || 'auto'\"\r\n [style.display]=\"toasts.length ? 'flex' : 'none'\"\r\n [@toastInOut]=\"toasts.length\"\r\n>\r\n @for (toast of toasts; track toast.options?.id) {\r\n <abp-toast\r\n [toast]=\"toast\"\r\n (remove)=\"remove($event)\"\r\n ></abp-toast>\r\n }\r\n</div>\r\n","import {\r\n ContentProjectionService,\r\n LocalizationParam,\r\n PROJECTION_STRATEGY,\r\n Strict,\r\n} from '@abp/ng.core';\r\nimport { ComponentRef, inject, Injectable } from '@angular/core';\r\nimport { ReplaySubject } from 'rxjs';\r\nimport { ToastContainerComponent } from '../components/toast-container/toast-container.component';\r\nimport { Toaster } from '../models';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ToasterService implements ToasterContract {\r\n private toasts$ = new ReplaySubject<Toaster.Toast[]>(1);\r\n\r\n private lastId = -1;\r\n\r\n private toasts = [] as Toaster.Toast[];\r\n\r\n private containerComponentRef!: ComponentRef<ToastContainerComponent>;\r\n private contentProjectionService: ContentProjectionService;\r\n\r\n private setContainer() {\r\n this.containerComponentRef = this.contentProjectionService.projectContent(\r\n PROJECTION_STRATEGY.AppendComponentToBody(ToastContainerComponent, {\r\n toasts$: this.toasts$,\r\n remove: this.remove,\r\n }),\r\n );\r\n\r\n this.containerComponentRef.changeDetectorRef.detectChanges();\r\n }\r\n\r\n constructor() {\r\n this.contentProjectionService = inject(ContentProjectionService);\r\n }\r\n\r\n /**\r\n * Creates an info toast with given parameters.\r\n * @param message Content of the toast\r\n * @param title Title of the toast\r\n * @param options Spesific style or structural options for individual toast\r\n */\r\n info(\r\n message: LocalizationParam,\r\n title?: LocalizationParam,\r\n options?: Partial<Toaster.ToastOptions>,\r\n ): Toaster.ToasterId {\r\n return this.show(message, title, 'info', options);\r\n }\r\n\r\n /**\r\n * Creates a success toast with given parameters.\r\n * @param message Content of the toast\r\n * @param title Title of the toast\r\n * @param options Spesific style or structural options for individual toast\r\n */\r\n success(\r\n message: LocalizationParam,\r\n title?: LocalizationParam,\r\n options?: Partial<Toaster.ToastOptions>,\r\n ): Toaster.ToasterId {\r\n return this.show(message, title, 'success', options);\r\n }\r\n\r\n /**\r\n * Creates a warning toast with given parameters.\r\n * @param message Content of the toast\r\n * @param title Title of the toast\r\n * @param options Spesific style or structural options for individual toast\r\n */\r\n warn(\r\n message: LocalizationParam,\r\n title?: LocalizationParam,\r\n options?: Partial<Toaster.ToastOptions>,\r\n ): Toaster.ToasterId {\r\n return this.show(message, title, 'warning', options);\r\n }\r\n\r\n /**\r\n * Creates an error toast with given parameters.\r\n * @param message Content of the toast\r\n * @param title Title of the toast\r\n * @param options Spesific style or structural options for individual toast\r\n */\r\n error(\r\n message: LocalizationParam,\r\n title?: LocalizationParam,\r\n options?: Partial<Toaster.ToastOptions>,\r\n ): Toaster.ToasterId {\r\n return this.show(message, title, 'error', options);\r\n }\r\n\r\n /**\r\n * Creates a toast with given parameters.\r\n * @param message Content of the toast\r\n * @param title Title of the toast\r\n * @param severity Sets color of the toast. \"success\", \"warning\" etc.\r\n * @param options Spesific style or structural options for individual toast\r\n */\r\n\r\n show(\r\n message: LocalizationParam,\r\n title: LocalizationParam | undefined = undefined,\r\n severity: Toaster.Severity = 'neutral',\r\n options = {} as Partial<Toaster.ToastOptions>,\r\n ): Toaster.ToasterId {\r\n if (!this.containerComponentRef) this.setContainer();\r\n\r\n const id = ++this.lastId;\r\n this.toasts.push({\r\n message,\r\n title,\r\n severity,\r\n options: { closable: true, id, ...options },\r\n });\r\n this.toasts$.next(this.toasts);\r\n return id;\r\n }\r\n\r\n /**\r\n * Removes the toast with given id.\r\n * @param id ID of the toast to be removed.\r\n */\r\n remove = (id: number) => {\r\n this.toasts = this.toasts.filter(toast => toast.options?.id !== id);\r\n this.toasts$.next(this.toasts);\r\n };\r\n\r\n /**\r\n * Removes all open toasts at once.\r\n */\r\n clear(containerKey?: string): void {\r\n this.toasts = !containerKey\r\n ? []\r\n : this.toasts.filter(toast => toast.options?.containerKey !== containerKey);\r\n this.toasts$.next(this.toasts);\r\n }\r\n}\r\n\r\nexport type ToasterContract = Strict<ToasterService, Toaster.Service>;\r\n","import { Injectable } from '@angular/core';\r\nimport { UserMenu } from '../models/user-menu';\r\nimport { AbstractMenuService } from './abstract-menu.service';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class UserMenuService extends AbstractMenuService<UserMenu> {\r\n protected baseClass = UserMenu;\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\nimport { CustomHttpErrorHandlerService, HttpErrorConfig, HttpErrorHandler } from '../models/common';\r\n\r\nexport const HTTP_ERROR_CONFIG = new InjectionToken<HttpErrorConfig>('HTTP_ERROR_CONFIG');\r\n\r\n/**\r\n @deprecated use **`CUSTOM_ERROR_HANDLERS`** injection token instead of this, see more info https://abp.io/docs/latest/framework/ui/angular/http-requests\r\n*/\r\nexport const HTTP_ERROR_HANDLER = new InjectionToken<HttpErrorHandler>('HTTP_ERROR_HANDLER');\r\n\r\nexport const CUSTOM_ERROR_HANDLERS = new InjectionToken<CustomHttpErrorHandlerService[]>(\r\n 'CUSTOM_ERROR_HANDLERS',\r\n);\r\n","import {\r\n ApplicationRef,\r\n ComponentRef,\r\n createComponent,\r\n EmbeddedViewRef,\r\n EnvironmentInjector,\r\n inject,\r\n Injectable,\r\n Injector,\r\n RendererFactory2,\r\n} from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { ResolveEnd } from '@angular/router';\r\nimport { Subject } from 'rxjs';\r\nimport { filter } from 'rxjs/operators';\r\nimport { RouterEvents } from '@abp/ng.core';\r\nimport { HTTP_ERROR_CONFIG } from '../tokens/http-error.token';\r\nimport { HttpErrorWrapperComponent } from '../components/http-error-wrapper/http-error-wrapper.component';\r\nimport { ErrorScreenErrorCodes } from '../models/common';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class CreateErrorComponentService {\r\n protected readonly document = inject(DOCUMENT);\r\n protected readonly rendererFactory = inject(RendererFactory2);\r\n protected readonly routerEvents = inject(RouterEvents);\r\n protected readonly injector = inject(Injector);\r\n protected readonly envInjector = inject(EnvironmentInjector);\r\n protected readonly httpErrorConfig = inject(HTTP_ERROR_CONFIG);\r\n\r\n componentRef: ComponentRef<HttpErrorWrapperComponent> | null = null;\r\n\r\n constructor() {\r\n this.listenToRouterDataResolved();\r\n }\r\n\r\n protected listenToRouterDataResolved(): void {\r\n this.routerEvents\r\n .getEvents(ResolveEnd)\r\n .pipe(filter(() => !!this.componentRef))\r\n .subscribe(() => {\r\n this.componentRef?.destroy();\r\n this.componentRef = null;\r\n });\r\n }\r\n\r\n protected getErrorHostElement(): HTMLElement {\r\n return this.document.body;\r\n }\r\n\r\n protected isCloseIconHidden(): boolean {\r\n return !!this.httpErrorConfig?.errorScreen?.hideCloseIcon;\r\n }\r\n\r\n canCreateCustomError(status: ErrorScreenErrorCodes) {\r\n const { component, forWhichErrors } = this.httpErrorConfig?.errorScreen || {};\r\n\r\n if (!component || !forWhichErrors) {\r\n return false;\r\n }\r\n\r\n return forWhichErrors.indexOf(status) > -1;\r\n }\r\n\r\n execute(instance: Partial<HttpErrorWrapperComponent>): void {\r\n const renderer = this.rendererFactory.createRenderer(null, null);\r\n const hostElement = this.getErrorHostElement();\r\n const host = renderer.selectRootElement(hostElement, true);\r\n\r\n this.componentRef = createComponent(HttpErrorWrapperComponent, {\r\n environmentInjector: this.envInjector,\r\n });\r\n\r\n for (const key in instance) {\r\n /* istanbul ignore else */\r\n if (Object.prototype.hasOwnProperty.call(this.componentRef.instance, key)) {\r\n (this.componentRef.instance as any)[key] = (instance as any)[key];\r\n }\r\n }\r\n\r\n this.componentRef.instance.hideCloseIcon = this.isCloseIconHidden();\r\n const appRef = this.injector.get(ApplicationRef);\r\n\r\n if (this.canCreateCustomError(instance.status as ErrorScreenErrorCodes)) {\r\n this.componentRef.instance.appRef = appRef;\r\n this.componentRef.instance.environmentInjector = this.envInjector;\r\n this.componentRef.instance.customComponent = this.httpErrorConfig.errorScreen?.component;\r\n }\r\n\r\n appRef.attachView(this.componentRef.hostView);\r\n renderer.appendChild(host, (this.componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0]);\r\n\r\n const destroy$ = new Subject<void>();\r\n this.componentRef.instance.destroy$ = destroy$;\r\n\r\n destroy$.subscribe(() => {\r\n this.componentRef?.destroy();\r\n this.componentRef = null;\r\n });\r\n }\r\n}\r\n","export const DEFAULT_ERROR_MESSAGES = {\r\n defaultError: {\r\n title: 'An error has occurred!',\r\n details: 'Error detail not sent by server.',\r\n },\r\n defaultError401: {\r\n title: 'You are not authenticated!',\r\n details: 'You should be authenticated (sign in) in order to perform this operation.',\r\n },\r\n defaultError403: {\r\n title: 'You are not authorized!',\r\n details: 'You are not allowed to perform this operation.',\r\n },\r\n defaultError404: {\r\n title: 'Resource not found!',\r\n details: 'The resource requested could not found on the server.',\r\n },\r\n defaultError500: {\r\n title: 'Internal server error',\r\n details: 'Error detail not sent by server.',\r\n },\r\n};\r\n\r\nexport const DEFAULT_ERROR_LOCALIZATIONS = {\r\n defaultError: {\r\n title: 'AbpUi::DefaultErrorMessage',\r\n details: 'AbpUi::DefaultErrorMessageDetail',\r\n },\r\n defaultError401: {\r\n title: 'AbpUi::DefaultErrorMessage401',\r\n details: 'AbpUi::DefaultErrorMessage401Detail',\r\n },\r\n defaultError403: {\r\n title: 'AbpUi::DefaultErrorMessage403',\r\n details: 'AbpUi::DefaultErrorMessage403Detail',\r\n },\r\n defaultError404: {\r\n title: 'AbpUi::DefaultErrorMessage404',\r\n details: 'AbpUi::DefaultErrorMessage404Detail',\r\n },\r\n defaultError500: {\r\n title: 'AbpUi::500Message',\r\n details: 'AbpUi::DefaultErrorMessage',\r\n },\r\n};\r\n\r\nexport const CUSTOM_HTTP_ERROR_HANDLER_PRIORITY = Object.freeze({\r\n veryLow: -99,\r\n low: -9,\r\n normal: 0,\r\n high: 9,\r\n veryHigh: 99,\r\n});\r\n\r\nexport const HTTP_ERROR_STATUS = {\r\n '401': 'AbpUi::401Message',\r\n '403': 'AbpUi::403Message',\r\n '404': 'AbpUi::404Message',\r\n '500': 'AbpUi::500Message',\r\n};\r\n\r\nexport const HTTP_ERROR_DETAIL = {\r\n '401': 'AbpUi::DefaultErrorMessage401Detail',\r\n '403': 'AbpUi::DefaultErrorMessage403Detail',\r\n '404': 'AbpUi::DefaultErrorMessage404Detail',\r\n '500': 'AbpUi::DefaultErrorMessage',\r\n};\r\n","import { LocalizationParam } from '@abp/ng.core';\r\nimport { DEFAULT_ERROR_LOCALIZATIONS, DEFAULT_ERROR_MESSAGES } from '../constants/default-errors';\r\n\r\nexport function getErrorFromRequestBody(body: { details?: string; message?: string } | undefined) {\r\n let message: LocalizationParam;\r\n let title: LocalizationParam;\r\n\r\n if (body.details) {\r\n message = body.details;\r\n title = body.message;\r\n } else if (body.message) {\r\n title = {\r\n key: DEFAULT_ERROR_LOCALIZATIONS.defaultError.title,\r\n defaultValue: DEFAULT_ERROR_MESSAGES.defaultError.title,\r\n };\r\n message = body.message;\r\n } else {\r\n message = {\r\n key: DEFAULT_ERROR_LOCALIZATIONS.defaultError.title,\r\n defaultValue: DEFAULT_ERROR_MESSAGES.defaultError.title,\r\n };\r\n title = '';\r\n }\r\n\r\n return { message, title };\r\n}\r\n","import { inject, Injectable } from '@angular/core';\r\nimport { AuthService } from '@abp/ng.core';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { getErrorFromRequestBody } from '../utils/error.utils';\r\nimport { CustomHttpErrorHandlerService } from '../models/common';\r\nimport { ConfirmationService } from '../services/confirmation.service';\r\nimport { CUSTOM_HTTP_ERROR_HANDLER_PRIORITY } from '../constants/default-errors';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class AbpFormatErrorHandlerService implements CustomHttpErrorHandlerService {\r\n readonly priority = CUSTOM_HTTP_ERROR_HANDLER_PRIORITY.high;\r\n private confirmationService = inject(ConfirmationService);\r\n private authService = inject(AuthService);\r\n private error: HttpErrorResponse | undefined = undefined;\r\n\r\n private navigateToLogin() {\r\n return this.authService.navigateToLogin();\r\n }\r\n\r\n canHandle(error: unknown): boolean {\r\n if (error instanceof HttpErrorResponse && error.headers.get('_AbpErrorFormat')) {\r\n this.error = error;\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n execute() {\r\n const { message, title } = getErrorFromRequestBody(this.error?.error?.error);\r\n this.confirmationService\r\n .error(message, title, {\r\n hideCancelBtn: true,\r\n yesText: 'AbpAccount::Close',\r\n })\r\n .subscribe(() => {\r\n if (this.error?.status === 401) {\r\n this.navigateToLogin();\r\n }\r\n });\r\n }\r\n}\r\n","import { CustomHttpErrorHandlerService } from '../models/common';\r\nimport { inject, Injectable } from '@angular/core';\r\nimport { AuthService, SessionStateService } from '@abp/ng.core';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { CUSTOM_HTTP_ERROR_HANDLER_PRIORITY } from '../constants/default-errors';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class TenantResolveErrorHandlerService implements CustomHttpErrorHandlerService {\r\n protected readonly sessionService = inject(SessionStateService);\r\n readonly priority = CUSTOM_HTTP_ERROR_HANDLER_PRIORITY.high;\r\n private authService = inject(AuthService);\r\n private isTenantResolveError(error: unknown) {\r\n return error instanceof HttpErrorResponse && !!error.headers.get('Abp-Tenant-Resolve-Error');\r\n }\r\n\r\n canHandle(error: unknown): boolean {\r\n return this.isTenantResolveError(error);\r\n }\r\n\r\n execute() {\r\n this.sessionService.setTenant(null);\r\n this.authService.logout().subscribe();\r\n }\r\n}\r\n","import { Confirmation, CustomHttpErrorHandlerService } from '../models';\r\nimport {\r\n CUSTOM_HTTP_ERROR_HANDLER_PRIORITY,\r\n DEFAULT_ERROR_LOCALIZATIONS,\r\n DEFAULT_ERROR_MESSAGES,\r\n} from '../constants/default-errors';\r\nimport { AuthService, LocalizationParam } from '@abp/ng.core';\r\nimport { Observable } from 'rxjs';\r\nimport { inject, Injectable } from '@angular/core';\r\nimport { ConfirmationService } from './confirmation.service';\r\nimport { CreateErrorComponentService } from './create-error-component.service';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class StatusCodeErrorHandlerService implements CustomHttpErrorHandlerService {\r\n protected readonly confirmationService = inject(ConfirmationService);\r\n protected readonly createErrorComponentService = inject(CreateErrorComponentService);\r\n protected readonly authService = inject(AuthService);\r\n\r\n protected readonly handledStatusCodes = [401, 403, 404, 500] as const;\r\n protected status: (typeof this.handledStatusCodes)[number];\r\n\r\n readonly priority = CUSTOM_HTTP_ERROR_HANDLER_PRIORITY.normal;\r\n\r\n protected navigateToLogin(): void {\r\n this.authService.navigateToLogin();\r\n }\r\n\r\n protected showConfirmation(\r\n message: LocalizationParam,\r\n title: LocalizationParam,\r\n ): Observable<Confirmation.Status> {\r\n return this.confirmationService.error(message, title, {\r\n hideCancelBtn: true,\r\n yesText: 'AbpAccount::Close',\r\n });\r\n }\r\n\r\n protected showPage(): void {\r\n const key = `defaultError${this.status}`;\r\n const shouldRemoveDetail = [401, 404].indexOf(this.status) > -1;\r\n const instance = {\r\n title: {\r\n key: DEFAULT_ERROR_LOCALIZATIONS[key]?.title,\r\n defaultValue: DEFAULT_ERROR_MESSAGES[key]?.title,\r\n },\r\n details: {\r\n key: DEFAULT_ERROR_LOCALIZATIONS[key]?.details,\r\n defaultValue: DEFAULT_ERROR_MESSAGES[key]?.details,\r\n },\r\n status: this.status,\r\n };\r\n\r\n if (shouldRemoveDetail) {\r\n delete instance.details;\r\n }\r\n\r\n this.createErrorComponentService.execute(instance);\r\n }\r\n\r\n canHandle(error): boolean {\r\n this.status = error?.status || 0;\r\n return this.handledStatusCodes.indexOf(this.status) > -1;\r\n }\r\n\r\n execute(): void {\r\n const key = `defaultError${this.status}`;\r\n const title = {\r\n key: DEFAULT_ERROR_LOCALIZATIONS[key]?.title,\r\n defaultValue: DEFAULT_ERROR_MESSAGES[key]?.title,\r\n };\r\n const message = {\r\n key: DEFAULT_ERROR_LOCALIZATIONS[key]?.details,\r\n defaultValue: DEFAULT_ERROR_MESSAGES[key]?.details,\r\n };\r\n\r\n const canCreateCustomError = this.createErrorComponentService.canCreateCustomError(this.status);\r\n\r\n switch (this.status) {\r\n case 401:\r\n case 404:\r\n if (canCreateCustomError) {\r\n this.showPage();\r\n break;\r\n }\r\n\r\n if (this.status === 401) {\r\n this.authService.navigateToLogin();\r\n break;\r\n }\r\n\r\n this.showConfirmation(title, message).subscribe();\r\n break;\r\n case 403:\r\n case 500:\r\n this.showPage();\r\n break;\r\n }\r\n }\r\n}\r\n","import { CustomHttpErrorHandlerService } from '../models';\r\nimport {\r\n CUSTOM_HTTP_ERROR_HANDLER_PRIORITY,\r\n DEFAULT_ERROR_LOCALIZATIONS,\r\n DEFAULT_ERROR_MESSAGES,\r\n} from '../constants/default-errors';\r\nimport { inject, Injectable } from '@angular/core';\r\nimport { CreateErrorComponentService } from './create-error-component.service';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class UnknownStatusCodeErrorHandlerService implements CustomHttpErrorHandlerService {\r\n readonly priority = CUSTOM_HTTP_ERROR_HANDLER_PRIORITY.normal;\r\n private statusText = 'Unknown Error';\r\n private message = '';\r\n private createErrorComponentService = inject(CreateErrorComponentService);\r\n\r\n canHandle(error: { status: number; statusText: string; message: string } | undefined): boolean {\r\n if (error && error.status === 0 && error.statusText === this.statusText) {\r\n this.message = error.message;\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n execute() {\r\n this.createErrorComponentService.execute({\r\n title: {\r\n key: DEFAULT_ERROR_LOCALIZATIONS.defaultError.title,\r\n defaultValue: DEFAULT_ERROR_MESSAGES.defaultError.title,\r\n },\r\n details: this.message,\r\n isHomeShow: false,\r\n });\r\n }\r\n}\r\n","export default `\r\n.is-invalid .form-control {\r\n border-color: #dc3545;\r\n border-style: solid !important;\r\n padding-right: calc(1.5em + .75rem);\r\n background-image: url(data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e);\r\n background-repeat: no-repeat;\r\n background-position: right calc(.375em + .1875rem) center;\r\n background-size: calc(.75em + .375rem) calc(.75em + .375rem);\r\n}\r\n\r\n.is-invalid .invalid-feedback,\r\n.is-invalid + * .invalid-feedback {\r\n display: block;\r\n}\r\n\r\n.data-tables-filter {\r\n text-align: right;\r\n}\r\n\r\n[dir=rtl] .data-tables-filter {\r\n text-align: left;\r\n}\r\n\r\n.pointer {\r\n cursor: pointer;\r\n}\r\n\r\n.navbar .dropdown-submenu a::after {\r\n transform: rotate(-90deg);\r\n position: absolute;\r\n right: 16px;\r\n top: 18px;\r\n}\r\n\r\n.navbar .dropdown-menu {\r\n min-width: 215px;\r\n}\r\n\r\n.datatable-scroll {\r\n margin-bottom: 5px !important;\r\n width: unset !important;\r\n}\r\n\r\n.ui-table-scrollable-body::-webkit-scrollbar {\r\n height: 5px !important;\r\n width: 5px !important;\r\n}\r\n\r\n.ui-table-scrollable-body::-webkit-scrollbar-track {\r\n background: #ddd;\r\n}\r\n\r\n.ui-table-scrollable-body::-webkit-scrollbar-thumb {\r\n background: #8a8686;\r\n}\r\n\r\n.abp-ellipsis-inline {\r\n display: inline-block;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n white-space: nowrap;\r\n}\r\n\r\n.abp-ellipsis {\r\n overflow: hidden !important;\r\n text-overflow: ellipsis;\r\n white-space: nowrap;\r\n}\r\n\r\n.ui-widget-overlay {\r\n z-index: 1000;\r\n}\r\n\r\n.color-white {\r\n color: #FFF !important;\r\n}\r\n\r\n.custom-checkbox > label {\r\n cursor: pointer;\r\n}\r\n\r\n/* <animations */\r\n\r\n.fade-in-top {\r\n animation: fadeInTop 0.2s ease-in-out;\r\n}\r\n\r\n.fade-out-top {\r\n animation: fadeOutTop 0.2s ease-in-out;\r\n}\r\n\r\n.abp-collapsed-height {\r\n -moz-transition: max-height linear 0.35s;\r\n -ms-transition: max-height linear 0.35s;\r\n -o-transition: max-height linear 0.35s;\r\n -webkit-transition: max-height linear 0.35s;\r\n overflow:hidden;\r\n transition:max-height 0.35s linear;\r\n height:auto;\r\n max-height: 0;\r\n}\r\n\r\n.abp-mh-25 {\r\n max-height: 25vh;\r\n}\r\n\r\n.abp-mh-50 {\r\n transition:max-height 0.65s linear;\r\n max-height: 50vh;\r\n}\r\n\r\n.abp-mh-75 {\r\n transition:max-height 0.85s linear;\r\n max-height: 75vh;\r\n}\r\n\r\n.abp-mh-100 {\r\n transition:max-height 1s linear;\r\n max-height: 100vh;\r\n}\r\n\r\n[class^=\"sorting\"] {\r\n opacity: .3;\r\n cursor: pointer;\r\n}\r\n[class^=\"sorting\"]:before {\r\n right: 0.5rem;\r\n content: \"↑\";\r\n}\r\n[class^=\"sorting\"]:after {\r\n right: 0.5rem;\r\n content: \"↓\";\r\n}\r\n\r\n.sorting_desc {\r\n opacity: 1;\r\n}\r\n.sorting_desc:before {\r\n opacity: .3;\r\n}\r\n\r\n.sorting_asc {\r\n opacity: 1;\r\n}\r\n.sorting_asc:after {\r\n opacity: .3;\r\n}\r\n.ngx-datatable.material {\r\n box-shadow: none;\r\n}\r\nngb-typeahead-window, ngb-typeahead-window.dropdown-menu {\r\n max-height: 25em;\r\n overflow-y: scroll !important;\r\n z-index: 1050;\r\n}\r\n\r\n.abp-modal-header {\r\n word-break: break-word;\r\n}\r\n\r\n\r\n@keyframes fadeInTop {\r\n from {\r\n transform: translateY(-5px);\r\n opacity: 0;\r\n }\r\n\r\n to {\r\n transform: translateY(0px);\r\n opacity: 1;\r\n }\r\n}\r\n\r\n@keyframes fadeOutTop {\r\n to {\r\n transform: translateY(-5px);\r\n opacity: 0;\r\n }\r\n}\r\n\r\n/* </animations */\r\n.ngb-dp-body {\r\n z-index: 1055 !important;\r\n}\r\n`;\r\n","import { CONTENT_STRATEGY, DomInsertionService } from '@abp/ng.core';\r\nimport { inject, InjectionToken } from '@angular/core';\r\nimport styles from '../constants/styles';\r\n\r\nexport const THEME_SHARED_APPEND_CONTENT = new InjectionToken<void>('THEME_SHARED_APPEND_CONTENT', {\r\n providedIn: 'root',\r\n factory: () => {\r\n const domInsertion: DomInsertionService = inject(DomInsertionService);\r\n\r\n domInsertion.insertContent(CONTENT_STRATEGY.AppendStyleToHead(styles));\r\n },\r\n});\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport interface NgxDatatableMessages {\r\n emptyMessage: string;\r\n errorMessage: string;\r\n totalMessage: string;\r\n selectedMessage: string;\r\n}\r\n\r\nexport const defaultNgxDatatableMessages = {\r\n emptyMessage: 'AbpUi::NoDataAvailableInDatatable',\r\n errorMessage: 'AbpUi::ErrorLoadingDatatable',\r\n totalMessage: 'AbpUi::Total',\r\n selectedMessage: 'AbpUi::Selected',\r\n};\r\n\r\nexport const NGX_DATATABLE_MESSAGES = new InjectionToken<Partial<NgxDatatableMessages>>(\r\n 'NGX_DATATABLE_MESSAGES',\r\n);\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport const SUPPRESS_UNSAVED_CHANGES_WARNING = new InjectionToken<boolean>(\r\n 'SUPPRESS_UNSAVED_CHANGES_WARNING',\r\n);\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport const LOGO_URL_TOKEN = new InjectionToken<string>('LOGO_URL_TOKEN');\r\nexport const LOGO_APP_NAME_TOKEN = new InjectionToken<string>(\r\n 'LOGO_APP_NAME_TOKEN',\r\n);\r\n","import { InjectionToken } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\n\r\nexport const THEME_CHANGE_TOKEN = new InjectionToken<Observable<{ styleName: string }>>(\r\n 'THEME_CHANGE_TOKEN',\r\n);\r\n","import { inject, Injectable } from '@angular/core';\r\nimport { NavigationError } from '@angular/router';\r\nimport { filter } from 'rxjs/operators';\r\nimport { RouterEvents } from '@abp/ng.core';\r\nimport { HTTP_ERROR_CONFIG } from '../tokens/';\r\nimport { CreateErrorComponentService } from '../services';\r\nimport { DEFAULT_ERROR_LOCALIZATIONS, DEFAULT_ERROR_MESSAGES } from '../constants/default-errors';\r\nimport { ErrorScreenErrorCodes } from '../models';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class RouterErrorHandlerService {\r\n protected readonly routerEvents = inject(RouterEvents);\r\n protected readonly httpErrorConfig = inject(HTTP_ERROR_CONFIG);\r\n protected readonly createErrorComponentService = inject(CreateErrorComponentService);\r\n\r\n protected filterRouteErrors = (navigationError: NavigationError): boolean => {\r\n if (!this.httpErrorConfig?.skipHandledErrorCodes) {\r\n return true;\r\n }\r\n\r\n return (\r\n navigationError.error?.message?.indexOf('Cannot match') > -1 &&\r\n this.httpErrorConfig.skipHandledErrorCodes.findIndex(code => code === 404) < 0\r\n );\r\n };\r\n\r\n listen() {\r\n this.routerEvents\r\n .getNavigationEvents('Error')\r\n .pipe(filter(this.filterRouteErrors))\r\n .subscribe(() => this.show404Page());\r\n }\r\n\r\n show404Page() {\r\n const instance = {\r\n title: {\r\n key: DEFAULT_ERROR_LOCALIZATIONS.defaultError404.title,\r\n defaultValue: DEFAULT_ERROR_MESSAGES.defaultError404.title,\r\n },\r\n status: <ErrorScreenErrorCodes>404,\r\n };\r\n\r\n this.createErrorComponentService.execute(instance);\r\n }\r\n}\r\n","import { inject, Injectable } from '@angular/core';\r\nimport { AuthService, ConfigStateService } from '@abp/ng.core';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { CustomHttpErrorHandlerService } from '../models/common';\r\nimport { CUSTOM_HTTP_ERROR_HANDLER_PRIORITY } from '../constants/default-errors';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class AbpAuthenticationErrorHandler implements CustomHttpErrorHandlerService {\r\n readonly priority = CUSTOM_HTTP_ERROR_HANDLER_PRIORITY.veryHigh;\r\n protected readonly authService = inject(AuthService);\r\n protected readonly configStateService = inject(ConfigStateService);\r\n\r\n canHandle(error: unknown): boolean {\r\n return error instanceof HttpErrorResponse && error.status === 401;\r\n }\r\n\r\n execute() {\r\n this.configStateService.refreshAppState().subscribe(({ currentUser }) => {\r\n if (!currentUser.isAuthenticated) {\r\n this.authService.logout({ noRedirectToLogoutUrl: true });\r\n }\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nexport type ModalDismissMode = 'hard' | 'soft';\r\n\r\nexport interface DismissableModal {\r\n dismiss(mode: ModalDismissMode): void;\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ModalRefService {\r\n modalRefs: DismissableModal[] = [];\r\n\r\n register(modal: DismissableModal) {\r\n this.modalRefs.push(modal);\r\n }\r\n unregister(modal: DismissableModal) {\r\n const index = this.modalRefs.indexOf(modal);\r\n if (index > -1) {\r\n this.modalRefs.splice(index, 1);\r\n }\r\n }\r\n\r\n dismissAll(mode: ModalDismissMode) {\r\n this.modalRefs.forEach(modal => modal.dismiss(mode));\r\n }\r\n}\r\n","import {\r\n Component,\r\n DestroyRef,\r\n OnDestroy,\r\n OnInit,\r\n TemplateRef,\r\n contentChild,\r\n effect,\r\n inject,\r\n input,\r\n model,\r\n output,\r\n viewChild,\r\n} from '@angular/core';\r\nimport { DOCUMENT, NgTemplateOutlet } from '@angular/common';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { SubscriptionService, uuid } from '@abp/ng.core';\r\nimport { NgbModal, NgbModalOptions, NgbModalRef } from '@ng-bootstrap/ng-bootstrap';\r\nimport { fromEvent } from 'rxjs';\r\nimport { debounceTime, filter } from 'rxjs/operators';\r\nimport { Confirmation } from '../../models';\r\nimport { ConfirmationService } from '../../services';\r\nimport { SUPPRESS_UNSAVED_CHANGES_WARNING } from '../../tokens/suppress-unsaved-changes-warning.token';\r\nimport { ButtonComponent } from '../button/button.component';\r\nimport { DismissableModal, ModalDismissMode, ModalRefService } from './modal-ref.service';\r\n\r\nexport type ModalSize = 'sm' | 'md' | 'lg' | 'xl';\r\n\r\n@Component({\r\n selector: 'abp-modal',\r\n templateUrl: './modal.component.html',\r\n styleUrls: ['./modal.component.scss'],\r\n providers: [SubscriptionService],\r\n imports: [NgTemplateOutlet],\r\n})\r\nexport class ModalComponent implements OnInit, OnDestroy, DismissableModal {\r\n protected readonly confirmationService = inject(ConfirmationService);\r\n protected readonly modal = inject(NgbModal);\r\n protected readonly modalRefService = inject(ModalRefService);\r\n protected readonly suppressUnsavedChangesWarningToken = inject(SUPPRESS_UNSAVED_CHANGES_WARNING, {\r\n optional: true,\r\n });\r\n protected readonly destroyRef = inject(DestroyRef);\r\n private document = inject(DOCUMENT);\r\n\r\n visible = model<boolean>(false);\r\n\r\n busy = input(false, {\r\n transform: (value: boolean) => {\r\n if (this.abpSubmit() && this.abpSubmit() instanceof ButtonComponent) {\r\n this.abpSubmit().loading = value;\r\n }\r\n return value;\r\n },\r\n });\r\n\r\n options = input<NgbModalOptions>({ keyboard: true });\r\n\r\n suppressUnsavedChangesWarning = input(this.suppressUnsavedChangesWarningToken);\r\n\r\n modalContent = viewChild<TemplateRef<any>>('modalContent');\r\n\r\n abpHeader = contentChild<TemplateRef<any>>('abpHeader');\r\n\r\n abpBody = contentChild<TemplateRef<any>>('abpBody');\r\n\r\n abpFooter = contentChild<TemplateRef<any>>('abpFooter');\r\n\r\n abpSubmit = contentChild(ButtonComponent, { read: ButtonComponent });\r\n\r\n readonly init = output();\r\n\r\n readonly appear = output();\r\n\r\n readonly disappear = output();\r\n\r\n modalRef!: NgbModalRef;\r\n\r\n isConfirmationOpen = false;\r\n\r\n modalIdentifier = `modal-${uuid()}`;\r\n\r\n get modalWindowRef() {\r\n return this.document.querySelector(`ngb-modal-window.${this.modalIdentifier}`);\r\n }\r\n\r\n get isFormDirty(): boolean {\r\n return Boolean(this.modalWindowRef?.querySelector('.ng-dirty'));\r\n }\r\n\r\n constructor() {\r\n effect(() => {\r\n this.toggle(this.visible());\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.modalRefService.register(this);\r\n }\r\n\r\n dismiss(mode: ModalDismissMode) {\r\n switch (mode) {\r\n case 'hard':\r\n this.visible.set(false);\r\n break;\r\n case 'soft':\r\n this.close();\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n protected toggle(value: boolean) {\r\n this.visible.set(value);\r\n\r\n if (!value) {\r\n this.modalRef?.dismiss();\r\n this.disappear.emit();\r\n return;\r\n }\r\n\r\n setTimeout(() => this.listen(), 0);\r\n this.modalRef = this.modal.open(this.modalContent(), {\r\n size: 'md',\r\n centered: false,\r\n keyboard: false,\r\n scrollable: true,\r\n beforeDismiss: () => {\r\n if (!this.visible()) return true;\r\n\r\n this.close();\r\n return !this.visible();\r\n },\r\n ...this.options(),\r\n windowClass: `${this.options().windowClass || ''} ${this.modalIdentifier}`,\r\n });\r\n\r\n this.appear.emit();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.modalRefService.unregister(this);\r\n this.toggle(false);\r\n }\r\n\r\n close() {\r\n if (this.busy()) return;\r\n\r\n if (this.isFormDirty && !this.suppressUnsavedChangesWarning()) {\r\n if (this.isConfirmationOpen) return;\r\n\r\n this.isConfirmationOpen = true;\r\n this.confirmationService\r\n .warn('AbpUi::AreYouSureYouWantToCancelEditingWarningMessage', 'AbpUi::AreYouSure', {\r\n dismissible: false,\r\n })\r\n .subscribe((status: Confirmation.Status) => {\r\n this.isConfirmationOpen = false;\r\n if (status === Confirmation.Status.confirm) {\r\n this.visible.set(false);\r\n }\r\n });\r\n } else {\r\n this.visible.set(false);\r\n }\r\n }\r\n\r\n listen() {\r\n if (this.modalWindowRef) {\r\n fromEvent<KeyboardEvent>(this.modalWindowRef, 'keyup')\r\n .pipe(\r\n takeUntilDestroyed(this.destroyRef),\r\n debounceTime(150),\r\n filter((key: KeyboardEvent) => key && key.key === 'Escape' && this.options().keyboard),\r\n )\r\n .subscribe(() => this.close());\r\n }\r\n\r\n fromEvent(window, 'beforeunload')\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe(event => {\r\n if (this.isFormDirty && !this.suppressUnsavedChangesWarning()) {\r\n event.preventDefault();\r\n }\r\n });\r\n\r\n this.init.emit();\r\n }\r\n}\r\n","<ng-content></ng-content>\r\n\r\n<ng-template #modalContent let-modal>\r\n @if (abpHeader()) {\r\n <div id=\"abp-modal-header\" class=\"modal-header abp-modal-header\">\r\n <ng-container *ngTemplateOutlet=\"abpHeader()\"></ng-container>\r\n \r\n <button\r\n id=\"abp-modal-close-button\"\r\n type=\"button\"\r\n class=\"btn-sm btn-close\"\r\n aria-label=\"Close\"\r\n (click)=\"modal.dismiss()\"\r\n ></button>\r\n </div>\r\n }\r\n @if (abpBody()) {\r\n <div id=\"abp-modal-body\" class=\"modal-body\">\r\n <ng-container *ngTemplateOutlet=\"abpBody()\"></ng-container>\r\n </div>\r\n }\r\n @if (abpFooter()) {\r\n <div id=\"abp-modal-footer\" class=\"modal-footer\">\r\n <ng-container *ngTemplateOutlet=\"abpFooter()\"></ng-container>\r\n </div>\r\n }\r\n</ng-template>\r\n","import { Directive, HostListener, inject } from '@angular/core';\r\nimport { ModalComponent } from './modal.component';\r\n\r\n@Directive({\r\n selector: '[abpClose]',\r\n})\r\nexport class ModalCloseDirective {\r\n private modal = inject(ModalComponent, { optional: true })!;\r\n\r\n constructor() {\r\n const modal = this.modal;\r\n\r\n if (!modal) {\r\n console.error('Please use abpClose within an abp-modal');\r\n }\r\n }\r\n\r\n @HostListener('click')\r\n onClick() {\r\n this.modal?.close();\r\n }\r\n}\r\n","import { Component, forwardRef, input } from '@angular/core';\r\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\nimport { AbstractNgModelComponent } from '@abp/ng.core';\r\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\r\n\r\n/**\r\n * @deprecated use ShowPasswordDirective directive\r\n * https://abp.io/docs/latest/framework/ui/angular/show-password-directive\r\n */\r\n@Component({\r\n selector: 'abp-password',\r\n imports: [FormsModule, NgxValidateCoreModule],\r\n templateUrl: `./password.component.html`,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => PasswordComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class PasswordComponent extends AbstractNgModelComponent {\r\n readonly inputId = input.required<string>();\r\n readonly formControlName = input.required<string>();\r\n fieldTextType?: boolean;\r\n\r\n toggleFieldTextType() {\r\n this.fieldTextType = !this.fieldTextType;\r\n }\r\n}\r\n","<div class=\"input-group\" validationTarget>\r\n <input\r\n [type]=\"fieldTextType ? 'text' : 'password'\"\r\n class=\"form-control\"\r\n [id]=\"inputId()\"\r\n [(ngModel)]=\"value\"\r\n />\r\n\r\n <button class=\"btn btn-secondary\" type=\"button\" (click)=\"toggleFieldTextType()\">\r\n <i\r\n class=\"fa\"\r\n aria-hidden=\"true\"\r\n [class]=\"{\r\n 'fa-eye-slash': !fieldTextType,\r\n 'fa-eye': fieldTextType\r\n }\"\r\n ></i>\r\n </button>\r\n</div>\r\n","import { Component, HostBinding, input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'abp-card-body',\r\n template: ` <div [class]=\"cardBodyClass()\" [style]=\"cardBodyStyle()\">\r\n <ng-content></ng-content>\r\n </div>`,\r\n})\r\nexport class CardBodyComponent {\r\n @HostBinding('class') componentClass = 'card-body';\r\n readonly cardBodyClass = input<string>(undefined);\r\n readonly cardBodyStyle = input<string>(undefined);\r\n}\r\n","import { Component, input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'abp-card',\r\n template: ` <div class=\"card\" [class]=\"cardClass()\" [style]=\"cardStyle()\">\r\n <ng-content></ng-content>\r\n </div>`,\r\n imports: [],\r\n})\r\nexport class CardComponent {\r\n readonly cardClass = input<string>(undefined);\r\n\r\n readonly cardStyle = input<string>(undefined);\r\n}\r\n","import { Component, HostBinding, input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'abp-card-header',\r\n template: `\r\n <div [class]=\"cardHeaderClass()\" [style]=\"cardHeaderStyle()\">\r\n <ng-content></ng-content>\r\n </div>\r\n `,\r\n styles: [],\r\n imports: [],\r\n})\r\nexport class CardHeaderComponent {\r\n @HostBinding('class') componentClass = 'card-header';\r\n readonly cardHeaderClass = input<string>(undefined);\r\n readonly cardHeaderStyle = input<string>(undefined);\r\n}\r\n","import { Component, HostBinding, input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'abp-card-footer',\r\n template: `\r\n <div [style]=\"cardFooterStyle()\" [class]=\"cardFooterClass()\">\r\n <ng-content></ng-content>\r\n </div>\r\n `,\r\n styles: [],\r\n imports: [],\r\n})\r\nexport class CardFooterComponent {\r\n @HostBinding('class') componentClass = 'card-footer';\r\n readonly cardFooterStyle = input<string>(undefined);\r\n readonly cardFooterClass = input<string>(undefined);\r\n}\r\n","import { Directive, HostBinding } from '@angular/core';\r\n\r\n@Directive({\r\n selector: `abp-card-title, [abp-card-title], [abpCardTitle]`,\r\n})\r\nexport class CardTitleDirective {\r\n @HostBinding('class') directiveClass = 'card-title';\r\n}\r\n","import { Directive, HostBinding } from '@angular/core';\r\n\r\n@Directive({\r\n selector: `abp-card-subtitle, [abp-card-subtitle], [abpCardSubtitle]`,\r\n})\r\nexport class CardSubtitleDirective {\r\n @HostBinding('class') directiveClass = 'card-subtitle';\r\n}\r\n","import { Directive, HostBinding } from '@angular/core';\r\n\r\n@Directive({\r\n selector: `abp-card-img-top, [abp-card-img-top], [abpCardImgTop]`,\r\n})\r\nexport class CardImgTopDirective {\r\n @HostBinding('class') directiveClass = 'card-img-top';\r\n}\r\n","import { Directive, HostBinding } from '@angular/core';\r\n\r\n@Directive({\r\n selector: `abp-card-header, [abp-card-header], [abpCardHeader]`,\r\n})\r\nexport class CardHeaderDirective {\r\n @HostBinding('class') directiveClass = 'card-header';\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CardBodyComponent } from './card-body.component';\r\nimport { CardComponent } from './card.component';\r\nimport { CardHeaderComponent } from './card-header.component';\r\nimport { CardFooterComponent } from './card-footer.component';\r\nimport { CardTitleDirective } from './card-title.directive';\r\nimport { CardSubtitleDirective } from './card-subtitle.directive';\r\nimport { CardImgTopDirective } from './card-img-top.directive';\r\nimport { CardHeaderDirective } from './card-header.directive';\r\n\r\nexport const CARD_DIRECTIVES = [\r\n CardTitleDirective,\r\n CardSubtitleDirective,\r\n CardImgTopDirective,\r\n CardHeaderDirective,\r\n];\r\n\r\nexport const CARD_COMPONENTS = [\r\n CardComponent,\r\n CardBodyComponent,\r\n CardHeaderComponent,\r\n CardFooterComponent,\r\n];\r\n\r\n@NgModule({\r\n declarations: [],\r\n imports: [...CARD_COMPONENTS, ...CARD_DIRECTIVES],\r\n exports: [...CARD_COMPONENTS, ...CARD_DIRECTIVES],\r\n})\r\nexport class CardModule {}\r\n","import { Component, forwardRef, input, output } from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';\r\nimport { AbstractNgModelComponent, LocalizationPipe } from '@abp/ng.core';\r\n\r\n@Component({\r\n selector: 'abp-checkbox',\r\n template: `\r\n <div class=\"mb-3\">\r\n <input\r\n type=\"checkbox\"\r\n [(ngModel)]=\"value\"\r\n [id]=\"checkboxId()\"\r\n [readonly]=\"checkboxReadonly()\"\r\n [class]=\"checkboxClass()\"\r\n [style]=\"checkboxStyle()\"\r\n (blur)=\"checkboxBlur.emit()\"\r\n (focus)=\"checkboxFocus.emit()\"\r\n />\r\n @if (label()) {\r\n <label [class]=\"labelClass()\" [for]=\"checkboxId()\">\r\n {{ label() | abpLocalization }}\r\n </label>\r\n }\r\n </div>\r\n `,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => FormCheckboxComponent),\r\n multi: true,\r\n },\r\n ],\r\n imports: [FormsModule, LocalizationPipe],\r\n})\r\nexport class FormCheckboxComponent extends AbstractNgModelComponent {\r\n readonly label = input<string | undefined>(undefined);\r\n readonly labelClass = input('form-check-label');\r\n readonly checkboxId = input.required<string>();\r\n readonly checkboxStyle = input<{ [klass: string]: any } | null | undefined>(undefined);\r\n readonly checkboxClass = input('form-check-input');\r\n readonly checkboxReadonly = input(false);\r\n readonly checkboxBlur = output<void>();\r\n readonly checkboxFocus = output<void>();\r\n}\r\n","import { Component, forwardRef, input, output } from '@angular/core';\r\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { AbstractNgModelComponent, LocalizationPipe } from '@abp/ng.core';\r\n\r\n@Component({\r\n selector: 'abp-form-input',\r\n template: `\r\n <div class=\"mb-3\">\r\n @if (label()) {\r\n <label [class]=\"labelClass()\" [for]=\"inputId()\">\r\n {{ label() | abpLocalization }}\r\n </label>\r\n }\r\n <input\r\n type=\"text\"\r\n [id]=\"inputId()\"\r\n [placeholder]=\"inputPlaceholder()\"\r\n [readonly]=\"inputReadonly()\"\r\n [class]=\"inputClass()\"\r\n [style]=\"inputStyle()\"\r\n (blur)=\"formBlur.emit()\"\r\n (focus)=\"formFocus.emit()\"\r\n [(ngModel)]=\"value\"\r\n />\r\n </div>\r\n `,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => FormInputComponent),\r\n multi: true,\r\n },\r\n ],\r\n imports: [LocalizationPipe, FormsModule],\r\n})\r\nexport class FormInputComponent extends AbstractNgModelComponent {\r\n readonly inputId = input<string>();\r\n readonly inputReadonly = input(false);\r\n readonly label = input('');\r\n readonly labelClass = input('form-label');\r\n readonly inputPlaceholder = input('');\r\n readonly inputStyle = input<{ [klass: string]: any } | null | undefined>(undefined);\r\n readonly inputClass = input('form-control');\r\n readonly formBlur = output<void>();\r\n readonly formFocus = output<void>();\r\n}\r\n","import { Component, inject } from '@angular/core';\r\nimport { InternetConnectionService, LocalizationPipe } from '@abp/ng.core';\r\nimport { NgbTooltip } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Component({\r\n selector: 'abp-internet-status',\r\n imports: [LocalizationPipe, NgbTooltip],\r\n template: `\r\n @if (!isOnline()) {\r\n <div class=\"status-icon\">\r\n <i\r\n ngbTooltip=\"{{ 'AbpUi::InternetConnectionInfo' | abpLocalization }}\"\r\n container=\"body\"\r\n placement=\"left-top\"\r\n class=\"fa fa-wifi text-blinking blink\"\r\n >\r\n </i>\r\n </div>\r\n }\r\n `,\r\n styles: [\r\n `\r\n .blink {\r\n animation: blinker 0.9s cubic-bezier(0.5, 0, 1, 1) infinite alternate;\r\n }\r\n @keyframes blinker {\r\n 0% {\r\n color: #c1c1c1;\r\n }\r\n 70% {\r\n color: #fa2379;\r\n }\r\n 100% {\r\n color: #fa2379;\r\n }\r\n }\r\n\r\n .text-blinking {\r\n font-size: 30px;\r\n }\r\n\r\n .status-icon {\r\n position: fixed;\r\n z-index: 999999;\r\n top: 50%;\r\n left: 50%;\r\n width: 30px;\r\n text-align: center;\r\n margin-left: -15px;\r\n margin-top: -15px;\r\n translate: transform(-50%, -50%);\r\n }\r\n `,\r\n ],\r\n})\r\nexport class InternetConnectionStatusComponent {\r\n internetConnectionService = inject(InternetConnectionService);\r\n isOnline = this.internetConnectionService.networkStatus;\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'abp-spinner',\r\n template: `\r\n <div class=\"d-flex justify-content-center align-items-center border-top\" style=\"height: 62px\">\r\n <div class=\"spinner-border\" role=\"status\" id=\"loading\">\r\n <span class=\"visually-hidden\">Loading...</span>\r\n </div>\r\n </div>\r\n `,\r\n})\r\nexport class SpinnerComponent {}\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectorRef,\r\n computed,\r\n Directive,\r\n ElementRef,\r\n inject,\r\n input,\r\n signal\r\n} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[abpEllipsis]',\r\n host: {\r\n '[title]': 'effectiveTitle()',\r\n '[class.abp-ellipsis-inline]': 'inlineClass()',\r\n '[class.abp-ellipsis]': 'ellipsisClass()',\r\n '[style.max-width]': 'maxWidth()'\r\n }\r\n})\r\nexport class EllipsisDirective implements AfterViewInit {\r\n private cdRef = inject(ChangeDetectorRef);\r\n private elRef = inject(ElementRef);\r\n\r\n readonly width = input<string | undefined>(undefined, { alias: 'abpEllipsis' });\r\n readonly title = input<string | undefined>(undefined);\r\n readonly enabled = input(true, { alias: 'abpEllipsisEnabled' });\r\n\r\n private readonly autoTitle = signal<string | undefined>(undefined);\r\n\r\n protected readonly effectiveTitle = computed(() => this.title() || this.autoTitle());\r\n\r\n protected readonly inlineClass = computed(() => this.enabled() && !!this.width());\r\n\r\n protected readonly ellipsisClass = computed(() => this.enabled() && !this.width());\r\n\r\n protected readonly maxWidth = computed(() => {\r\n const width = this.width();\r\n return this.enabled() && width ? width || '170px' : undefined;\r\n });\r\n\r\n ngAfterViewInit() {\r\n if (!this.title()) {\r\n this.autoTitle.set((this.elRef.nativeElement as HTMLElement).innerText);\r\n this.cdRef.detectChanges();\r\n }\r\n }\r\n}\r\n","import {\r\n ComponentRef,\r\n Directive,\r\n ElementRef,\r\n EmbeddedViewRef,\r\n Injector,\r\n OnDestroy,\r\n OnInit,\r\n Renderer2,\r\n effect,\r\n inject,\r\n input,\r\n ViewContainerRef\r\n} from '@angular/core';\r\nimport { Subscription, timer } from 'rxjs';\r\nimport { take } from 'rxjs/operators';\r\nimport { LoadingComponent } from '../components';\r\n\r\n@Directive({\r\n selector: '[abpLoading]',\r\n host: {\r\n '[style.position]': '\"relative\"'\r\n }\r\n})\r\nexport class LoadingDirective implements OnInit, OnDestroy {\r\n private elRef = inject<ElementRef<HTMLElement>>(ElementRef);\r\n private injector = inject(Injector);\r\n private renderer = inject(Renderer2);\r\n private viewContainerRef = inject(ViewContainerRef);\r\n\r\n readonly loading = input(false, { alias: 'abpLoading' });\r\n readonly targetElementInput = input<HTMLElement | undefined>(undefined, { alias: 'abpLoadingTargetElement' });\r\n readonly delay = input(0, { alias: 'abpLoadingDelay' });\r\n\r\n private targetElement: HTMLElement | undefined;\r\n\r\n componentRef: ComponentRef<LoadingComponent> | null = null;\r\n rootNode: HTMLDivElement | null = null;\r\n timerSubscription: Subscription | null = null;\r\n\r\n constructor() {\r\n effect(() => {\r\n const newValue = this.loading();\r\n this.handleLoadingChange(newValue);\r\n });\r\n }\r\n\r\n private handleLoadingChange(newValue: boolean) {\r\n setTimeout(() => {\r\n if (!newValue && this.timerSubscription) {\r\n this.timerSubscription.unsubscribe();\r\n this.timerSubscription = null;\r\n\r\n if (this.rootNode) {\r\n this.renderer.removeChild(this.rootNode.parentElement, this.rootNode);\r\n this.rootNode = null;\r\n }\r\n return;\r\n }\r\n\r\n this.timerSubscription = timer(this.delay())\r\n .pipe(take(1))\r\n .subscribe(() => {\r\n if (!this.componentRef) {\r\n this.componentRef = this.viewContainerRef.createComponent(LoadingComponent, {\r\n injector: this.injector\r\n });\r\n }\r\n\r\n if (newValue && !this.rootNode) {\r\n this.rootNode = (this.componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0];\r\n this.targetElement?.appendChild(this.rootNode as HTMLDivElement);\r\n } else if (this.rootNode) {\r\n this.renderer.removeChild(this.rootNode.parentElement, this.rootNode);\r\n this.rootNode = null;\r\n }\r\n\r\n this.timerSubscription = null;\r\n });\r\n }, 0);\r\n }\r\n\r\n ngOnInit() {\r\n this.targetElement = this.targetElementInput();\r\n if (!this.targetElement) {\r\n const { offsetHeight, offsetWidth } = this.elRef.nativeElement;\r\n if (!offsetHeight && !offsetWidth && this.elRef.nativeElement.children?.length) {\r\n this.targetElement = this.elRef.nativeElement.children[0] as HTMLElement;\r\n } else {\r\n this.targetElement = this.elRef.nativeElement;\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.timerSubscription) {\r\n this.timerSubscription.unsubscribe();\r\n }\r\n }\r\n}\r\n","import { DOCUMENT, isPlatformBrowser } from '@angular/common';\r\nimport {\r\n AfterViewInit,\r\n Directive,\r\n HostBinding,\r\n OnDestroy,\r\n inject,\r\n PLATFORM_ID,\r\n input\r\n} from '@angular/core';\r\nimport { ColumnMode, DatatableComponent } from '@swimlane/ngx-datatable';\r\nimport { fromEvent, Subscription } from 'rxjs';\r\nimport { debounceTime } from 'rxjs/operators';\r\n\r\n@Directive({\r\n // eslint-disable-next-line @angular-eslint/directive-selector\r\n selector: 'ngx-datatable[default]',\r\n exportAs: 'ngxDatatableDefault',\r\n})\r\nexport class NgxDatatableDefaultDirective implements AfterViewInit, OnDestroy {\r\n private table = inject(DatatableComponent);\r\n private document = inject<MockDocument>(DOCUMENT);\r\n private platformId = inject(PLATFORM_ID);\r\n\r\n private subscription = new Subscription();\r\n private resizeDiff = 0;\r\n\r\n readonly class = input('material bordered');\r\n\r\n @HostBinding('class')\r\n get classes(): string {\r\n return `ngx-datatable ${this.class()}`;\r\n }\r\n\r\n constructor() {\r\n this.table.columnMode = ColumnMode.force;\r\n this.table.footerHeight = 50;\r\n this.table.headerHeight = 50;\r\n this.table.rowHeight = 'auto';\r\n this.table.scrollbarH = true;\r\n this.table.virtualization = false;\r\n }\r\n\r\n private fixHorizontalGap(scroller: any) {\r\n const { body, documentElement } = this.document;\r\n if (isPlatformBrowser(this.platformId)) {\r\n if (documentElement.scrollHeight !== documentElement.clientHeight) {\r\n if (this.resizeDiff === 0) {\r\n this.resizeDiff = window.innerWidth - body.offsetWidth;\r\n scroller.scrollWidth -= this.resizeDiff;\r\n }\r\n } else {\r\n scroller.scrollWidth += this.resizeDiff;\r\n this.resizeDiff = 0;\r\n }\r\n }\r\n }\r\n\r\n private fixStyleOnWindowResize() {\r\n if (isPlatformBrowser(this.platformId)) {\r\n const subscription = fromEvent(window, 'resize')\r\n .pipe(debounceTime(500))\r\n .subscribe(() => {\r\n const { scroller } = this.table.bodyComponent;\r\n\r\n if (!scroller) return;\r\n\r\n this.fixHorizontalGap(scroller);\r\n });\r\n\r\n this.subscription.add(subscription);\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.fixStyleOnWindowResize();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscription.unsubscribe();\r\n }\r\n}\r\n\r\n// fix: https://github.com/angular/angular/issues/20351\r\ninterface MockDocument {\r\n body: MockBody;\r\n documentElement: MockDocumentElement;\r\n}\r\n\r\ninterface MockBody {\r\n offsetWidth: number;\r\n}\r\n\r\ninterface MockDocumentElement {\r\n clientHeight: number;\r\n scrollHeight: number;\r\n}\r\n","import {\r\n ChangeDetectorRef,\r\n Directive,\r\n OnChanges,\r\n OnInit,\r\n DoCheck,\r\n SimpleChanges,\r\n inject,\r\n DestroyRef,\r\n ViewContainerRef,\r\n Renderer2,\r\n input\r\n} from '@angular/core';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { distinctUntilChanged } from 'rxjs';\r\nimport { DatatableComponent } from '@swimlane/ngx-datatable';\r\nimport { ListService, LocalizationService } from '@abp/ng.core';\r\nimport {\r\n defaultNgxDatatableMessages,\r\n NGX_DATATABLE_MESSAGES,\r\n} from '../tokens/ngx-datatable-messages.token';\r\nimport { SpinnerComponent } from '../components';\r\n\r\n@Directive({\r\n // eslint-disable-next-line @angular-eslint/directive-selector\r\n selector: 'ngx-datatable[list]',\r\n exportAs: 'ngxDatatableList',\r\n})\r\nexport class NgxDatatableListDirective implements OnChanges, OnInit, DoCheck {\r\n protected readonly table = inject(DatatableComponent);\r\n protected readonly cdRef = inject(ChangeDetectorRef);\r\n protected readonly destroyRef = inject(DestroyRef);\r\n protected readonly localizationService = inject(LocalizationService);\r\n protected readonly ngxDatatableMessages = inject(NGX_DATATABLE_MESSAGES, { optional: true });\r\n protected readonly viewContainerRef = inject(ViewContainerRef);\r\n protected readonly renderer = inject(Renderer2);\r\n\r\n readonly list = input.required<ListService>();\r\n\r\n constructor() {\r\n this.setInitialValues();\r\n }\r\n\r\n ngDoCheck(): void {\r\n this.refreshPageIfDataExist();\r\n }\r\n\r\n ngOnInit() {\r\n this.subscribeToPage();\r\n this.subscribeToSort();\r\n this.subscribeToRequestStatus();\r\n }\r\n\r\n ngOnChanges({ list }: SimpleChanges) {\r\n this.subscribeToQuery();\r\n\r\n if (!list.firstChange) return;\r\n\r\n const { maxResultCount, page } = list.currentValue;\r\n this.table.limit = maxResultCount;\r\n this.table.offset = page;\r\n }\r\n\r\n protected subscribeToRequestStatus() {\r\n const requestStatus$ = this.list().requestStatus$.pipe(distinctUntilChanged());\r\n const { emptyMessage, errorMessage } = this.ngxDatatableMessages || defaultNgxDatatableMessages;\r\n\r\n requestStatus$.subscribe(status => {\r\n this.table.loadingIndicator = false;\r\n\r\n if (status === 'idle') {\r\n return;\r\n }\r\n\r\n if (status === 'loading') {\r\n this.table.messages.emptyMessage = undefined;\r\n this.table.loadingIndicator = true;\r\n this.cdRef.detectChanges();\r\n this.updateLoadingIndicator();\r\n return;\r\n }\r\n\r\n if (status === 'error') {\r\n this.table.messages.emptyMessage = this.localizationService.instant(errorMessage);\r\n this.viewContainerRef.clear();\r\n this.cdRef.markForCheck();\r\n }\r\n\r\n if (status === 'success') {\r\n this.table.messages.emptyMessage = this.localizationService.instant(emptyMessage);\r\n this.viewContainerRef.clear();\r\n }\r\n });\r\n }\r\n\r\n protected updateLoadingIndicator() {\r\n const body = this.table.element.querySelector('datatable-body');\r\n const progress = this.table.element.querySelector('datatable-progress');\r\n\r\n if (!body) {\r\n return;\r\n }\r\n\r\n if (progress) {\r\n this.replaceLoadingIndicator(body, progress);\r\n }\r\n }\r\n\r\n protected replaceLoadingIndicator(parent: Element, placeholder: Element) {\r\n this.viewContainerRef.clear();\r\n\r\n const spinnerRef = this.viewContainerRef.createComponent(SpinnerComponent);\r\n const spinnerElement = spinnerRef.location.nativeElement;\r\n\r\n this.renderer.insertBefore(parent, spinnerElement, parent.firstChild);\r\n \r\n const placeholderParent = placeholder?.parentNode as Element | null;\r\n if (placeholderParent) {\r\n this.renderer.removeChild(placeholderParent, placeholder);\r\n }\r\n }\r\n\r\n protected setInitialValues() {\r\n this.table.externalPaging = true;\r\n this.table.externalSorting = true;\r\n\r\n const { selectedMessage, totalMessage } =\r\n this.ngxDatatableMessages || defaultNgxDatatableMessages;\r\n\r\n this.table.messages = {\r\n totalMessage: this.localizationService.instant(totalMessage),\r\n selectedMessage: this.localizationService.instant(selectedMessage),\r\n };\r\n }\r\n\r\n protected subscribeToSort() {\r\n this.table.sort\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe(({ sorts: [{ prop, dir }] }) => {\r\n const list = this.list();\r\n if (prop === list.sortKey && list.sortOrder === 'desc') {\r\n list.sortKey = '';\r\n list.sortOrder = '';\r\n this.table.sorts = [];\r\n this.cdRef.detectChanges();\r\n } else {\r\n list.sortKey = prop;\r\n list.sortOrder = dir;\r\n }\r\n });\r\n }\r\n\r\n protected subscribeToPage() {\r\n this.table.page.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(({ offset }) => {\r\n this.setTablePage(offset);\r\n });\r\n }\r\n\r\n protected subscribeToQuery() {\r\n this.list().query$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\r\n const offset = this.list().page;\r\n if (this.table.offset !== offset) this.table.offset = offset;\r\n });\r\n }\r\n\r\n protected setTablePage(pageNum: number) {\r\n this.list().page = pageNum;\r\n this.table.offset = pageNum;\r\n }\r\n\r\n protected refreshPageIfDataExist() {\r\n if (this.table.rows?.length < 1 && this.table.count > 0) {\r\n let maxPage = Math.floor(Number(this.table.count / this.list().maxResultCount));\r\n\r\n if (this.table.count < this.list().maxResultCount) {\r\n this.setTablePage(0);\r\n return;\r\n }\r\n\r\n if (this.table.count % this.list().maxResultCount === 0) {\r\n maxPage -= 1;\r\n }\r\n\r\n if (this.list().page < maxPage) {\r\n this.setTablePage(this.list().page);\r\n return;\r\n }\r\n\r\n this.setTablePage(maxPage);\r\n }\r\n }\r\n}","import { Directive, OnDestroy, ViewContainerRef, TemplateRef, inject, input, effect } from '@angular/core';\r\nimport { EMPTY, from, Observable, of, Subscription } from 'rxjs';\r\n\r\ntype VisibleInput = boolean | Promise<boolean> | Observable<boolean> | undefined | null;\r\n\r\n@Directive({\r\n selector: '[abpVisible]',\r\n})\r\nexport class AbpVisibleDirective implements OnDestroy {\r\n private viewContainerRef = inject(ViewContainerRef);\r\n private templateRef = inject<TemplateRef<unknown>>(TemplateRef);\r\n\r\n private conditionSubscription: Subscription | undefined;\r\n private isVisible: boolean | undefined;\r\n private condition$: Observable<boolean> = of(false);\r\n\r\n readonly abpVisible = input<VisibleInput>();\r\n\r\n private lastInput: VisibleInput;\r\n\r\n constructor() {\r\n effect(() => {\r\n const value = this.abpVisible();\r\n if (value === this.lastInput) return;\r\n this.lastInput = value;\r\n this.condition$ = checkType(value);\r\n this.subscribeToCondition();\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.conditionSubscription?.unsubscribe();\r\n }\r\n\r\n private subscribeToCondition() {\r\n this.conditionSubscription?.unsubscribe();\r\n this.conditionSubscription = this.condition$.subscribe(value => {\r\n this.isVisible = value;\r\n this.updateVisibility();\r\n });\r\n }\r\n\r\n private updateVisibility() {\r\n this.viewContainerRef.clear();\r\n // it should be false not falsy\r\n if (this.isVisible === false) {\r\n return;\r\n }\r\n this.viewContainerRef.createEmbeddedView(this.templateRef);\r\n }\r\n}\r\n\r\nfunction checkType(value: VisibleInput) {\r\n if (value instanceof Promise) {\r\n return from(value);\r\n } else if (value instanceof Observable) {\r\n return value;\r\n } else if (typeof value === 'boolean') {\r\n return of(value);\r\n } else if (value === undefined || value === null) {\r\n return of(true);\r\n } else {\r\n return EMPTY;\r\n }\r\n}\r\n","import { Directive, effect, inject, input } from '@angular/core';\r\nimport { NgControl } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[abpDisabled]',\r\n})\r\nexport class DisabledDirective {\r\n private ngControl = inject(NgControl, { host: true });\r\n\r\n readonly abpDisabled = input(false);\r\n\r\n // Related issue: https://github.com/angular/angular/issues/35330\r\n private disabledEffect = effect(() => {\r\n const disabled = this.abpDisabled();\r\n if (this.ngControl.control) {\r\n this.ngControl.control[disabled ? 'disable' : 'enable']();\r\n }\r\n });\r\n}\r\n","export enum eFormComponets {\r\n FormInputComponent = 'FormInputComponent',\r\n FormCheckboxComponent = 'FormCheckboxComponent',\r\n}\r\n","import { getLocaleDirection, LocalizationService } from '@abp/ng.core';\r\nimport { Injectable, Injector, inject } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { LocaleDirection } from '../models/common';\r\nimport { DOCUMENT } from '@angular/common';\r\n\r\n@Injectable()\r\nexport class DocumentDirHandlerService {\r\n protected injector = inject(Injector);\r\n\r\n private dir = new BehaviorSubject<LocaleDirection>('ltr');\r\n dir$ = this.dir.asObservable();\r\n constructor() {\r\n this.listenToLanguageChanges();\r\n }\r\n\r\n private listenToLanguageChanges() {\r\n const l10n = this.injector.get(LocalizationService);\r\n // will always listen, no need to unsubscribe\r\n l10n.currentLang$.pipe(map(locale => getLocaleDirection(locale))).subscribe(dir => {\r\n this.dir.next(dir);\r\n this.setBodyDir(dir);\r\n });\r\n }\r\n\r\n private setBodyDir(dir: LocaleDirection) {\r\n this.injector.get(DOCUMENT).body.dir = dir;\r\n this.injector.get(DOCUMENT).dir = dir;\r\n }\r\n}\r\n","import { inject, Injectable, Injector } from '@angular/core';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { Observable, of } from 'rxjs';\r\nimport { filter, switchMap } from 'rxjs/operators';\r\n\r\nimport { HttpErrorReporterService } from '@abp/ng.core';\r\n\r\nimport { CustomHttpErrorHandlerService } from '../models/common';\r\nimport { Confirmation } from '../models/confirmation';\r\n\r\nimport { CUSTOM_ERROR_HANDLERS, HTTP_ERROR_HANDLER } from '../tokens/http-error.token';\r\nimport { HTTP_ERROR_CONFIG } from '../tokens/http-error.token';\r\nimport { DEFAULT_ERROR_LOCALIZATIONS, DEFAULT_ERROR_MESSAGES } from '../constants/default-errors';\r\n\r\nimport { ConfirmationService } from '../services/confirmation.service';\r\nimport { RouterErrorHandlerService } from '../services/router-error-handler.service';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ErrorHandler {\r\n protected injector = inject(Injector);\r\n\r\n protected readonly httpErrorReporter = inject(HttpErrorReporterService);\r\n protected readonly confirmationService = inject(ConfirmationService);\r\n protected readonly routerErrorHandlerService = inject(RouterErrorHandlerService);\r\n protected readonly httpErrorConfig = inject(HTTP_ERROR_CONFIG);\r\n protected readonly customErrorHandlers = inject(CUSTOM_ERROR_HANDLERS);\r\n protected readonly httpErrorHandler = inject(HTTP_ERROR_HANDLER, { optional: true });\r\n\r\n constructor() {\r\n this.listenToRestError();\r\n this.listenToRouterError();\r\n }\r\n\r\n protected listenToRouterError() {\r\n this.routerErrorHandlerService.listen();\r\n }\r\n\r\n protected listenToRestError() {\r\n this.httpErrorReporter.reporter$\r\n .pipe(filter(this.filterRestErrors), switchMap(this.executeErrorHandler))\r\n .subscribe(err => this.handleError(err));\r\n }\r\n\r\n protected executeErrorHandler = (error: HttpErrorResponse) => {\r\n if (this.httpErrorHandler) {\r\n return this.httpErrorHandler(this.injector, error);\r\n }\r\n\r\n return of(error);\r\n };\r\n\r\n protected sortHttpErrorHandlers(\r\n a: CustomHttpErrorHandlerService,\r\n b: CustomHttpErrorHandlerService,\r\n ) {\r\n return (b.priority || 0) - (a.priority || 0);\r\n }\r\n\r\n protected handleError(err: unknown) {\r\n if (this.customErrorHandlers && this.customErrorHandlers.length) {\r\n const errorHandlerService = this.customErrorHandlers\r\n .sort(this.sortHttpErrorHandlers)\r\n .find(service => service.canHandle(err));\r\n\r\n if (errorHandlerService) {\r\n errorHandlerService.execute();\r\n return;\r\n }\r\n }\r\n\r\n this.showError().subscribe();\r\n }\r\n\r\n protected showError(): Observable<Confirmation.Status> {\r\n const title = {\r\n key: DEFAULT_ERROR_LOCALIZATIONS.defaultError.title,\r\n defaultValue: DEFAULT_ERROR_MESSAGES.defaultError.title,\r\n };\r\n const message = {\r\n key: DEFAULT_ERROR_LOCALIZATIONS.defaultError.details,\r\n defaultValue: DEFAULT_ERROR_MESSAGES.defaultError.details,\r\n };\r\n return this.confirmationService.error(message, title, {\r\n hideCancelBtn: true,\r\n yesText: 'AbpAccount::Close',\r\n });\r\n }\r\n\r\n protected filterRestErrors = ({ status }: HttpErrorResponse): boolean => {\r\n if (typeof status !== 'number') return false;\r\n\r\n if (!this.httpErrorConfig?.skipHandledErrorCodes) {\r\n return true;\r\n }\r\n\r\n return this.httpErrorConfig.skipHandledErrorCodes?.findIndex(code => code === status) < 0;\r\n };\r\n}\r\n","import { inject, provideAppInitializer } from '@angular/core';\r\nimport { NgbDatepickerI18n, NgbInputDatepickerConfig, NgbTypeaheadConfig, NgbTimepickerI18n } from '@ng-bootstrap/ng-bootstrap';\r\nimport { DatepickerI18nAdapter, TimepickerI18nAdapter } from '../adapters';\r\n\r\nexport const NG_BOOTSTRAP_CONFIG_PROVIDERS = [\r\n {\r\n provide: NgbDatepickerI18n,\r\n useClass: DatepickerI18nAdapter,\r\n },\r\n {\r\n provide: NgbTimepickerI18n,\r\n useClass: TimepickerI18nAdapter,\r\n },\r\n provideAppInitializer(() => {\r\n configureNgBootstrap();\r\n }),\r\n];\r\n\r\nexport function configureNgBootstrap() {\r\n const datepicker: NgbInputDatepickerConfig = inject(NgbInputDatepickerConfig);\r\n const typeahead: NgbTypeaheadConfig = inject(NgbTypeaheadConfig);\r\n datepicker.container = 'body';\r\n typeahead.container = 'body';\r\n}\r\n","import { RoutesService } from '@abp/ng.core';\r\nimport { inject, provideAppInitializer } from '@angular/core';\r\nimport { eThemeSharedRouteNames } from '../enums/route-names';\r\n\r\nexport const THEME_SHARED_ROUTE_PROVIDERS = [\r\n provideAppInitializer(() => {\r\n configureRoutes();\r\n }),\r\n];\r\n\r\nexport function configureRoutes() {\r\n const routesService = inject(RoutesService);\r\n routesService.add([\r\n {\r\n path: undefined,\r\n name: eThemeSharedRouteNames.Administration,\r\n iconClass: 'fa fa-wrench',\r\n order: 100,\r\n },\r\n ]);\r\n}\r\n","import { TENANT_NOT_FOUND_BY_NAME } from '@abp/ng.core';\r\nimport { inject, Provider } from '@angular/core';\r\nimport { ConfirmationService } from '../services';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { DOCUMENT } from '@angular/common';\r\n\r\nexport const tenantNotFoundProvider: Provider = {\r\n provide: TENANT_NOT_FOUND_BY_NAME,\r\n useFactory: function () {\r\n const confirm = inject(ConfirmationService);\r\n const document = inject(DOCUMENT);\r\n return (response: HttpErrorResponse) => {\r\n const { error } = response.error;\r\n // hide loading donut\r\n const appRoot = document.querySelector('app-root div.donut');\r\n if (appRoot) {\r\n appRoot.remove();\r\n }\r\n confirm.error(error.details, error.message, { hideCancelBtn: true, hideYesBtn: true });\r\n };\r\n },\r\n};\r\n","import { Provider } from '@angular/core';\r\nimport { CUSTOM_ERROR_HANDLERS } from '../tokens';\r\nimport {\r\n TenantResolveErrorHandlerService,\r\n AbpFormatErrorHandlerService,\r\n StatusCodeErrorHandlerService,\r\n UnknownStatusCodeErrorHandlerService,\r\n AbpAuthenticationErrorHandler,\r\n} from '../services';\r\n\r\nexport const DEFAULT_HANDLERS_PROVIDERS: Provider[] = [\r\n {\r\n provide: CUSTOM_ERROR_HANDLERS,\r\n multi: true,\r\n useExisting: TenantResolveErrorHandlerService,\r\n },\r\n {\r\n provide: CUSTOM_ERROR_HANDLERS,\r\n multi: true,\r\n useExisting: AbpFormatErrorHandlerService,\r\n },\r\n {\r\n provide: CUSTOM_ERROR_HANDLERS,\r\n multi: true,\r\n useExisting: StatusCodeErrorHandlerService,\r\n },\r\n {\r\n provide: CUSTOM_ERROR_HANDLERS,\r\n multi: true,\r\n useExisting: UnknownStatusCodeErrorHandlerService,\r\n },\r\n {\r\n provide: CUSTOM_ERROR_HANDLERS,\r\n multi: true,\r\n useExisting: AbpAuthenticationErrorHandler,\r\n },\r\n];\r\n","export const DEFAULT_VALIDATION_BLUEPRINTS = {\r\n creditCard: 'AbpValidation::ThisFieldIsNotAValidCreditCardNumber.',\r\n email: 'AbpValidation::ThisFieldIsNotAValidEmailAddress.',\r\n invalid: 'AbpValidation::ThisFieldIsNotValid.',\r\n max: 'AbpValidation::ThisFieldMustBeLessOrEqual{0}[{{ max }}]',\r\n maxlength:\r\n 'AbpValidation::ThisFieldMustBeAStringOrArrayTypeWithAMaximumLengthOf{0}[{{ requiredLength }}]',\r\n min: 'AbpValidation::ThisFieldMustBeGreaterThanOrEqual{0}[{{ min }}]',\r\n minlength:\r\n 'AbpValidation::ThisFieldMustBeAStringOrArrayTypeWithAMinimumLengthOf{0}[{{ requiredLength }}]',\r\n ngbDate: 'AbpValidation::ThisFieldIsNotValid.',\r\n passwordMismatch: 'AbpIdentity::Volo.Abp.Identity:PasswordConfirmationFailed',\r\n range: 'AbpValidation::ThisFieldMustBeBetween{0}And{1}[{{ min }},{{ max }}]',\r\n required: 'AbpValidation::ThisFieldIsRequired.',\r\n url: 'AbpValidation::ThisFieldIsNotAValidFullyQualifiedHttpHttpsOrFtpUrl',\r\n passwordRequiresLower: 'AbpIdentity::Volo.Abp.Identity:PasswordRequiresLower',\r\n passwordRequiresUpper: 'AbpIdentity::Volo.Abp.Identity:PasswordRequiresUpper',\r\n passwordRequiresDigit: 'AbpIdentity::Volo.Abp.Identity:PasswordRequiresDigit',\r\n passwordRequiresNonAlphanumeric: 'AbpIdentity::Volo.Abp.Identity:PasswordRequiresNonAlphanumeric',\r\n usernamePattern: 'AbpIdentity::Volo.Abp.Identity:InvalidUserName[{{ actualValue }}]',\r\n customMessage: '{{ customMessage }}'\r\n};","export default '';\r\n","import { ApplicationLocalizationConfigurationDto, ConfigStateService } from '@abp/ng.core';\r\nimport { formatDate } from '@angular/common';\r\nimport { Injectable, LOCALE_ID, inject } from '@angular/core';\r\nimport { NgbDateParserFormatter, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\r\n\r\nfunction isNumber(value: any): boolean {\r\n return !isNaN(toInteger(value));\r\n}\r\n\r\nfunction toInteger(value: any): number {\r\n return parseInt(`${value}`, 10);\r\n}\r\n\r\n@Injectable()\r\nexport class DateParserFormatter extends NgbDateParserFormatter {\r\n private configState = inject(ConfigStateService);\r\n private locale = inject(LOCALE_ID);\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n\r\n parse(value: string): NgbDateStruct | null {\r\n if (value) {\r\n const dateParts = value.trim().split('-');\r\n // TODO: CHANGED\r\n if (dateParts.length === 1 && isNumber(dateParts[0])) {\r\n return { year: toInteger(dateParts[0]), month: -1, day: -1 };\r\n } else if (dateParts.length === 2 && isNumber(dateParts[0]) && isNumber(dateParts[1])) {\r\n return { year: toInteger(dateParts[0]), month: toInteger(dateParts[1]), day: -1 };\r\n } else if (\r\n dateParts.length === 3 &&\r\n isNumber(dateParts[0]) &&\r\n isNumber(dateParts[1]) &&\r\n isNumber(dateParts[2])\r\n ) {\r\n return {\r\n year: toInteger(dateParts[0]),\r\n month: toInteger(dateParts[1]),\r\n day: toInteger(dateParts[2]),\r\n };\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n format(date: NgbDateStruct): string {\r\n if (!date) return '';\r\n\r\n const localization: ApplicationLocalizationConfigurationDto =\r\n this.configState.getOne('localization');\r\n\r\n const dateFormat =\r\n localization.currentCulture?.dateTimeFormat?.shortDatePattern || 'yyyy-MM-dd';\r\n\r\n return formatDate(new Date(date.year, date.month - 1, date.day), dateFormat, this.locale);\r\n }\r\n}\r\n","import { ABP, ConfigStateService } from '@abp/ng.core';\r\nimport { Injector } from '@angular/core';\r\nimport { AbstractControl, ValidatorFn, Validators } from '@angular/forms';\r\nimport { normalizeDiacritics, PasswordRules } from '@ngx-validate/core';\r\nimport { PasswordRule } from '../models/validation';\r\n\r\nconst { minLength, maxLength } = Validators;\r\n\r\nexport function getPasswordValidators(injector: Injector): ValidatorFn[] {\r\n const getRule = getRuleFn(injector);\r\n\r\n const passwordRulesArr = [] as PasswordRules;\r\n let requiredLength = 1;\r\n\r\n if (getRule('RequireDigit') === 'true') {\r\n passwordRulesArr.push('number');\r\n }\r\n\r\n if (getRule('RequireLowercase') === 'true') {\r\n passwordRulesArr.push('small');\r\n }\r\n\r\n if (getRule('RequireUppercase') === 'true') {\r\n passwordRulesArr.push('capital');\r\n }\r\n\r\n if (getRule('RequireNonAlphanumeric') === 'true') {\r\n passwordRulesArr.push('special');\r\n }\r\n\r\n if (Number.isInteger(+getRule('RequiredLength'))) {\r\n requiredLength = +getRule('RequiredLength');\r\n }\r\n\r\n const passwordValidators = passwordRulesArr.map(rule => validatePassword(rule));\r\n return [...passwordValidators, minLength(requiredLength), maxLength(128)];\r\n}\r\n\r\nfunction getRuleFn(injector: Injector) {\r\n const configState = injector.get(ConfigStateService);\r\n\r\n return (key: string) => {\r\n const passwordRules: ABP.Dictionary<string> = configState.getSettings('Identity.Password');\r\n\r\n return (passwordRules[`Abp.Identity.Password.${key}`] || '').toLowerCase();\r\n };\r\n}\r\nconst errorMessageMap = {\r\n small: 'passwordRequiresLower',\r\n capital: 'passwordRequiresUpper',\r\n number: 'passwordRequiresDigit',\r\n special: 'passwordRequiresNonAlphanumeric',\r\n};\r\n\r\nexport function validatePassword(shouldContain: PasswordRule): ValidatorFn {\r\n return (control: AbstractControl) => {\r\n if (!control.value) return null;\r\n\r\n const value = normalizeDiacritics(control.value);\r\n\r\n const regexMap = {\r\n small: /.*[a-z].*/,\r\n capital: /.*[A-Z].*/,\r\n number: /.*[0-9].*/,\r\n special: /.*[^0-9a-zA-Z].*/,\r\n };\r\n const regex = regexMap[shouldContain];\r\n\r\n const isValid = regex.test(value);\r\n\r\n if (isValid) {\r\n return null;\r\n }\r\n\r\n const error = errorMessageMap[shouldContain];\r\n\r\n return {\r\n [error]: true,\r\n };\r\n };\r\n}\r\n","import { Provider, makeEnvironmentProviders, inject, provideAppInitializer } from '@angular/core';\r\nimport { NgbDateParserFormatter } from '@ng-bootstrap/ng-bootstrap';\r\nimport {\r\n VALIDATION_BLUEPRINTS,\r\n VALIDATION_MAP_ERRORS_FN,\r\n defaultMapErrorsFn,\r\n VALIDATION_VALIDATE_ON_SUBMIT,\r\n Validation,\r\n} from '@ngx-validate/core';\r\nimport { DEFAULT_VALIDATION_BLUEPRINTS } from '../constants';\r\nimport { DocumentDirHandlerService, ErrorHandler } from '../handlers';\r\nimport { HttpErrorConfig } from '../models';\r\nimport {\r\n THEME_SHARED_APPEND_CONTENT,\r\n HTTP_ERROR_CONFIG,\r\n CONFIRMATION_ICONS,\r\n ConfirmationIcons,\r\n DEFAULT_CONFIRMATION_ICONS,\r\n} from '../tokens';\r\nimport { DateParserFormatter } from '../utils';\r\nimport {\r\n DEFAULT_HANDLERS_PROVIDERS,\r\n NG_BOOTSTRAP_CONFIG_PROVIDERS,\r\n THEME_SHARED_ROUTE_PROVIDERS,\r\n tenantNotFoundProvider,\r\n} from './';\r\n\r\nexport enum ThemeSharedFeatureKind {\r\n HttpErrorConfig,\r\n ValidationBluePrint,\r\n ValidationErrorsFn,\r\n ValidateOnSubmit,\r\n Validation,\r\n ConfirmationIcons,\r\n}\r\n\r\nexport interface ThemeSharedFeature<KindT extends ThemeSharedFeatureKind> {\r\n ɵkind: KindT;\r\n ɵproviders: Provider[];\r\n}\r\n\r\nfunction makeThemeSharedFeature<KindT extends ThemeSharedFeatureKind>(\r\n kind: KindT,\r\n providers: Provider[],\r\n): ThemeSharedFeature<KindT> {\r\n return {\r\n ɵkind: kind,\r\n ɵproviders: providers,\r\n };\r\n}\r\n\r\nexport function withHttpErrorConfig(\r\n httpErrorConfig: HttpErrorConfig,\r\n): ThemeSharedFeature<ThemeSharedFeatureKind.HttpErrorConfig> {\r\n return makeThemeSharedFeature(ThemeSharedFeatureKind.HttpErrorConfig, [\r\n {\r\n provide: HTTP_ERROR_CONFIG,\r\n useValue: httpErrorConfig,\r\n },\r\n ]);\r\n}\r\n\r\nexport function withValidationBluePrint(\r\n bluePrints: Validation.Blueprints,\r\n): ThemeSharedFeature<ThemeSharedFeatureKind.ValidationBluePrint> {\r\n return makeThemeSharedFeature(ThemeSharedFeatureKind.ValidationBluePrint, [\r\n {\r\n provide: VALIDATION_BLUEPRINTS,\r\n useValue: {\r\n ...DEFAULT_VALIDATION_BLUEPRINTS,\r\n ...(bluePrints || {}),\r\n },\r\n },\r\n ]);\r\n}\r\n\r\nexport function withValidationMapErrorsFn(\r\n mapErrorsFn: Validation.MapErrorsFn,\r\n): ThemeSharedFeature<ThemeSharedFeatureKind.ValidationErrorsFn> {\r\n return makeThemeSharedFeature(ThemeSharedFeatureKind.ValidationErrorsFn, [\r\n {\r\n provide: VALIDATION_MAP_ERRORS_FN,\r\n useValue: mapErrorsFn || defaultMapErrorsFn,\r\n },\r\n ]);\r\n}\r\n\r\nexport function withValidateOnSubmit(\r\n validateOnSubmit: boolean,\r\n): ThemeSharedFeature<ThemeSharedFeatureKind.ValidateOnSubmit> {\r\n return makeThemeSharedFeature(ThemeSharedFeatureKind.ValidateOnSubmit, [\r\n {\r\n provide: VALIDATION_VALIDATE_ON_SUBMIT,\r\n useValue: validateOnSubmit,\r\n },\r\n ]);\r\n}\r\n\r\nexport function withConfirmationIcon(\r\n confirmationIcons: Partial<ConfirmationIcons>,\r\n): ThemeSharedFeature<ThemeSharedFeatureKind.HttpErrorConfig> {\r\n return makeThemeSharedFeature(ThemeSharedFeatureKind.HttpErrorConfig, [\r\n {\r\n provide: CONFIRMATION_ICONS,\r\n useValue: { ...DEFAULT_CONFIRMATION_ICONS, ...(confirmationIcons || {}) },\r\n },\r\n ]);\r\n}\r\n\r\nexport function provideAbpThemeShared(...features: ThemeSharedFeature<ThemeSharedFeatureKind>[]) {\r\n const providers = [\r\n provideAppInitializer(() => {\r\n inject(ErrorHandler);\r\n inject(THEME_SHARED_APPEND_CONTENT);\r\n inject(DocumentDirHandlerService);\r\n }),\r\n THEME_SHARED_ROUTE_PROVIDERS,\r\n { provide: HTTP_ERROR_CONFIG, useValue: undefined },\r\n { provide: NgbDateParserFormatter, useClass: DateParserFormatter },\r\n NG_BOOTSTRAP_CONFIG_PROVIDERS,\r\n {\r\n provide: VALIDATION_BLUEPRINTS,\r\n useValue: { ...DEFAULT_VALIDATION_BLUEPRINTS },\r\n },\r\n {\r\n provide: VALIDATION_MAP_ERRORS_FN,\r\n useValue: defaultMapErrorsFn,\r\n },\r\n {\r\n provide: VALIDATION_VALIDATE_ON_SUBMIT,\r\n useValue: undefined,\r\n },\r\n DocumentDirHandlerService,\r\n {\r\n provide: CONFIRMATION_ICONS,\r\n useValue: { ...DEFAULT_CONFIRMATION_ICONS },\r\n },\r\n tenantNotFoundProvider,\r\n DEFAULT_HANDLERS_PROVIDERS,\r\n ];\r\n\r\n for (const feature of features) {\r\n providers.push(...feature.ɵproviders);\r\n }\r\n\r\n return makeEnvironmentProviders(providers);\r\n}\r\n","import { Environment } from '@abp/ng.core';\r\nimport {\r\n EnvironmentProviders,\r\n makeEnvironmentProviders,\r\n Provider,\r\n} from '@angular/core';\r\nimport { LOGO_APP_NAME_TOKEN, LOGO_URL_TOKEN } from '../tokens/logo.token';\r\n\r\nexport enum LogoFeatureKind {\r\n Options,\r\n}\r\n\r\nexport interface LogoFeature<KindT extends LogoFeatureKind> {\r\n ɵkind: KindT;\r\n ɵproviders: (Provider | EnvironmentProviders)[];\r\n}\r\n\r\nfunction makeLogoFeature<KindT extends LogoFeatureKind>(\r\n kind: KindT,\r\n providers: (Provider | EnvironmentProviders)[],\r\n): LogoFeature<KindT> {\r\n return {\r\n ɵkind: kind,\r\n ɵproviders: providers,\r\n };\r\n}\r\n\r\nexport function withEnvironmentOptions(\r\n options = {} as Environment,\r\n): LogoFeature<LogoFeatureKind.Options> {\r\n const { name, logoUrl } = options.application || {};\r\n\r\n return makeLogoFeature(LogoFeatureKind.Options, [\r\n {\r\n provide: LOGO_URL_TOKEN,\r\n useValue: logoUrl || '',\r\n },\r\n {\r\n provide: LOGO_APP_NAME_TOKEN,\r\n useValue: name || 'ProjectName',\r\n },\r\n ]);\r\n}\r\n\r\nexport function provideLogo(\r\n ...features: LogoFeature<LogoFeatureKind>[]\r\n): EnvironmentProviders {\r\n const providers: (Provider | EnvironmentProviders)[] = [];\r\n features.forEach(({ ɵproviders }) => providers.push(...ɵproviders));\r\n return makeEnvironmentProviders(providers);\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\r\nimport { NgxDatatableModule } from '@swimlane/ngx-datatable';\r\nimport {\r\n BreadcrumbItemsComponent,\r\n BreadcrumbComponent,\r\n ButtonComponent,\r\n ConfirmationComponent,\r\n HttpErrorWrapperComponent,\r\n LoaderBarComponent,\r\n LoadingComponent,\r\n ModalComponent,\r\n ToastContainerComponent,\r\n ToastComponent,\r\n ModalCloseDirective,\r\n PasswordComponent,\r\n CardModule,\r\n FormInputComponent,\r\n FormCheckboxComponent,\r\n} from './components';\r\nimport {\r\n LoadingDirective,\r\n NgxDatatableDefaultDirective,\r\n NgxDatatableListDirective,\r\n AbpVisibleDirective,\r\n DisabledDirective,\r\n} from './directives';\r\nimport { RootParams } from './models';\r\nimport {\r\n provideAbpThemeShared,\r\n withConfirmationIcon,\r\n withHttpErrorConfig,\r\n withValidateOnSubmit,\r\n withValidationBluePrint,\r\n withValidationMapErrorsFn,\r\n} from './providers';\r\n\r\nexport const THEME_SHARED_EXPORTS = [\r\n BreadcrumbComponent,\r\n BreadcrumbItemsComponent,\r\n ButtonComponent,\r\n ConfirmationComponent,\r\n LoaderBarComponent,\r\n LoadingComponent,\r\n ModalComponent,\r\n ToastComponent,\r\n ToastContainerComponent,\r\n LoadingDirective,\r\n ModalCloseDirective,\r\n FormInputComponent,\r\n FormCheckboxComponent,\r\n HttpErrorWrapperComponent,\r\n NgxDatatableModule,\r\n NgxValidateCoreModule,\r\n CardModule,\r\n DisabledDirective,\r\n AbpVisibleDirective,\r\n NgxDatatableListDirective,\r\n NgxDatatableDefaultDirective,\r\n PasswordComponent,\r\n];\r\n\r\n@NgModule({\r\n imports: [...THEME_SHARED_EXPORTS],\r\n declarations: [],\r\n exports: [...THEME_SHARED_EXPORTS],\r\n})\r\nexport class BaseThemeSharedModule {}\r\n\r\n@NgModule({\r\n imports: [BaseThemeSharedModule],\r\n exports: [BaseThemeSharedModule],\r\n})\r\nexport class ThemeSharedModule {\r\n /**\r\n * @deprecated forRoot method is deprecated, use `provideAbpThemeShared` *function* for config settings.\r\n */\r\n static forRoot(\r\n { httpErrorConfig, validation = {}, confirmationIcons = {} } = {} as RootParams,\r\n ): ModuleWithProviders<ThemeSharedModule> {\r\n return {\r\n ngModule: ThemeSharedModule,\r\n providers: [\r\n provideAbpThemeShared(\r\n withHttpErrorConfig(httpErrorConfig),\r\n withValidationBluePrint(validation.blueprints),\r\n withValidationMapErrorsFn(validation.mapErrorsFn),\r\n withValidateOnSubmit(validation.validateOnSubmit),\r\n withConfirmationIcon(confirmationIcons),\r\n ),\r\n ],\r\n };\r\n }\r\n}\r\n","/*\r\n * Public API Surface of theme-shared\r\n */\r\n\r\nexport * from './lib/adapters';\r\nexport * from './lib/animations';\r\nexport * from './lib/components';\r\nexport * from './lib/directives';\r\nexport * from './lib/enums';\r\nexport * from './lib/handlers';\r\nexport * from './lib/models';\r\nexport * from './lib/providers';\r\nexport * from './lib/services';\r\nexport * from './lib/theme-shared.module';\r\nexport * from './lib/tokens';\r\nexport * from './lib/utils';\r\nexport * from './lib/constants';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|