{"version":3,"file":"ngs-plural.mjs","sources":["../../../projects/ngs-plural/src/lib/models/enums/language-iso-639-1.enum.ts","../../../projects/ngs-plural/src/lib/services/rules/rule-slavic.service.ts","../../../projects/ngs-plural/src/lib/services/rules/rule-default.service.ts","../../../projects/ngs-plural/src/lib/services/langs/langs-rules.service.ts","../../../projects/ngs-plural/src/lib/models/consts/lang-rules-map.const.ts","../../../projects/ngs-plural/src/lib/services/injectable/pluralization.service.ts","../../../projects/ngs-plural/src/lib/pipes/plural.pipe.ts","../../../projects/ngs-plural/src/lib/pipes/translate-plural.pipe.ts","../../../projects/ngs-plural/src/public-api.ts","../../../projects/ngs-plural/src/ngs-plural.ts"],"sourcesContent":["export enum LanguageISO6391Enum {\n  Russian = 'ru',\n  English = 'en',\n  Spanish = 'es',\n  French = 'fr',\n  Italian = 'it',\n  German = 'de',\n  Portuguese = 'pt',\n  Dutch = 'nl',\n  Swedish = 'sv',\n  Norwegian = 'no',\n  Danish = 'da',\n  Romanian = 'ro',\n  Catalan = 'ca',\n  Hungarian = 'hu',\n  Finnish = 'fi',\n  Turkish = 'tr',\n  Ukrainian = 'uk',\n  Belarusian = 'be',\n  Serbian = 'sr',\n  Croatian = 'hr',\n  Bulgarian = 'bg',\n  Czech = 'cs',\n  Slovak = 'sk',\n  Slovene = 'sl',\n  Macedonian = 'mk',\n}\n","import { ILangRulesService } from '../../models/interfaces/lang-rules-service.interface';\n\nexport class RuleSlavicService implements ILangRulesService {\n  applyRule(count: number, forms: string[]): string {\n    if (count % 10 === 1 && count % 100 !== 11) {\n      return forms[0];\n    } else if (\n      count % 10 >= 2 &&\n      count % 10 <= 4 &&\n      (count % 100 < 10 || count % 100 >= 20)\n    ) {\n      return forms[1];\n    } else {\n      return forms[2];\n    }\n  }\n}\n","import { ILangRulesService } from '../../models/interfaces/lang-rules-service.interface';\n\nexport class RuleDefaultService implements ILangRulesService {\n  applyRule(count: number, forms: string[]): string {\n    return count === 1 ? forms[0] : forms[1];\n  }\n}\n","import { RuleSlavicService } from '../rules/rule-slavic.service';\nimport { RuleDefaultService } from '../rules/rule-default.service';\n\n// SLAVIC\nexport class LangRuRuleService extends RuleSlavicService {}\n\n// DEFAULT\nexport class LangEnRuleService extends RuleDefaultService {}\nexport class LangItRuleService extends RuleDefaultService {}\nexport class LangEsRuleService extends RuleDefaultService {}\nexport class LangDeRuleService extends RuleDefaultService {}\nexport class LangFrRuleService extends RuleDefaultService {}\nexport class LangPtRuleService extends RuleDefaultService {}\nexport class LangNlRuleService extends RuleDefaultService {}\nexport class LangSvRuleService extends RuleDefaultService {}\nexport class LangNoRuleService extends RuleDefaultService {}\nexport class LangDaRuleService extends RuleDefaultService {}\nexport class LangRoRuleService extends RuleDefaultService {}\nexport class LangCaRuleService extends RuleDefaultService {}\nexport class LangHuRuleService extends RuleDefaultService {}\nexport class LangFiRuleService extends RuleDefaultService {}\nexport class LangTrRuleService extends RuleDefaultService {}\nexport class LangUkRuleService extends RuleSlavicService {}\nexport class LangBeRuleService extends RuleSlavicService {}\nexport class LangSrRuleService extends RuleSlavicService {}\nexport class LangHrRuleService extends RuleSlavicService {}\nexport class LangBgRuleService extends RuleSlavicService {}\nexport class LangCsRuleService extends RuleSlavicService {}\nexport class LangSkRuleService extends RuleSlavicService {}\nexport class LangSlRuleService extends RuleSlavicService {}\nexport class LangMkRuleService extends RuleSlavicService {}\n","import { LanguageISO6391Type } from '../types/language-iso-639-1.type';\nimport { ILangRulesService } from '../interfaces/lang-rules-service.interface';\nimport { LanguageISO6391Enum } from '../enums/language-iso-639-1.enum';\nimport {\n  LangBeRuleService,\n  LangBgRuleService,\n  LangCaRuleService,\n  LangCsRuleService,\n  LangDaRuleService,\n  LangDeRuleService,\n  LangEnRuleService,\n  LangEsRuleService,\n  LangFiRuleService,\n  LangFrRuleService,\n  LangHrRuleService,\n  LangHuRuleService,\n  LangItRuleService,\n  LangMkRuleService,\n  LangNlRuleService,\n  LangNoRuleService,\n  LangPtRuleService,\n  LangRoRuleService,\n  LangRuRuleService,\n  LangSkRuleService,\n  LangSlRuleService,\n  LangSrRuleService,\n  LangSvRuleService,\n  LangTrRuleService,\n  LangUkRuleService,\n} from '../../services/langs/langs-rules.service';\n\nexport const LANG_RULES_MAP: Record<LanguageISO6391Type, ILangRulesService> = {\n  [LanguageISO6391Enum.Russian]: new LangRuRuleService(),\n  [LanguageISO6391Enum.English]: new LangEnRuleService(),\n  [LanguageISO6391Enum.Spanish]: new LangEsRuleService(),\n  [LanguageISO6391Enum.French]: new LangFrRuleService(),\n  [LanguageISO6391Enum.German]: new LangDeRuleService(),\n  [LanguageISO6391Enum.Italian]: new LangItRuleService(),\n  [LanguageISO6391Enum.Portuguese]: new LangPtRuleService(),\n  [LanguageISO6391Enum.Dutch]: new LangNlRuleService(),\n  [LanguageISO6391Enum.Swedish]: new LangSvRuleService(),\n  [LanguageISO6391Enum.Norwegian]: new LangNoRuleService(),\n  [LanguageISO6391Enum.Danish]: new LangDaRuleService(),\n  [LanguageISO6391Enum.Romanian]: new LangRoRuleService(),\n  [LanguageISO6391Enum.Catalan]: new LangCaRuleService(),\n  [LanguageISO6391Enum.Hungarian]: new LangHuRuleService(),\n  [LanguageISO6391Enum.Finnish]: new LangFiRuleService(),\n  [LanguageISO6391Enum.Turkish]: new LangTrRuleService(),\n  [LanguageISO6391Enum.Ukrainian]: new LangUkRuleService(),\n  [LanguageISO6391Enum.Belarusian]: new LangBeRuleService(),\n  [LanguageISO6391Enum.Serbian]: new LangSrRuleService(),\n  [LanguageISO6391Enum.Croatian]: new LangHrRuleService(),\n  [LanguageISO6391Enum.Bulgarian]: new LangBgRuleService(),\n  [LanguageISO6391Enum.Czech]: new LangCsRuleService(),\n  [LanguageISO6391Enum.Slovak]: new LangSkRuleService(),\n  [LanguageISO6391Enum.Slovene]: new LangSlRuleService(),\n  [LanguageISO6391Enum.Macedonian]: new LangMkRuleService(),\n};\n","import { Injectable } from '@angular/core';\nimport { LanguageISO6391Enum } from '../../models/enums/language-iso-639-1.enum';\nimport { LANG_RULES_MAP } from '../../models/consts/lang-rules-map.const';\nimport { IPluralOptions } from '../../models/interfaces/options.interface';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class PluralizationService {\n  public getPluralFormLocal(\n    count: number,\n    pluralOptions: IPluralOptions,\n    needReturnCount: boolean = true,\n  ): string {\n    if (!pluralOptions.forms) return '';\n    if (!pluralOptions.lang) pluralOptions.lang = LanguageISO6391Enum.English;\n\n    const ruleService =\n      LANG_RULES_MAP[pluralOptions.lang] ||\n      LANG_RULES_MAP[LanguageISO6391Enum.English];\n\n    let form: string;\n\n    if (Array.isArray(pluralOptions.forms)) {\n      if (!pluralOptions.forms.length) return '';\n\n      form = ruleService.applyRule(\n        Math.abs(count),\n        Array.isArray(pluralOptions.forms)\n          ? pluralOptions.forms\n          : pluralOptions.forms[pluralOptions.lang],\n      );\n    } else {\n      if (!pluralOptions.forms[pluralOptions.lang]) return '';\n\n      form = ruleService.applyRule(\n        Math.abs(count),\n        pluralOptions.forms[pluralOptions.lang]!,\n      );\n    }\n\n    return needReturnCount ? `${count} ${form}` : `${form}`;\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { PluralizationService } from '../services/injectable/pluralization.service';\nimport { IPluralOptions } from '../models/interfaces/options.interface';\n\n@Pipe({\n  name: 'plural',\n  standalone: true,\n  pure: false,\n})\nexport class PluralPipe implements PipeTransform {\n  constructor(private pluralizationService: PluralizationService) {}\n\n  transform(\n    count: number,\n    pluralOptions: IPluralOptions,\n    needReturnCount: boolean = true,\n  ): string {\n    return this.pluralizationService.getPluralFormLocal(\n      count,\n      pluralOptions,\n      needReturnCount,\n    );\n  }\n}\n","import { Optional, Pipe, PipeTransform } from '@angular/core';\nimport { PluralizationService } from '../services/injectable/pluralization.service';\nimport { TranslateService } from '@ngx-translate/core';\nimport { LanguageISO6391Type } from '../models/types/language-iso-639-1.type';\n\n@Pipe({\n  name: 'translatePlural',\n  standalone: true,\n  pure: false,\n})\nexport class TranslatePluralPipe implements PipeTransform {\n  constructor(\n    private pluralizationService: PluralizationService,\n    @Optional() private translateService: TranslateService,\n  ) {\n    if (!this.translateService)\n      console.error(\n        'Error in TranslatePluralPipe: TranslateService is not provided, some features may not work as expected.',\n      );\n  }\n\n  transform(\n    count: number,\n    instant: string,\n    needReturnCount: boolean = true,\n  ): string {\n    if (!this.translateService) return count.toString();\n\n    const actualLang = (this.translateService.currentLang ||\n      this.translateService.getDefaultLang()) as LanguageISO6391Type;\n\n    const translationsForLang =\n      this.translateService.store.translations[actualLang];\n\n    if (!translationsForLang) return instant;\n\n    const forms: string[] = this.getNestedValue(translationsForLang, instant);\n\n    if (!forms) return instant;\n\n    return this.pluralizationService.getPluralFormLocal(\n      count,\n      {\n        lang: actualLang,\n        forms: forms,\n      },\n      needReturnCount,\n    );\n  }\n\n  private getNestedValue(obj: any, path: string): any {\n    return path.split('.').reduce((acc, key) => {\n      return acc?.[key];\n    }, obj);\n  }\n}\n","/*\n * Public API Surface of ngs-plural\n */\n\nexport * from './lib/services/injectable/pluralization.service';\nexport * from './lib/pipes/plural.pipe';\nexport * from './lib/pipes/translate-plural.pipe';\nexport * from './lib/models/enums/language-iso-639-1.enum';\nexport * from './lib/models/types/language-iso-639-1.type';\nexport * from './lib/models/interfaces/lang-word-forms.interface';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.PluralizationService"],"mappings":"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"}