@webilix/ngx-helper-m3 0.0.17 → 0.0.18

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":"webilix-ngx-helper-m3.mjs","sources":["../../../ngx-helper-m3/src/lib/ngx-helper.config.ts","../../../ngx-helper-m3/src/lib/components/box/ngx-helper-box.interface.ts","../../../ngx-helper-m3/src/lib/components/box/ngx-helper-box.component.ts","../../../ngx-helper-m3/src/lib/components/box/ngx-helper-box.component.html","../../../ngx-helper-m3/src/lib/pipes/bank-card.pipe.ts","../../../ngx-helper-m3/src/lib/pipes/date.pipe.ts","../../../ngx-helper-m3/src/lib/pipes/duration.pipe.ts","../../../ngx-helper-m3/src/lib/pipes/file-size.pipe.ts","../../../ngx-helper-m3/src/lib/pipes/mobile.pipe.ts","../../../ngx-helper-m3/src/lib/pipes/number.pipe.ts","../../../ngx-helper-m3/src/lib/pipes/period.pipe.ts","../../../ngx-helper-m3/src/lib/pipes/price.pipe.ts","../../../ngx-helper-m3/src/lib/pipes/volume.pipe.ts","../../../ngx-helper-m3/src/lib/pipes/weight.pipe.ts","../../../ngx-helper-m3/src/lib/components/value/ngx-helper-value.pipe.ts","../../../ngx-helper-m3/src/lib/components/component.service.ts","../../../ngx-helper-m3/src/lib/components/card/ngx-helper-card.component.ts","../../../ngx-helper-m3/src/lib/components/card/ngx-helper-card.component.html","../../../ngx-helper-m3/src/lib/components/loader/ngx-helper-loader.component.ts","../../../ngx-helper-m3/src/lib/components/loader/ngx-helper-loader.component.html","../../../ngx-helper-m3/src/lib/components/page-group/ngx-helper-page-group.interface.ts","../../../ngx-helper-m3/src/lib/components/page-group/ngx-helper-page-group.component.ts","../../../ngx-helper-m3/src/lib/components/page-group/ngx-helper-page-group.component.html","../../../ngx-helper-m3/src/lib/components/progress/ngx-helper-progress.component.ts","../../../ngx-helper-m3/src/lib/components/progress/ngx-helper-progress.component.html","../../../ngx-helper-m3/src/lib/components/section/ngx-helper-section.component.ts","../../../ngx-helper-m3/src/lib/components/section/ngx-helper-section.component.html","../../../ngx-helper-m3/src/lib/components/section/column/ngx-helper-section-column.component.ts","../../../ngx-helper-m3/src/lib/components/section/column/ngx-helper-section-column.component.html","../../../ngx-helper-m3/src/lib/components/value/box/ngx-helper-value-box.component.ts","../../../ngx-helper-m3/src/lib/components/value/box/ngx-helper-value-box.component.html","../../../ngx-helper-m3/src/lib/components/value/list/ngx-helper-value-list.component.ts","../../../ngx-helper-m3/src/lib/components/value/list/ngx-helper-value-list.component.html","../../../ngx-helper-m3/src/lib/confirm/dialog/confirm-dialog.component.ts","../../../ngx-helper-m3/src/lib/confirm/dialog/confirm-dialog.component.html","../../../ngx-helper-m3/src/lib/confirm/bottom-sheet/confirm-bottom-sheet.component.ts","../../../ngx-helper-m3/src/lib/confirm/bottom-sheet/confirm-bottom-sheet.component.html","../../../ngx-helper-m3/src/lib/confirm/confirm.service.ts","../../../ngx-helper-m3/src/lib/container/container.interface.ts","../../../ngx-helper-m3/src/lib/container/dialog/container-dialog.component.ts","../../../ngx-helper-m3/src/lib/container/dialog/container-dialog.component.html","../../../ngx-helper-m3/src/lib/container/bottom-sheet/container-bottom-sheet.component.ts","../../../ngx-helper-m3/src/lib/container/bottom-sheet/container-bottom-sheet.component.html","../../../ngx-helper-m3/src/lib/container/container.service.ts","../../../ngx-helper-m3/src/lib/coordinates/get/get.component.ts","../../../ngx-helper-m3/src/lib/coordinates/get/get.component.html","../../../ngx-helper-m3/src/lib/coordinates/show/show.component.ts","../../../ngx-helper-m3/src/lib/coordinates/show/show.component.html","../../../ngx-helper-m3/src/lib/coordinates/ngx-helper-coordinates.service.ts","../../../ngx-helper-m3/src/lib/pipes/multi-line.pipe.ts","../../../ngx-helper-m3/src/lib/toast/toast/toast.component.ts","../../../ngx-helper-m3/src/lib/toast/toast/toast.component.html","../../../ngx-helper-m3/src/lib/toast/ngx-helper-toast.service.ts","../../../ngx-helper-m3/src/lib/http/download/download.component.ts","../../../ngx-helper-m3/src/lib/http/download/download.component.html","../../../ngx-helper-m3/src/lib/http/upload/upload.component.ts","../../../ngx-helper-m3/src/lib/http/upload/upload.component.html","../../../ngx-helper-m3/src/lib/http/ngx-helper-http.service.ts","../../../ngx-helper-m3/src/lib/directives/ngx-helper-sticky.directive.ts","../../../ngx-helper-m3/src/lib/pipes/safe.pipe.ts","../../../ngx-helper-m3/src/public-api.ts","../../../ngx-helper-m3/src/webilix-ngx-helper-m3.ts"],"sourcesContent":["import { EnvironmentProviders, InjectionToken, makeEnvironmentProviders, Provider } from '@angular/core';\n\nexport interface INgxHelperConfig {\n readonly mobileWidth: number;\n\n // PAGE GROUP\n readonly pageGroupSidebarWidth: string;\n\n // TOAST\n readonly toastTimeout: number;\n readonly toastXPosition: 'LEFT' | 'CENTER' | 'RIGHT';\n readonly toastAllowDuplicates: boolean;\n readonly toastResetDuplicates: boolean;\n readonly toastProgressAnimation: 'DECREASE' | 'INCREASE';\n\n // STICKY\n readonly stickyView: {\n readonly top?: string | { readonly desktopView: string; readonly mobileView: string };\n readonly bottom?: string | { readonly desktopView: string; readonly mobileView: string };\n };\n}\n\nexport const NGX_HELPER_CONFIG = new InjectionToken<Partial<INgxHelperConfig>>('NGX-HELPER-CONFIG');\n\nexport const provideNgxHelperConfig = (config: Partial<INgxHelperConfig>): EnvironmentProviders => {\n const providers: Provider[] = [{ provide: NGX_HELPER_CONFIG, useValue: config }];\n\n return makeEnvironmentProviders(providers);\n};\n","import { InjectionToken } from '@angular/core';\n\nexport const NGX_HELPER_BOX_DATA: InjectionToken<any> = new InjectionToken('NGX-HELPER-BOX-DATA');\n","import { Component, HostBinding, Injector, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\nimport { NgComponentOutlet } from '@angular/common';\nimport { ComponentType } from '@angular/cdk/portal';\n\nimport { NGX_HELPER_BOX_DATA } from './ngx-helper-box.interface';\n\n@Component({\n selector: 'ngx-helper-box',\n imports: [NgComponentOutlet],\n templateUrl: './ngx-helper-box.component.html',\n styleUrl: './ngx-helper-box.component.scss',\n})\nexport class NgxHelperBoxComponent implements OnInit, OnChanges {\n @HostBinding('className') private className: string = 'ngx-helper-m3-box';\n @HostBinding('style.padding') private paddingCSS!: string;\n\n @Input({ required: false }) component?: ComponentType<any>;\n @Input({ required: false }) data?: any;\n @Input({ required: false }) padding: string = '1rem';\n @Input({ required: false }) hideShadow: boolean = false;\n\n public injector!: Injector;\n\n ngOnInit(): void {\n this.setInjector();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.setInjector();\n }\n\n setInjector(): void {\n this.paddingCSS = this.padding;\n this.className = `ngx-helper-m3-box${this.hideShadow ? ' hide-shadow' : ''}`;\n if (!this.component) return;\n\n this.injector = Injector.create({\n providers: [{ provide: NGX_HELPER_BOX_DATA, useValue: this.data }],\n });\n }\n}\n","@if (component) {\n<span *ngComponentOutlet=\"component; injector: injector\"></span>\n} @else {\n<ng-content></ng-content>\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport { Helper } from '@webilix/helper-library';\n\n@Pipe({ name: 'ngxHelperBankCard' })\nexport class NgxHelperBankCardPipe implements PipeTransform {\n transform(value?: string | null, options?: { view?: 'CARD' | 'BANK'; join?: string }): string {\n if (value === undefined || value === null || !Helper.IS.string(value) || value === '') return '';\n\n switch (options?.view) {\n case 'BANK':\n return Helper.BANK.findCard(value)?.title || '';\n default:\n return Helper.STRING.getBankCardView(value, options?.join || '-');\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport { Helper } from '@webilix/helper-library';\nimport { JalaliDateTime } from '@webilix/jalali-date-time';\n\nimport { DateFormats } from '../pipe.types';\n\n@Pipe({ name: 'ngxHelperDate' })\nexport class NgxHelperDatePipe implements PipeTransform {\n transform(value?: Date | null, options?: { format?: DateFormats; timezone?: string }): string;\n transform(value?: number | null, options?: { format?: DateFormats; timezone?: string }): string;\n transform(value?: any, options?: { format?: DateFormats; timezone?: string }): string {\n if (value === undefined || value === null || (!Helper.IS.date(value) && !Helper.IS.number(value))) return '';\n\n const date: Date = typeof value === 'number' ? new Date(value) : value;\n const jalali = JalaliDateTime();\n const timezone: string =\n options?.timezone && jalali.timezones().includes(options?.timezone) ? options?.timezone : 'Asia/Tehran';\n\n switch (options?.format || 'DATE') {\n case 'FULL':\n return jalali.toFullText(date, { format: 'W، d N Y H:I', timezone });\n\n case 'SHORT':\n return jalali.toFullText(date, { format: 'Y/M/D', timezone });\n\n case 'DATE':\n return jalali.toFullText(date, { format: 'W، d N Y', timezone });\n\n case 'TIME':\n return jalali.toFullText(date, { format: 'H:I', timezone });\n\n case 'WEEK':\n const { from, to } = jalali.periodWeek(1, date, timezone);\n return Helper.DATE.jalaliPeriod(from, to, timezone);\n\n case 'MONTH':\n return jalali.toFullText(date, { format: 'N Y', timezone });\n\n case 'YEAR':\n return jalali.toFullText(date, { format: 'Y', timezone });\n\n default:\n return jalali.toFullText(date, { format: options?.format, timezone });\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport { Helper } from '@webilix/helper-library';\n\nimport { DurationFormats } from '../pipe.types';\n\n@Pipe({ name: 'ngxHelperDuration' })\nexport class NgxHelperDurationPipe implements PipeTransform {\n transform(value?: number | null, options?: { format?: DurationFormats; english?: boolean }): string;\n transform(value?: Date | null, options?: { format?: DurationFormats; english?: boolean }): string;\n transform(value?: { from: Date } | null, options?: { format?: DurationFormats; english?: boolean }): string;\n transform(value?: { to: Date } | null, options?: { format?: DurationFormats; english?: boolean }): string;\n transform(value?: { from: Date; to: Date } | null, options?: { format?: DurationFormats; english?: boolean }): string;\n transform(value?: any, options?: { format?: DurationFormats; english?: boolean }): string {\n if (value === undefined || value === null) return '';\n\n let seconds: number = 0;\n if (Helper.IS.number(value)) seconds = Math.abs(value);\n else if (Helper.IS.date(value)) seconds = Math.floor(Math.abs(new Date().getTime() - value.getTime()) / 1000);\n else if (Helper.IS.object(value)) {\n const from: Date = 'from' in value ? value.from : new Date();\n const to: Date = 'to' in value ? value.to : new Date();\n seconds = Math.floor(Math.abs(from.getTime() - to.getTime()) / 1000);\n }\n\n const days: number = Math.floor(seconds / (24 * 60 * 60));\n seconds -= days * (24 * 60 * 60);\n const hours: number = Math.floor(seconds / (60 * 60));\n seconds -= hours * (60 * 60);\n const minutes: number = Math.floor(seconds / 60);\n seconds -= minutes * 60;\n\n const hasDays: boolean = days !== 0;\n const time: string = [hours, minutes, seconds].map((v) => v.toString().padStart(2, '0')).join(':');\n\n switch (options?.format || 'TEXT') {\n case 'TEXT':\n const hasTime: boolean = !!hours || !!minutes || !!seconds;\n const day: string = hasDays\n ? Helper.NUMBER.format(days, 'EN') + (!!options?.english ? (days === 1 ? ' day' : ' days') : ' روز')\n : '';\n const join = hasDays && hasTime ? (!!options?.english ? ', ' : ' و ') : '';\n return (day + join + (!hasDays || hasTime ? time : '')).trim();\n\n case 'FULL':\n return (hasDays ? Helper.NUMBER.format(days, 'EN') + ':' : '') + time;\n\n case 'DAY':\n return Helper.NUMBER.format(days + (hours !== 0 || minutes !== 0 ? 1 : 0), !!options?.english ? 'EN' : 'FA');\n\n case 'HOUR':\n return Helper.NUMBER.format(days * 24 + hours + (minutes !== 0 ? 1 : 0), !!options?.english ? 'EN' : 'FA');\n\n case 'MINUTE':\n return Helper.NUMBER.format(days * 24 * 60 + hours * 60 + minutes, !!options?.english ? 'EN' : 'FA');\n\n case 'SECOND':\n return Helper.NUMBER.format(\n days * 24 * 3600 + hours * 3600 + minutes * 60 + seconds,\n !!options?.english ? 'EN' : 'FA',\n );\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport { Helper } from '@webilix/helper-library';\n\n@Pipe({ name: 'ngxHelperFileSize' })\nexport class NgxHelperFileSizePipe implements PipeTransform {\n transform(value?: number | null, options?: { english?: boolean }): string {\n if (value === undefined || value === null || !Helper.IS.number(value)) return '';\n\n return Helper.NUMBER.toFileSize(value, !!options?.english ? 'EN' : 'FA');\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport { Helper } from '@webilix/helper-library';\n\n@Pipe({ name: 'ngxHelperMobile' })\nexport class NgxHelperMobilePipe implements PipeTransform {\n transform(value?: string | null, options?: { join?: string }): string {\n if (value === undefined || value === null || !Helper.IS.string(value) || value === '') return '';\n\n return Helper.STRING.getMobileView(value, options?.join || '-');\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport { Helper } from '@webilix/helper-library';\n\n@Pipe({ name: 'ngxHelperNumber' })\nexport class NgxHelperNumberPipe implements PipeTransform {\n transform(value?: number | null, options?: { fractionDigits?: number; english?: boolean }): string {\n if (value === undefined || value === null || !Helper.IS.number(value)) return '';\n\n value = options?.fractionDigits ? +value.toFixed(options?.fractionDigits) : value;\n return Helper.NUMBER.format(value, options?.english ? 'EN' : 'FA');\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport { Helper } from '@webilix/helper-library';\n\n@Pipe({ name: 'ngxHelperPeriod' })\nexport class NgxHelperPeriodPipe implements PipeTransform {\n transform(value?: Date | null, options?: { timezone?: string }): string;\n transform(value?: { from: Date } | null, options?: { timezone?: string }): string;\n transform(value?: { to: Date } | null, options?: { timezone?: string }): string;\n transform(value?: { from: Date; to: Date } | null, options?: { timezone?: string }): string;\n transform(value?: any, options?: { timezone?: string }): string {\n if (value === undefined || value === null) return '';\n\n const from: Date = Helper.IS.date(value) ? value : 'from' in value ? value.from : new Date();\n const to: Date = Helper.IS.date(value) ? new Date() : 'to' in value ? value.to : new Date();\n\n return Helper.DATE.jalaliPeriod(from, to, options?.timezone || '');\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport { Helper } from '@webilix/helper-library';\n\n@Pipe({ name: 'ngxHelperPrice' })\nexport class NgxHelperPricePipe implements PipeTransform {\n transform(value?: number | null, options?: { currency?: string; short?: boolean; english?: boolean }): string {\n if (value === undefined || value === null || !Helper.IS.number(value) || value < 0) return '';\n\n const getPrice = (...titles: [string, string][]): string => {\n if (value === undefined || value === null) return '';\n\n const price: string = Helper.NUMBER.format(+value.toFixed(2), !!options?.english ? 'EN' : 'FA');\n const unit: string = titles[options?.short ? 0 : 1][options?.english ? 0 : 1];\n const currency: string = options?.currency ? ' ' + options?.currency : '';\n\n return `${price} ${unit}${currency}`;\n };\n\n if (value < 1000) return getPrice(['', ''], ['', '']);\n\n value /= 1000;\n if (value < 1000) return getPrice(['T', 'ه'], ['Thousand', 'هزار']);\n\n value /= 1000;\n if (value < 1000) return getPrice(['M', 'م'], ['Million', 'میلیون']);\n\n value /= 1000;\n return getPrice(['B', 'د'], ['Billion', 'میلیارد']);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport { Helper } from '@webilix/helper-library';\n\n@Pipe({ name: 'ngxHelperVolume' })\nexport class NgxHelperVolumePipe implements PipeTransform {\n transform(value?: number | null, options?: { short?: boolean; english?: boolean }): string {\n if (value === undefined || value === null || !Helper.IS.number(value) || value < 0) return '';\n\n const getVolume = (...titles: [string, string][]): string => {\n if (value === undefined || value === null) return '';\n\n const volume: string = Helper.NUMBER.format(+value.toFixed(2), options?.english ? 'EN' : 'FA');\n const shortIndex: number = options?.short ? 0 : 1;\n const titleIndex: number = options?.english ? 0 : 1;\n return `${volume} ${titles[shortIndex][titleIndex]}`;\n };\n\n if (value === 0) return getVolume(['', ''], ['', '']);\n\n if (value < 1000) return getVolume(['ML', 'م'], ['Milliliter', 'میلی لیتر']);\n\n value /= 1000;\n return getVolume(['L', 'ل'], ['Liter', 'لیتر']);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport { Helper } from '@webilix/helper-library';\n\n@Pipe({ name: 'ngxHelperWeight' })\nexport class NgxHelperWeightPipe implements PipeTransform {\n transform(value?: number | null, options?: { short?: boolean; english?: boolean }): string {\n if (value === undefined || value === null || !Helper.IS.number(value) || value < 0) return '';\n\n const getWeight = (...titles: [string, string][]): string => {\n if (value === undefined || value === null) return '';\n\n const weight: string = Helper.NUMBER.format(+value.toFixed(2), options?.english ? 'EN' : 'FA');\n const shortIndex: number = options?.short ? 0 : 1;\n const titleIndex: number = options?.english ? 0 : 1;\n return `${weight} ${titles[shortIndex][titleIndex]}`;\n };\n\n if (value === 0) return getWeight(['', ''], ['', '']);\n\n if (value < 1000) return getWeight(['G', 'گ'], ['Gram', 'گرم']);\n\n value /= 1000;\n if (value < 1000) return getWeight(['K', 'ک'], ['Kilogram', 'کیلو']);\n\n value /= 1000;\n if (value < 1000) return getWeight(['T', 'ت'], ['Tonne', 'تن']);\n\n value /= 1000;\n return getWeight(['KT', 'ه'], ['Kilotonne', 'هزار تن']);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport { Helper } from '@webilix/helper-library';\n\nimport { NgxHelperBankCardPipe } from '../../pipes/bank-card.pipe';\nimport { NgxHelperDatePipe } from '../../pipes/date.pipe';\nimport { NgxHelperDurationPipe } from '../../pipes/duration.pipe';\nimport { NgxHelperFileSizePipe } from '../../pipes/file-size.pipe';\nimport { NgxHelperMobilePipe } from '../../pipes/mobile.pipe';\nimport { NgxHelperNumberPipe } from '../../pipes/number.pipe';\nimport { NgxHelperPeriodPipe } from '../../pipes/period.pipe';\nimport { NgxHelperPricePipe } from '../../pipes/price.pipe';\nimport { NgxHelperVolumePipe } from '../../pipes/volume.pipe';\nimport { NgxHelperWeightPipe } from '../../pipes/weight.pipe';\n\nimport { NgxHelperValue } from './ngx-helper-value.interface';\n\n@Pipe({ name: 'ngxHelperValue' })\nexport class NgxHelperValuePipe implements PipeTransform {\n transform(value?: NgxHelperValue, options?: { emptyText?: string }): string {\n const emptyText = options?.emptyText || '';\n if (value === undefined || Helper.IS.empty(value)) return emptyText;\n\n switch (value.type) {\n case 'BANK-CARD':\n return new NgxHelperBankCardPipe().transform(value.value, value) || emptyText;\n\n case 'DATE':\n return new NgxHelperDatePipe().transform(value.value as any, value) || emptyText;\n\n case 'DURATION':\n return new NgxHelperDurationPipe().transform(value.value as any, value) || emptyText;\n\n case 'FILE-SIZE':\n return new NgxHelperFileSizePipe().transform(value.value as any, value) || emptyText;\n\n case 'MOBILE':\n return new NgxHelperMobilePipe().transform(value.value as any, value) || emptyText;\n\n case 'NUMBER':\n return new NgxHelperNumberPipe().transform(value.value as any, value) || emptyText;\n\n case 'PERIOD':\n return new NgxHelperPeriodPipe().transform(value.value as any, value) || emptyText;\n\n case 'PRICE':\n return new NgxHelperPricePipe().transform(value.value as any, value) || emptyText;\n\n case 'STRING':\n return Helper.IS.string(value.value) ? (value.value as any) : emptyText;\n\n case 'VOLUME':\n return new NgxHelperVolumePipe().transform(value.value as any, value) || emptyText;\n\n case 'WEIGHT':\n return new NgxHelperWeightPipe().transform(value.value as any, value) || emptyText;\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { INgxHelperConfig } from '../ngx-helper.config';\n\nimport { INgxHelperValue, NgxHelperValue } from './value/ngx-helper-value.interface';\nimport { NgxHelperValuePipe } from './value/ngx-helper-value.pipe';\n\nexport interface IComponentConfig {\n readonly mobileWidth: number;\n readonly pageGroupSidebarWidth: string;\n readonly stickyView?: {\n readonly top?: { readonly desktopView: string; readonly mobileView: string };\n readonly bottom?: { readonly desktopView: string; readonly mobileView: string };\n };\n}\n\nexport interface IValueComponentData {\n readonly title: string;\n readonly value: string;\n readonly color?: string;\n readonly action?: () => string[] | void;\n readonly copyToClipboard?: boolean;\n readonly ltr?: boolean;\n readonly english?: boolean;\n}\n\n@Injectable()\nexport class ComponentService {\n getComponentConfig(config?: Partial<INgxHelperConfig>): IComponentConfig {\n const getStickyView = (\n config: string | { desktopView: string; mobileView: string },\n ): { desktopView: string; mobileView: string } => {\n return {\n desktopView: typeof config === 'string' ? config : config.desktopView,\n mobileView: typeof config === 'string' ? config : config.mobileView,\n };\n };\n\n return {\n mobileWidth: config?.mobileWidth || 600,\n pageGroupSidebarWidth: config?.pageGroupSidebarWidth || '200px',\n stickyView: config?.stickyView\n ? {\n top: config.stickyView.top ? getStickyView(config.stickyView.top) : undefined,\n bottom: config.stickyView.bottom ? getStickyView(config.stickyView.bottom) : undefined,\n }\n : undefined,\n };\n }\n\n getValueData(values: INgxHelperValue[]): IValueComponentData[] {\n const pipeTransform = new NgxHelperValuePipe().transform;\n const ltrValues: NgxHelperValue['type'][] = ['BANK-CARD', 'MOBILE', 'NUMBER'];\n\n return values.map((item) => {\n const value = item.value;\n return value === undefined\n ? { title: item.title, value: '' }\n : typeof value === 'string'\n ? { title: item.title, value: value.trim(), color: item.color }\n : {\n title: item.title,\n value: pipeTransform(value),\n color: item.color,\n action: item.action,\n copyToClipboard: item.copyToClipboard,\n ltr: ltrValues.includes(value.type),\n english: 'english' in value && !!value.english,\n };\n });\n }\n}\n","import { Component, HostBinding, Inject, Input, OnChanges, OnInit, Optional, SimpleChanges } from '@angular/core';\nimport { NgClass } from '@angular/common';\n\nimport { MatButton } from '@angular/material/button';\nimport { MatDivider } from '@angular/material/divider';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\n\nimport { INgxHelperConfig, NGX_HELPER_CONFIG } from '../../ngx-helper.config';\n\nimport { ComponentService, IComponentConfig } from '../component.service';\n\nimport { NgxHelperAction } from './ngx-helper-card.interface';\n\ntype Button =\n | { type: 'BUTTON'; title: string; icon: string; action: () => void; color?: string; showIcon?: boolean }\n | {\n type: 'MENU';\n title: string;\n icon: string;\n color?: string;\n showIcon?: boolean;\n buttons: ('DIVIDER' | { title: string; icon: string; action: () => void; color?: string })[];\n };\n\n@Component({\n selector: 'ngx-helper-card',\n host: { '(window:resize)': 'onResize($event)' },\n imports: [NgClass, MatButton, MatDivider, MatIcon, MatMenuModule],\n providers: [ComponentService],\n templateUrl: './ngx-helper-card.component.html',\n styleUrl: './ngx-helper-card.component.scss',\n})\nexport class NgxHelperCardComponent implements OnInit, OnChanges {\n @HostBinding('className') private className: string = 'ngx-helper-m3-card';\n\n @Input({ required: true }) title!: string;\n @Input({ required: false }) subTitle?: string;\n @Input({ required: false }) icon?: string;\n @Input({ required: false }) actions: NgxHelperAction[] = [];\n @Input({ required: false }) padding: string = '1rem';\n @Input({ required: false }) backgroundColor?: string;\n @Input({ required: false }) hasShadow: boolean = false;\n\n public isMobile: boolean = false;\n public buttons: Button[] = [];\n private componentConfig!: IComponentConfig;\n\n constructor(\n private readonly componentService: ComponentService,\n @Optional() @Inject(NGX_HELPER_CONFIG) private readonly config?: Partial<INgxHelperConfig>,\n ) {}\n\n ngOnInit(): void {\n this.componentConfig = this.componentService.getComponentConfig(this.config);\n this.onResize();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.className = `ngx-helper-m3-card${this.hasShadow ? ' has-shadow' : ''}`;\n\n this.buttons = this.actions.map((action) => {\n return 'buttons' in action ? { type: 'MENU', ...action } : { type: 'BUTTON', ...action };\n });\n }\n\n onResize(): void {\n this.isMobile = window.innerWidth <= this.componentConfig.mobileWidth;\n }\n}\n","<div class=\"card-header\" [class.has-sub-title]=\"subTitle\">\n <!-- ICON -->\n @if (icon) { <mat-icon>{{ icon }}</mat-icon> }\n\n <!-- TITLE -->\n <div class=\"content\">\n <div class=\"title\">{{ title }}</div>\n <!-- SUB TITLE -->\n @if (subTitle) {\n <div class=\"sub-title\">{{ subTitle }}</div>\n }\n </div>\n\n <!-- BUTTONS -->\n @if (buttons.length > 0) {\n <div class=\"buttons\" [ngClass]=\"isMobile ? 'mobile-view' : ''\">\n @for (item of buttons; track $index) {\n <!-- TYPE -->\n @switch (item.type) {\n\n <!-- BUTTON -->\n @case('BUTTON') {\n <button mat-button type=\"button\" [style.color]=\"item.color\" (click)=\"item.action()\">\n @if (!isMobile) {\n <div class=\"title\">{{ item.title }}</div>\n }\n <!-- ICON -->\n @if (isMobile || item.showIcon) {\n <mat-icon>{{ item.icon }}</mat-icon>\n }\n </button>\n }\n\n <!-- MENU -->\n @case('MENU') {\n <button mat-button type=\"button\" [style.color]=\"item.color\" [matMenuTriggerFor]=\"actionMenu\">\n @if (!isMobile) {\n <div class=\"title\">{{ item.title }}</div>\n }\n <!-- ICON -->\n @if (isMobile || item.showIcon) {\n <mat-icon>{{ item.icon }}</mat-icon>\n }\n </button>\n <mat-menu #actionMenu=\"matMenu\" class=\"ngx-helper-card-action-menu\" [xPosition]=\"'before'\">\n @for (menu of item.buttons; track $index) {\n <!-- DIVIDER -->\n @if (menu === 'DIVIDER') { <mat-divider></mat-divider> }\n <!-- BUTTON -->\n @else {\n <button mat-menu-item type=\"button\" (click)=\"menu.action()\" [style.color]=\"menu.color\">\n <div class=\"title\">{{ menu.title }}</div>\n <mat-icon [style.color]=\"menu.color\">{{ menu.icon }}</mat-icon>\n </button>\n } }\n </mat-menu>\n } } }\n </div>\n }\n</div>\n\n<div class=\"card-content\" [style.padding]=\"padding\" [style.background-color]=\"backgroundColor\">\n <ng-content></ng-content>\n</div>\n","import { Component, HostBinding, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\n\n@Component({\n selector: 'ngx-helper-loader',\n imports: [],\n templateUrl: './ngx-helper-loader.component.html',\n styleUrl: './ngx-helper-loader.component.scss',\n})\nexport class NgxHelperLoaderComponent implements OnInit, OnChanges {\n @HostBinding('style.--loader-size') public loaderSize!: string;\n @HostBinding('style.--loader-color') public loaderColor!: string;\n\n @Input({ required: false }) public mode: 'SPINNER' | 'DOTS-SPINNER' | 'WHEEL-SPINNER' = 'SPINNER';\n @Input({ required: false }) public size!: number;\n @Input({ required: false }) public color!: string;\n @Input({ required: false }) public padding?: string;\n @Input({ required: false }) public margin?: string;\n\n ngOnInit(): void {\n this.init();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.init();\n }\n\n init(): void {\n this.loaderSize = `${this.size || 25}px`;\n this.loaderColor = this.color || `var(--secondary)`;\n }\n}\n","<div [style.padding]=\"padding || '0'\">\n <div [class]=\"mode.toLowerCase()\" [style.margin]=\"margin || '0px'\"></div>\n</div>\n","import { InjectionToken } from '@angular/core';\nimport { ComponentType } from '@angular/cdk/portal';\n\ninterface IPage {\n readonly title: string;\n readonly icon: string;\n readonly component: ComponentType<any>;\n}\n\nexport interface INgxHelperPageGroup {\n readonly route?: string[];\n readonly header?: ComponentType<any>;\n readonly pages: { [key: string]: IPage };\n\n // SETTING\n readonly sidebarWidth?: string;\n}\n\nexport interface INgxHelperPageGroupItem {\n readonly index: number;\n readonly id: string;\n readonly title: string;\n readonly icon: string;\n}\n\nexport const NGX_HELPER_PAGE_GROUP_ITEM: InjectionToken<INgxHelperPageGroupItem> = new InjectionToken(\n 'NGX-HELPER-PAGE-GROUP-ITEM',\n);\nexport const NGX_HELPER_PAGE_GROUP_DATA: InjectionToken<any> = new InjectionToken('NGX-HELPER-PAGE-GROUP-DATA');\nexport const NGX_HELPER_PAGE_GROUP_DATA_CHANGE: InjectionToken<(data: any) => void> = new InjectionToken(\n 'NGX-HELPER-PAGE-GROUP-DATA-CHANGE',\n);\n","import {\n Component,\n EventEmitter,\n HostBinding,\n Inject,\n Injector,\n Input,\n OnChanges,\n OnInit,\n Optional,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport { NgComponentOutlet } from '@angular/common';\nimport { ActivatedRoute, Router } from '@angular/router';\n\nimport { MatIcon } from '@angular/material/icon';\n\nimport { Helper } from '@webilix/helper-library';\n\nimport { INgxHelperConfig, NGX_HELPER_CONFIG } from '../../ngx-helper.config';\n\nimport { ComponentService, IComponentConfig } from '../component.service';\n\nimport {\n INgxHelperPageGroup,\n INgxHelperPageGroupItem,\n NGX_HELPER_PAGE_GROUP_DATA,\n NGX_HELPER_PAGE_GROUP_DATA_CHANGE,\n NGX_HELPER_PAGE_GROUP_ITEM,\n} from './ngx-helper-page-group.interface';\n\n@Component({\n selector: 'ngx-helper-page-group',\n host: { '(window:resize)': 'onResize($event)' },\n imports: [NgComponentOutlet, MatIcon],\n providers: [ComponentService],\n templateUrl: './ngx-helper-page-group.component.html',\n styleUrl: './ngx-helper-page-group.component.scss',\n})\nexport class NgxHelperPageGroupComponent implements OnInit, OnChanges {\n @HostBinding('className') private className: string = 'ngx-helper-m3-page-group';\n @HostBinding('style.display') display: string = 'none';\n\n @Input({ required: true }) pageGroup!: INgxHelperPageGroup;\n @Input({ required: false }) pageId!: string;\n @Input({ required: false }) data?: any;\n @Output() pageChanged: EventEmitter<INgxHelperPageGroupItem> = new EventEmitter<INgxHelperPageGroupItem>();\n @Output() dataChanged: EventEmitter<any> = new EventEmitter<any>();\n\n public isMobile: boolean = false;\n public pages: string[] = [];\n public injector!: Injector;\n\n public sidebarWidth!: string;\n public componentConfig!: IComponentConfig;\n\n constructor(\n private readonly activatedRoute: ActivatedRoute,\n private readonly router: Router,\n private readonly componentService: ComponentService,\n @Optional() @Inject(NGX_HELPER_CONFIG) private readonly config?: Partial<INgxHelperConfig>,\n ) {}\n\n ngOnInit(): void {\n this.pages = Object.keys(this.pageGroup.pages);\n this.display = this.pages.length === 0 ? 'none' : 'flex';\n if (this.pages.length === 0) return;\n\n this.componentConfig = this.componentService.getComponentConfig(this.config);\n this.sidebarWidth = this.pageGroup.sidebarWidth || this.componentConfig.pageGroupSidebarWidth;\n\n if (!this.pageGroup.pages[this.pageId]) this.pageId = this.pages[0];\n\n const queryParams: { [key: string]: any } = { ...this.activatedRoute.snapshot.queryParams };\n if (!!this.pageGroup.route && Helper.IS.string(queryParams['ngx-helper-page-group'])) {\n const id: string = queryParams['ngx-helper-page-group'];\n if (this.pageId !== id && this.pages.includes(id)) {\n this.pageId = id;\n this.triggerPageChanged();\n }\n }\n\n this.onResize();\n this.setInjector();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.setInjector();\n }\n\n onResize(): void {\n this.isMobile = window.innerWidth <= this.componentConfig.mobileWidth;\n this.className = `ngx-helper-m3-page-group${this.isMobile ? ' mobile-view' : ''}`;\n }\n\n setInjector(): void {\n if (this.pages.length === 0) return;\n\n const item: INgxHelperPageGroupItem = {\n index: this.pages.findIndex((page) => page === this.pageId),\n id: this.pageId,\n title: this.pageGroup.pages[this.pageId].title,\n icon: this.pageGroup.pages[this.pageId].icon,\n };\n\n this.injector = Injector.create({\n providers: [\n { provide: NGX_HELPER_PAGE_GROUP_ITEM, useValue: item },\n { provide: NGX_HELPER_PAGE_GROUP_DATA, useValue: this.data },\n { provide: NGX_HELPER_PAGE_GROUP_DATA_CHANGE, useValue: (data: any) => this.dataChanged.next(data) },\n ],\n });\n }\n\n setPage(id: string): void {\n if (this.pages.length === 0 || this.pageId == id) return;\n\n const page = this.pageGroup.pages[id];\n const index: number = this.pages.findIndex((p) => p === id);\n if (!page || index === -1) return;\n\n this.pageId = id;\n this.triggerPageChanged();\n this.setInjector();\n\n if (this.pageGroup.route) {\n const queryParams: { [key: string]: any } = { ...this.activatedRoute.snapshot.queryParams };\n queryParams['ngx-helper-page-group'] = this.pageId;\n this.router.navigate(this.pageGroup.route, { queryParams });\n }\n }\n\n triggerPageChanged(): void {\n const item: INgxHelperPageGroupItem = {\n index: this.pages.findIndex((page) => page === this.pageId),\n id: this.pageId,\n title: this.pageGroup.pages[this.pageId].title,\n icon: this.pageGroup.pages[this.pageId].icon,\n };\n this.pageChanged.next(item);\n }\n}\n","@if (pages.length > 0) {\n<!-- DESKTOP VIEW -->\n@if (!isMobile) {\n<div\n class=\"page-group-aside\"\n [style.width]=\"sidebarWidth\"\n [style.position]=\"componentConfig.stickyView?.top ? 'sticky' : 'static'\"\n [style.top]=\"componentConfig.stickyView?.top?.desktopView || undefined\"\n>\n @for (item of pages; track $index) {\n <div\n class=\"page\"\n [class.active]=\"pageId === item\"\n [style.cursor]=\"pageId === item ? 'default' : 'pointer'\"\n (click)=\"setPage(item)\"\n >\n <!-- ICON -->\n <mat-icon>{{ pageGroup.pages[item].icon }}</mat-icon>\n <div class=\"title\">{{ pageGroup.pages[item].title }}</div>\n <!-- CURRENT PAGE -->\n @if (pageId === item) { <mat-icon>keyboard_double_arrow_left</mat-icon> }\n </div>\n }\n</div>\n}\n\n<!-- MOBILE VIEW -->\n@if (isMobile) {\n<div\n class=\"page-group-nav\"\n [style.position]=\"componentConfig.stickyView?.top ? 'sticky' : 'static'\"\n [style.top]=\"componentConfig.stickyView?.top?.mobileView || undefined\"\n>\n @for (item of pages; track $index) {\n <div\n class=\"page\"\n [class.active]=\"pageId === item\"\n [style.cursor]=\"pageId === item ? 'default' : 'pointer'\"\n (click)=\"setPage(item)\"\n >\n <mat-icon>{{ pageGroup.pages[item].icon }}</mat-icon>\n @if (pageId === item) {\n <div class=\"title\">{{ pageGroup.pages[item].title }}</div>\n }\n </div>\n }\n</div>\n\n<div\n class=\"page-group-spacer\"\n [style.position]=\"componentConfig.stickyView?.top ? 'sticky' : 'static'\"\n [style.top]=\"\n 'calc(' +\n (componentConfig.stickyView?.top?.mobileView || undefined) +\n ' + var(--ngx-helper-m3-page-group-toolbar-height))'\n \"\n></div>\n}\n\n<div class=\"page-group-content\">\n <!-- HEADER -->\n @if (pageGroup.header) {\n <div\n class=\"header\"\n [style.position]=\"componentConfig.stickyView?.top ? 'sticky' : 'static'\"\n [style.top]=\"\n (isMobile\n ? 'calc(' +\n (componentConfig.stickyView?.top?.mobileView || undefined) +\n ' + var(--ngx-helper-m3-page-group-toolbar-height) + 1rem)'\n : componentConfig.stickyView?.top?.desktopView) || undefined\n \"\n >\n <span *ngComponentOutlet=\"pageGroup.header; injector: injector\"></span>\n <div class=\"spacer\"></div>\n </div>\n }\n <span *ngComponentOutlet=\"pageGroup.pages[pageId].component; injector: injector\"></span>\n</div>\n}\n","import { Component, HostBinding, Input, OnChanges, SimpleChanges } from '@angular/core';\n\n@Component({\n selector: 'ngx-helper-progress',\n imports: [],\n templateUrl: './ngx-helper-progress.component.html',\n styleUrl: './ngx-helper-progress.component.scss',\n})\nexport class NgxHelperProgressComponent implements OnChanges {\n @HostBinding('className') private className: string = 'ngx-helper-m3-progress';\n @HostBinding('style.border-radius') borderRadiusCSS!: string;\n @HostBinding('style.background-color') backgroundColorCSS!: string;\n\n @Input({ required: true }) value!: number | { done: number; total: number };\n @Input({ required: false }) align: 'LR' | 'RL' | 'TB' | 'BT' = 'LR';\n @Input({ required: false }) borderRadius: string = '0px';\n @Input({ required: false }) progressColor: string = 'var(--surface-container)';\n @Input({ required: false }) backgroundColor?: string;\n\n public size!: string;\n public direction!: 'H' | 'V';\n\n ngOnChanges(changes: SimpleChanges): void {\n this.className = `ngx-helper-m3-progress ${this.align}`;\n this.borderRadiusCSS = this.borderRadius;\n this.backgroundColorCSS = this.backgroundColor || 'transparent';\n\n let value: number = typeof this.value === 'number' ? this.value : (this.value.done / this.value.total) * 100;\n if (isNaN(value) || value < 0) value = 0;\n else if (value > 100) value = 100;\n this.size = `${value.toFixed(2)}%`;\n this.direction = this.align === 'LR' || this.align === 'RL' ? 'H' : 'V';\n }\n}\n","<div\n class=\"progress\"\n [style.border-radius]=\"borderRadius\"\n [style.background-color]=\"progressColor\"\n [style.width]=\"direction === 'H' ? size : '100%'\"\n [style.height]=\"direction === 'V' ? size : '100%'\"\n></div>\n<div class=\"content\"><ng-content></ng-content></div>\n","import { Component, HostBinding, Inject, Input, OnInit, Optional } from '@angular/core';\n\nimport { INgxHelperConfig, NGX_HELPER_CONFIG } from '../../ngx-helper.config';\n\nimport { ComponentService, IComponentConfig } from '../component.service';\n\n@Component({\n selector: 'ngx-helper-section',\n host: { '(window:resize)': 'onResize($event)' },\n imports: [],\n providers: [ComponentService],\n templateUrl: './ngx-helper-section.component.html',\n styleUrl: './ngx-helper-section.component.scss',\n})\nexport class NgxHelperSectionComponent implements OnInit {\n @HostBinding('style.--section-gap') private gap!: string;\n\n @Input({ required: false }) gapSize?: string;\n\n private componentConfig!: IComponentConfig;\n public isMobile: boolean = false;\n\n constructor(\n private readonly componentService: ComponentService,\n @Optional() @Inject(NGX_HELPER_CONFIG) private readonly config?: Partial<INgxHelperConfig>,\n ) {}\n\n ngOnInit(): void {\n this.componentConfig = this.componentService.getComponentConfig(this.config);\n this.gap = this.gapSize || '1rem';\n\n this.onResize();\n }\n\n onResize(): void {\n this.isMobile = window.innerWidth <= this.componentConfig.mobileWidth;\n }\n}\n","<div class=\"section-columns\" [class.section-columns-mobile]=\"isMobile\">\n <ng-content></ng-content>\n</div>\n","import { Component, HostBinding, inject, Inject, Input, OnChanges, Optional, SimpleChanges } from '@angular/core';\n\nimport { INgxHelperConfig, NGX_HELPER_CONFIG } from '../../../ngx-helper.config';\n\nimport { ComponentService, IComponentConfig } from '../../component.service';\n\n@Component({\n selector: 'ngx-helper-section-column',\n host: { '(window:resize)': 'onResize($event)' },\n imports: [],\n templateUrl: './ngx-helper-section-column.component.html',\n styleUrl: './ngx-helper-section-column.component.scss',\n})\nexport class NgxHelperSectionColumnComponent implements OnChanges {\n @HostBinding('style.flex') flexStyle: string = '1';\n @HostBinding('style.width') widthStyle: string = '*';\n\n @HostBinding('style.position') stickyPosition!: string;\n @HostBinding('style.zInde') stickyZIndex!: string;\n @HostBinding('style.top') stickyTop!: string;\n\n @Input({ required: false }) flex?: number;\n @Input({ required: false }) width?: string;\n @Input({ required: false }) sticky?: boolean | 'DESKTOP' | 'MOBILE';\n @Input({ required: false }) zIndex?: number;\n\n private componentConfig!: IComponentConfig;\n private isMobile: boolean = false;\n\n constructor(\n private readonly componentService: ComponentService,\n @Optional() @Inject(NGX_HELPER_CONFIG) private readonly config?: Partial<INgxHelperConfig>,\n ) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n this.flexStyle = this.width ? 'unset' : this.flex?.toString() || '1';\n this.widthStyle = this.width || '*';\n\n this.componentConfig = this.componentService.getComponentConfig(this.config);\n this.onResize();\n }\n\n onResize(): void {\n this.isMobile = window.innerWidth <= this.componentConfig.mobileWidth;\n this.setPosition();\n }\n\n setPosition(): void {\n const top = this.componentConfig.stickyView?.top;\n if (!top) return;\n\n const sticky: boolean =\n this.sticky === true ||\n (this.sticky === 'DESKTOP' && !this.isMobile) ||\n (this.sticky === 'MOBILE' && this.isMobile);\n\n this.stickyPosition = sticky ? 'sticky' : 'static';\n this.stickyZIndex = sticky ? (this.zIndex ? this.zIndex.toString() : '1') : 'auto';\n this.stickyTop = sticky ? (this.isMobile ? top.mobileView : top.desktopView) : 'auto';\n }\n}\n","<ng-content></ng-content>\n","import { Component, HostBinding, Inject, Input, OnChanges, OnInit, Optional, SimpleChanges } from '@angular/core';\nimport { ClipboardModule } from '@angular/cdk/clipboard';\nimport { Router } from '@angular/router';\n\nimport { MatIconButton } from '@angular/material/button';\nimport { MatIcon } from '@angular/material/icon';\n\nimport { INgxHelperConfig, NGX_HELPER_CONFIG } from '../../../ngx-helper.config';\n\nimport { ComponentService, IComponentConfig, IValueComponentData } from '../../component.service';\n\nimport { INgxHelperValue } from '../ngx-helper-value.interface';\n\n@Component({\n selector: 'ngx-helper-value-box',\n host: { '(window:resize)': 'onResize($event)' },\n imports: [ClipboardModule, MatIcon, MatIconButton],\n providers: [ComponentService],\n templateUrl: './ngx-helper-value-box.component.html',\n styleUrl: './ngx-helper-value-box.component.scss',\n})\nexport class NgxHelperValueBoxComponent implements OnInit, OnChanges {\n @HostBinding('className') private className: string = 'ngx-helper-m3-value-box';\n @HostBinding('style.grid-template-columns') private gridTemplateColumns!: string;\n @HostBinding('style.--gap-size') private boxGap!: string;\n\n @Input({ required: true }) values!: INgxHelperValue[];\n @Input({ required: false }) column?: number | { desktop?: number; mobile?: number };\n @Input({ required: false }) clearBox: boolean = false;\n @Input({ required: false }) emptyText: string = 'نامشخص';\n @Input({ required: false }) gapSize: string = '1rem';\n @Input({ required: false }) hideShadow: boolean = false;\n\n public data: IValueComponentData[] = [];\n\n public copyIndex?: number;\n private copyTimeout: any;\n\n private componentConfig!: IComponentConfig;\n\n constructor(\n private readonly router: Router,\n private readonly componentService: ComponentService,\n @Optional() @Inject(NGX_HELPER_CONFIG) private readonly config?: Partial<INgxHelperConfig>,\n ) {}\n\n ngOnInit(): void {\n this.componentConfig = this.componentService.getComponentConfig(this.config);\n this.onResize();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.boxGap = this.gapSize;\n this.className = `ngx-helper-m3-value-box${this.hideShadow ? ' hide-shadow' : ''}`;\n\n this.data = this.componentService.getValueData(this.values);\n }\n\n onResize(): void {\n if (this.values.length === 0) return;\n\n const isMobile: boolean = window.innerWidth <= this.componentConfig.mobileWidth;\n const columnSize: number =\n this.column === undefined\n ? this.values.length\n : typeof this.column === 'number'\n ? this.column\n : isMobile\n ? this.column.mobile || this.values.length\n : this.column.desktop || this.values.length;\n\n const column: number = columnSize <= 0 || columnSize > this.values.length ? this.values.length : columnSize;\n this.gridTemplateColumns = Array(column).fill('1fr').join(' ');\n }\n\n onClick(action?: () => string[] | void): void {\n if (!action) return;\n\n const response = action();\n if (response) this.router.navigate(response);\n }\n\n onCopy(event: Event, index: number): void {\n event.preventDefault();\n\n if (this.copyTimeout) clearTimeout(this.copyTimeout);\n this.copyIndex = index;\n this.copyTimeout = setTimeout(() => {\n this.copyIndex = undefined;\n this.copyTimeout = undefined;\n }, 2000);\n }\n}\n","@for (item of data; track $index) {\n<div class=\"value-box\" [class.clear]=\"clearBox\" [class.click]=\"!!item.action\">\n <div class=\"title\" (click)=\"onClick(item.action)\">{{ item.title }}</div>\n <div\n class=\"value\"\n [style.display]=\"'inline-block'\"\n [style.direction]=\"item.ltr ? 'ltr' : '*'\"\n [style.color]=\"item.color\"\n [class.en]=\"item.english\"\n [class.empty]=\"!item.value\"\n (click)=\"onClick(item.action)\"\n >\n {{ item.value || emptyText }}\n </div>\n <!-- COPY TO CLIPBOARD -->\n @if (item.copyToClipboard && item.value) {\n <button mat-icon-button type=\"button\" [cdkCopyToClipboard]=\"item.value\" (click)=\"onCopy($event, $index)\">\n <mat-icon>{{ copyIndex === $index ? 'done_all' : 'copy' }}</mat-icon>\n </button>\n }\n</div>\n}\n","import { Component, HostBinding, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { ClipboardModule } from '@angular/cdk/clipboard';\nimport { Router } from '@angular/router';\n\nimport { MatIconButton } from '@angular/material/button';\nimport { MatIcon } from '@angular/material/icon';\n\nimport { ComponentService, IValueComponentData } from '../../component.service';\n\nimport { INgxHelperValue } from '../ngx-helper-value.interface';\n\n@Component({\n selector: 'ngx-helper-value-list',\n imports: [ClipboardModule, MatIcon, MatIconButton],\n providers: [ComponentService],\n templateUrl: './ngx-helper-value-list.component.html',\n styleUrl: './ngx-helper-value-list.component.scss',\n})\nexport class NgxHelperValueListComponent implements OnChanges {\n @HostBinding('className') private className: string = 'ngx-helper-m3-value-list';\n\n @Input({ required: true }) values!: INgxHelperValue[];\n @Input({ required: false }) titleWidth: string = '20%';\n @Input({ required: false }) emptyText: string = 'نامشخص';\n\n public data: IValueComponentData[] = [];\n\n public copyIndex?: number;\n private copyTimeout: any;\n\n constructor(private readonly router: Router, private readonly componentService: ComponentService) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n this.data = this.componentService.getValueData(this.values);\n }\n\n onClick(action?: () => string[] | void): void {\n if (!action) return;\n\n const response = action();\n if (response) this.router.navigate(response);\n }\n\n onCopy(event: Event, index: number): void {\n event.preventDefault();\n\n if (this.copyTimeout) clearTimeout(this.copyTimeout);\n this.copyIndex = index;\n this.copyTimeout = setTimeout(() => {\n this.copyIndex = undefined;\n this.copyTimeout = undefined;\n }, 2000);\n }\n}\n","@for (item of data; track $index) {\n<div class=\"value-list-item\" [class.even]=\"$index % 2 === 0\" [class.odd]=\"$index % 2 === 1\">\n <div class=\"title\" [style.width]=\"titleWidth\">{{ item.title }}:</div>\n <div class=\"value\">\n <div\n [style.display]=\"'inline-block'\"\n [style.direction]=\"item.ltr ? 'ltr' : '*'\"\n [style.color]=\"item.color\"\n [class.en]=\"item.english\"\n [class.empty]=\"!item.value\"\n [class.click]=\"!!item.action\"\n (click)=\"onClick(item.action)\"\n >\n {{ item.value || emptyText }}\n </div>\n <!-- ACTION -->\n @if (item.action) {\n <button mat-icon-button type=\"button\" (click)=\"onClick(item.action)\">\n <mat-icon [style.color]=\"item.color\">open_in_new</mat-icon>\n </button>\n\n }\n </div>\n <!-- COPY TO CLIPBOARD -->\n @if (item.copyToClipboard && item.value) {\n <button mat-icon-button type=\"button\" [cdkCopyToClipboard]=\"item.value\" (click)=\"onCopy($event, $index)\">\n <mat-icon>{{ copyIndex === $index ? 'done_all' : 'copy' }}</mat-icon>\n </button>\n }\n</div>\n}\n","import { Component, HostBinding, inject } from '@angular/core';\nimport { NgClass } from '@angular/common';\n\nimport { MatButtonModule } from '@angular/material/button';\nimport { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { INgxHelperConfirm } from '../confirm.interface';\n\n@Component({\n host: { selector: 'confirm-dialog' },\n imports: [NgClass, MatButtonModule, MatDialogModule, MatIconModule],\n templateUrl: './confirm-dialog.component.html',\n styleUrl: './confirm-dialog.component.scss',\n})\nexport class ConfirmDialogComponent {\n @HostBinding('className') private className: string = 'ngx-helper-m3-confirm';\n\n public confirm: INgxHelperConfirm = inject(MAT_DIALOG_DATA);\n}\n","<div class=\"confirm-content\">\n <!-- ICON -->\n @if (confirm.icon) {\n <mat-icon>{{ confirm.icon }}</mat-icon>\n }\n\n <!-- CONTENT -->\n <div class=\"confirm\">\n <div class=\"question\">{{ confirm.question }}</div>\n <!-- DESCRIPTION -->\n @if (confirm.description) {\n <div class=\"description\">{{ confirm.description }}</div>\n }\n <!-- DATA -->\n @if (confirm.data) {\n <div class=\"data\">\n <div class=\"title\">{{ confirm.data.title }}:</div>\n <div class=\"value\">{{ confirm.data.value }}</div>\n </div>\n }\n </div>\n</div>\n\n<div class=\"confirm-footer\">\n <button mat-button type=\"button\" mat-dialog-close [ngClass]=\"confirm.denyClass\">خیر</button>\n <button mat-button type=\"button\" [mat-dialog-close]=\"true\" [ngClass]=\"confirm.confirmClass\">بلی</button>\n</div>\n","import { Component, HostBinding, inject } from '@angular/core';\nimport { NgClass } from '@angular/common';\n\nimport { MAT_BOTTOM_SHEET_DATA, MatBottomSheetRef } from '@angular/material/bottom-sheet';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { INgxHelperConfirm } from '../confirm.interface';\n\n@Component({\n host: { selector: 'confirm-bottom-sheet' },\n imports: [NgClass, MatButtonModule, MatIconModule],\n templateUrl: './confirm-bottom-sheet.component.html',\n styleUrl: './confirm-bottom-sheet.component.scss',\n})\nexport class ConfirmBottomSheetComponent {\n @HostBinding('className') private className: string = 'ngx-helper-m3-confirm';\n\n public confirm: INgxHelperConfirm = inject(MAT_BOTTOM_SHEET_DATA);\n\n constructor(private readonly matBottomSheetRef: MatBottomSheetRef<ConfirmBottomSheetComponent>) {}\n\n close(confirmed?: boolean) {\n this.matBottomSheetRef.dismiss(confirmed);\n }\n}\n","<div class=\"confirm-content\">\n <!-- ICON -->\n @if (confirm.icon) {\n <mat-icon>{{ confirm.icon }}</mat-icon>\n }\n\n <!-- CONTENT -->\n <div class=\"confirm\">\n <div class=\"question\">{{ confirm.question }}</div>\n <!-- DESCRIPTION -->\n @if (confirm.description) {\n <div class=\"description\">{{ confirm.description }}</div>\n }\n <!-- DATA -->\n @if (confirm.data) {\n <div class=\"data\">\n <div class=\"title\">{{ confirm.data.title }}:</div>\n <div class=\"value\">{{ confirm.data.value }}</div>\n </div>\n }\n </div>\n</div>\n\n<div class=\"confirm-footer\">\n <button mat-button type=\"button\" (click)=\"close()\" [ngClass]=\"confirm.denyClass\">خیر</button>\n <button mat-button type=\"button\" (click)=\"close(true)\" [ngClass]=\"confirm.confirmClass\">بلی</button>\n</div>\n","import { Injectable } from '@angular/core';\n\nimport { MatBottomSheet, MatBottomSheetConfig } from '@angular/material/bottom-sheet';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\n\nimport { ConfirmDialogComponent } from './dialog/confirm-dialog.component';\nimport { ConfirmBottomSheetComponent } from './bottom-sheet/confirm-bottom-sheet.component';\n\nimport { INgxHelperConfirm } from './confirm.interface';\n\ninterface IConfirmData {\n readonly title: string;\n readonly value?: string;\n}\n\ninterface IConfirmConfig {\n readonly description: string;\n readonly confirmClass: string;\n readonly denyClass: string;\n}\n\nclass NgxHelperConfirmCalss {\n constructor(\n private readonly matBottomSheet: MatBottomSheet,\n private readonly matDialog: MatDialog,\n private readonly confirm: INgxHelperConfirm,\n ) {}\n\n dialog(onConfirmed: () => void): void;\n dialog(onConfirmed: () => void, onDenied: () => void): void;\n dialog(onConfirmed: () => void, config: MatDialogConfig): void;\n dialog(onConfirmed: () => void, onDenied: () => void, config: MatDialogConfig): void;\n dialog(onConfirmed: () => void, arg1?: any, arg2?: any): void {\n const onDenied: (() => void) | undefined = typeof arg1 === 'function' ? arg1 : undefined;\n const config: MatDialogConfig = arg2 || (typeof arg1 !== 'function' ? arg1 : {});\n\n this.matDialog\n .open<any, any, boolean>(ConfirmDialogComponent, {\n // DEFAULT CONFIG\n width: 'calc(100vw - 4rem)',\n direction: 'rtl',\n enterAnimationDuration: '100ms',\n exitAnimationDuration: '100ms',\n // OVERWRITE CONFIG\n ...config,\n maxHeight: '80vh',\n // DATA\n data: this.confirm,\n })\n .afterClosed()\n .subscribe({ next: (confirmed?: boolean) => (!!confirmed ? onConfirmed() : onDenied ? onDenied() : undefined) });\n }\n\n bottomSheet(onConfirmed: () => void): void;\n bottomSheet(onConfirmed: () => void, onDenied: () => void): void;\n bottomSheet(onConfirmed: () => void, config: MatBottomSheetConfig): void;\n bottomSheet(onConfirmed: () => void, onDenied: () => void, config: MatBottomSheetConfig): void;\n bottomSheet(onConfirmed: () => void, arg1?: any, arg2?: any): void {\n const onDenied: (() => void) | undefined = typeof arg1 === 'function' ? arg1 : undefined;\n const config: MatBottomSheetConfig = arg2 || (typeof arg1 !== 'function' ? arg1 : {});\n\n this.matBottomSheet\n .open<any, any, boolean>(ConfirmBottomSheetComponent, {\n // DEFAULT CONFIG\n direction: 'rtl',\n panelClass: 'ngx-helper-bottom-sheet',\n // OVERWRITE CONFIG\n ...config,\n maxHeight: '80vh',\n // DATA\n data: this.confirm,\n })\n .afterDismissed()\n .subscribe({ next: (confirmed?: boolean) => (!!confirmed ? onConfirmed() : onDenied ? onDenied() : undefined) });\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class NgxHelperConfirmService {\n constructor(private readonly matBottomSheet: MatBottomSheet, private readonly matDialog: MatDialog) {}\n\n verify(confirm: INgxHelperConfirm): NgxHelperConfirmCalss {\n return new NgxHelperConfirmCalss(this.matBottomSheet, this.matDialog, confirm);\n }\n\n active(data: IConfirmData): NgxHelperConfirmCalss;\n active(data: IConfirmData, config: Partial<IConfirmConfig>): NgxHelperConfirmCalss;\n active(data: IConfirmData, config?: Partial<IConfirmConfig>): NgxHelperConfirmCalss {\n return this.verify({\n question: `آیا می‌خواهید ${data.title} انتخاب شده را فعال کنید؟`,\n description: config?.description,\n data: data.value ? { title: data.title, value: data.value } : undefined,\n icon: 'check_box',\n confirmClass: config?.confirmClass,\n denyClass: config?.denyClass,\n });\n }\n\n deactive(data: IConfirmData): NgxHelperConfirmCalss;\n deactive(data: IConfirmData, config: Partial<IConfirmConfig>): NgxHelperConfirmCalss;\n deactive(data: IConfirmData, config?: Partial<IConfirmConfig>): NgxHelperConfirmCalss {\n return this.verify({\n question: `آیا می‌خواهید ${data.title} انتخاب شده را غیرفعال کنید؟`,\n description: config?.description,\n data: data.value ? { title: data.title, value: data.value } : undefined,\n icon: 'disabled_by_default',\n confirmClass: config?.confirmClass || 'error',\n denyClass: config?.denyClass,\n });\n }\n\n status(active: boolean, data: IConfirmData): NgxHelperConfirmCalss;\n status(active: boolean, data: IConfirmData, config: Partial<IConfirmConfig>): NgxHelperConfirmCalss;\n status(active: boolean, data: IConfirmData, config?: Partial<IConfirmConfig>): NgxHelperConfirmCalss {\n return active ? this.active(data, config || {}) : this.deactive(data, config || {});\n }\n\n delete(data: IConfirmData): NgxHelperConfirmCalss;\n delete(data: IConfirmData, config: Partial<IConfirmConfig>): NgxHelperConfirmCalss;\n delete(data: IConfirmData, config?: Partial<IConfirmConfig>): NgxHelperConfirmCalss {\n return this.verify({\n question: `آیا می‌خواهید ${data.title} انتخاب شده را حذف کنید؟`,\n description: config?.description,\n data: data.value ? { title: data.title, value: data.value } : undefined,\n icon: 'delete',\n confirmClass: config?.confirmClass || 'error',\n denyClass: config?.denyClass,\n });\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport interface INgxHelperContainerConfig {\n data?: any;\n padding?: string;\n hideClose?: boolean;\n}\n\nexport type NgxHelperContainer = 'DIALOG' | 'BOTTOMSHEET';\n\nexport const NGX_HELPER_CONTAINER_TYPE: InjectionToken<NgxHelperContainer> = new InjectionToken('NGX-HELPER-CONTAINER-TYPE');\nexport const NGX_HELPER_CONTAINER_DATA: InjectionToken<any> = new InjectionToken<any>('NGX-HELPER-CONTAINER-DATA');\nexport const NGX_HELPER_CONTAINER_CLOSE: InjectionToken<(response?: any) => void> = new InjectionToken(\n 'NGX-HELPER-CONTAINER-CLOSE',\n);\n","import { NgComponentOutlet } from '@angular/common';\nimport { Component, HostBinding, inject, Injector, OnInit } from '@angular/core';\nimport { ComponentType } from '@angular/cdk/portal';\n\nimport { MatIconButton } from '@angular/material/button';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { MatIcon } from '@angular/material/icon';\n\nimport {\n INgxHelperContainerConfig,\n NGX_HELPER_CONTAINER_CLOSE,\n NGX_HELPER_CONTAINER_DATA,\n NGX_HELPER_CONTAINER_TYPE,\n} from '../container.interface';\n\n@Component({\n host: { selector: 'container-dialog' },\n imports: [NgComponentOutlet, MatIconButton, MatIcon],\n templateUrl: './container-dialog.component.html',\n styleUrl: './container-dialog.component.scss',\n})\nexport class ContainerDialogComponent implements OnInit {\n @HostBinding('className') private className: string = 'ngx-helper-m3-container';\n\n public container: {\n component: ComponentType<any>;\n readonly title: string;\n readonly config: INgxHelperContainerConfig;\n } = inject(MAT_DIALOG_DATA);\n\n public injector!: Injector;\n\n constructor(private readonly matDialogRef: MatDialogRef<ContainerDialogComponent>) {}\n\n ngOnInit(): void {\n this.injector = Injector.create({\n providers: [\n { provide: NGX_HELPER_CONTAINER_TYPE, useValue: 'DIALOG' },\n { provide: NGX_HELPER_CONTAINER_DATA, useValue: this.container.config.data },\n {\n provide: NGX_HELPER_CONTAINER_CLOSE,\n useFactory: () => (response?: any) => this.matDialogRef.close(response),\n },\n ],\n });\n }\n\n close(): void {\n this.matDialogRef.close();\n }\n}\n","<div class=\"container-header\">\n <div class=\"title\">{{ container.title }}</div>\n @if (!container.config.hideClose) {\n <button mat-icon-button type=\"button\" (click)=\"close()\">\n <mat-icon>close</mat-icon>\n </button>\n }\n</div>\n\n<div class=\"container-content\" [style.padding]=\"container.config.padding || '1rem'\">\n <span *ngComponentOutlet=\"container.component; injector: injector\"></span>\n</div>\n","import { NgComponentOutlet } from '@angular/common';\nimport { Component, HostBinding, inject, Injector, OnInit } from '@angular/core';\nimport { ComponentType } from '@angular/cdk/portal';\n\nimport { MAT_BOTTOM_SHEET_DATA, MatBottomSheetRef } from '@angular/material/bottom-sheet';\nimport { MatIconButton } from '@angular/material/button';\nimport { MatIcon } from '@angular/material/icon';\n\nimport {\n INgxHelperContainerConfig,\n NGX_HELPER_CONTAINER_CLOSE,\n NGX_HELPER_CONTAINER_DATA,\n NGX_HELPER_CONTAINER_TYPE,\n} from '../container.interface';\n\n@Component({\n host: { selector: 'container-bottom-sheet' },\n imports: [NgComponentOutlet, MatIconButton, MatIcon],\n templateUrl: './container-bottom-sheet.component.html',\n styleUrl: './container-bottom-sheet.component.scss',\n})\nexport class ContainerBottomSheetComponent implements OnInit {\n @HostBinding('className') private className: string = 'ngx-helper-m3-container';\n\n public container: {\n component: ComponentType<any>;\n readonly title: string;\n readonly config: INgxHelperContainerConfig;\n } = inject(MAT_BOTTOM_SHEET_DATA);\n\n public injector!: Injector;\n\n constructor(private readonly matBottomSheetRef: MatBottomSheetRef<ContainerBottomSheetComponent>) {}\n\n ngOnInit(): void {\n this.injector = Injector.create({\n providers: [\n { provide: NGX_HELPER_CONTAINER_TYPE, useValue: 'BOTTOMSHEET' },\n { provide: NGX_HELPER_CONTAINER_DATA, useValue: this.container.config.data },\n {\n provide: NGX_HELPER_CONTAINER_CLOSE,\n useFactory: () => (response?: any) => this.matBottomSheetRef.dismiss(response),\n },\n ],\n });\n }\n\n close(): void {\n this.matBottomSheetRef.dismiss();\n }\n}\n","<div class=\"container-header\">\n <div class=\"title\">{{ container.title }}</div>\n @if (!container.config.hideClose) {\n <button mat-icon-button type=\"button\" (click)=\"close()\">\n <mat-icon>close</mat-icon>\n </button>\n }\n</div>\n\n<div class=\"container-content\" [style.padding]=\"container.config.padding || '1rem'\">\n <span *ngComponentOutlet=\"container.component; injector: injector\"></span>\n</div>\n","import { Injectable } from '@angular/core';\nimport { ComponentType } from '@angular/cdk/portal';\n\nimport { MatBottomSheet, MatBottomSheetConfig } from '@angular/material/bottom-sheet';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\n\nimport { ContainerDialogComponent } from './dialog/container-dialog.component';\nimport { ContainerBottomSheetComponent } from './bottom-sheet/container-bottom-sheet.component';\n\nimport { INgxHelperContainerConfig } from './container.interface';\n\ninterface IContainerData {\n readonly component: ComponentType<any>;\n readonly title: string;\n readonly config: INgxHelperContainerConfig;\n}\n\nclass NgxHelperContainerCalss {\n constructor(\n private readonly matBottomSheet: MatBottomSheet,\n private readonly matDialog: MatDialog,\n private readonly container: IContainerData,\n ) {}\n\n dialog<T>(): void;\n dialog<T>(onResponse: (response: T) => void): void;\n dialog<T>(onResponse: (response: T) => void, onDismiss: () => void): void;\n dialog<T>(onResponse: (response: T) => void, config: MatDialogConfig): void;\n dialog<T>(onResponse: (response: T) => void, onDismiss: () => void, config: MatDialogConfig): void;\n dialog<T>(arg1?: any, arg2?: any, arg3?: any): void {\n const onResponse: ((response: T) => void) | undefined = typeof arg1 === 'function' ? arg1 : undefined;\n const onDismiss: (() => void) | undefined = typeof arg2 === 'function' ? arg2 : undefined;\n const config: MatDialogConfig = arg3 || (typeof arg2 !== 'function' ? arg2 : {});\n\n this.matDialog\n .open(ContainerDialogComponent, {\n // DEFAULT CONFIG\n width: 'calc(100vw - 4rem)',\n direction: 'rtl',\n enterAnimationDuration: '100ms',\n exitAnimationDuration: '100ms',\n // OVERWRITE CONFIG\n ...config,\n maxHeight: '80vh',\n // DATA\n data: this.container,\n })\n .afterClosed()\n .subscribe({\n next: (response?: T) => {\n if (onResponse && !!response) onResponse(response);\n if (onDismiss && !response) onDismiss();\n },\n });\n }\n\n bottomSheet<T>(): void;\n bottomSheet<T>(onResponse: (result: T) => void): void;\n bottomSheet<T>(onResponse: (result: T) => void, onDismiss: () => void): void;\n bottomSheet<T>(onResponse: (result: T) => void, config: MatBottomSheetConfig): void;\n bottomSheet<T>(onResponse: (result: T) => void, onDismiss: () => void, config: MatBottomSheetConfig): void;\n bottomSheet<T>(arg1?: any, arg2?: any, arg3?: any): void {\n const onResponse: ((result: T) => void) | undefined = typeof arg1 === 'function' ? arg1 : undefined;\n const onDismiss: (() => void) | undefined = typeof arg2 === 'function' ? arg2 : undefined;\n const config: MatBottomSheetConfig = arg3 || (typeof arg2 !== 'function' ? arg2 : {});\n\n this.matBottomSheet\n .open<any, any, T>(ContainerBottomSheetComponent, {\n // DEFAULT CONFIG\n direction: 'rtl',\n panelClass: 'ngx-helper-bottom-sheet',\n // OVERWRITE CONFIG\n ...config,\n maxHeight: '80vh',\n // DATA\n data: this.container,\n })\n .afterDismissed()\n .subscribe({\n next: (response?: T) => {\n if (onResponse && !!response) onResponse(response);\n if (onDismiss && !response) onDismiss();\n },\n });\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class NgxHelperContainerService {\n constructor(private readonly matBottomSheet: MatBottomSheet, private readonly matDialog: MatDialog) {}\n\n init(component: ComponentType<any>, title: string): NgxHelperContainerCalss;\n init(component: ComponentType<any>, title: string, config: INgxHelperContainerConfig): NgxHelperContainerCalss;\n init(component: ComponentType<any>, title: string, arg1?: any): NgxHelperContainerCalss {\n const config: INgxHelperContainerConfig = arg1 || {};\n\n return new NgxHelperContainerCalss(this.matBottomSheet, this.matDialog, { component, title, config });\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { NgxMaskDirective, provideNgxMask } from 'ngx-mask';\n\nimport { Feature, Map, View } from 'ol';\nimport { Coordinate } from 'ol/coordinate';\nimport { Point } from 'ol/geom';\nimport interactionDoubleClickZoom from 'ol/interaction/DoubleClickZoom';\nimport BaseLayer from 'ol/layer/Base';\nimport TileLayer from 'ol/layer/Tile';\nimport VectorLayer from 'ol/layer/Vector';\nimport OSM from 'ol/source/OSM';\nimport VectorSource from 'ol/source/Vector';\n\nimport { MatIcon } from '@angular/material/icon';\n\nimport { Helper } from '@webilix/helper-library';\n\nimport { INgxHelperCoordinates, INgxHelperCoordinatesConfig } from '../ngx-helper-coordinates.interface';\n\n@Component({\n host: { selector: 'get' },\n imports: [NgxMaskDirective, MatIcon],\n providers: [provideNgxMask()],\n templateUrl: './get.component.html',\n styleUrl: './get.component.scss',\n})\nexport class GetComponent implements OnInit {\n public coordinates?: INgxHelperCoordinates;\n public config?: Partial<INgxHelperCoordinatesConfig>;\n public close!: (coordinates?: INgxHelperCoordinates) => void;\n\n private map!: Map;\n public coordinate: Coordinate = [];\n public inputTransformFn = (value: any): string => Helper.STRING.changeNumbers(value.toString(), 'EN');\n\n ngOnInit(): void {\n this.coordinate = this.coordinates\n ? [this.coordinates.longitude, this.coordinates.latitude]\n : this.config?.view\n ? [this.config.view.longitude, this.config.view.latitude]\n : [51.3380603, 35.6997382];\n\n const zoom: number = this.config?.zoom || 15;\n\n this.map = new Map({\n view: new View({ center: this.coordinate, zoom, projection: 'EPSG:4326' }),\n layers: [new TileLayer({ source: new OSM() })],\n target: 'ngx-helper-m3-coordinates-map',\n });\n\n this.map\n .getInteractions()\n .getArray()\n .forEach((interaction) => {\n if (interaction instanceof interactionDoubleClickZoom) this.map.removeInteraction(interaction);\n });\n\n this.addLayer();\n }\n\n addLayer(): void {\n this.map\n .getLayers()\n .getArray()\n .forEach((layer: BaseLayer) => {\n if (layer instanceof VectorLayer) this.map.removeLayer(layer);\n });\n\n if (this.coordinates) {\n const size: number = this.config?.size || 8;\n const color: string = this.config?.color || 'rgb(42, 101, 126)';\n\n const point = new Point(this.coordinate);\n const layer = new VectorLayer({\n source: new VectorSource({ features: [new Feature(point)] }),\n style: {\n 'circle-fill-color': color,\n 'circle-radius': size,\n 'circle-stroke-color': '#FFF',\n 'circle-stroke-width': 1,\n },\n });\n this.map.addLayer(layer);\n }\n }\n\n checkInputs(latitude: string, longitude: string): void {\n this.coordinates = undefined;\n this.addLayer();\n\n latitude = latitude.toString().trim();\n if (latitude === '' || isNaN(+latitude) || +latitude < -180 || +latitude > 180) return;\n\n longitude = longitude.toString().trim();\n if (longitude === '' || isNaN(+longitude) || +longitude < -180 || +longitude > 180) return;\n\n const center: Coordinate = [+longitude, +latitude];\n this.map.getView().animate({ center, duration: 1000 });\n\n this.coordinate = [+longitude, +latitude];\n this.coordinates = { latitude: +latitude, longitude: +longitude };\n this.addLayer();\n }\n\n selectCoordinates(): void {\n if (!this.coordinates) return;\n this.close(this.coordinates);\n }\n\n setCoordinates(event: MouseEvent): void {\n event.preventDefault();\n\n this.coordinate = this.map.getEventCoordinate(event).map((c: number) => +c.toFixed(7));\n this.coordinates = { latitude: this.coordinate[1], longitude: this.coordinate[0] };\n this.addLayer();\n }\n}\n","<div\n id=\"ngx-helper-m3-coordinates-map\"\n class=\"map\"\n (dblclick)=\"setCoordinates($event)\"\n (contextmenu)=\"setCoordinates($event)\"\n></div>\n\n<div class=\"coordinates\">\n <div class=\"header\">\n <div class=\"title\">COORDINATES</div>\n <mat-icon (click)=\"close()\">close</mat-icon>\n </div>\n <div class=\"item\">\n <div class=\"title\">LATITUDE</div>\n <input\n type=\"text\"\n maxlength=\"15\"\n inputmode=\"numeric\"\n [value]=\"coordinate[1] || ''\"\n mask=\"separator.12\"\n thousandSeparator=\"\"\n decimalMarker=\".\"\n [allowNegativeNumbers]=\"true\"\n [inputTransformFn]=\"inputTransformFn\"\n (keyup.enter)=\"checkInputs(latitudeInput.value, longitudeInput.value)\"\n (blur)=\"checkInputs(latitudeInput.value, longitudeInput.value)\"\n #latitudeInput\n />\n </div>\n <div class=\"item\">\n <div class=\"title\">LONGITUDE</div>\n <input\n type=\"text\"\n maxlength=\"15\"\n inputmode=\"numeric\"\n [value]=\"coordinate[0] || ''\"\n mask=\"separator.12\"\n thousandSeparator=\"\"\n decimalMarker=\".\"\n [allowNegativeNumbers]=\"true\"\n [inputTransformFn]=\"inputTransformFn\"\n (keyup.enter)=\"checkInputs(latitudeInput.value, longitudeInput.value)\"\n (blur)=\"checkInputs(latitudeInput.value, longitudeInput.value)\"\n #longitudeInput\n />\n </div>\n <div class=\"buttons\">\n <mat-icon [class.disabled]=\"!coordinates\" (click)=\"selectCoordinates()\">done_all</mat-icon>\n </div>\n</div>\n","import { Component, OnInit } from '@angular/core';\n\nimport { Feature, Map, View } from 'ol';\nimport { Coordinate } from 'ol/coordinate';\nimport { Point } from 'ol/geom';\nimport TileLayer from 'ol/layer/Tile';\nimport VectorLayer from 'ol/layer/Vector';\nimport OSM from 'ol/source/OSM';\nimport VectorSource from 'ol/source/Vector';\n\nimport { ClipboardModule } from '@angular/cdk/clipboard';\nimport { MatIcon } from '@angular/material/icon';\n\nimport { INgxHelperCoordinates, INgxHelperCoordinatesConfig } from '../ngx-helper-coordinates.interface';\n\n@Component({\n host: { selector: 'show' },\n imports: [ClipboardModule, MatIcon],\n templateUrl: './show.component.html',\n styleUrl: './show.component.scss',\n})\nexport class ShowComponent implements OnInit {\n public coordinates!: INgxHelperCoordinates;\n public config?: Partial<Omit<INgxHelperCoordinatesConfig, 'view'>>;\n public close!: () => void;\n\n private map!: Map;\n public copied?: 'LATITUDE' | 'LONGITUDE';\n private copyTimeout: any;\n\n ngOnInit(): void {\n const coordinate: Coordinate = [this.coordinates.longitude, this.coordinates.latitude];\n const point = new Point(coordinate);\n\n const zoom: number = this.config?.zoom || 15;\n const size: number = this.config?.size || 8;\n const color: string = this.config?.color || 'rgb(42, 101, 126)';\n\n this.map = new Map({\n view: new View({ center: coordinate, zoom, projection: 'EPSG:4326' }),\n layers: [\n new TileLayer({ source: new OSM() }),\n new VectorLayer({\n source: new VectorSource({ features: [new Feature(point)] }),\n style: {\n 'circle-fill-color': color,\n 'circle-radius': size,\n 'circle-stroke-color': '#FFF',\n 'circle-stroke-width': 1,\n },\n }),\n ],\n target: 'ngx-helper-m3-coordinates-map',\n });\n }\n\n setCopy(type: 'LATITUDE' | 'LONGITUDE'): void {\n if (this.copyTimeout) clearTimeout(this.copyTimeout);\n\n this.copied = type;\n this.copyTimeout = setTimeout(() => (this.copied = undefined), 1000);\n }\n}\n","<div id=\"ngx-helper-m3-coordinates-map\" class=\"map\"></div>\n\n<div class=\"coordinates\">\n <div class=\"header\">\n <div class=\"title\">COORDINATES</div>\n <mat-icon (click)=\"close()\">close</mat-icon>\n </div>\n <div class=\"item\">\n <div class=\"title\">LATITUDE</div>\n <div class=\"value\">{{ coordinates.latitude.toFixed(7) }}</div>\n <mat-icon [cdkCopyToClipboard]=\"coordinates.latitude.toString()\" (click)=\"setCopy('LATITUDE')\">\n {{ copied === 'LATITUDE' ? 'done_all' : 'copy' }}\n </mat-icon>\n </div>\n <div class=\"item\">\n <div class=\"title\">LONGITUDE</div>\n <div class=\"value\">{{ coordinates.longitude.toFixed(7) }}</div>\n <mat-icon [cdkCopyToClipboard]=\"coordinates.longitude.toString()\" (click)=\"setCopy('LONGITUDE')\">\n {{ copied === 'LONGITUDE' ? 'done_all' : 'copy' }}\n </mat-icon>\n </div>\n</div>\n","import { ApplicationRef, createComponent, EmbeddedViewRef, Injectable, Injector } from '@angular/core';\n\nimport { GetComponent } from './get/get.component';\nimport { ShowComponent } from './show/show.component';\n\nimport { INgxHelperCoordinates, INgxHelperCoordinatesConfig } from './ngx-helper-coordinates.interface';\n\n@Injectable({ providedIn: 'root' })\nexport class NgxHelperCoordinatesService {\n constructor(private readonly applicationRef: ApplicationRef, private readonly injector: Injector) {}\n\n get(): Promise<INgxHelperCoordinates>;\n get(coordinates: INgxHelperCoordinates): Promise<INgxHelperCoordinates>;\n get(config: Partial<INgxHelperCoordinatesConfig>): Promise<INgxHelperCoordinates>;\n get(coordinates: INgxHelperCoordinates, config: Partial<INgxHelperCoordinatesConfig>): Promise<INgxHelperCoordinates>;\n get(arg1?: any, arg2?: any): Promise<INgxHelperCoordinates> {\n const coordinates: INgxHelperCoordinates | undefined = arg1 ? ('latitude' in arg1 ? arg1 : undefined) : undefined;\n const config: Partial<INgxHelperCoordinatesConfig> | undefined = arg2 || (arg1 && !coordinates ? arg1 : undefined);\n\n return new Promise<INgxHelperCoordinates>((resolve, reject) => {\n const componentRef = createComponent<GetComponent>(GetComponent, {\n environmentInjector: this.applicationRef.injector,\n elementInjector: this.injector,\n });\n\n componentRef.instance.coordinates = coordinates;\n componentRef.instance.config = config;\n componentRef.instance.close = (coordinates?: INgxHelperCoordinates) => {\n this.applicationRef.detachView(componentRef.hostView);\n componentRef.destroy();\n\n coordinates ? resolve(coordinates) : reject();\n };\n\n const htmlElement = (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n this.applicationRef.attachView(componentRef.hostView);\n document.body.appendChild(htmlElement);\n });\n }\n\n show(coordinates: INgxHelperCoordinates): void;\n show(coordinates: INgxHelperCoordinates, config: Partial<Omit<INgxHelperCoordinatesConfig, 'view'>>): void;\n show(coordinates: INgxHelperCoordinates, config?: Partial<Omit<INgxHelperCoordinatesConfig, 'view'>>): void {\n const componentRef = createComponent<ShowComponent>(ShowComponent, {\n environmentInjector: this.applicationRef.injector,\n elementInjector: this.injector,\n });\n\n componentRef.instance.coordinates = coordinates;\n componentRef.instance.config = config;\n componentRef.instance.close = () => {\n this.applicationRef.detachView(componentRef.hostView);\n componentRef.destroy();\n };\n\n const htmlElement = (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n this.applicationRef.attachView(componentRef.hostView);\n document.body.appendChild(htmlElement);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\nimport { Helper } from '@webilix/helper-library';\n\n@Pipe({ name: 'ngxHelperMultiLine' })\nexport class NgxHelperMultiLinePipe implements PipeTransform {\n constructor(private readonly domSanitizer: DomSanitizer) {}\n\n transform(value?: string | null, options?: { html?: boolean }): string | SafeHtml {\n if (value === undefined || value === null || !Helper.IS.string(value) || value === '') return '';\n\n return options?.html\n ? this.domSanitizer.bypassSecurityTrustHtml(value.replace(/(?:\\r\\n|\\r|\\n)/g, '<br />'))\n : Helper.STRING.escapeHTML(value).replace(/(?:\\r\\n|\\r|\\n)/g, '<br />');\n }\n}\n","import { AfterViewInit, Component, ElementRef, HostBinding, HostListener, OnDestroy, OnInit } from '@angular/core';\nimport { animate, style, transition, trigger } from '@angular/animations';\n\nimport { MatIcon } from '@angular/material/icon';\n\nimport { NgxHelperMultiLinePipe } from '../../pipes/multi-line.pipe';\nimport { INgxHelperConfig } from '../../ngx-helper.config';\n\nimport { INgxHelperToastConfig } from '../ngx-helper-toast.interface';\n\n@Component({\n host: { selector: 'toast' },\n imports: [MatIcon, NgxHelperMultiLinePipe],\n templateUrl: './toast.component.html',\n styleUrl: './toast.component.scss',\n animations: [\n trigger('host', [\n transition(':enter', [\n style({ top: 0, opacity: 0 }),\n animate('350ms ease-in-out', style({ top: '*', opacity: 1 })),\n ]),\n ]),\n ],\n})\nexport class ToastComponent implements OnInit, OnDestroy, AfterViewInit {\n @HostListener('click') private onClick = () => this.close();\n\n @HostBinding('@host') private host: boolean = true;\n @HostBinding('className') private className: string = 'ngx-helper-m3-toast';\n @HostBinding('style.top') top: string = '1rem';\n @HostBinding('style.color') textColor!: string;\n @HostBinding('style.border-color') borderColor!: string;\n @HostBinding('style.background-color') backgroundColor!: string;\n\n public id!: string;\n public icon!: string;\n public messages: string[] = [];\n public config!: { helper?: Partial<INgxHelperConfig>; toast: Partial<INgxHelperToastConfig> };\n public init!: () => void;\n public close!: () => void;\n\n public timeout!: number;\n public showClose!: boolean;\n public animation!: 'DECREASE' | 'INCREASE';\n\n public progress: number = 0;\n public start: number = 0;\n private interval?: any;\n\n constructor(public readonly elementRef: ElementRef) {}\n\n ngOnInit(): void {\n this.borderColor = this.backgroundColor;\n\n const xPosition: 'LEFT' | 'CENTER' | 'RIGHT' = this.config.helper?.toastXPosition || 'CENTER';\n this.className = `ngx-helper-m3-toast ${xPosition.toLowerCase()}`;\n\n const toastTimeout =\n this.config.helper?.toastTimeout === undefined || this.config.helper?.toastTimeout < 0\n ? 4000\n : this.config.helper?.toastTimeout;\n this.timeout =\n this.config.toast.timeout === undefined || this.config.toast.timeout < 0\n ? toastTimeout\n : this.config.toast.timeout;\n this.showClose = this.config.toast.showClose || this.timeout === 0;\n this.animation = this.config.helper?.toastProgressAnimation || 'DECREASE';\n\n if (this.timeout) {\n this.start = new Date().getTime();\n this.interval = setInterval(() => {\n const timer: number = new Date().getTime();\n this.progress = ((timer - this.start) * 100) / this.timeout;\n this.progress = this.progress < 100 ? +this.progress.toFixed(2) : 100;\n if (this.progress === 100) this.close();\n }, 25);\n }\n }\n\n ngOnDestroy(): void {\n if (this.interval) clearInterval(this.interval);\n }\n\n ngAfterViewInit(): void {\n this.init();\n }\n}\n","<div class=\"content\">\n <div class=\"toast\">\n <mat-icon [style.color]=\"textColor\" class=\"icon\">{{ icon }}</mat-icon>\n <ul>\n @for (message of messages; track $index) {\n <li [innerHTML]=\"message | ngxHelperMultiLine\"></li>\n }\n </ul>\n </div>\n <!-- CLOSE ICON -->\n @if (showClose) {\n <mat-icon [style.color]=\"textColor\" class=\"close\">close</mat-icon>\n }\n</div>\n\n<div class=\"progress-container\" [style.background-color]=\"backgroundColor\">\n @if (timeout !== 0) {\n <div\n class=\"progress-value\"\n [style.background-color]=\"'color-mix(in srgb, ' + backgroundColor + ', black 25%)'\"\n [style.width]=\"(animation === 'DECREASE' ? 100 - progress : progress) + '%'\"\n ></div>\n }\n</div>\n","import {\n ApplicationRef,\n ComponentRef,\n createComponent,\n EmbeddedViewRef,\n Inject,\n Injectable,\n Injector,\n Optional,\n} from '@angular/core';\n\nimport { Helper } from '@webilix/helper-library';\n\nimport { INgxHelperConfig, NGX_HELPER_CONFIG } from '../ngx-helper.config';\n\nimport { ToastComponent } from './toast/toast.component';\nimport { INgxHelperToastConfig } from './ngx-helper-toast.interface';\n\ninterface IToast {\n readonly icon: string;\n readonly textColor: string;\n readonly backgroundColor: string;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class NgxHelperToastService {\n private components: { id: string; componentRef: ComponentRef<ToastComponent>; content: string }[] = [];\n\n constructor(\n private readonly applicationRef: ApplicationRef,\n private readonly injector: Injector,\n @Optional() @Inject(NGX_HELPER_CONFIG) private readonly config?: Partial<INgxHelperConfig>,\n ) {}\n\n private getId(): string {\n let id: string | undefined = undefined;\n while (!id || this.components.some((c) => c.id === id)) id = Helper.STRING.getRandom(10);\n\n return id;\n }\n\n private updatePositions(): void {\n let top: number = 0;\n this.components.forEach((c, index) => {\n c.componentRef.instance.top = `calc(${(index / 1.5).toFixed(1)}rem + calc(${top}px + 1rem))`;\n top += +c.componentRef.instance.elementRef.nativeElement.offsetHeight;\n });\n }\n\n toast(toast: IToast, message: string | string[]): void;\n toast(toast: IToast, message: string | string[], config: Partial<INgxHelperToastConfig>): void;\n toast(toast: IToast, message: string | string[], onClose: () => void): void;\n toast(toast: IToast, message: string | string[], config: Partial<INgxHelperToastConfig>, onClose: () => void): void;\n toast(toast: IToast, message: string | string[], arg1?: any, arg2?: any): void {\n const config: Partial<INgxHelperToastConfig> = arg2 ? arg1 : typeof arg1 === 'object' ? arg1 : {};\n const onClose: () => void = arg2 || (typeof arg1 === 'function' ? arg1 : () => {});\n\n const messages: string[] = typeof message === 'string' ? [message] : message;\n const content: string = [toast.icon, toast.textColor, toast.backgroundColor, ...messages].join('\\n');\n const duplicate = this.components.find((component) => component.content === content);\n if (!this.config?.toastAllowDuplicates && duplicate) {\n if (this.config?.toastResetDuplicates) {\n duplicate.componentRef.instance.start = new Date().getTime();\n duplicate.componentRef.instance.progress = 0;\n }\n return;\n }\n\n const componentRef = createComponent<ToastComponent>(ToastComponent, {\n environmentInjector: this.applicationRef.injector,\n elementInjector: this.injector,\n });\n\n const id: string = this.getId();\n componentRef.instance.id = id;\n componentRef.instance.icon = toast.icon;\n componentRef.instance.textColor = toast.textColor;\n componentRef.instance.backgroundColor = toast.backgroundColor;\n componentRef.instance.messages = messages;\n componentRef.instance.config = { helper: this.config, toast: config };\n componentRef.instance.init = () => this.updatePositions();\n componentRef.instance.close = () => {\n this.applicationRef.detachView(componentRef.hostView);\n document.body.removeChild(htmlElement);\n componentRef.destroy();\n\n this.components = this.components.filter((c) => c.id !== componentRef.instance.id);\n this.updatePositions();\n\n if (onClose) onClose();\n };\n const htmlElement = (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n this.applicationRef.attachView(componentRef.hostView);\n document.body.appendChild(htmlElement);\n\n this.components.push({ id, componentRef, content });\n this.updatePositions();\n }\n\n info(message: string | string[]): void;\n info(message: string | string[], config: Partial<INgxHelperToastConfig>): void;\n info(message: string | string[], onClose: () => void): void;\n info(message: string | string[], config: Partial<INgxHelperToastConfig>, onClose: () => void): void;\n info(message: string | string[], arg1?: any, arg2?: any): void {\n const toast: IToast = { icon: 'warning_amber', textColor: '#fff', backgroundColor: '#2f96b4' };\n this.toast(toast, message, arg1, arg2);\n }\n\n success(message: string | string[]): void;\n success(message: string | string[], config: Partial<INgxHelperToastConfig>): void;\n success(message: string | string[], onClose: () => void): void;\n success(message: string | string[], config: Partial<INgxHelperToastConfig>, onClose: () => void): void;\n success(message: string | string[], arg1?: any, arg2?: any): void {\n const toast: IToast = { icon: 'done_all', textColor: '#fff', backgroundColor: '#51a351' };\n this.toast(toast, message, arg1, arg2);\n }\n\n warning(message: string | string[]): void;\n warning(message: string | string[], config: Partial<INgxHelperToastConfig>): void;\n warning(message: string | string[], onClose: () => void): void;\n warning(message: string | string[], config: Partial<INgxHelperToastConfig>, onClose: () => void): void;\n warning(message: string | string[], arg1?: any, arg2?: any): void {\n const toast: IToast = { icon: 'info', textColor: '#fff', backgroundColor: '#f89406' };\n this.toast(toast, message, arg1, arg2);\n }\n\n error(message: string | string[]): void;\n error(message: string | string[], config: Partial<INgxHelperToastConfig>): void;\n error(message: string | string[], onClose: () => void): void;\n error(message: string | string[], config: Partial<INgxHelperToastConfig>, onClose: () => void): void;\n error(message: string | string[], arg1?: any, arg2?: any): void {\n const toast: IToast = { icon: 'cancel', textColor: '#fff', backgroundColor: '#bd362f' };\n this.toast(toast, message, arg1, arg2);\n }\n}\n","import { AfterViewInit, Component, HostBinding } from '@angular/core';\nimport { animate, style, transition, trigger } from '@angular/animations';\nimport { HttpClient, HttpEventType, HttpHeaders } from '@angular/common/http';\n\nimport { MatIcon } from '@angular/material/icon';\n\nimport { NgxHelperToastService } from '../../toast/ngx-helper-toast.service';\n\nimport { INgxHelperHttpDownloadConfig } from '../ngx-helper-http.interface';\n\n@Component({\n host: { selector: 'download' },\n imports: [MatIcon],\n templateUrl: './download.component.html',\n styleUrl: './download.component.scss',\n animations: [\n trigger('host', [\n transition(':enter', [\n style({ left: 'calc(-250px - 1rem)' }),\n animate('100ms ease-in-out', style({ left: '1rem' })),\n ]),\n ]),\n ],\n})\nexport class DownloadComponent implements AfterViewInit {\n @HostBinding('@host') private host: boolean = true;\n @HostBinding('className') private className: string = 'ngx-helper-m3-http';\n @HostBinding('style.bottom') bottom: string = '1rem';\n\n public id!: string;\n public path!: string;\n public title!: string;\n public config!: Partial<INgxHelperHttpDownloadConfig>;\n public onSuccess!: (arrayBuffer: ArrayBuffer) => void;\n public onError!: () => void;\n public close!: () => void;\n\n public progress: number = 0;\n\n constructor(private readonly httpClient: HttpClient, private readonly ngxHelperToastService: NgxHelperToastService) {}\n\n ngAfterViewInit(): void {\n setTimeout(this.download.bind(this), 0);\n }\n\n download(): void {\n let headers: HttpHeaders = new HttpHeaders();\n const header: { [key: string]: any } = this.config.header || {};\n Object.keys(header).forEach((key: string) => (headers = headers.set(key, header[key])));\n\n let request;\n switch (this.config.method || 'GET') {\n case 'GET':\n request = this.httpClient.get(this.path, {\n headers,\n reportProgress: true,\n observe: 'events',\n responseType: 'arraybuffer',\n });\n break;\n case 'POST':\n request = this.httpClient.post(this.path, {\n headers,\n reportProgress: true,\n observe: 'events',\n responseType: 'arraybuffer',\n });\n break;\n case 'PUT':\n request = this.httpClient.put(this.path, {\n headers,\n reportProgress: true,\n observe: 'events',\n responseType: 'arraybuffer',\n });\n break;\n case 'PATCH':\n request = this.httpClient.patch(this.path, {\n headers,\n reportProgress: true,\n observe: 'events',\n responseType: 'arraybuffer',\n });\n break;\n }\n\n request.subscribe({\n next: (event: any) => {\n switch (event.type) {\n case HttpEventType.DownloadProgress:\n const progress: number =\n event.loaded && event.total ? Math.ceil((event.loaded / event.total) * 1000) / 10 : 0;\n this.progress = progress <= 100 ? progress : 100;\n break;\n\n case HttpEventType.Response:\n this.progress = 100;\n this.onSuccess(event.body);\n this.close();\n break;\n }\n },\n error: () => {\n this.onError();\n this.close();\n },\n });\n }\n}\n","<div class=\"content\">\n <mat-icon>file_download</mat-icon>\n <div class=\"title\">{{ title }}</div>\n</div>\n\n<div class=\"progress-container\">\n <div class=\"progress-value\" [style.width]=\"progress + '%'\"></div>\n</div>\n","import { AfterViewInit, Component, HostBinding } from '@angular/core';\nimport { animate, style, transition, trigger } from '@angular/animations';\nimport { HttpClient, HttpErrorResponse, HttpEvent, HttpEventType, HttpHeaders, HttpStatusCode } from '@angular/common/http';\n\nimport { MatIcon } from '@angular/material/icon';\n\nimport { INgxHelperHttpUploadConfig } from '../ngx-helper-http.interface';\n\n@Component({\n host: { selector: 'upload' },\n imports: [MatIcon],\n templateUrl: './upload.component.html',\n styleUrl: './upload.component.scss',\n animations: [\n trigger('host', [\n transition(':enter', [\n style({ left: 'calc(-250px - 1rem)' }),\n animate('100ms ease-in-out', style({ left: '1rem' })),\n ]),\n ]),\n ],\n})\nexport class UploadComponent<R, E> implements AfterViewInit {\n @HostBinding('@host') private host: boolean = true;\n @HostBinding('className') private className: string = 'ngx-helper-m3-http';\n @HostBinding('style.bottom') bottom: string = '1rem';\n\n public id!: string;\n public file!: File;\n public url!: string;\n public config!: Partial<INgxHelperHttpUploadConfig>;\n public close!: (type: 'RESPONSE' | 'ERROR', result: any, status: HttpStatusCode) => void;\n\n public progress: number = 0;\n\n constructor(private readonly httpClient: HttpClient) {}\n\n ngAfterViewInit(): void {\n setTimeout(this.upload.bind(this), 0);\n }\n\n upload(): void {\n const formData: FormData = new FormData();\n formData.append('file', this.file);\n\n const body: { [key: string]: any } = this.config.body || {};\n Object.keys(body).forEach((k: string) => formData.append(k, body[k]));\n\n let headers: HttpHeaders = new HttpHeaders();\n const header: { [key: string]: any } = this.config.header || {};\n Object.keys(header).forEach((key: string) => (headers = headers.set(key, header[key])));\n\n let request;\n switch (this.config.method || 'POST') {\n case 'POST':\n request = this.httpClient.post<R>(this.url, formData, { headers, reportProgress: true, observe: 'events' });\n break;\n case 'PUT':\n request = this.httpClient.put<R>(this.url, formData, { headers, reportProgress: true, observe: 'events' });\n break;\n case 'PATCH':\n request = this.httpClient.patch<R>(this.url, formData, { headers, reportProgress: true, observe: 'events' });\n break;\n }\n\n request.subscribe({\n next: (event: HttpEvent<R>) => {\n switch (event.type) {\n case HttpEventType.UploadProgress:\n if (!event.loaded || !event.total) return;\n const progress: number = (event.loaded / event.total) * 100;\n this.progress = progress > 100 ? 100 : +progress.toFixed(2);\n break;\n\n case HttpEventType.Response:\n this.progress = 100;\n this.close('RESPONSE', event.body, event.status);\n break;\n }\n },\n error: (error: HttpErrorResponse) => this.close('ERROR', error.error, error.status),\n });\n }\n}\n","<div class=\"content\">\n <mat-icon>file_upload</mat-icon>\n <div class=\"file\">{{ file.name }}</div>\n</div>\n\n<div class=\"progress-container\">\n <div class=\"progress-value\" [style.width]=\"progress + '%'\"></div>\n</div>\n","import { ApplicationRef, ComponentRef, createComponent, EmbeddedViewRef, Injectable, Injector } from '@angular/core';\nimport { HttpStatusCode } from '@angular/common/http';\n\nimport { Helper } from '@webilix/helper-library';\n\nimport { NgxHelperToastService } from '../toast/ngx-helper-toast.service';\n\nimport { DownloadComponent } from './download/download.component';\nimport { UploadComponent } from './upload/upload.component';\nimport { INgxHelperHttpDownloadConfig, INgxHelperHttpUploadConfig } from './ngx-helper-http.interface';\n\n@Injectable({ providedIn: 'root' })\nexport class NgxHelperHttpService {\n private components: {\n id: string;\n componentRef: ComponentRef<DownloadComponent> | ComponentRef<UploadComponent<any, any>>;\n }[] = [];\n\n constructor(\n private readonly applicationRef: ApplicationRef,\n private readonly injector: Injector,\n private readonly ngxHelperToastService: NgxHelperToastService,\n ) {}\n\n private getId(): string {\n let id: string | undefined = undefined;\n while (!id || this.components.some((c) => c.id === id)) id = Helper.STRING.getRandom(10);\n\n return id;\n }\n\n private updatePositions(): void {\n this.components.forEach((c, index) => {\n c.componentRef.instance.bottom = `calc(${(index / 1.5).toFixed(1)}rem + calc(${index * 40}px + 1rem))`;\n });\n }\n\n private getBuffer(path: string, title: string): Promise<ArrayBuffer>;\n private getBuffer(path: string, title: string, config: Partial<INgxHelperHttpDownloadConfig>): Promise<ArrayBuffer>;\n private getBuffer(path: string, title: string, config?: Partial<INgxHelperHttpDownloadConfig>): Promise<ArrayBuffer> {\n return new Promise<ArrayBuffer>((resolve, reject) => {\n const componentRef = createComponent<DownloadComponent>(DownloadComponent, {\n environmentInjector: this.applicationRef.injector,\n elementInjector: this.injector,\n });\n\n const id: string = this.getId();\n componentRef.instance.id = id;\n componentRef.instance.path = path;\n componentRef.instance.title = title;\n componentRef.instance.config = config || {};\n componentRef.instance.onSuccess = (arrayBuffer: ArrayBuffer) => resolve(arrayBuffer);\n componentRef.instance.onError = () => reject();\n componentRef.instance.close = () => {\n this.applicationRef.detachView(componentRef.hostView);\n document.body.removeChild(htmlElement);\n componentRef.destroy();\n\n this.components = this.components.filter((c) => c.id !== componentRef.instance.id);\n this.updatePositions();\n };\n\n const htmlElement = (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n this.applicationRef.attachView(componentRef.hostView);\n document.body.appendChild(htmlElement);\n\n this.components.push({ id, componentRef });\n this.updatePositions();\n });\n }\n\n download(path: string, title: string): void;\n download(path: string, title: string, config: Partial<INgxHelperHttpDownloadConfig>): void;\n download(path: string, title: string, config?: Partial<INgxHelperHttpDownloadConfig>): void {\n const onError = () => this.ngxHelperToastService.error('امکان دانلود فایل وجود ندارد.');\n const onSuccess = (arrayBuffer: ArrayBuffer) => {\n try {\n const split: string[] = path\n .split('.')\n .map((text: string) => text.trim().replace(/\\//gi, ''))\n .filter((text: string) => !!text);\n const name: string = Helper.STRING.getFileName(title, split[split.length - 1] || '');\n\n const href: string = URL.createObjectURL(new Blob([arrayBuffer]));\n const a: HTMLAnchorElement = document.createElement('a');\n a.href = href;\n a.download = name;\n a.click();\n } catch (e) {\n onError();\n }\n };\n\n this.getBuffer(path, title, config || {}).then(onSuccess, onError);\n }\n\n upload<R, E>(\n file: File,\n url: string,\n onSuccess: (response: R | undefined, status: HttpStatusCode) => void,\n onError: (error: E | undefined, status: HttpStatusCode) => void,\n ): void;\n upload<R, E>(\n file: File,\n url: string,\n config: Partial<INgxHelperHttpUploadConfig>,\n onSuccess: (response: R, status: HttpStatusCode) => void,\n onError: (error: E, status: HttpStatusCode) => void,\n ): void;\n upload<R, E>(file: File, url: string, arg1: any, arg2: any, arg3?: any): void {\n const config: Partial<INgxHelperHttpUploadConfig> = typeof arg3 === 'function' ? arg1 : {};\n const onSuccess: (response: R, status: HttpStatusCode) => void = typeof arg3 === 'function' ? arg2 : arg1;\n const onError: (error: E, status: HttpStatusCode) => void = typeof arg3 === 'function' ? arg3 : arg2;\n\n const componentRef = createComponent<UploadComponent<R, E>>(UploadComponent, {\n environmentInjector: this.applicationRef.injector,\n elementInjector: this.injector,\n });\n\n const id: string = this.getId();\n componentRef.instance.id = id;\n componentRef.instance.file = file;\n componentRef.instance.url = url;\n componentRef.instance.config = config;\n componentRef.instance.close = (type: 'RESPONSE' | 'ERROR', result: any, status: HttpStatusCode) => {\n this.applicationRef.detachView(componentRef.hostView);\n document.body.removeChild(htmlElement);\n componentRef.destroy();\n\n this.components = this.components.filter((c) => c.id !== componentRef.instance.id);\n this.updatePositions();\n\n switch (type) {\n case 'RESPONSE':\n onSuccess(result || undefined, status);\n break;\n case 'ERROR':\n onError(result || undefined, status);\n break;\n }\n };\n\n const htmlElement = (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n this.applicationRef.attachView(componentRef.hostView);\n document.body.appendChild(htmlElement);\n\n this.components.push({ id, componentRef });\n this.updatePositions();\n }\n\n printPDF(url: string): void;\n printPDF(url: string, config: Partial<INgxHelperHttpDownloadConfig>): void;\n printPDF(buffer: ArrayBuffer): void;\n printPDF(buffer: ArrayBuffer, config: Partial<INgxHelperHttpDownloadConfig>): void;\n printPDF(blob: Blob): void;\n printPDF(blob: Blob, config: Partial<INgxHelperHttpDownloadConfig>): void;\n printPDF(data: string | ArrayBuffer | Blob, config?: Partial<INgxHelperHttpDownloadConfig>): void {\n const getPDF = (): Promise<Blob> => {\n return new Promise<Blob>((resolve, reject) => {\n if (typeof data !== 'string') {\n resolve(new Blob([data], { type: 'application/pdf' }));\n return;\n }\n\n this.getBuffer(data, 'دریافت فایل', config || {}).then(\n (arrayBuffer: ArrayBuffer) => resolve(new Blob([arrayBuffer], { type: 'application/pdf' })),\n () => reject(),\n );\n });\n };\n\n getPDF().then(\n (blob: Blob) => {\n try {\n const prevIframe = document.getElementById('ngx-helper-http-pdf-download-iframe');\n if (prevIframe) document.body.removeChild(prevIframe);\n\n const src: string = URL.createObjectURL(blob);\n const iframe: HTMLIFrameElement = document.createElement('iframe');\n iframe.id = 'ngx-helper-http-pdf-download-iframe';\n iframe.style.display = 'none';\n document.body.appendChild(iframe);\n\n iframe.src = src;\n iframe.onload = () => iframe.contentWindow?.print();\n } catch (e) {\n this.ngxHelperToastService.error('امکان پرینت فایل وجود ندارد.');\n }\n },\n () => this.ngxHelperToastService.error('امکان دانلود فایل وجود ندارد.'),\n );\n }\n}\n","import { Directive, ElementRef, inject, Inject, Input, OnInit, Optional } from '@angular/core';\n\nimport { INgxHelperConfig, NGX_HELPER_CONFIG } from '../ngx-helper.config';\n\ninterface IStickyView {\n readonly top?: { readonly desktopView: string; readonly mobileView: string };\n readonly bottom?: { readonly desktopView: string; readonly mobileView: string };\n}\n\n@Directive({\n selector: '[ngxHelperSticky]',\n host: { '(window:resize)': 'onResize($event)' },\n})\nexport class NgxHelperStickyDirective implements OnInit {\n @Input({ required: true }) public ngxHelperSticky!: 'TOP' | 'BOTTOM';\n @Input({ required: false }) public stickyIn: 'ALWAYS' | 'DESKTOP' | 'MOBILE' = 'ALWAYS';\n @Input({ required: false }) public zIndex?: number;\n\n private mobileWidth!: number;\n private stickyView!: IStickyView;\n private isMobile: boolean = false;\n\n constructor(\n private readonly elementRef: ElementRef,\n @Optional() @Inject(NGX_HELPER_CONFIG) private readonly config?: Partial<INgxHelperConfig>,\n ) {}\n\n ngOnInit(): void {\n const getStickyView = (\n config: string | { desktopView: string; mobileView: string },\n ): { desktopView: string; mobileView: string } => {\n return {\n desktopView: typeof config === 'string' ? config : config.desktopView,\n mobileView: typeof config === 'string' ? config : config.mobileView,\n };\n };\n\n (this.mobileWidth = this.config?.mobileWidth || 600),\n (this.stickyView = {\n top: this.config?.stickyView?.top ? getStickyView(this.config.stickyView.top) : undefined,\n bottom: this.config?.stickyView?.bottom ? getStickyView(this.config.stickyView.bottom) : undefined,\n });\n\n this.onResize();\n }\n\n onResize(): void {\n this.isMobile = window.innerWidth <= this.mobileWidth;\n this.setPosition();\n }\n\n setPosition(): void {\n const element: HTMLElement = this.elementRef.nativeElement;\n if (!element) return;\n\n const sticky: boolean =\n this.stickyIn === 'ALWAYS' ||\n (this.stickyIn === 'DESKTOP' && !this.isMobile) ||\n (this.stickyIn === 'MOBILE' && this.isMobile);\n\n switch (this.ngxHelperSticky) {\n case 'TOP':\n const top = this.stickyView.top;\n if (!top) return;\n\n element.style.position = sticky ? 'sticky' : 'static';\n element.style.zIndex = sticky ? (this.zIndex ? this.zIndex.toString() : '1') : 'auto';\n element.style.top = sticky ? (this.isMobile ? top.mobileView : top.desktopView) : 'auto';\n break;\n\n case 'BOTTOM':\n const bottom = this.stickyView.bottom;\n if (!bottom) return;\n\n element.style.position = sticky ? 'sticky' : 'static';\n element.style.zIndex = sticky ? (this.zIndex ? this.zIndex.toString() : '1') : 'auto';\n element.style.bottom = sticky ? (this.isMobile ? bottom.mobileView : bottom.desktopView) : 'auto';\n break;\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeHtml, SafeResourceUrl, SafeScript, SafeStyle, SafeUrl } from '@angular/platform-browser';\n\nimport { Helper } from '@webilix/helper-library';\n\ntype Types = 'HTML' | 'STYLE' | 'SCRIPT' | 'URL' | 'RESOURCE_URL';\n\n@Pipe({ name: 'ngxHelperSafe' })\nexport class NgxHelperSafePipe implements PipeTransform {\n constructor(private readonly domSanitizer: DomSanitizer) {}\n\n transform(\n value?: string | null,\n options?: { type?: Types },\n ): string | SafeHtml | SafeStyle | SafeScript | SafeUrl | SafeResourceUrl {\n if (value === undefined || value === null || !Helper.IS.string(value) || value === '') return '';\n\n switch (options?.type || 'HTML') {\n case 'STYLE':\n return this.domSanitizer.bypassSecurityTrustStyle(value);\n case 'SCRIPT':\n return this.domSanitizer.bypassSecurityTrustScript(value);\n case 'URL':\n return this.domSanitizer.bypassSecurityTrustUrl(value);\n case 'RESOURCE_URL':\n return this.domSanitizer.bypassSecurityTrustResourceUrl(value);\n case 'HTML':\n return this.domSanitizer.bypassSecurityTrustHtml(value);\n }\n }\n}\n","/*\n * Public API Surface of ngx-helper-m3\n */\n\nexport * from './lib/ngx-helper.config';\n\n// COMPONENTS\nexport * from './lib/components/box/ngx-helper-box.component';\nexport * from './lib/components/box/ngx-helper-box.interface';\nexport * from './lib/components/card/ngx-helper-card.component';\nexport * from './lib/components/card/ngx-helper-card.interface';\nexport * from './lib/components/loader/ngx-helper-loader.component';\nexport * from './lib/components/page-group/ngx-helper-page-group.component';\nexport * from './lib/components/page-group/ngx-helper-page-group.interface';\nexport * from './lib/components/progress/ngx-helper-progress.component';\nexport * from './lib/components/section/ngx-helper-section.component';\nexport * from './lib/components/section/column/ngx-helper-section-column.component';\nexport * from './lib/components/value/box/ngx-helper-value-box.component';\nexport * from './lib/components/value/list/ngx-helper-value-list.component';\nexport * from './lib/components/value/ngx-helper-value.interface';\nexport * from './lib/components/value/ngx-helper-value.pipe';\n\n// SERVICES\nexport * from './lib/confirm/confirm.interface';\nexport * from './lib/confirm/confirm.service';\nexport * from './lib/container/container.interface';\nexport * from './lib/container/container.service';\nexport * from './lib/coordinates/ngx-helper-coordinates.interface';\nexport * from './lib/coordinates/ngx-helper-coordinates.service';\nexport * from './lib/http/ngx-helper-http.interface';\nexport * from './lib/http/ngx-helper-http.service';\nexport * from './lib/toast/ngx-helper-toast.interface';\nexport * from './lib/toast/ngx-helper-toast.service';\n\n// DIRECTIVES\nexport * from './lib/directives/ngx-helper-sticky.directive';\n\n// PIPES\nexport * from './lib/pipes/bank-card.pipe';\nexport * from './lib/pipes/date.pipe';\nexport * from './lib/pipes/duration.pipe';\nexport * from './lib/pipes/file-size.pipe';\nexport * from './lib/pipes/mobile.pipe';\nexport * from './lib/pipes/multi-line.pipe';\nexport * from './lib/pipes/number.pipe';\nexport * from './lib/pipes/period.pipe';\nexport * from './lib/pipes/price.pipe';\nexport * from './lib/pipes/safe.pipe';\nexport * from './lib/pipes/volume.pipe';\nexport * from './lib/pipes/weight.pipe';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.ComponentService","i1","i2","i3","i2.NgxHelperToastService","i1.NgxHelperToastService"],"mappings":"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"}
1
+ {"version":3,"file":"webilix-ngx-helper-m3.mjs","sources":["../../../ngx-helper-m3/src/lib/ngx-helper.config.ts","../../../ngx-helper-m3/src/lib/components/box/ngx-helper-box.interface.ts","../../../ngx-helper-m3/src/lib/components/box/ngx-helper-box.component.ts","../../../ngx-helper-m3/src/lib/components/box/ngx-helper-box.component.html","../../../ngx-helper-m3/src/lib/pipes/bank-card.pipe.ts","../../../ngx-helper-m3/src/lib/pipes/date.pipe.ts","../../../ngx-helper-m3/src/lib/pipes/duration.pipe.ts","../../../ngx-helper-m3/src/lib/pipes/file-size.pipe.ts","../../../ngx-helper-m3/src/lib/pipes/mobile.pipe.ts","../../../ngx-helper-m3/src/lib/pipes/number.pipe.ts","../../../ngx-helper-m3/src/lib/pipes/period.pipe.ts","../../../ngx-helper-m3/src/lib/pipes/price.pipe.ts","../../../ngx-helper-m3/src/lib/pipes/volume.pipe.ts","../../../ngx-helper-m3/src/lib/pipes/weight.pipe.ts","../../../ngx-helper-m3/src/lib/components/value/ngx-helper-value.pipe.ts","../../../ngx-helper-m3/src/lib/components/component.service.ts","../../../ngx-helper-m3/src/lib/components/card/ngx-helper-card.component.ts","../../../ngx-helper-m3/src/lib/components/card/ngx-helper-card.component.html","../../../ngx-helper-m3/src/lib/components/loader/ngx-helper-loader.component.ts","../../../ngx-helper-m3/src/lib/components/loader/ngx-helper-loader.component.html","../../../ngx-helper-m3/src/lib/components/page-group/ngx-helper-page-group.interface.ts","../../../ngx-helper-m3/src/lib/components/page-group/ngx-helper-page-group.component.ts","../../../ngx-helper-m3/src/lib/components/page-group/ngx-helper-page-group.component.html","../../../ngx-helper-m3/src/lib/components/progress/ngx-helper-progress.component.ts","../../../ngx-helper-m3/src/lib/components/progress/ngx-helper-progress.component.html","../../../ngx-helper-m3/src/lib/components/section/ngx-helper-section.component.ts","../../../ngx-helper-m3/src/lib/components/section/ngx-helper-section.component.html","../../../ngx-helper-m3/src/lib/components/section/column/ngx-helper-section-column.component.ts","../../../ngx-helper-m3/src/lib/components/section/column/ngx-helper-section-column.component.html","../../../ngx-helper-m3/src/lib/components/value/box/ngx-helper-value-box.component.ts","../../../ngx-helper-m3/src/lib/components/value/box/ngx-helper-value-box.component.html","../../../ngx-helper-m3/src/lib/components/value/list/ngx-helper-value-list.component.ts","../../../ngx-helper-m3/src/lib/components/value/list/ngx-helper-value-list.component.html","../../../ngx-helper-m3/src/lib/confirm/dialog/confirm-dialog.component.ts","../../../ngx-helper-m3/src/lib/confirm/dialog/confirm-dialog.component.html","../../../ngx-helper-m3/src/lib/confirm/bottom-sheet/confirm-bottom-sheet.component.ts","../../../ngx-helper-m3/src/lib/confirm/bottom-sheet/confirm-bottom-sheet.component.html","../../../ngx-helper-m3/src/lib/confirm/confirm.service.ts","../../../ngx-helper-m3/src/lib/container/container.interface.ts","../../../ngx-helper-m3/src/lib/container/dialog/container-dialog.component.ts","../../../ngx-helper-m3/src/lib/container/dialog/container-dialog.component.html","../../../ngx-helper-m3/src/lib/container/bottom-sheet/container-bottom-sheet.component.ts","../../../ngx-helper-m3/src/lib/container/bottom-sheet/container-bottom-sheet.component.html","../../../ngx-helper-m3/src/lib/container/container.service.ts","../../../ngx-helper-m3/src/lib/coordinates/get/get.component.ts","../../../ngx-helper-m3/src/lib/coordinates/get/get.component.html","../../../ngx-helper-m3/src/lib/coordinates/show/show.component.ts","../../../ngx-helper-m3/src/lib/coordinates/show/show.component.html","../../../ngx-helper-m3/src/lib/coordinates/ngx-helper-coordinates.service.ts","../../../ngx-helper-m3/src/lib/pipes/multi-line.pipe.ts","../../../ngx-helper-m3/src/lib/toast/toast/toast.component.ts","../../../ngx-helper-m3/src/lib/toast/toast/toast.component.html","../../../ngx-helper-m3/src/lib/toast/ngx-helper-toast.service.ts","../../../ngx-helper-m3/src/lib/http/download/download.component.ts","../../../ngx-helper-m3/src/lib/http/download/download.component.html","../../../ngx-helper-m3/src/lib/http/upload/upload.component.ts","../../../ngx-helper-m3/src/lib/http/upload/upload.component.html","../../../ngx-helper-m3/src/lib/http/ngx-helper-http.service.ts","../../../ngx-helper-m3/src/lib/directives/ngx-helper-sticky.directive.ts","../../../ngx-helper-m3/src/lib/pipes/safe.pipe.ts","../../../ngx-helper-m3/src/public-api.ts","../../../ngx-helper-m3/src/webilix-ngx-helper-m3.ts"],"sourcesContent":["import { EnvironmentProviders, InjectionToken, makeEnvironmentProviders, Provider } from '@angular/core';\n\nexport interface INgxHelperConfig {\n readonly mobileWidth: number;\n\n // PAGE GROUP\n readonly pageGroupSidebarWidth: string;\n\n // TOAST\n readonly toastTimeout: number;\n readonly toastXPosition: 'LEFT' | 'CENTER' | 'RIGHT';\n readonly toastAllowDuplicates: boolean;\n readonly toastResetDuplicates: boolean;\n readonly toastProgressAnimation: 'DECREASE' | 'INCREASE';\n\n // STICKY\n readonly stickyView: {\n readonly top?: string | { readonly desktopView: string; readonly mobileView: string };\n readonly bottom?: string | { readonly desktopView: string; readonly mobileView: string };\n };\n}\n\nexport const NGX_HELPER_CONFIG = new InjectionToken<Partial<INgxHelperConfig>>('NGX-HELPER-CONFIG');\n\nexport const provideNgxHelperConfig = (config: Partial<INgxHelperConfig>): EnvironmentProviders => {\n const providers: Provider[] = [{ provide: NGX_HELPER_CONFIG, useValue: config }];\n\n return makeEnvironmentProviders(providers);\n};\n","import { InjectionToken } from '@angular/core';\n\nexport const NGX_HELPER_BOX_DATA: InjectionToken<any> = new InjectionToken('NGX-HELPER-BOX-DATA');\n","import { Component, HostBinding, Injector, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\nimport { NgComponentOutlet } from '@angular/common';\nimport { ComponentType } from '@angular/cdk/portal';\n\nimport { NGX_HELPER_BOX_DATA } from './ngx-helper-box.interface';\n\n@Component({\n selector: 'ngx-helper-box',\n imports: [NgComponentOutlet],\n templateUrl: './ngx-helper-box.component.html',\n styleUrl: './ngx-helper-box.component.scss',\n})\nexport class NgxHelperBoxComponent implements OnInit, OnChanges {\n @HostBinding('className') private className: string = 'ngx-helper-m3-box';\n @HostBinding('style.padding') private paddingCSS!: string;\n\n @Input({ required: false }) component?: ComponentType<any>;\n @Input({ required: false }) data?: any;\n @Input({ required: false }) padding: string = '1rem';\n @Input({ required: false }) hideShadow: boolean = false;\n\n public injector!: Injector;\n\n ngOnInit(): void {\n this.setInjector();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.setInjector();\n }\n\n setInjector(): void {\n this.paddingCSS = this.padding;\n this.className = `ngx-helper-m3-box${this.hideShadow ? ' hide-shadow' : ''}`;\n if (!this.component) return;\n\n this.injector = Injector.create({\n providers: [{ provide: NGX_HELPER_BOX_DATA, useValue: this.data }],\n });\n }\n}\n","@if (component) {\n<span *ngComponentOutlet=\"component; injector: injector\"></span>\n} @else {\n<ng-content></ng-content>\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport { Helper } from '@webilix/helper-library';\n\n@Pipe({ name: 'ngxHelperBankCard' })\nexport class NgxHelperBankCardPipe implements PipeTransform {\n transform(value?: string | null, options?: { view?: 'CARD' | 'BANK'; join?: string }): string {\n if (value === undefined || value === null || !Helper.IS.string(value) || value === '') return '';\n\n switch (options?.view) {\n case 'BANK':\n return Helper.BANK.findCard(value)?.title || '';\n default:\n return Helper.STRING.getBankCardView(value, options?.join || '-');\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport { Helper } from '@webilix/helper-library';\nimport { JalaliDateTime } from '@webilix/jalali-date-time';\n\nimport { DateFormats } from '../pipe.types';\n\n@Pipe({ name: 'ngxHelperDate' })\nexport class NgxHelperDatePipe implements PipeTransform {\n transform(value?: Date | null, options?: { format?: DateFormats; timezone?: string }): string;\n transform(value?: number | null, options?: { format?: DateFormats; timezone?: string }): string;\n transform(value?: any, options?: { format?: DateFormats; timezone?: string }): string {\n if (value === undefined || value === null || (!Helper.IS.date(value) && !Helper.IS.number(value))) return '';\n\n const date: Date = typeof value === 'number' ? new Date(value) : value;\n const jalali = JalaliDateTime();\n const timezone: string =\n options?.timezone && jalali.timezones().includes(options?.timezone) ? options?.timezone : 'Asia/Tehran';\n\n switch (options?.format || 'DATE') {\n case 'FULL':\n return jalali.toFullText(date, { format: 'W، d N Y H:I', timezone });\n\n case 'SHORT':\n return jalali.toFullText(date, { format: 'Y/M/D', timezone });\n\n case 'DATE':\n return jalali.toFullText(date, { format: 'W، d N Y', timezone });\n\n case 'TIME':\n return jalali.toFullText(date, { format: 'H:I', timezone });\n\n case 'WEEK':\n const { from, to } = jalali.periodWeek(1, date, timezone);\n return Helper.DATE.jalaliPeriod(from, to, timezone);\n\n case 'MONTH':\n return jalali.toFullText(date, { format: 'N Y', timezone });\n\n case 'YEAR':\n return jalali.toFullText(date, { format: 'Y', timezone });\n\n default:\n return jalali.toFullText(date, { format: options?.format, timezone });\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport { Helper } from '@webilix/helper-library';\n\nimport { DurationFormats } from '../pipe.types';\n\n@Pipe({ name: 'ngxHelperDuration' })\nexport class NgxHelperDurationPipe implements PipeTransform {\n transform(value?: number | null, options?: { format?: DurationFormats; english?: boolean }): string;\n transform(value?: Date | null, options?: { format?: DurationFormats; english?: boolean }): string;\n transform(value?: { from: Date } | null, options?: { format?: DurationFormats; english?: boolean }): string;\n transform(value?: { to: Date } | null, options?: { format?: DurationFormats; english?: boolean }): string;\n transform(value?: { from: Date; to: Date } | null, options?: { format?: DurationFormats; english?: boolean }): string;\n transform(value?: any, options?: { format?: DurationFormats; english?: boolean }): string {\n if (value === undefined || value === null) return '';\n\n let seconds: number = 0;\n if (Helper.IS.number(value)) seconds = Math.abs(value);\n else if (Helper.IS.date(value)) seconds = Math.floor(Math.abs(new Date().getTime() - value.getTime()) / 1000);\n else if (Helper.IS.object(value)) {\n const from: Date = 'from' in value ? value.from : new Date();\n const to: Date = 'to' in value ? value.to : new Date();\n seconds = Math.floor(Math.abs(from.getTime() - to.getTime()) / 1000);\n }\n\n const days: number = Math.floor(seconds / (24 * 60 * 60));\n seconds -= days * (24 * 60 * 60);\n const hours: number = Math.floor(seconds / (60 * 60));\n seconds -= hours * (60 * 60);\n const minutes: number = Math.floor(seconds / 60);\n seconds -= minutes * 60;\n\n const hasDays: boolean = days !== 0;\n const time: string = [hours, minutes, seconds].map((v) => v.toString().padStart(2, '0')).join(':');\n\n switch (options?.format || 'TEXT') {\n case 'TEXT':\n const hasTime: boolean = !!hours || !!minutes || !!seconds;\n const day: string = hasDays\n ? Helper.NUMBER.format(days, 'EN') + (!!options?.english ? (days === 1 ? ' day' : ' days') : ' روز')\n : '';\n const join = hasDays && hasTime ? (!!options?.english ? ', ' : ' و ') : '';\n return (day + join + (!hasDays || hasTime ? time : '')).trim();\n\n case 'FULL':\n return (hasDays ? Helper.NUMBER.format(days, 'EN') + ':' : '') + time;\n\n case 'DAY':\n return Helper.NUMBER.format(days + (hours !== 0 || minutes !== 0 ? 1 : 0), !!options?.english ? 'EN' : 'FA');\n\n case 'HOUR':\n return Helper.NUMBER.format(days * 24 + hours + (minutes !== 0 ? 1 : 0), !!options?.english ? 'EN' : 'FA');\n\n case 'MINUTE':\n return Helper.NUMBER.format(days * 24 * 60 + hours * 60 + minutes, !!options?.english ? 'EN' : 'FA');\n\n case 'SECOND':\n return Helper.NUMBER.format(\n days * 24 * 3600 + hours * 3600 + minutes * 60 + seconds,\n !!options?.english ? 'EN' : 'FA',\n );\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport { Helper } from '@webilix/helper-library';\n\n@Pipe({ name: 'ngxHelperFileSize' })\nexport class NgxHelperFileSizePipe implements PipeTransform {\n transform(value?: number | null, options?: { english?: boolean }): string {\n if (value === undefined || value === null || !Helper.IS.number(value)) return '';\n\n return Helper.NUMBER.toFileSize(value, !!options?.english ? 'EN' : 'FA');\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport { Helper } from '@webilix/helper-library';\n\n@Pipe({ name: 'ngxHelperMobile' })\nexport class NgxHelperMobilePipe implements PipeTransform {\n transform(value?: string | null, options?: { join?: string }): string {\n if (value === undefined || value === null || !Helper.IS.string(value) || value === '') return '';\n\n return Helper.STRING.getMobileView(value, options?.join || '-');\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport { Helper } from '@webilix/helper-library';\n\n@Pipe({ name: 'ngxHelperNumber' })\nexport class NgxHelperNumberPipe implements PipeTransform {\n transform(value?: number | null, options?: { fractionDigits?: number; english?: boolean }): string {\n if (value === undefined || value === null || !Helper.IS.number(value)) return '';\n\n value = options?.fractionDigits ? +value.toFixed(options?.fractionDigits) : value;\n return Helper.NUMBER.format(value, options?.english ? 'EN' : 'FA');\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport { Helper } from '@webilix/helper-library';\n\n@Pipe({ name: 'ngxHelperPeriod' })\nexport class NgxHelperPeriodPipe implements PipeTransform {\n transform(value?: Date | null, options?: { timezone?: string }): string;\n transform(value?: { from: Date } | null, options?: { timezone?: string }): string;\n transform(value?: { to: Date } | null, options?: { timezone?: string }): string;\n transform(value?: { from: Date; to: Date } | null, options?: { timezone?: string }): string;\n transform(value?: any, options?: { timezone?: string }): string {\n if (value === undefined || value === null) return '';\n\n const from: Date = Helper.IS.date(value) ? value : 'from' in value ? value.from : new Date();\n const to: Date = Helper.IS.date(value) ? new Date() : 'to' in value ? value.to : new Date();\n\n return Helper.DATE.jalaliPeriod(from, to, options?.timezone || '');\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport { Helper } from '@webilix/helper-library';\n\n@Pipe({ name: 'ngxHelperPrice' })\nexport class NgxHelperPricePipe implements PipeTransform {\n transform(value?: number | null, options?: { currency?: string; short?: boolean; english?: boolean }): string {\n if (value === undefined || value === null || !Helper.IS.number(value) || value < 0) return '';\n\n const getPrice = (...titles: [string, string][]): string => {\n if (value === undefined || value === null) return '';\n\n const price: string = Helper.NUMBER.format(+value.toFixed(2), !!options?.english ? 'EN' : 'FA');\n const unit: string = titles[options?.short ? 0 : 1][options?.english ? 0 : 1];\n const currency: string = options?.currency ? ' ' + options?.currency : '';\n\n return `${price} ${unit}${currency}`;\n };\n\n if (value < 1000) return getPrice(['', ''], ['', '']);\n\n value /= 1000;\n if (value < 1000) return getPrice(['T', 'ه'], ['Thousand', 'هزار']);\n\n value /= 1000;\n if (value < 1000) return getPrice(['M', 'م'], ['Million', 'میلیون']);\n\n value /= 1000;\n return getPrice(['B', 'د'], ['Billion', 'میلیارد']);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport { Helper } from '@webilix/helper-library';\n\n@Pipe({ name: 'ngxHelperVolume' })\nexport class NgxHelperVolumePipe implements PipeTransform {\n transform(value?: number | null, options?: { short?: boolean; english?: boolean }): string {\n if (value === undefined || value === null || !Helper.IS.number(value) || value < 0) return '';\n\n const getVolume = (...titles: [string, string][]): string => {\n if (value === undefined || value === null) return '';\n\n const volume: string = Helper.NUMBER.format(+value.toFixed(2), options?.english ? 'EN' : 'FA');\n const shortIndex: number = options?.short ? 0 : 1;\n const titleIndex: number = options?.english ? 0 : 1;\n return `${volume} ${titles[shortIndex][titleIndex]}`;\n };\n\n if (value === 0) return getVolume(['', ''], ['', '']);\n\n if (value < 1000) return getVolume(['ML', 'م'], ['Milliliter', 'میلی لیتر']);\n\n value /= 1000;\n return getVolume(['L', 'ل'], ['Liter', 'لیتر']);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport { Helper } from '@webilix/helper-library';\n\n@Pipe({ name: 'ngxHelperWeight' })\nexport class NgxHelperWeightPipe implements PipeTransform {\n transform(value?: number | null, options?: { short?: boolean; english?: boolean }): string {\n if (value === undefined || value === null || !Helper.IS.number(value) || value < 0) return '';\n\n const getWeight = (...titles: [string, string][]): string => {\n if (value === undefined || value === null) return '';\n\n const weight: string = Helper.NUMBER.format(+value.toFixed(2), options?.english ? 'EN' : 'FA');\n const shortIndex: number = options?.short ? 0 : 1;\n const titleIndex: number = options?.english ? 0 : 1;\n return `${weight} ${titles[shortIndex][titleIndex]}`;\n };\n\n if (value === 0) return getWeight(['', ''], ['', '']);\n\n if (value < 1000) return getWeight(['G', 'گ'], ['Gram', 'گرم']);\n\n value /= 1000;\n if (value < 1000) return getWeight(['K', 'ک'], ['Kilogram', 'کیلو']);\n\n value /= 1000;\n if (value < 1000) return getWeight(['T', 'ت'], ['Tonne', 'تن']);\n\n value /= 1000;\n return getWeight(['KT', 'ه'], ['Kilotonne', 'هزار تن']);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport { Helper } from '@webilix/helper-library';\n\nimport { NgxHelperBankCardPipe } from '../../pipes/bank-card.pipe';\nimport { NgxHelperDatePipe } from '../../pipes/date.pipe';\nimport { NgxHelperDurationPipe } from '../../pipes/duration.pipe';\nimport { NgxHelperFileSizePipe } from '../../pipes/file-size.pipe';\nimport { NgxHelperMobilePipe } from '../../pipes/mobile.pipe';\nimport { NgxHelperNumberPipe } from '../../pipes/number.pipe';\nimport { NgxHelperPeriodPipe } from '../../pipes/period.pipe';\nimport { NgxHelperPricePipe } from '../../pipes/price.pipe';\nimport { NgxHelperVolumePipe } from '../../pipes/volume.pipe';\nimport { NgxHelperWeightPipe } from '../../pipes/weight.pipe';\n\nimport { NgxHelperValue } from './ngx-helper-value.interface';\n\n@Pipe({ name: 'ngxHelperValue' })\nexport class NgxHelperValuePipe implements PipeTransform {\n transform(value?: NgxHelperValue, options?: { emptyText?: string }): string {\n const emptyText = options?.emptyText || '';\n if (value === undefined || Helper.IS.empty(value)) return emptyText;\n\n switch (value.type) {\n case 'BANK-CARD':\n return new NgxHelperBankCardPipe().transform(value.value, value) || emptyText;\n\n case 'DATE':\n return new NgxHelperDatePipe().transform(value.value as any, value) || emptyText;\n\n case 'DURATION':\n return new NgxHelperDurationPipe().transform(value.value as any, value) || emptyText;\n\n case 'FILE-SIZE':\n return new NgxHelperFileSizePipe().transform(value.value as any, value) || emptyText;\n\n case 'MOBILE':\n return new NgxHelperMobilePipe().transform(value.value as any, value) || emptyText;\n\n case 'NUMBER':\n return new NgxHelperNumberPipe().transform(value.value as any, value) || emptyText;\n\n case 'PERIOD':\n return new NgxHelperPeriodPipe().transform(value.value as any, value) || emptyText;\n\n case 'PRICE':\n return new NgxHelperPricePipe().transform(value.value as any, value) || emptyText;\n\n case 'STRING':\n return Helper.IS.string(value.value) ? (value.value as any) : emptyText;\n\n case 'VOLUME':\n return new NgxHelperVolumePipe().transform(value.value as any, value) || emptyText;\n\n case 'WEIGHT':\n return new NgxHelperWeightPipe().transform(value.value as any, value) || emptyText;\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { INgxHelperConfig } from '../ngx-helper.config';\n\nimport { INgxHelperValue, NgxHelperValue } from './value/ngx-helper-value.interface';\nimport { NgxHelperValuePipe } from './value/ngx-helper-value.pipe';\n\nexport interface IComponentConfig {\n readonly mobileWidth: number;\n readonly pageGroupSidebarWidth: string;\n readonly stickyView?: {\n readonly top?: { readonly desktopView: string; readonly mobileView: string };\n readonly bottom?: { readonly desktopView: string; readonly mobileView: string };\n };\n}\n\nexport interface IValueComponentData {\n readonly title: string;\n readonly value: string;\n readonly color?: string;\n readonly action?: () => string[] | void;\n readonly copyToClipboard?: boolean;\n readonly ltr?: boolean;\n readonly english?: boolean;\n}\n\n@Injectable()\nexport class ComponentService {\n getComponentConfig(config?: Partial<INgxHelperConfig>): IComponentConfig {\n const getStickyView = (\n config: string | { desktopView: string; mobileView: string },\n ): { desktopView: string; mobileView: string } => {\n return {\n desktopView: typeof config === 'string' ? config : config.desktopView,\n mobileView: typeof config === 'string' ? config : config.mobileView,\n };\n };\n\n return {\n mobileWidth: config?.mobileWidth || 600,\n pageGroupSidebarWidth: config?.pageGroupSidebarWidth || '200px',\n stickyView: config?.stickyView\n ? {\n top: config.stickyView.top ? getStickyView(config.stickyView.top) : undefined,\n bottom: config.stickyView.bottom ? getStickyView(config.stickyView.bottom) : undefined,\n }\n : undefined,\n };\n }\n\n getValueData(values: INgxHelperValue[]): IValueComponentData[] {\n const pipeTransform = new NgxHelperValuePipe().transform;\n const ltrValues: NgxHelperValue['type'][] = ['BANK-CARD', 'MOBILE', 'NUMBER'];\n\n return values.map((item) => {\n const value = item.value;\n return value === undefined\n ? { title: item.title, value: '' }\n : typeof value === 'string'\n ? { title: item.title, value: value.trim(), color: item.color }\n : {\n title: item.title,\n value: pipeTransform(value),\n color: item.color,\n action: item.action,\n copyToClipboard: item.copyToClipboard,\n ltr: ltrValues.includes(value.type),\n english: 'english' in value && !!value.english,\n };\n });\n }\n}\n","import { Component, HostBinding, Inject, Input, OnChanges, OnInit, Optional, SimpleChanges } from '@angular/core';\nimport { NgClass } from '@angular/common';\n\nimport { MatButton } from '@angular/material/button';\nimport { MatDivider } from '@angular/material/divider';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\n\nimport { INgxHelperConfig, NGX_HELPER_CONFIG } from '../../ngx-helper.config';\n\nimport { ComponentService, IComponentConfig } from '../component.service';\n\nimport { NgxHelperAction } from './ngx-helper-card.interface';\n\ntype Button =\n | { type: 'BUTTON'; title: string; icon: string; action: () => void; color?: string; showIcon?: boolean }\n | {\n type: 'MENU';\n title: string;\n icon: string;\n color?: string;\n showIcon?: boolean;\n buttons: ('DIVIDER' | { title: string; icon: string; action: () => void; color?: string })[];\n };\n\n@Component({\n selector: 'ngx-helper-card',\n host: { '(window:resize)': 'onResize($event)' },\n imports: [NgClass, MatButton, MatDivider, MatIcon, MatMenuModule],\n providers: [ComponentService],\n templateUrl: './ngx-helper-card.component.html',\n styleUrl: './ngx-helper-card.component.scss',\n})\nexport class NgxHelperCardComponent implements OnInit, OnChanges {\n @HostBinding('className') private className: string = 'ngx-helper-m3-card';\n\n @Input({ required: true }) title!: string;\n @Input({ required: false }) subTitle?: string;\n @Input({ required: false }) icon?: string;\n @Input({ required: false }) actions: NgxHelperAction[] = [];\n @Input({ required: false }) padding: string = '1rem';\n @Input({ required: false }) backgroundColor?: string;\n @Input({ required: false }) hasShadow: boolean = false;\n\n public isMobile: boolean = false;\n public buttons: Button[] = [];\n private componentConfig!: IComponentConfig;\n\n constructor(\n private readonly componentService: ComponentService,\n @Optional() @Inject(NGX_HELPER_CONFIG) private readonly config?: Partial<INgxHelperConfig>,\n ) {}\n\n ngOnInit(): void {\n this.componentConfig = this.componentService.getComponentConfig(this.config);\n this.onResize();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.className = `ngx-helper-m3-card${this.hasShadow ? ' has-shadow' : ''}`;\n\n this.buttons = this.actions.map((action) => {\n return 'buttons' in action ? { type: 'MENU', ...action } : { type: 'BUTTON', ...action };\n });\n }\n\n onResize(): void {\n this.isMobile = window.innerWidth <= this.componentConfig.mobileWidth;\n }\n}\n","<div class=\"card-header\" [class.has-sub-title]=\"subTitle\">\n <!-- ICON -->\n @if (icon) { <mat-icon>{{ icon }}</mat-icon> }\n\n <!-- TITLE -->\n <div class=\"content\">\n <div class=\"title\">{{ title }}</div>\n <!-- SUB TITLE -->\n @if (subTitle) {\n <div class=\"sub-title\">{{ subTitle }}</div>\n }\n </div>\n\n <!-- BUTTONS -->\n @if (buttons.length > 0) {\n <div class=\"buttons\" [ngClass]=\"isMobile ? 'mobile-view' : ''\">\n @for (item of buttons; track $index) {\n <!-- TYPE -->\n @switch (item.type) {\n\n <!-- BUTTON -->\n @case('BUTTON') {\n <button mat-button type=\"button\" [style.color]=\"item.color\" (click)=\"item.action()\">\n @if (!isMobile) {\n <div class=\"title\">{{ item.title }}</div>\n }\n <!-- ICON -->\n @if (isMobile || item.showIcon) {\n <mat-icon>{{ item.icon }}</mat-icon>\n }\n </button>\n }\n\n <!-- MENU -->\n @case('MENU') {\n <button mat-button type=\"button\" [style.color]=\"item.color\" [matMenuTriggerFor]=\"actionMenu\">\n @if (!isMobile) {\n <div class=\"title\">{{ item.title }}</div>\n }\n <!-- ICON -->\n @if (isMobile || item.showIcon) {\n <mat-icon>{{ item.icon }}</mat-icon>\n }\n </button>\n <mat-menu #actionMenu=\"matMenu\" class=\"ngx-helper-card-action-menu\" [xPosition]=\"'before'\">\n @for (menu of item.buttons; track $index) {\n <!-- DIVIDER -->\n @if (menu === 'DIVIDER') { <mat-divider></mat-divider> }\n <!-- BUTTON -->\n @else {\n <button mat-menu-item type=\"button\" (click)=\"menu.action()\" [style.color]=\"menu.color\">\n <div class=\"title\">{{ menu.title }}</div>\n <mat-icon [style.color]=\"menu.color\">{{ menu.icon }}</mat-icon>\n </button>\n } }\n </mat-menu>\n } } }\n </div>\n }\n</div>\n\n<div class=\"card-content\" [style.padding]=\"padding\" [style.background-color]=\"backgroundColor\">\n <ng-content></ng-content>\n</div>\n","import { Component, HostBinding, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\n\n@Component({\n selector: 'ngx-helper-loader',\n imports: [],\n templateUrl: './ngx-helper-loader.component.html',\n styleUrl: './ngx-helper-loader.component.scss',\n})\nexport class NgxHelperLoaderComponent implements OnInit, OnChanges {\n @HostBinding('style.--loader-size') public loaderSize!: string;\n @HostBinding('style.--loader-color') public loaderColor!: string;\n\n @Input({ required: false }) public mode: 'SPINNER' | 'DOTS-SPINNER' | 'WHEEL-SPINNER' = 'SPINNER';\n @Input({ required: false }) public size!: number;\n @Input({ required: false }) public color!: string;\n @Input({ required: false }) public padding?: string;\n @Input({ required: false }) public margin?: string;\n\n ngOnInit(): void {\n this.init();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.init();\n }\n\n init(): void {\n this.loaderSize = `${this.size || 25}px`;\n this.loaderColor = this.color || `var(--secondary)`;\n }\n}\n","<div [style.padding]=\"padding || '0'\">\n <div [class]=\"mode.toLowerCase()\" [style.margin]=\"margin || '0px'\"></div>\n</div>\n","import { InjectionToken } from '@angular/core';\nimport { ComponentType } from '@angular/cdk/portal';\n\ninterface IPage {\n readonly title: string;\n readonly icon: string;\n readonly component: ComponentType<any>;\n}\n\nexport interface INgxHelperPageGroup {\n readonly route?: string[];\n readonly header?: ComponentType<any>;\n readonly pages: { [key: string]: IPage };\n\n // SETTING\n readonly sidebarWidth?: string;\n}\n\nexport interface INgxHelperPageGroupItem {\n readonly index: number;\n readonly id: string;\n readonly title: string;\n readonly icon: string;\n}\n\nexport const NGX_HELPER_PAGE_GROUP_ITEM: InjectionToken<INgxHelperPageGroupItem> = new InjectionToken(\n 'NGX-HELPER-PAGE-GROUP-ITEM',\n);\nexport const NGX_HELPER_PAGE_GROUP_DATA: InjectionToken<any> = new InjectionToken('NGX-HELPER-PAGE-GROUP-DATA');\nexport const NGX_HELPER_PAGE_GROUP_DATA_CHANGE: InjectionToken<(data: any) => void> = new InjectionToken(\n 'NGX-HELPER-PAGE-GROUP-DATA-CHANGE',\n);\n","import {\n Component,\n EventEmitter,\n HostBinding,\n Inject,\n Injector,\n Input,\n OnChanges,\n OnInit,\n Optional,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport { NgComponentOutlet } from '@angular/common';\nimport { ActivatedRoute, Router } from '@angular/router';\n\nimport { MatIcon } from '@angular/material/icon';\n\nimport { Helper } from '@webilix/helper-library';\n\nimport { INgxHelperConfig, NGX_HELPER_CONFIG } from '../../ngx-helper.config';\n\nimport { ComponentService, IComponentConfig } from '../component.service';\n\nimport {\n INgxHelperPageGroup,\n INgxHelperPageGroupItem,\n NGX_HELPER_PAGE_GROUP_DATA,\n NGX_HELPER_PAGE_GROUP_DATA_CHANGE,\n NGX_HELPER_PAGE_GROUP_ITEM,\n} from './ngx-helper-page-group.interface';\n\n@Component({\n selector: 'ngx-helper-page-group',\n host: { '(window:resize)': 'onResize($event)' },\n imports: [NgComponentOutlet, MatIcon],\n providers: [ComponentService],\n templateUrl: './ngx-helper-page-group.component.html',\n styleUrl: './ngx-helper-page-group.component.scss',\n})\nexport class NgxHelperPageGroupComponent implements OnInit, OnChanges {\n @HostBinding('className') private className: string = 'ngx-helper-m3-page-group';\n @HostBinding('style.display') display: string = 'none';\n\n @Input({ required: true }) pageGroup!: INgxHelperPageGroup;\n @Input({ required: false }) pageId!: string;\n @Input({ required: false }) data?: any;\n @Output() pageChanged: EventEmitter<INgxHelperPageGroupItem> = new EventEmitter<INgxHelperPageGroupItem>();\n @Output() dataChanged: EventEmitter<any> = new EventEmitter<any>();\n\n public isMobile: boolean = false;\n public pages: string[] = [];\n public injector!: Injector;\n\n public sidebarWidth!: string;\n public componentConfig!: IComponentConfig;\n\n constructor(\n private readonly activatedRoute: ActivatedRoute,\n private readonly router: Router,\n private readonly componentService: ComponentService,\n @Optional() @Inject(NGX_HELPER_CONFIG) private readonly config?: Partial<INgxHelperConfig>,\n ) {}\n\n ngOnInit(): void {\n this.pages = Object.keys(this.pageGroup.pages);\n this.display = this.pages.length === 0 ? 'none' : 'flex';\n if (this.pages.length === 0) return;\n\n this.componentConfig = this.componentService.getComponentConfig(this.config);\n this.sidebarWidth = this.pageGroup.sidebarWidth || this.componentConfig.pageGroupSidebarWidth;\n\n if (!this.pageGroup.pages[this.pageId]) this.pageId = this.pages[0];\n\n const queryParams: { [key: string]: any } = { ...this.activatedRoute.snapshot.queryParams };\n if (!!this.pageGroup.route && Helper.IS.string(queryParams['ngx-helper-page-group'])) {\n const id: string = queryParams['ngx-helper-page-group'];\n if (this.pageId !== id && this.pages.includes(id)) {\n this.pageId = id;\n this.triggerPageChanged();\n }\n }\n\n this.onResize();\n this.setInjector();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.setInjector();\n }\n\n onResize(): void {\n this.isMobile = window.innerWidth <= this.componentConfig.mobileWidth;\n this.className = `ngx-helper-m3-page-group${this.isMobile ? ' mobile-view' : ''}`;\n }\n\n setInjector(): void {\n if (this.pages.length === 0) return;\n\n const item: INgxHelperPageGroupItem = {\n index: this.pages.findIndex((page) => page === this.pageId),\n id: this.pageId,\n title: this.pageGroup.pages[this.pageId].title,\n icon: this.pageGroup.pages[this.pageId].icon,\n };\n\n this.injector = Injector.create({\n providers: [\n { provide: NGX_HELPER_PAGE_GROUP_ITEM, useValue: item },\n { provide: NGX_HELPER_PAGE_GROUP_DATA, useValue: this.data },\n { provide: NGX_HELPER_PAGE_GROUP_DATA_CHANGE, useValue: (data: any) => this.dataChanged.next(data) },\n ],\n });\n }\n\n setPage(id: string): void {\n if (this.pages.length === 0 || this.pageId == id) return;\n\n const page = this.pageGroup.pages[id];\n const index: number = this.pages.findIndex((p) => p === id);\n if (!page || index === -1) return;\n\n this.pageId = id;\n this.triggerPageChanged();\n this.setInjector();\n\n if (this.pageGroup.route) {\n const queryParams: { [key: string]: any } = { ...this.activatedRoute.snapshot.queryParams };\n queryParams['ngx-helper-page-group'] = this.pageId;\n this.router.navigate(this.pageGroup.route, { queryParams });\n }\n }\n\n triggerPageChanged(): void {\n const item: INgxHelperPageGroupItem = {\n index: this.pages.findIndex((page) => page === this.pageId),\n id: this.pageId,\n title: this.pageGroup.pages[this.pageId].title,\n icon: this.pageGroup.pages[this.pageId].icon,\n };\n this.pageChanged.next(item);\n }\n}\n","@if (pages.length > 0) {\n<!-- DESKTOP VIEW -->\n@if (!isMobile) {\n<div\n class=\"page-group-aside\"\n [style.width]=\"sidebarWidth\"\n [style.position]=\"componentConfig.stickyView?.top ? 'sticky' : 'static'\"\n [style.top]=\"componentConfig.stickyView?.top?.desktopView || undefined\"\n>\n @for (item of pages; track $index) {\n <div\n class=\"page\"\n [class.active]=\"pageId === item\"\n [style.cursor]=\"pageId === item ? 'default' : 'pointer'\"\n (click)=\"setPage(item)\"\n >\n <!-- ICON -->\n <mat-icon>{{ pageGroup.pages[item].icon }}</mat-icon>\n <div class=\"title\">{{ pageGroup.pages[item].title }}</div>\n <!-- CURRENT PAGE -->\n @if (pageId === item) { <mat-icon>keyboard_double_arrow_left</mat-icon> }\n </div>\n }\n</div>\n}\n\n<!-- MOBILE VIEW -->\n@if (isMobile) {\n<div\n class=\"page-group-nav\"\n [style.position]=\"componentConfig.stickyView?.top ? 'sticky' : 'static'\"\n [style.top]=\"componentConfig.stickyView?.top?.mobileView || undefined\"\n>\n @for (item of pages; track $index) {\n <div\n class=\"page\"\n [class.active]=\"pageId === item\"\n [style.cursor]=\"pageId === item ? 'default' : 'pointer'\"\n (click)=\"setPage(item)\"\n >\n <mat-icon>{{ pageGroup.pages[item].icon }}</mat-icon>\n @if (pageId === item) {\n <div class=\"title\">{{ pageGroup.pages[item].title }}</div>\n }\n </div>\n }\n</div>\n\n<div\n class=\"page-group-spacer\"\n [style.position]=\"componentConfig.stickyView?.top ? 'sticky' : 'static'\"\n [style.top]=\"\n 'calc(' +\n (componentConfig.stickyView?.top?.mobileView || undefined) +\n ' + var(--ngx-helper-m3-page-group-toolbar-height))'\n \"\n></div>\n}\n\n<div class=\"page-group-content\">\n <!-- HEADER -->\n @if (pageGroup.header) {\n <div\n class=\"header\"\n [style.position]=\"componentConfig.stickyView?.top ? 'sticky' : 'static'\"\n [style.top]=\"\n (isMobile\n ? 'calc(' +\n (componentConfig.stickyView?.top?.mobileView || undefined) +\n ' + var(--ngx-helper-m3-page-group-toolbar-height) + 1rem)'\n : componentConfig.stickyView?.top?.desktopView) || undefined\n \"\n >\n <span *ngComponentOutlet=\"pageGroup.header; injector: injector\"></span>\n <div class=\"spacer\"></div>\n </div>\n }\n <span *ngComponentOutlet=\"pageGroup.pages[pageId].component; injector: injector\"></span>\n</div>\n}\n","import { Component, HostBinding, Input, OnChanges, SimpleChanges } from '@angular/core';\n\n@Component({\n selector: 'ngx-helper-progress',\n imports: [],\n templateUrl: './ngx-helper-progress.component.html',\n styleUrl: './ngx-helper-progress.component.scss',\n})\nexport class NgxHelperProgressComponent implements OnChanges {\n @HostBinding('className') private className: string = 'ngx-helper-m3-progress';\n @HostBinding('style.border-radius') borderRadiusCSS!: string;\n @HostBinding('style.background-color') backgroundColorCSS!: string;\n\n @Input({ required: true }) value!: number | { done: number; total: number };\n @Input({ required: false }) align: 'LR' | 'RL' | 'TB' | 'BT' = 'LR';\n @Input({ required: false }) borderRadius: string = '0px';\n @Input({ required: false }) progressColor: string = 'var(--surface-container)';\n @Input({ required: false }) backgroundColor?: string;\n\n public size!: string;\n public direction!: 'H' | 'V';\n\n ngOnChanges(changes: SimpleChanges): void {\n this.className = `ngx-helper-m3-progress ${this.align}`;\n this.borderRadiusCSS = this.borderRadius;\n this.backgroundColorCSS = this.backgroundColor || 'transparent';\n\n let value: number = typeof this.value === 'number' ? this.value : (this.value.done / this.value.total) * 100;\n if (isNaN(value) || value < 0) value = 0;\n else if (value > 100) value = 100;\n this.size = `${value.toFixed(2)}%`;\n this.direction = this.align === 'LR' || this.align === 'RL' ? 'H' : 'V';\n }\n}\n","<div\n class=\"progress\"\n [style.border-radius]=\"borderRadius\"\n [style.background-color]=\"progressColor\"\n [style.width]=\"direction === 'H' ? size : '100%'\"\n [style.height]=\"direction === 'V' ? size : '100%'\"\n></div>\n<div class=\"content\"><ng-content></ng-content></div>\n","import { Component, HostBinding, Inject, Input, OnInit, Optional } from '@angular/core';\n\nimport { INgxHelperConfig, NGX_HELPER_CONFIG } from '../../ngx-helper.config';\n\nimport { ComponentService, IComponentConfig } from '../component.service';\n\n@Component({\n selector: 'ngx-helper-section',\n host: { '(window:resize)': 'onResize($event)' },\n imports: [],\n providers: [ComponentService],\n templateUrl: './ngx-helper-section.component.html',\n styleUrl: './ngx-helper-section.component.scss',\n})\nexport class NgxHelperSectionComponent implements OnInit {\n @HostBinding('style.--section-gap') private gap!: string;\n\n @Input({ required: false }) gapSize?: string;\n\n private componentConfig!: IComponentConfig;\n public isMobile: boolean = false;\n\n constructor(\n private readonly componentService: ComponentService,\n @Optional() @Inject(NGX_HELPER_CONFIG) private readonly config?: Partial<INgxHelperConfig>,\n ) {}\n\n ngOnInit(): void {\n this.componentConfig = this.componentService.getComponentConfig(this.config);\n this.gap = this.gapSize || '1rem';\n\n this.onResize();\n }\n\n onResize(): void {\n this.isMobile = window.innerWidth <= this.componentConfig.mobileWidth;\n }\n}\n","<div class=\"section-columns\" [class.section-columns-mobile]=\"isMobile\">\n <ng-content></ng-content>\n</div>\n","import { Component, HostBinding, inject, Inject, Input, OnChanges, Optional, SimpleChanges } from '@angular/core';\n\nimport { INgxHelperConfig, NGX_HELPER_CONFIG } from '../../../ngx-helper.config';\n\nimport { ComponentService, IComponentConfig } from '../../component.service';\n\n@Component({\n selector: 'ngx-helper-section-column',\n host: { '(window:resize)': 'onResize($event)' },\n imports: [],\n templateUrl: './ngx-helper-section-column.component.html',\n styleUrl: './ngx-helper-section-column.component.scss',\n})\nexport class NgxHelperSectionColumnComponent implements OnChanges {\n @HostBinding('style.flex') flexStyle: string = '1';\n @HostBinding('style.width') widthStyle: string = '*';\n\n @HostBinding('style.position') stickyPosition!: string;\n @HostBinding('style.zInde') stickyZIndex!: string;\n @HostBinding('style.top') stickyTop!: string;\n\n @Input({ required: false }) flex?: number;\n @Input({ required: false }) width?: string;\n @Input({ required: false }) sticky?: boolean | 'DESKTOP' | 'MOBILE';\n @Input({ required: false }) zIndex?: number;\n\n private componentConfig!: IComponentConfig;\n private isMobile: boolean = false;\n\n constructor(\n private readonly componentService: ComponentService,\n @Optional() @Inject(NGX_HELPER_CONFIG) private readonly config?: Partial<INgxHelperConfig>,\n ) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n this.flexStyle = this.width ? 'unset' : this.flex?.toString() || '1';\n this.widthStyle = this.width || '*';\n\n this.componentConfig = this.componentService.getComponentConfig(this.config);\n this.onResize();\n }\n\n onResize(): void {\n this.isMobile = window.innerWidth <= this.componentConfig.mobileWidth;\n this.setPosition();\n }\n\n setPosition(): void {\n const top = this.componentConfig.stickyView?.top;\n if (!top) return;\n\n const sticky: boolean =\n this.sticky === true ||\n (this.sticky === 'DESKTOP' && !this.isMobile) ||\n (this.sticky === 'MOBILE' && this.isMobile);\n\n this.stickyPosition = sticky ? 'sticky' : 'static';\n this.stickyZIndex = sticky ? (this.zIndex ? this.zIndex.toString() : '1') : 'auto';\n this.stickyTop = sticky ? (this.isMobile ? top.mobileView : top.desktopView) : 'auto';\n }\n}\n","<ng-content></ng-content>\n","import { Component, HostBinding, Inject, Input, OnChanges, OnInit, Optional, SimpleChanges } from '@angular/core';\nimport { ClipboardModule } from '@angular/cdk/clipboard';\nimport { Router } from '@angular/router';\n\nimport { MatIconButton } from '@angular/material/button';\nimport { MatIcon } from '@angular/material/icon';\n\nimport { INgxHelperConfig, NGX_HELPER_CONFIG } from '../../../ngx-helper.config';\n\nimport { ComponentService, IComponentConfig, IValueComponentData } from '../../component.service';\n\nimport { INgxHelperValue } from '../ngx-helper-value.interface';\n\n@Component({\n selector: 'ngx-helper-value-box',\n host: { '(window:resize)': 'onResize($event)' },\n imports: [ClipboardModule, MatIcon, MatIconButton],\n providers: [ComponentService],\n templateUrl: './ngx-helper-value-box.component.html',\n styleUrl: './ngx-helper-value-box.component.scss',\n})\nexport class NgxHelperValueBoxComponent implements OnInit, OnChanges {\n @HostBinding('className') private className: string = 'ngx-helper-m3-value-box';\n @HostBinding('style.grid-template-columns') private gridTemplateColumns!: string;\n @HostBinding('style.--gap-size') private boxGap!: string;\n\n @Input({ required: true }) values!: INgxHelperValue[];\n @Input({ required: false }) column?: number | { desktop?: number; mobile?: number };\n @Input({ required: false }) clearBox: boolean = false;\n @Input({ required: false }) emptyText: string = 'نامشخص';\n @Input({ required: false }) gapSize: string = '1rem';\n @Input({ required: false }) hideShadow: boolean = false;\n\n public data: IValueComponentData[] = [];\n\n public copyIndex?: number;\n private copyTimeout: any;\n\n private componentConfig!: IComponentConfig;\n\n constructor(\n private readonly router: Router,\n private readonly componentService: ComponentService,\n @Optional() @Inject(NGX_HELPER_CONFIG) private readonly config?: Partial<INgxHelperConfig>,\n ) {}\n\n ngOnInit(): void {\n this.componentConfig = this.componentService.getComponentConfig(this.config);\n this.onResize();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.boxGap = this.gapSize;\n this.className = `ngx-helper-m3-value-box${this.hideShadow ? ' hide-shadow' : ''}`;\n\n this.data = this.componentService.getValueData(this.values);\n }\n\n onResize(): void {\n if (this.values.length === 0) return;\n\n const isMobile: boolean = window.innerWidth <= this.componentConfig.mobileWidth;\n const columnSize: number =\n this.column === undefined\n ? this.values.length\n : typeof this.column === 'number'\n ? this.column\n : isMobile\n ? this.column.mobile || this.values.length\n : this.column.desktop || this.values.length;\n\n const column: number = columnSize <= 0 || columnSize > this.values.length ? this.values.length : columnSize;\n this.gridTemplateColumns = Array(column).fill('1fr').join(' ');\n }\n\n onClick(action?: () => string[] | void): void {\n if (!action) return;\n\n const response = action();\n if (response) this.router.navigate(response);\n }\n\n onCopy(event: Event, index: number): void {\n event.preventDefault();\n\n if (this.copyTimeout) clearTimeout(this.copyTimeout);\n this.copyIndex = index;\n this.copyTimeout = setTimeout(() => {\n this.copyIndex = undefined;\n this.copyTimeout = undefined;\n }, 2000);\n }\n}\n","@for (item of data; track $index) {\n<div class=\"value-box\" [class.clear]=\"clearBox\" [class.click]=\"!!item.action\">\n <div class=\"title\" (click)=\"onClick(item.action)\">{{ item.title }}</div>\n <div\n class=\"value\"\n [style.display]=\"'inline-block'\"\n [style.direction]=\"item.ltr ? 'ltr' : '*'\"\n [style.color]=\"item.color\"\n [class.en]=\"item.english\"\n [class.empty]=\"!item.value\"\n (click)=\"onClick(item.action)\"\n >\n {{ item.value || emptyText }}\n </div>\n <!-- COPY TO CLIPBOARD -->\n @if (item.copyToClipboard && item.value) {\n <button mat-icon-button type=\"button\" [cdkCopyToClipboard]=\"item.value\" (click)=\"onCopy($event, $index)\">\n <mat-icon>{{ copyIndex === $index ? 'done_all' : 'copy' }}</mat-icon>\n </button>\n }\n</div>\n}\n","import { Component, HostBinding, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { ClipboardModule } from '@angular/cdk/clipboard';\nimport { Router } from '@angular/router';\n\nimport { MatIconButton } from '@angular/material/button';\nimport { MatIcon } from '@angular/material/icon';\n\nimport { ComponentService, IValueComponentData } from '../../component.service';\n\nimport { INgxHelperValue } from '../ngx-helper-value.interface';\n\n@Component({\n selector: 'ngx-helper-value-list',\n imports: [ClipboardModule, MatIcon, MatIconButton],\n providers: [ComponentService],\n templateUrl: './ngx-helper-value-list.component.html',\n styleUrl: './ngx-helper-value-list.component.scss',\n})\nexport class NgxHelperValueListComponent implements OnChanges {\n @HostBinding('className') private className: string = 'ngx-helper-m3-value-list';\n\n @Input({ required: true }) values!: INgxHelperValue[];\n @Input({ required: false }) titleWidth: string = '20%';\n @Input({ required: false }) emptyText: string = 'نامشخص';\n\n public data: IValueComponentData[] = [];\n\n public copyIndex?: number;\n private copyTimeout: any;\n\n constructor(private readonly router: Router, private readonly componentService: ComponentService) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n this.data = this.componentService.getValueData(this.values);\n }\n\n onClick(action?: () => string[] | void): void {\n if (!action) return;\n\n const response = action();\n if (response) this.router.navigate(response);\n }\n\n onCopy(event: Event, index: number): void {\n event.preventDefault();\n\n if (this.copyTimeout) clearTimeout(this.copyTimeout);\n this.copyIndex = index;\n this.copyTimeout = setTimeout(() => {\n this.copyIndex = undefined;\n this.copyTimeout = undefined;\n }, 2000);\n }\n}\n","@for (item of data; track $index) {\n<div class=\"value-list-item\" [class.even]=\"$index % 2 === 0\" [class.odd]=\"$index % 2 === 1\">\n <div class=\"title\" [style.width]=\"titleWidth\">{{ item.title }}:</div>\n <div class=\"value\">\n <div\n [style.display]=\"'inline-block'\"\n [style.direction]=\"item.ltr ? 'ltr' : '*'\"\n [style.color]=\"item.color\"\n [class.en]=\"item.english\"\n [class.empty]=\"!item.value\"\n [class.click]=\"!!item.action\"\n (click)=\"onClick(item.action)\"\n >\n {{ item.value || emptyText }}\n </div>\n <!-- ACTION -->\n @if (item.action) {\n <button mat-icon-button type=\"button\" (click)=\"onClick(item.action)\">\n <mat-icon [style.color]=\"item.color\">open_in_new</mat-icon>\n </button>\n\n }\n </div>\n <!-- COPY TO CLIPBOARD -->\n @if (item.copyToClipboard && item.value) {\n <button mat-icon-button type=\"button\" [cdkCopyToClipboard]=\"item.value\" (click)=\"onCopy($event, $index)\">\n <mat-icon>{{ copyIndex === $index ? 'done_all' : 'copy' }}</mat-icon>\n </button>\n }\n</div>\n}\n","import { Component, HostBinding, inject } from '@angular/core';\nimport { NgClass } from '@angular/common';\n\nimport { MatButtonModule } from '@angular/material/button';\nimport { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { INgxHelperConfirm } from '../confirm.interface';\n\n@Component({\n host: { selector: 'confirm-dialog' },\n imports: [NgClass, MatButtonModule, MatDialogModule, MatIconModule],\n templateUrl: './confirm-dialog.component.html',\n styleUrl: './confirm-dialog.component.scss',\n})\nexport class ConfirmDialogComponent {\n @HostBinding('className') private className: string = 'ngx-helper-m3-confirm';\n\n public confirm: INgxHelperConfirm = inject(MAT_DIALOG_DATA);\n}\n","<div class=\"confirm-content\">\n <!-- ICON -->\n @if (confirm.icon) {\n <mat-icon>{{ confirm.icon }}</mat-icon>\n }\n\n <!-- CONTENT -->\n <div class=\"confirm\">\n <div class=\"question\">{{ confirm.question }}</div>\n <!-- DESCRIPTION -->\n @if (confirm.description) {\n <div class=\"description\">{{ confirm.description }}</div>\n }\n <!-- DATA -->\n @if (confirm.data) {\n <div class=\"data\">\n <div class=\"title\">{{ confirm.data.title }}:</div>\n <div class=\"value\">{{ confirm.data.value }}</div>\n </div>\n }\n </div>\n</div>\n\n<div class=\"confirm-footer\">\n <button mat-button type=\"button\" mat-dialog-close [ngClass]=\"confirm.denyClass\">خیر</button>\n <button mat-button type=\"button\" [mat-dialog-close]=\"true\" [ngClass]=\"confirm.confirmClass\">بلی</button>\n</div>\n","import { Component, HostBinding, inject } from '@angular/core';\nimport { NgClass } from '@angular/common';\n\nimport { MAT_BOTTOM_SHEET_DATA, MatBottomSheetRef } from '@angular/material/bottom-sheet';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { INgxHelperConfirm } from '../confirm.interface';\n\n@Component({\n host: { selector: 'confirm-bottom-sheet' },\n imports: [NgClass, MatButtonModule, MatIconModule],\n templateUrl: './confirm-bottom-sheet.component.html',\n styleUrl: './confirm-bottom-sheet.component.scss',\n})\nexport class ConfirmBottomSheetComponent {\n @HostBinding('className') private className: string = 'ngx-helper-m3-confirm';\n\n public confirm: INgxHelperConfirm = inject(MAT_BOTTOM_SHEET_DATA);\n\n constructor(private readonly matBottomSheetRef: MatBottomSheetRef<ConfirmBottomSheetComponent>) {}\n\n close(confirmed?: boolean) {\n this.matBottomSheetRef.dismiss(confirmed);\n }\n}\n","<div class=\"confirm-content\">\n <!-- ICON -->\n @if (confirm.icon) {\n <mat-icon>{{ confirm.icon }}</mat-icon>\n }\n\n <!-- CONTENT -->\n <div class=\"confirm\">\n <div class=\"question\">{{ confirm.question }}</div>\n <!-- DESCRIPTION -->\n @if (confirm.description) {\n <div class=\"description\">{{ confirm.description }}</div>\n }\n <!-- DATA -->\n @if (confirm.data) {\n <div class=\"data\">\n <div class=\"title\">{{ confirm.data.title }}:</div>\n <div class=\"value\">{{ confirm.data.value }}</div>\n </div>\n }\n </div>\n</div>\n\n<div class=\"confirm-footer\">\n <button mat-button type=\"button\" (click)=\"close()\" [ngClass]=\"confirm.denyClass\">خیر</button>\n <button mat-button type=\"button\" (click)=\"close(true)\" [ngClass]=\"confirm.confirmClass\">بلی</button>\n</div>\n","import { Injectable } from '@angular/core';\n\nimport { MatBottomSheet, MatBottomSheetConfig } from '@angular/material/bottom-sheet';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\n\nimport { ConfirmDialogComponent } from './dialog/confirm-dialog.component';\nimport { ConfirmBottomSheetComponent } from './bottom-sheet/confirm-bottom-sheet.component';\n\nimport { INgxHelperConfirm } from './confirm.interface';\n\ninterface IConfirmData {\n readonly title: string;\n readonly value?: string;\n}\n\ninterface IConfirmConfig {\n readonly description: string;\n readonly confirmClass: string;\n readonly denyClass: string;\n}\n\nclass NgxHelperConfirmCalss {\n constructor(\n private readonly matBottomSheet: MatBottomSheet,\n private readonly matDialog: MatDialog,\n private readonly confirm: INgxHelperConfirm,\n ) {}\n\n dialog(onConfirmed: () => void): void;\n dialog(onConfirmed: () => void, onDenied: () => void): void;\n dialog(onConfirmed: () => void, config: MatDialogConfig): void;\n dialog(onConfirmed: () => void, onDenied: () => void, config: MatDialogConfig): void;\n dialog(onConfirmed: () => void, arg1?: any, arg2?: any): void {\n const onDenied: (() => void) | undefined = typeof arg1 === 'function' ? arg1 : undefined;\n const config: MatDialogConfig = arg2 || (typeof arg1 !== 'function' ? arg1 : {});\n\n this.matDialog\n .open<any, any, boolean>(ConfirmDialogComponent, {\n // DEFAULT CONFIG\n width: 'calc(100vw - 4rem)',\n direction: 'rtl',\n enterAnimationDuration: '100ms',\n exitAnimationDuration: '100ms',\n // OVERWRITE CONFIG\n ...config,\n maxHeight: '80vh',\n // DATA\n data: this.confirm,\n })\n .afterClosed()\n .subscribe({ next: (confirmed?: boolean) => (!!confirmed ? onConfirmed() : onDenied ? onDenied() : undefined) });\n }\n\n bottomSheet(onConfirmed: () => void): void;\n bottomSheet(onConfirmed: () => void, onDenied: () => void): void;\n bottomSheet(onConfirmed: () => void, config: MatBottomSheetConfig): void;\n bottomSheet(onConfirmed: () => void, onDenied: () => void, config: MatBottomSheetConfig): void;\n bottomSheet(onConfirmed: () => void, arg1?: any, arg2?: any): void {\n const onDenied: (() => void) | undefined = typeof arg1 === 'function' ? arg1 : undefined;\n const config: MatBottomSheetConfig = arg2 || (typeof arg1 !== 'function' ? arg1 : {});\n\n this.matBottomSheet\n .open<any, any, boolean>(ConfirmBottomSheetComponent, {\n // DEFAULT CONFIG\n direction: 'rtl',\n panelClass: 'ngx-helper-bottom-sheet',\n // OVERWRITE CONFIG\n ...config,\n maxHeight: '80vh',\n // DATA\n data: this.confirm,\n })\n .afterDismissed()\n .subscribe({ next: (confirmed?: boolean) => (!!confirmed ? onConfirmed() : onDenied ? onDenied() : undefined) });\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class NgxHelperConfirmService {\n constructor(private readonly matBottomSheet: MatBottomSheet, private readonly matDialog: MatDialog) {}\n\n verify(confirm: INgxHelperConfirm): NgxHelperConfirmCalss {\n return new NgxHelperConfirmCalss(this.matBottomSheet, this.matDialog, confirm);\n }\n\n active(data: IConfirmData): NgxHelperConfirmCalss;\n active(data: IConfirmData, config: Partial<IConfirmConfig>): NgxHelperConfirmCalss;\n active(data: IConfirmData, config?: Partial<IConfirmConfig>): NgxHelperConfirmCalss {\n return this.verify({\n question: `آیا می‌خواهید ${data.title} انتخاب شده را فعال کنید؟`,\n description: config?.description,\n data: data.value ? { title: data.title, value: data.value } : undefined,\n icon: 'check_box',\n confirmClass: config?.confirmClass,\n denyClass: config?.denyClass,\n });\n }\n\n deactive(data: IConfirmData): NgxHelperConfirmCalss;\n deactive(data: IConfirmData, config: Partial<IConfirmConfig>): NgxHelperConfirmCalss;\n deactive(data: IConfirmData, config?: Partial<IConfirmConfig>): NgxHelperConfirmCalss {\n return this.verify({\n question: `آیا می‌خواهید ${data.title} انتخاب شده را غیرفعال کنید؟`,\n description: config?.description,\n data: data.value ? { title: data.title, value: data.value } : undefined,\n icon: 'disabled_by_default',\n confirmClass: config?.confirmClass || 'error',\n denyClass: config?.denyClass,\n });\n }\n\n status(active: boolean, data: IConfirmData): NgxHelperConfirmCalss;\n status(active: boolean, data: IConfirmData, config: Partial<IConfirmConfig>): NgxHelperConfirmCalss;\n status(active: boolean, data: IConfirmData, config?: Partial<IConfirmConfig>): NgxHelperConfirmCalss {\n return active ? this.active(data, config || {}) : this.deactive(data, config || {});\n }\n\n delete(data: IConfirmData): NgxHelperConfirmCalss;\n delete(data: IConfirmData, config: Partial<IConfirmConfig>): NgxHelperConfirmCalss;\n delete(data: IConfirmData, config?: Partial<IConfirmConfig>): NgxHelperConfirmCalss {\n return this.verify({\n question: `آیا می‌خواهید ${data.title} انتخاب شده را حذف کنید؟`,\n description: config?.description,\n data: data.value ? { title: data.title, value: data.value } : undefined,\n icon: 'delete',\n confirmClass: config?.confirmClass || 'error',\n denyClass: config?.denyClass,\n });\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport interface INgxHelperContainerConfig {\n data?: any;\n padding?: string;\n hideClose?: boolean;\n}\n\nexport type NgxHelperContainer = 'DIALOG' | 'BOTTOMSHEET';\n\nexport const NGX_HELPER_CONTAINER_TYPE: InjectionToken<NgxHelperContainer> = new InjectionToken('NGX-HELPER-CONTAINER-TYPE');\nexport const NGX_HELPER_CONTAINER_DATA: InjectionToken<any> = new InjectionToken<any>('NGX-HELPER-CONTAINER-DATA');\nexport const NGX_HELPER_CONTAINER_CLOSE: InjectionToken<(response?: any) => void> = new InjectionToken(\n 'NGX-HELPER-CONTAINER-CLOSE',\n);\n","import { NgComponentOutlet } from '@angular/common';\nimport { Component, HostBinding, inject, Injector, OnInit } from '@angular/core';\nimport { ComponentType } from '@angular/cdk/portal';\n\nimport { MatIconButton } from '@angular/material/button';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { MatIcon } from '@angular/material/icon';\n\nimport {\n INgxHelperContainerConfig,\n NGX_HELPER_CONTAINER_CLOSE,\n NGX_HELPER_CONTAINER_DATA,\n NGX_HELPER_CONTAINER_TYPE,\n} from '../container.interface';\n\n@Component({\n host: { selector: 'container-dialog' },\n imports: [NgComponentOutlet, MatIconButton, MatIcon],\n templateUrl: './container-dialog.component.html',\n styleUrl: './container-dialog.component.scss',\n})\nexport class ContainerDialogComponent implements OnInit {\n @HostBinding('className') private className: string = 'ngx-helper-m3-container';\n\n public container: {\n component: ComponentType<any>;\n readonly title: string;\n readonly config: INgxHelperContainerConfig;\n } = inject(MAT_DIALOG_DATA);\n\n public injector!: Injector;\n\n constructor(private readonly matDialogRef: MatDialogRef<ContainerDialogComponent>) {}\n\n ngOnInit(): void {\n this.injector = Injector.create({\n providers: [\n { provide: NGX_HELPER_CONTAINER_TYPE, useValue: 'DIALOG' },\n { provide: NGX_HELPER_CONTAINER_DATA, useValue: this.container.config.data },\n {\n provide: NGX_HELPER_CONTAINER_CLOSE,\n useFactory: () => (response?: any) => this.matDialogRef.close(response),\n },\n ],\n });\n }\n\n close(): void {\n this.matDialogRef.close();\n }\n}\n","<div class=\"container-header\">\n <div class=\"title\">{{ container.title }}</div>\n @if (!container.config.hideClose) {\n <button mat-icon-button type=\"button\" (click)=\"close()\">\n <mat-icon>close</mat-icon>\n </button>\n }\n</div>\n\n<div class=\"container-content\" [style.padding]=\"container.config.padding || '1rem'\">\n <span *ngComponentOutlet=\"container.component; injector: injector\"></span>\n</div>\n","import { NgComponentOutlet } from '@angular/common';\nimport { Component, HostBinding, inject, Injector, OnInit } from '@angular/core';\nimport { ComponentType } from '@angular/cdk/portal';\n\nimport { MAT_BOTTOM_SHEET_DATA, MatBottomSheetRef } from '@angular/material/bottom-sheet';\nimport { MatIconButton } from '@angular/material/button';\nimport { MatIcon } from '@angular/material/icon';\n\nimport {\n INgxHelperContainerConfig,\n NGX_HELPER_CONTAINER_CLOSE,\n NGX_HELPER_CONTAINER_DATA,\n NGX_HELPER_CONTAINER_TYPE,\n} from '../container.interface';\n\n@Component({\n host: { selector: 'container-bottom-sheet' },\n imports: [NgComponentOutlet, MatIconButton, MatIcon],\n templateUrl: './container-bottom-sheet.component.html',\n styleUrl: './container-bottom-sheet.component.scss',\n})\nexport class ContainerBottomSheetComponent implements OnInit {\n @HostBinding('className') private className: string = 'ngx-helper-m3-container';\n\n public container: {\n component: ComponentType<any>;\n readonly title: string;\n readonly config: INgxHelperContainerConfig;\n } = inject(MAT_BOTTOM_SHEET_DATA);\n\n public injector!: Injector;\n\n constructor(private readonly matBottomSheetRef: MatBottomSheetRef<ContainerBottomSheetComponent>) {}\n\n ngOnInit(): void {\n this.injector = Injector.create({\n providers: [\n { provide: NGX_HELPER_CONTAINER_TYPE, useValue: 'BOTTOMSHEET' },\n { provide: NGX_HELPER_CONTAINER_DATA, useValue: this.container.config.data },\n {\n provide: NGX_HELPER_CONTAINER_CLOSE,\n useFactory: () => (response?: any) => this.matBottomSheetRef.dismiss(response),\n },\n ],\n });\n }\n\n close(): void {\n this.matBottomSheetRef.dismiss();\n }\n}\n","<div class=\"container-header\">\n <div class=\"title\">{{ container.title }}</div>\n @if (!container.config.hideClose) {\n <button mat-icon-button type=\"button\" (click)=\"close()\">\n <mat-icon>close</mat-icon>\n </button>\n }\n</div>\n\n<div class=\"container-content\" [style.padding]=\"container.config.padding || '1rem'\">\n <span *ngComponentOutlet=\"container.component; injector: injector\"></span>\n</div>\n","import { Injectable } from '@angular/core';\nimport { ComponentType } from '@angular/cdk/portal';\n\nimport { MatBottomSheet, MatBottomSheetConfig } from '@angular/material/bottom-sheet';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\n\nimport { ContainerDialogComponent } from './dialog/container-dialog.component';\nimport { ContainerBottomSheetComponent } from './bottom-sheet/container-bottom-sheet.component';\n\nimport { INgxHelperContainerConfig } from './container.interface';\n\ninterface IContainerData {\n readonly component: ComponentType<any>;\n readonly title: string;\n readonly config: INgxHelperContainerConfig;\n}\n\nclass NgxHelperContainerCalss {\n constructor(\n private readonly matBottomSheet: MatBottomSheet,\n private readonly matDialog: MatDialog,\n private readonly container: IContainerData,\n ) {}\n\n dialog<T>(): void;\n dialog<T>(onResponse: (response: T) => void): void;\n dialog<T>(onResponse: (response: T) => void, onDismiss: () => void): void;\n dialog<T>(onResponse: (response: T) => void, config: MatDialogConfig): void;\n dialog<T>(onResponse: (response: T) => void, onDismiss: () => void, config: MatDialogConfig): void;\n dialog<T>(arg1?: any, arg2?: any, arg3?: any): void {\n const onResponse: ((response: T) => void) | undefined = typeof arg1 === 'function' ? arg1 : undefined;\n const onDismiss: (() => void) | undefined = typeof arg2 === 'function' ? arg2 : undefined;\n const config: MatDialogConfig = arg3 || (typeof arg2 !== 'function' ? arg2 : {});\n\n this.matDialog\n .open(ContainerDialogComponent, {\n // DEFAULT CONFIG\n width: 'calc(100vw - 4rem)',\n direction: 'rtl',\n enterAnimationDuration: '100ms',\n exitAnimationDuration: '100ms',\n // OVERWRITE CONFIG\n ...config,\n maxHeight: '80vh',\n // DATA\n data: this.container,\n })\n .afterClosed()\n .subscribe({\n next: (response?: T) => {\n if (onResponse && !!response) onResponse(response);\n if (onDismiss && !response) onDismiss();\n },\n });\n }\n\n bottomSheet<T>(): void;\n bottomSheet<T>(onResponse: (result: T) => void): void;\n bottomSheet<T>(onResponse: (result: T) => void, onDismiss: () => void): void;\n bottomSheet<T>(onResponse: (result: T) => void, config: MatBottomSheetConfig): void;\n bottomSheet<T>(onResponse: (result: T) => void, onDismiss: () => void, config: MatBottomSheetConfig): void;\n bottomSheet<T>(arg1?: any, arg2?: any, arg3?: any): void {\n const onResponse: ((result: T) => void) | undefined = typeof arg1 === 'function' ? arg1 : undefined;\n const onDismiss: (() => void) | undefined = typeof arg2 === 'function' ? arg2 : undefined;\n const config: MatBottomSheetConfig = arg3 || (typeof arg2 !== 'function' ? arg2 : {});\n\n this.matBottomSheet\n .open<any, any, T>(ContainerBottomSheetComponent, {\n // DEFAULT CONFIG\n direction: 'rtl',\n panelClass: 'ngx-helper-bottom-sheet',\n // OVERWRITE CONFIG\n ...config,\n maxHeight: '80vh',\n // DATA\n data: this.container,\n })\n .afterDismissed()\n .subscribe({\n next: (response?: T) => {\n if (onResponse && !!response) onResponse(response);\n if (onDismiss && !response) onDismiss();\n },\n });\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class NgxHelperContainerService {\n constructor(private readonly matBottomSheet: MatBottomSheet, private readonly matDialog: MatDialog) {}\n\n init(component: ComponentType<any>, title: string): NgxHelperContainerCalss;\n init(component: ComponentType<any>, title: string, config: INgxHelperContainerConfig): NgxHelperContainerCalss;\n init(component: ComponentType<any>, title: string, arg1?: any): NgxHelperContainerCalss {\n const config: INgxHelperContainerConfig = arg1 || {};\n\n return new NgxHelperContainerCalss(this.matBottomSheet, this.matDialog, { component, title, config });\n }\n}\n","import { Component, HostBinding, OnInit } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { NgxMaskDirective, provideNgxMask } from 'ngx-mask';\n\nimport { Feature, Map, View } from 'ol';\nimport { Coordinate } from 'ol/coordinate';\nimport { Point } from 'ol/geom';\nimport interactionDoubleClickZoom from 'ol/interaction/DoubleClickZoom';\nimport BaseLayer from 'ol/layer/Base';\nimport TileLayer from 'ol/layer/Tile';\nimport VectorLayer from 'ol/layer/Vector';\nimport OSM from 'ol/source/OSM';\nimport VectorSource from 'ol/source/Vector';\n\nimport { MatIcon } from '@angular/material/icon';\n\nimport { Helper } from '@webilix/helper-library';\n\nimport { INgxHelperCoordinates, INgxHelperCoordinatesConfig } from '../ngx-helper-coordinates.interface';\n\n@Component({\n host: { selector: 'get' },\n imports: [FormsModule, NgxMaskDirective, MatIcon],\n providers: [provideNgxMask()],\n templateUrl: './get.component.html',\n styleUrl: './get.component.scss',\n})\nexport class GetComponent implements OnInit {\n @HostBinding('className') private className: string = 'ngx-helper-m3-coordinates';\n\n public coordinates?: INgxHelperCoordinates;\n public config?: Partial<INgxHelperCoordinatesConfig>;\n public close!: (coordinates?: INgxHelperCoordinates) => void;\n\n private map!: Map;\n public coordinate: Coordinate = [];\n public inputTransformFn = (value: any): string => Helper.STRING.changeNumbers(value.toString(), 'EN');\n\n ngOnInit(): void {\n this.coordinate = this.coordinates\n ? [this.coordinates.longitude, this.coordinates.latitude]\n : this.config?.view\n ? [this.config.view.longitude, this.config.view.latitude]\n : [51.3380603, 35.6997382];\n\n const zoom: number = this.config?.zoom || 15;\n\n this.map = new Map({\n view: new View({ center: this.coordinate, zoom, projection: 'EPSG:4326' }),\n layers: [new TileLayer({ source: new OSM() })],\n target: 'ngx-helper-m3-coordinates-map',\n });\n\n this.map\n .getInteractions()\n .getArray()\n .forEach((interaction) => {\n if (interaction instanceof interactionDoubleClickZoom) this.map.removeInteraction(interaction);\n });\n\n this.addLayer();\n }\n\n addLayer(): void {\n this.map\n .getLayers()\n .getArray()\n .forEach((layer: BaseLayer) => {\n if (layer instanceof VectorLayer) this.map.removeLayer(layer);\n });\n\n if (this.coordinates) {\n const size: number = this.config?.size || 8;\n const color: string = this.config?.color || 'rgb(42, 101, 126)';\n\n const point = new Point(this.coordinate);\n const layer = new VectorLayer({\n source: new VectorSource({ features: [new Feature(point)] }),\n style: {\n 'circle-fill-color': color,\n 'circle-radius': size,\n 'circle-stroke-color': '#FFF',\n 'circle-stroke-width': 1,\n },\n });\n this.map.addLayer(layer);\n }\n }\n\n checkInputs(latitude: string, longitude: string): void {\n this.coordinates = undefined;\n this.addLayer();\n\n latitude = latitude.toString().trim();\n if (latitude === '' || isNaN(+latitude) || +latitude < -180 || +latitude > 180) return;\n\n longitude = longitude.toString().trim();\n if (longitude === '' || isNaN(+longitude) || +longitude < -180 || +longitude > 180) return;\n\n const center: Coordinate = [+longitude, +latitude];\n this.map.getView().animate({ center, duration: 1000 });\n\n this.coordinate = [+longitude, +latitude];\n this.coordinates = { latitude: +latitude, longitude: +longitude };\n this.addLayer();\n }\n\n selectCoordinates(): void {\n if (!this.coordinates) return;\n this.close(this.coordinates);\n }\n\n setCoordinates(event: MouseEvent): void {\n event.preventDefault();\n\n this.coordinate = this.map.getEventCoordinate(event).map((c: number) => +c.toFixed(7));\n this.coordinates = { latitude: this.coordinate[1], longitude: this.coordinate[0] };\n this.addLayer();\n }\n}\n","<div\n id=\"ngx-helper-m3-coordinates-map\"\n class=\"map\"\n (dblclick)=\"setCoordinates($event)\"\n (contextmenu)=\"setCoordinates($event)\"\n></div>\n\n<div class=\"coordinates\">\n <div class=\"header\">\n <div class=\"title\">COORDINATES</div>\n <mat-icon (click)=\"close()\">close</mat-icon>\n </div>\n <div class=\"item\">\n <div class=\"title\">LATITUDE</div>\n <input\n type=\"text\"\n maxlength=\"15\"\n inputmode=\"numeric\"\n [ngModel]=\"coordinates?.latitude\"\n mask=\"separator.12\"\n thousandSeparator=\"\"\n decimalMarker=\".\"\n [allowNegativeNumbers]=\"true\"\n [inputTransformFn]=\"inputTransformFn\"\n (keyup.enter)=\"checkInputs(latitudeInput.value, longitudeInput.value)\"\n (blur)=\"checkInputs(latitudeInput.value, longitudeInput.value)\"\n #latitudeInput\n />\n </div>\n <div class=\"item\">\n <div class=\"title\">LONGITUDE</div>\n <input\n type=\"text\"\n maxlength=\"15\"\n inputmode=\"numeric\"\n [ngModel]=\"coordinates?.longitude\"\n mask=\"separator.12\"\n thousandSeparator=\"\"\n decimalMarker=\".\"\n [allowNegativeNumbers]=\"true\"\n [inputTransformFn]=\"inputTransformFn\"\n (keyup.enter)=\"checkInputs(latitudeInput.value, longitudeInput.value)\"\n (blur)=\"checkInputs(latitudeInput.value, longitudeInput.value)\"\n #longitudeInput\n />\n </div>\n <div class=\"buttons\">\n <mat-icon [class.disabled]=\"!coordinates\" (click)=\"selectCoordinates()\">done_all</mat-icon>\n </div>\n</div>\n","import { Component, HostBinding, OnInit } from '@angular/core';\n\nimport { Feature, Map, View } from 'ol';\nimport { Coordinate } from 'ol/coordinate';\nimport { Point } from 'ol/geom';\nimport TileLayer from 'ol/layer/Tile';\nimport VectorLayer from 'ol/layer/Vector';\nimport OSM from 'ol/source/OSM';\nimport VectorSource from 'ol/source/Vector';\n\nimport { ClipboardModule } from '@angular/cdk/clipboard';\nimport { MatIcon } from '@angular/material/icon';\n\nimport { INgxHelperCoordinates, INgxHelperCoordinatesConfig } from '../ngx-helper-coordinates.interface';\n\n@Component({\n host: { selector: 'show' },\n imports: [ClipboardModule, MatIcon],\n templateUrl: './show.component.html',\n styleUrl: './show.component.scss',\n})\nexport class ShowComponent implements OnInit {\n @HostBinding('className') private className: string = 'ngx-helper-m3-coordinates';\n\n public coordinates!: INgxHelperCoordinates;\n public config?: Partial<Omit<INgxHelperCoordinatesConfig, 'view'>>;\n public close!: () => void;\n\n private map!: Map;\n public copied?: 'LATITUDE' | 'LONGITUDE';\n private copyTimeout: any;\n\n ngOnInit(): void {\n const coordinate: Coordinate = [this.coordinates.longitude, this.coordinates.latitude];\n const point = new Point(coordinate);\n\n const zoom: number = this.config?.zoom || 15;\n const size: number = this.config?.size || 8;\n const color: string = this.config?.color || 'rgb(42, 101, 126)';\n\n this.map = new Map({\n view: new View({ center: coordinate, zoom, projection: 'EPSG:4326' }),\n layers: [\n new TileLayer({ source: new OSM() }),\n new VectorLayer({\n source: new VectorSource({ features: [new Feature(point)] }),\n style: {\n 'circle-fill-color': color,\n 'circle-radius': size,\n 'circle-stroke-color': '#FFF',\n 'circle-stroke-width': 1,\n },\n }),\n ],\n target: 'ngx-helper-m3-coordinates-map',\n });\n }\n\n setCopy(type: 'LATITUDE' | 'LONGITUDE'): void {\n if (this.copyTimeout) clearTimeout(this.copyTimeout);\n\n this.copied = type;\n this.copyTimeout = setTimeout(() => (this.copied = undefined), 1000);\n }\n}\n","<div id=\"ngx-helper-m3-coordinates-map\" class=\"map\"></div>\n\n<div class=\"coordinates\">\n <div class=\"header\">\n <div class=\"title\">COORDINATES</div>\n <mat-icon (click)=\"close()\">close</mat-icon>\n </div>\n <div class=\"item\">\n <div class=\"title\">LATITUDE</div>\n <div class=\"value\">{{ coordinates.latitude.toFixed(7) }}</div>\n <mat-icon [cdkCopyToClipboard]=\"coordinates.latitude.toString()\" (click)=\"setCopy('LATITUDE')\">\n {{ copied === 'LATITUDE' ? 'done_all' : 'copy' }}\n </mat-icon>\n </div>\n <div class=\"item\">\n <div class=\"title\">LONGITUDE</div>\n <div class=\"value\">{{ coordinates.longitude.toFixed(7) }}</div>\n <mat-icon [cdkCopyToClipboard]=\"coordinates.longitude.toString()\" (click)=\"setCopy('LONGITUDE')\">\n {{ copied === 'LONGITUDE' ? 'done_all' : 'copy' }}\n </mat-icon>\n </div>\n</div>\n","import { ApplicationRef, createComponent, EmbeddedViewRef, Injectable, Injector } from '@angular/core';\n\nimport { GetComponent } from './get/get.component';\nimport { ShowComponent } from './show/show.component';\n\nimport { INgxHelperCoordinates, INgxHelperCoordinatesConfig } from './ngx-helper-coordinates.interface';\n\n@Injectable({ providedIn: 'root' })\nexport class NgxHelperCoordinatesService {\n constructor(private readonly applicationRef: ApplicationRef, private readonly injector: Injector) {}\n\n get(): Promise<INgxHelperCoordinates>;\n get(coordinates: INgxHelperCoordinates): Promise<INgxHelperCoordinates>;\n get(config: Partial<INgxHelperCoordinatesConfig>): Promise<INgxHelperCoordinates>;\n get(coordinates: INgxHelperCoordinates, config: Partial<INgxHelperCoordinatesConfig>): Promise<INgxHelperCoordinates>;\n get(arg1?: any, arg2?: any): Promise<INgxHelperCoordinates> {\n const coordinates: INgxHelperCoordinates | undefined = arg1 ? ('latitude' in arg1 ? arg1 : undefined) : undefined;\n const config: Partial<INgxHelperCoordinatesConfig> | undefined = arg2 || (arg1 && !coordinates ? arg1 : undefined);\n\n return new Promise<INgxHelperCoordinates>((resolve, reject) => {\n const componentRef = createComponent<GetComponent>(GetComponent, {\n environmentInjector: this.applicationRef.injector,\n elementInjector: this.injector,\n });\n\n componentRef.instance.coordinates = coordinates;\n componentRef.instance.config = config;\n componentRef.instance.close = (coordinates?: INgxHelperCoordinates) => {\n this.applicationRef.detachView(componentRef.hostView);\n componentRef.destroy();\n\n coordinates ? resolve(coordinates) : reject();\n };\n\n const htmlElement = (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n this.applicationRef.attachView(componentRef.hostView);\n document.body.appendChild(htmlElement);\n });\n }\n\n show(coordinates: INgxHelperCoordinates): void;\n show(coordinates: INgxHelperCoordinates, config: Partial<Omit<INgxHelperCoordinatesConfig, 'view'>>): void;\n show(coordinates: INgxHelperCoordinates, config?: Partial<Omit<INgxHelperCoordinatesConfig, 'view'>>): void {\n const componentRef = createComponent<ShowComponent>(ShowComponent, {\n environmentInjector: this.applicationRef.injector,\n elementInjector: this.injector,\n });\n\n componentRef.instance.coordinates = coordinates;\n componentRef.instance.config = config;\n componentRef.instance.close = () => {\n this.applicationRef.detachView(componentRef.hostView);\n componentRef.destroy();\n };\n\n const htmlElement = (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n this.applicationRef.attachView(componentRef.hostView);\n document.body.appendChild(htmlElement);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\nimport { Helper } from '@webilix/helper-library';\n\n@Pipe({ name: 'ngxHelperMultiLine' })\nexport class NgxHelperMultiLinePipe implements PipeTransform {\n constructor(private readonly domSanitizer: DomSanitizer) {}\n\n transform(value?: string | null, options?: { html?: boolean }): string | SafeHtml {\n if (value === undefined || value === null || !Helper.IS.string(value) || value === '') return '';\n\n return options?.html\n ? this.domSanitizer.bypassSecurityTrustHtml(value.replace(/(?:\\r\\n|\\r|\\n)/g, '<br />'))\n : Helper.STRING.escapeHTML(value).replace(/(?:\\r\\n|\\r|\\n)/g, '<br />');\n }\n}\n","import { AfterViewInit, Component, ElementRef, HostBinding, HostListener, OnDestroy, OnInit } from '@angular/core';\nimport { animate, style, transition, trigger } from '@angular/animations';\n\nimport { MatIcon } from '@angular/material/icon';\n\nimport { NgxHelperMultiLinePipe } from '../../pipes/multi-line.pipe';\nimport { INgxHelperConfig } from '../../ngx-helper.config';\n\nimport { INgxHelperToastConfig } from '../ngx-helper-toast.interface';\n\n@Component({\n host: { selector: 'toast' },\n imports: [MatIcon, NgxHelperMultiLinePipe],\n templateUrl: './toast.component.html',\n styleUrl: './toast.component.scss',\n animations: [\n trigger('host', [\n transition(':enter', [\n style({ top: 0, opacity: 0 }),\n animate('350ms ease-in-out', style({ top: '*', opacity: 1 })),\n ]),\n ]),\n ],\n})\nexport class ToastComponent implements OnInit, OnDestroy, AfterViewInit {\n @HostListener('click') private onClick = () => this.close();\n\n @HostBinding('@host') private host: boolean = true;\n @HostBinding('className') private className: string = 'ngx-helper-m3-toast';\n @HostBinding('style.top') top: string = '1rem';\n @HostBinding('style.color') textColor!: string;\n @HostBinding('style.border-color') borderColor!: string;\n @HostBinding('style.background-color') backgroundColor!: string;\n\n public id!: string;\n public icon!: string;\n public messages: string[] = [];\n public config!: { helper?: Partial<INgxHelperConfig>; toast: Partial<INgxHelperToastConfig> };\n public init!: () => void;\n public close!: () => void;\n\n public timeout!: number;\n public showClose!: boolean;\n public animation!: 'DECREASE' | 'INCREASE';\n\n public progress: number = 0;\n public start: number = 0;\n private interval?: any;\n\n constructor(public readonly elementRef: ElementRef) {}\n\n ngOnInit(): void {\n this.borderColor = this.backgroundColor;\n\n const xPosition: 'LEFT' | 'CENTER' | 'RIGHT' = this.config.helper?.toastXPosition || 'CENTER';\n this.className = `ngx-helper-m3-toast ${xPosition.toLowerCase()}`;\n\n const toastTimeout =\n this.config.helper?.toastTimeout === undefined || this.config.helper?.toastTimeout < 0\n ? 4000\n : this.config.helper?.toastTimeout;\n this.timeout =\n this.config.toast.timeout === undefined || this.config.toast.timeout < 0\n ? toastTimeout\n : this.config.toast.timeout;\n this.showClose = this.config.toast.showClose || this.timeout === 0;\n this.animation = this.config.helper?.toastProgressAnimation || 'DECREASE';\n\n if (this.timeout) {\n this.start = new Date().getTime();\n this.interval = setInterval(() => {\n const timer: number = new Date().getTime();\n this.progress = ((timer - this.start) * 100) / this.timeout;\n this.progress = this.progress < 100 ? +this.progress.toFixed(2) : 100;\n if (this.progress === 100) this.close();\n }, 25);\n }\n }\n\n ngOnDestroy(): void {\n if (this.interval) clearInterval(this.interval);\n }\n\n ngAfterViewInit(): void {\n this.init();\n }\n}\n","<div class=\"content\">\n <div class=\"toast\">\n <mat-icon [style.color]=\"textColor\" class=\"icon\">{{ icon }}</mat-icon>\n <ul>\n @for (message of messages; track $index) {\n <li [innerHTML]=\"message | ngxHelperMultiLine\"></li>\n }\n </ul>\n </div>\n <!-- CLOSE ICON -->\n @if (showClose) {\n <mat-icon [style.color]=\"textColor\" class=\"close\">close</mat-icon>\n }\n</div>\n\n<div class=\"progress-container\" [style.background-color]=\"backgroundColor\">\n @if (timeout !== 0) {\n <div\n class=\"progress-value\"\n [style.background-color]=\"'color-mix(in srgb, ' + backgroundColor + ', black 25%)'\"\n [style.width]=\"(animation === 'DECREASE' ? 100 - progress : progress) + '%'\"\n ></div>\n }\n</div>\n","import {\n ApplicationRef,\n ComponentRef,\n createComponent,\n EmbeddedViewRef,\n Inject,\n Injectable,\n Injector,\n Optional,\n} from '@angular/core';\n\nimport { Helper } from '@webilix/helper-library';\n\nimport { INgxHelperConfig, NGX_HELPER_CONFIG } from '../ngx-helper.config';\n\nimport { ToastComponent } from './toast/toast.component';\nimport { INgxHelperToastConfig } from './ngx-helper-toast.interface';\n\ninterface IToast {\n readonly icon: string;\n readonly textColor: string;\n readonly backgroundColor: string;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class NgxHelperToastService {\n private components: { id: string; componentRef: ComponentRef<ToastComponent>; content: string }[] = [];\n\n constructor(\n private readonly applicationRef: ApplicationRef,\n private readonly injector: Injector,\n @Optional() @Inject(NGX_HELPER_CONFIG) private readonly config?: Partial<INgxHelperConfig>,\n ) {}\n\n private getId(): string {\n let id: string | undefined = undefined;\n while (!id || this.components.some((c) => c.id === id)) id = Helper.STRING.getRandom(10);\n\n return id;\n }\n\n private updatePositions(): void {\n let top: number = 0;\n this.components.forEach((c, index) => {\n c.componentRef.instance.top = `calc(${(index / 1.5).toFixed(1)}rem + calc(${top}px + 1rem))`;\n top += +c.componentRef.instance.elementRef.nativeElement.offsetHeight;\n });\n }\n\n toast(toast: IToast, message: string | string[]): void;\n toast(toast: IToast, message: string | string[], config: Partial<INgxHelperToastConfig>): void;\n toast(toast: IToast, message: string | string[], onClose: () => void): void;\n toast(toast: IToast, message: string | string[], config: Partial<INgxHelperToastConfig>, onClose: () => void): void;\n toast(toast: IToast, message: string | string[], arg1?: any, arg2?: any): void {\n const config: Partial<INgxHelperToastConfig> = arg2 ? arg1 : typeof arg1 === 'object' ? arg1 : {};\n const onClose: () => void = arg2 || (typeof arg1 === 'function' ? arg1 : () => {});\n\n const messages: string[] = typeof message === 'string' ? [message] : message;\n const content: string = [toast.icon, toast.textColor, toast.backgroundColor, ...messages].join('\\n');\n const duplicate = this.components.find((component) => component.content === content);\n if (!this.config?.toastAllowDuplicates && duplicate) {\n if (this.config?.toastResetDuplicates) {\n duplicate.componentRef.instance.start = new Date().getTime();\n duplicate.componentRef.instance.progress = 0;\n }\n return;\n }\n\n const componentRef = createComponent<ToastComponent>(ToastComponent, {\n environmentInjector: this.applicationRef.injector,\n elementInjector: this.injector,\n });\n\n const id: string = this.getId();\n componentRef.instance.id = id;\n componentRef.instance.icon = toast.icon;\n componentRef.instance.textColor = toast.textColor;\n componentRef.instance.backgroundColor = toast.backgroundColor;\n componentRef.instance.messages = messages;\n componentRef.instance.config = { helper: this.config, toast: config };\n componentRef.instance.init = () => this.updatePositions();\n componentRef.instance.close = () => {\n this.applicationRef.detachView(componentRef.hostView);\n document.body.removeChild(htmlElement);\n componentRef.destroy();\n\n this.components = this.components.filter((c) => c.id !== componentRef.instance.id);\n this.updatePositions();\n\n if (onClose) onClose();\n };\n const htmlElement = (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n this.applicationRef.attachView(componentRef.hostView);\n document.body.appendChild(htmlElement);\n\n this.components.push({ id, componentRef, content });\n this.updatePositions();\n }\n\n info(message: string | string[]): void;\n info(message: string | string[], config: Partial<INgxHelperToastConfig>): void;\n info(message: string | string[], onClose: () => void): void;\n info(message: string | string[], config: Partial<INgxHelperToastConfig>, onClose: () => void): void;\n info(message: string | string[], arg1?: any, arg2?: any): void {\n const toast: IToast = { icon: 'warning_amber', textColor: '#fff', backgroundColor: '#2f96b4' };\n this.toast(toast, message, arg1, arg2);\n }\n\n success(message: string | string[]): void;\n success(message: string | string[], config: Partial<INgxHelperToastConfig>): void;\n success(message: string | string[], onClose: () => void): void;\n success(message: string | string[], config: Partial<INgxHelperToastConfig>, onClose: () => void): void;\n success(message: string | string[], arg1?: any, arg2?: any): void {\n const toast: IToast = { icon: 'done_all', textColor: '#fff', backgroundColor: '#51a351' };\n this.toast(toast, message, arg1, arg2);\n }\n\n warning(message: string | string[]): void;\n warning(message: string | string[], config: Partial<INgxHelperToastConfig>): void;\n warning(message: string | string[], onClose: () => void): void;\n warning(message: string | string[], config: Partial<INgxHelperToastConfig>, onClose: () => void): void;\n warning(message: string | string[], arg1?: any, arg2?: any): void {\n const toast: IToast = { icon: 'info', textColor: '#fff', backgroundColor: '#f89406' };\n this.toast(toast, message, arg1, arg2);\n }\n\n error(message: string | string[]): void;\n error(message: string | string[], config: Partial<INgxHelperToastConfig>): void;\n error(message: string | string[], onClose: () => void): void;\n error(message: string | string[], config: Partial<INgxHelperToastConfig>, onClose: () => void): void;\n error(message: string | string[], arg1?: any, arg2?: any): void {\n const toast: IToast = { icon: 'cancel', textColor: '#fff', backgroundColor: '#bd362f' };\n this.toast(toast, message, arg1, arg2);\n }\n}\n","import { AfterViewInit, Component, HostBinding } from '@angular/core';\nimport { animate, style, transition, trigger } from '@angular/animations';\nimport { HttpClient, HttpEventType, HttpHeaders } from '@angular/common/http';\n\nimport { MatIcon } from '@angular/material/icon';\n\nimport { NgxHelperToastService } from '../../toast/ngx-helper-toast.service';\n\nimport { INgxHelperHttpDownloadConfig } from '../ngx-helper-http.interface';\n\n@Component({\n host: { selector: 'download' },\n imports: [MatIcon],\n templateUrl: './download.component.html',\n styleUrl: './download.component.scss',\n animations: [\n trigger('host', [\n transition(':enter', [\n style({ left: 'calc(-250px - 1rem)' }),\n animate('100ms ease-in-out', style({ left: '1rem' })),\n ]),\n ]),\n ],\n})\nexport class DownloadComponent implements AfterViewInit {\n @HostBinding('@host') private host: boolean = true;\n @HostBinding('className') private className: string = 'ngx-helper-m3-http';\n @HostBinding('style.bottom') bottom: string = '1rem';\n\n public id!: string;\n public path!: string;\n public title!: string;\n public config!: Partial<INgxHelperHttpDownloadConfig>;\n public onSuccess!: (arrayBuffer: ArrayBuffer) => void;\n public onError!: () => void;\n public close!: () => void;\n\n public progress: number = 0;\n\n constructor(private readonly httpClient: HttpClient, private readonly ngxHelperToastService: NgxHelperToastService) {}\n\n ngAfterViewInit(): void {\n setTimeout(this.download.bind(this), 0);\n }\n\n download(): void {\n let headers: HttpHeaders = new HttpHeaders();\n const header: { [key: string]: any } = this.config.header || {};\n Object.keys(header).forEach((key: string) => (headers = headers.set(key, header[key])));\n\n let request;\n switch (this.config.method || 'GET') {\n case 'GET':\n request = this.httpClient.get(this.path, {\n headers,\n reportProgress: true,\n observe: 'events',\n responseType: 'arraybuffer',\n });\n break;\n case 'POST':\n request = this.httpClient.post(this.path, {\n headers,\n reportProgress: true,\n observe: 'events',\n responseType: 'arraybuffer',\n });\n break;\n case 'PUT':\n request = this.httpClient.put(this.path, {\n headers,\n reportProgress: true,\n observe: 'events',\n responseType: 'arraybuffer',\n });\n break;\n case 'PATCH':\n request = this.httpClient.patch(this.path, {\n headers,\n reportProgress: true,\n observe: 'events',\n responseType: 'arraybuffer',\n });\n break;\n }\n\n request.subscribe({\n next: (event: any) => {\n switch (event.type) {\n case HttpEventType.DownloadProgress:\n const progress: number =\n event.loaded && event.total ? Math.ceil((event.loaded / event.total) * 1000) / 10 : 0;\n this.progress = progress <= 100 ? progress : 100;\n break;\n\n case HttpEventType.Response:\n this.progress = 100;\n this.onSuccess(event.body);\n this.close();\n break;\n }\n },\n error: () => {\n this.onError();\n this.close();\n },\n });\n }\n}\n","<div class=\"content\">\n <mat-icon>file_download</mat-icon>\n <div class=\"title\">{{ title }}</div>\n</div>\n\n<div class=\"progress-container\">\n <div class=\"progress-value\" [style.width]=\"progress + '%'\"></div>\n</div>\n","import { AfterViewInit, Component, HostBinding } from '@angular/core';\nimport { animate, style, transition, trigger } from '@angular/animations';\nimport { HttpClient, HttpErrorResponse, HttpEvent, HttpEventType, HttpHeaders, HttpStatusCode } from '@angular/common/http';\n\nimport { MatIcon } from '@angular/material/icon';\n\nimport { INgxHelperHttpUploadConfig } from '../ngx-helper-http.interface';\n\n@Component({\n host: { selector: 'upload' },\n imports: [MatIcon],\n templateUrl: './upload.component.html',\n styleUrl: './upload.component.scss',\n animations: [\n trigger('host', [\n transition(':enter', [\n style({ left: 'calc(-250px - 1rem)' }),\n animate('100ms ease-in-out', style({ left: '1rem' })),\n ]),\n ]),\n ],\n})\nexport class UploadComponent<R, E> implements AfterViewInit {\n @HostBinding('@host') private host: boolean = true;\n @HostBinding('className') private className: string = 'ngx-helper-m3-http';\n @HostBinding('style.bottom') bottom: string = '1rem';\n\n public id!: string;\n public file!: File;\n public url!: string;\n public config!: Partial<INgxHelperHttpUploadConfig>;\n public close!: (type: 'RESPONSE' | 'ERROR', result: any, status: HttpStatusCode) => void;\n\n public progress: number = 0;\n\n constructor(private readonly httpClient: HttpClient) {}\n\n ngAfterViewInit(): void {\n setTimeout(this.upload.bind(this), 0);\n }\n\n upload(): void {\n const formData: FormData = new FormData();\n formData.append('file', this.file);\n\n const body: { [key: string]: any } = this.config.body || {};\n Object.keys(body).forEach((k: string) => formData.append(k, body[k]));\n\n let headers: HttpHeaders = new HttpHeaders();\n const header: { [key: string]: any } = this.config.header || {};\n Object.keys(header).forEach((key: string) => (headers = headers.set(key, header[key])));\n\n let request;\n switch (this.config.method || 'POST') {\n case 'POST':\n request = this.httpClient.post<R>(this.url, formData, { headers, reportProgress: true, observe: 'events' });\n break;\n case 'PUT':\n request = this.httpClient.put<R>(this.url, formData, { headers, reportProgress: true, observe: 'events' });\n break;\n case 'PATCH':\n request = this.httpClient.patch<R>(this.url, formData, { headers, reportProgress: true, observe: 'events' });\n break;\n }\n\n request.subscribe({\n next: (event: HttpEvent<R>) => {\n switch (event.type) {\n case HttpEventType.UploadProgress:\n if (!event.loaded || !event.total) return;\n const progress: number = (event.loaded / event.total) * 100;\n this.progress = progress > 100 ? 100 : +progress.toFixed(2);\n break;\n\n case HttpEventType.Response:\n this.progress = 100;\n this.close('RESPONSE', event.body, event.status);\n break;\n }\n },\n error: (error: HttpErrorResponse) => this.close('ERROR', error.error, error.status),\n });\n }\n}\n","<div class=\"content\">\n <mat-icon>file_upload</mat-icon>\n <div class=\"file\">{{ file.name }}</div>\n</div>\n\n<div class=\"progress-container\">\n <div class=\"progress-value\" [style.width]=\"progress + '%'\"></div>\n</div>\n","import { ApplicationRef, ComponentRef, createComponent, EmbeddedViewRef, Injectable, Injector } from '@angular/core';\nimport { HttpStatusCode } from '@angular/common/http';\n\nimport { Helper } from '@webilix/helper-library';\n\nimport { NgxHelperToastService } from '../toast/ngx-helper-toast.service';\n\nimport { DownloadComponent } from './download/download.component';\nimport { UploadComponent } from './upload/upload.component';\nimport { INgxHelperHttpDownloadConfig, INgxHelperHttpUploadConfig } from './ngx-helper-http.interface';\n\n@Injectable({ providedIn: 'root' })\nexport class NgxHelperHttpService {\n private components: {\n id: string;\n componentRef: ComponentRef<DownloadComponent> | ComponentRef<UploadComponent<any, any>>;\n }[] = [];\n\n constructor(\n private readonly applicationRef: ApplicationRef,\n private readonly injector: Injector,\n private readonly ngxHelperToastService: NgxHelperToastService,\n ) {}\n\n private getId(): string {\n let id: string | undefined = undefined;\n while (!id || this.components.some((c) => c.id === id)) id = Helper.STRING.getRandom(10);\n\n return id;\n }\n\n private updatePositions(): void {\n this.components.forEach((c, index) => {\n c.componentRef.instance.bottom = `calc(${(index / 1.5).toFixed(1)}rem + calc(${index * 40}px + 1rem))`;\n });\n }\n\n private getBuffer(path: string, title: string): Promise<ArrayBuffer>;\n private getBuffer(path: string, title: string, config: Partial<INgxHelperHttpDownloadConfig>): Promise<ArrayBuffer>;\n private getBuffer(path: string, title: string, config?: Partial<INgxHelperHttpDownloadConfig>): Promise<ArrayBuffer> {\n return new Promise<ArrayBuffer>((resolve, reject) => {\n const componentRef = createComponent<DownloadComponent>(DownloadComponent, {\n environmentInjector: this.applicationRef.injector,\n elementInjector: this.injector,\n });\n\n const id: string = this.getId();\n componentRef.instance.id = id;\n componentRef.instance.path = path;\n componentRef.instance.title = title;\n componentRef.instance.config = config || {};\n componentRef.instance.onSuccess = (arrayBuffer: ArrayBuffer) => resolve(arrayBuffer);\n componentRef.instance.onError = () => reject();\n componentRef.instance.close = () => {\n this.applicationRef.detachView(componentRef.hostView);\n document.body.removeChild(htmlElement);\n componentRef.destroy();\n\n this.components = this.components.filter((c) => c.id !== componentRef.instance.id);\n this.updatePositions();\n };\n\n const htmlElement = (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n this.applicationRef.attachView(componentRef.hostView);\n document.body.appendChild(htmlElement);\n\n this.components.push({ id, componentRef });\n this.updatePositions();\n });\n }\n\n download(path: string, title: string): void;\n download(path: string, title: string, config: Partial<INgxHelperHttpDownloadConfig>): void;\n download(path: string, title: string, config?: Partial<INgxHelperHttpDownloadConfig>): void {\n const onError = () => this.ngxHelperToastService.error('امکان دانلود فایل وجود ندارد.');\n const onSuccess = (arrayBuffer: ArrayBuffer) => {\n try {\n const split: string[] = path\n .split('.')\n .map((text: string) => text.trim().replace(/\\//gi, ''))\n .filter((text: string) => !!text);\n const name: string = Helper.STRING.getFileName(title, split[split.length - 1] || '');\n\n const href: string = URL.createObjectURL(new Blob([arrayBuffer]));\n const a: HTMLAnchorElement = document.createElement('a');\n a.href = href;\n a.download = name;\n a.click();\n } catch (e) {\n onError();\n }\n };\n\n this.getBuffer(path, title, config || {}).then(onSuccess, onError);\n }\n\n upload<R, E>(\n file: File,\n url: string,\n onSuccess: (response: R | undefined, status: HttpStatusCode) => void,\n onError: (error: E | undefined, status: HttpStatusCode) => void,\n ): void;\n upload<R, E>(\n file: File,\n url: string,\n config: Partial<INgxHelperHttpUploadConfig>,\n onSuccess: (response: R, status: HttpStatusCode) => void,\n onError: (error: E, status: HttpStatusCode) => void,\n ): void;\n upload<R, E>(file: File, url: string, arg1: any, arg2: any, arg3?: any): void {\n const config: Partial<INgxHelperHttpUploadConfig> = typeof arg3 === 'function' ? arg1 : {};\n const onSuccess: (response: R, status: HttpStatusCode) => void = typeof arg3 === 'function' ? arg2 : arg1;\n const onError: (error: E, status: HttpStatusCode) => void = typeof arg3 === 'function' ? arg3 : arg2;\n\n const componentRef = createComponent<UploadComponent<R, E>>(UploadComponent, {\n environmentInjector: this.applicationRef.injector,\n elementInjector: this.injector,\n });\n\n const id: string = this.getId();\n componentRef.instance.id = id;\n componentRef.instance.file = file;\n componentRef.instance.url = url;\n componentRef.instance.config = config;\n componentRef.instance.close = (type: 'RESPONSE' | 'ERROR', result: any, status: HttpStatusCode) => {\n this.applicationRef.detachView(componentRef.hostView);\n document.body.removeChild(htmlElement);\n componentRef.destroy();\n\n this.components = this.components.filter((c) => c.id !== componentRef.instance.id);\n this.updatePositions();\n\n switch (type) {\n case 'RESPONSE':\n onSuccess(result || undefined, status);\n break;\n case 'ERROR':\n onError(result || undefined, status);\n break;\n }\n };\n\n const htmlElement = (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n this.applicationRef.attachView(componentRef.hostView);\n document.body.appendChild(htmlElement);\n\n this.components.push({ id, componentRef });\n this.updatePositions();\n }\n\n printPDF(url: string): void;\n printPDF(url: string, config: Partial<INgxHelperHttpDownloadConfig>): void;\n printPDF(buffer: ArrayBuffer): void;\n printPDF(buffer: ArrayBuffer, config: Partial<INgxHelperHttpDownloadConfig>): void;\n printPDF(blob: Blob): void;\n printPDF(blob: Blob, config: Partial<INgxHelperHttpDownloadConfig>): void;\n printPDF(data: string | ArrayBuffer | Blob, config?: Partial<INgxHelperHttpDownloadConfig>): void {\n const getPDF = (): Promise<Blob> => {\n return new Promise<Blob>((resolve, reject) => {\n if (typeof data !== 'string') {\n resolve(new Blob([data], { type: 'application/pdf' }));\n return;\n }\n\n this.getBuffer(data, 'دریافت فایل', config || {}).then(\n (arrayBuffer: ArrayBuffer) => resolve(new Blob([arrayBuffer], { type: 'application/pdf' })),\n () => reject(),\n );\n });\n };\n\n getPDF().then(\n (blob: Blob) => {\n try {\n const prevIframe = document.getElementById('ngx-helper-http-pdf-download-iframe');\n if (prevIframe) document.body.removeChild(prevIframe);\n\n const src: string = URL.createObjectURL(blob);\n const iframe: HTMLIFrameElement = document.createElement('iframe');\n iframe.id = 'ngx-helper-http-pdf-download-iframe';\n iframe.style.display = 'none';\n document.body.appendChild(iframe);\n\n iframe.src = src;\n iframe.onload = () => iframe.contentWindow?.print();\n } catch (e) {\n this.ngxHelperToastService.error('امکان پرینت فایل وجود ندارد.');\n }\n },\n () => this.ngxHelperToastService.error('امکان دانلود فایل وجود ندارد.'),\n );\n }\n}\n","import { Directive, ElementRef, inject, Inject, Input, OnInit, Optional } from '@angular/core';\n\nimport { INgxHelperConfig, NGX_HELPER_CONFIG } from '../ngx-helper.config';\n\ninterface IStickyView {\n readonly top?: { readonly desktopView: string; readonly mobileView: string };\n readonly bottom?: { readonly desktopView: string; readonly mobileView: string };\n}\n\n@Directive({\n selector: '[ngxHelperSticky]',\n host: { '(window:resize)': 'onResize($event)' },\n})\nexport class NgxHelperStickyDirective implements OnInit {\n @Input({ required: true }) public ngxHelperSticky!: 'TOP' | 'BOTTOM';\n @Input({ required: false }) public stickyIn: 'ALWAYS' | 'DESKTOP' | 'MOBILE' = 'ALWAYS';\n @Input({ required: false }) public zIndex?: number;\n\n private mobileWidth!: number;\n private stickyView!: IStickyView;\n private isMobile: boolean = false;\n\n constructor(\n private readonly elementRef: ElementRef,\n @Optional() @Inject(NGX_HELPER_CONFIG) private readonly config?: Partial<INgxHelperConfig>,\n ) {}\n\n ngOnInit(): void {\n const getStickyView = (\n config: string | { desktopView: string; mobileView: string },\n ): { desktopView: string; mobileView: string } => {\n return {\n desktopView: typeof config === 'string' ? config : config.desktopView,\n mobileView: typeof config === 'string' ? config : config.mobileView,\n };\n };\n\n (this.mobileWidth = this.config?.mobileWidth || 600),\n (this.stickyView = {\n top: this.config?.stickyView?.top ? getStickyView(this.config.stickyView.top) : undefined,\n bottom: this.config?.stickyView?.bottom ? getStickyView(this.config.stickyView.bottom) : undefined,\n });\n\n this.onResize();\n }\n\n onResize(): void {\n this.isMobile = window.innerWidth <= this.mobileWidth;\n this.setPosition();\n }\n\n setPosition(): void {\n const element: HTMLElement = this.elementRef.nativeElement;\n if (!element) return;\n\n const sticky: boolean =\n this.stickyIn === 'ALWAYS' ||\n (this.stickyIn === 'DESKTOP' && !this.isMobile) ||\n (this.stickyIn === 'MOBILE' && this.isMobile);\n\n switch (this.ngxHelperSticky) {\n case 'TOP':\n const top = this.stickyView.top;\n if (!top) return;\n\n element.style.position = sticky ? 'sticky' : 'static';\n element.style.zIndex = sticky ? (this.zIndex ? this.zIndex.toString() : '1') : 'auto';\n element.style.top = sticky ? (this.isMobile ? top.mobileView : top.desktopView) : 'auto';\n break;\n\n case 'BOTTOM':\n const bottom = this.stickyView.bottom;\n if (!bottom) return;\n\n element.style.position = sticky ? 'sticky' : 'static';\n element.style.zIndex = sticky ? (this.zIndex ? this.zIndex.toString() : '1') : 'auto';\n element.style.bottom = sticky ? (this.isMobile ? bottom.mobileView : bottom.desktopView) : 'auto';\n break;\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeHtml, SafeResourceUrl, SafeScript, SafeStyle, SafeUrl } from '@angular/platform-browser';\n\nimport { Helper } from '@webilix/helper-library';\n\ntype Types = 'HTML' | 'STYLE' | 'SCRIPT' | 'URL' | 'RESOURCE_URL';\n\n@Pipe({ name: 'ngxHelperSafe' })\nexport class NgxHelperSafePipe implements PipeTransform {\n constructor(private readonly domSanitizer: DomSanitizer) {}\n\n transform(\n value?: string | null,\n options?: { type?: Types },\n ): string | SafeHtml | SafeStyle | SafeScript | SafeUrl | SafeResourceUrl {\n if (value === undefined || value === null || !Helper.IS.string(value) || value === '') return '';\n\n switch (options?.type || 'HTML') {\n case 'STYLE':\n return this.domSanitizer.bypassSecurityTrustStyle(value);\n case 'SCRIPT':\n return this.domSanitizer.bypassSecurityTrustScript(value);\n case 'URL':\n return this.domSanitizer.bypassSecurityTrustUrl(value);\n case 'RESOURCE_URL':\n return this.domSanitizer.bypassSecurityTrustResourceUrl(value);\n case 'HTML':\n return this.domSanitizer.bypassSecurityTrustHtml(value);\n }\n }\n}\n","/*\n * Public API Surface of ngx-helper-m3\n */\n\nexport * from './lib/ngx-helper.config';\n\n// COMPONENTS\nexport * from './lib/components/box/ngx-helper-box.component';\nexport * from './lib/components/box/ngx-helper-box.interface';\nexport * from './lib/components/card/ngx-helper-card.component';\nexport * from './lib/components/card/ngx-helper-card.interface';\nexport * from './lib/components/loader/ngx-helper-loader.component';\nexport * from './lib/components/page-group/ngx-helper-page-group.component';\nexport * from './lib/components/page-group/ngx-helper-page-group.interface';\nexport * from './lib/components/progress/ngx-helper-progress.component';\nexport * from './lib/components/section/ngx-helper-section.component';\nexport * from './lib/components/section/column/ngx-helper-section-column.component';\nexport * from './lib/components/value/box/ngx-helper-value-box.component';\nexport * from './lib/components/value/list/ngx-helper-value-list.component';\nexport * from './lib/components/value/ngx-helper-value.interface';\nexport * from './lib/components/value/ngx-helper-value.pipe';\n\n// SERVICES\nexport * from './lib/confirm/confirm.interface';\nexport * from './lib/confirm/confirm.service';\nexport * from './lib/container/container.interface';\nexport * from './lib/container/container.service';\nexport * from './lib/coordinates/ngx-helper-coordinates.interface';\nexport * from './lib/coordinates/ngx-helper-coordinates.service';\nexport * from './lib/http/ngx-helper-http.interface';\nexport * from './lib/http/ngx-helper-http.service';\nexport * from './lib/toast/ngx-helper-toast.interface';\nexport * from './lib/toast/ngx-helper-toast.service';\n\n// DIRECTIVES\nexport * from './lib/directives/ngx-helper-sticky.directive';\n\n// PIPES\nexport * from './lib/pipes/bank-card.pipe';\nexport * from './lib/pipes/date.pipe';\nexport * from './lib/pipes/duration.pipe';\nexport * from './lib/pipes/file-size.pipe';\nexport * from './lib/pipes/mobile.pipe';\nexport * from './lib/pipes/multi-line.pipe';\nexport * from './lib/pipes/number.pipe';\nexport * from './lib/pipes/period.pipe';\nexport * from './lib/pipes/price.pipe';\nexport * from './lib/pipes/safe.pipe';\nexport * from './lib/pipes/volume.pipe';\nexport * from './lib/pipes/weight.pipe';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.ComponentService","i1","i2","i3","i2.NgxHelperToastService","i1.NgxHelperToastService"],"mappings":"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"}