@bootkit/ng0 0.0.0-alpha.2 → 0.0.0-alpha.21

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.
Files changed (99) hide show
  1. package/common/index.d.ts +118 -6
  2. package/components/accordion/index.d.ts +1 -1
  3. package/components/backdrop/index.d.ts +12 -0
  4. package/components/button/index.d.ts +48 -0
  5. package/components/card/index.d.ts +27 -0
  6. package/components/code/index.d.ts +35 -0
  7. package/components/confirmation/index.d.ts +66 -0
  8. package/components/dropdown/index.d.ts +78 -0
  9. package/components/form-field/index.d.ts +72 -0
  10. package/components/list/index.d.ts +127 -0
  11. package/components/modal/index.d.ts +22 -4
  12. package/components/nav/index.d.ts +23 -19
  13. package/components/pagination/index.d.ts +35 -9
  14. package/components/popover/index.d.ts +1 -1
  15. package/components/select/index.d.ts +116 -0
  16. package/components/sidenav/index.d.ts +59 -0
  17. package/components/stepper/index.d.ts +26 -0
  18. package/components/table/index.d.ts +273 -0
  19. package/components/toast/index.d.ts +1 -1
  20. package/components/tooltip/index.d.ts +1 -1
  21. package/components/vertical-menu/index.d.ts +61 -0
  22. package/data/index.d.ts +258 -46
  23. package/date/index.d.ts +34 -0
  24. package/fesm2022/bootkit-ng0-common.mjs +89 -11
  25. package/fesm2022/bootkit-ng0-common.mjs.map +1 -1
  26. package/fesm2022/bootkit-ng0-components-accordion.mjs +13 -13
  27. package/fesm2022/bootkit-ng0-components-accordion.mjs.map +1 -1
  28. package/fesm2022/bootkit-ng0-components-backdrop.mjs +46 -0
  29. package/fesm2022/bootkit-ng0-components-backdrop.mjs.map +1 -0
  30. package/fesm2022/bootkit-ng0-components-button.mjs +119 -0
  31. package/fesm2022/bootkit-ng0-components-button.mjs.map +1 -0
  32. package/fesm2022/bootkit-ng0-components-card.mjs +62 -0
  33. package/fesm2022/bootkit-ng0-components-card.mjs.map +1 -0
  34. package/fesm2022/bootkit-ng0-components-code.mjs +70 -0
  35. package/fesm2022/bootkit-ng0-components-code.mjs.map +1 -0
  36. package/fesm2022/bootkit-ng0-components-collapse.mjs +14 -14
  37. package/fesm2022/bootkit-ng0-components-collapse.mjs.map +1 -1
  38. package/fesm2022/bootkit-ng0-components-confirmation.mjs +167 -0
  39. package/fesm2022/bootkit-ng0-components-confirmation.mjs.map +1 -0
  40. package/fesm2022/bootkit-ng0-components-dropdown.mjs +189 -0
  41. package/fesm2022/bootkit-ng0-components-dropdown.mjs.map +1 -0
  42. package/fesm2022/bootkit-ng0-components-form-field.mjs +147 -0
  43. package/fesm2022/bootkit-ng0-components-form-field.mjs.map +1 -0
  44. package/fesm2022/bootkit-ng0-components-list.mjs +331 -0
  45. package/fesm2022/bootkit-ng0-components-list.mjs.map +1 -0
  46. package/fesm2022/bootkit-ng0-components-modal.mjs +40 -23
  47. package/fesm2022/bootkit-ng0-components-modal.mjs.map +1 -1
  48. package/fesm2022/bootkit-ng0-components-nav.mjs +58 -59
  49. package/fesm2022/bootkit-ng0-components-nav.mjs.map +1 -1
  50. package/fesm2022/bootkit-ng0-components-offcanvas.mjs +9 -9
  51. package/fesm2022/bootkit-ng0-components-offcanvas.mjs.map +1 -1
  52. package/fesm2022/bootkit-ng0-components-overlay.mjs.map +1 -1
  53. package/fesm2022/bootkit-ng0-components-pagination.mjs +58 -23
  54. package/fesm2022/bootkit-ng0-components-pagination.mjs.map +1 -1
  55. package/fesm2022/bootkit-ng0-components-popover.mjs +10 -10
  56. package/fesm2022/bootkit-ng0-components-popover.mjs.map +1 -1
  57. package/fesm2022/bootkit-ng0-components-select.mjs +427 -0
  58. package/fesm2022/bootkit-ng0-components-select.mjs.map +1 -0
  59. package/fesm2022/bootkit-ng0-components-sidenav.mjs +153 -0
  60. package/fesm2022/bootkit-ng0-components-sidenav.mjs.map +1 -0
  61. package/fesm2022/bootkit-ng0-components-stepper.mjs +91 -0
  62. package/fesm2022/bootkit-ng0-components-stepper.mjs.map +1 -0
  63. package/fesm2022/bootkit-ng0-components-table.mjs +461 -0
  64. package/fesm2022/bootkit-ng0-components-table.mjs.map +1 -0
  65. package/fesm2022/bootkit-ng0-components-toast.mjs +7 -7
  66. package/fesm2022/bootkit-ng0-components-toast.mjs.map +1 -1
  67. package/fesm2022/bootkit-ng0-components-tooltip.mjs +8 -8
  68. package/fesm2022/bootkit-ng0-components-tooltip.mjs.map +1 -1
  69. package/fesm2022/bootkit-ng0-components-vertical-menu.mjs +161 -0
  70. package/fesm2022/bootkit-ng0-components-vertical-menu.mjs.map +1 -0
  71. package/fesm2022/bootkit-ng0-data.mjs +291 -90
  72. package/fesm2022/bootkit-ng0-data.mjs.map +1 -1
  73. package/fesm2022/bootkit-ng0-date.mjs +50 -0
  74. package/fesm2022/bootkit-ng0-date.mjs.map +1 -0
  75. package/fesm2022/bootkit-ng0-file.mjs +50 -0
  76. package/fesm2022/bootkit-ng0-file.mjs.map +1 -0
  77. package/fesm2022/bootkit-ng0-form.mjs +514 -0
  78. package/fesm2022/bootkit-ng0-form.mjs.map +1 -0
  79. package/fesm2022/bootkit-ng0-http.mjs +225 -179
  80. package/fesm2022/bootkit-ng0-http.mjs.map +1 -1
  81. package/fesm2022/bootkit-ng0-localization-locales.mjs +115 -0
  82. package/fesm2022/bootkit-ng0-localization-locales.mjs.map +1 -0
  83. package/fesm2022/bootkit-ng0-localization.mjs +481 -0
  84. package/fesm2022/bootkit-ng0-localization.mjs.map +1 -0
  85. package/fesm2022/bootkit-ng0-platform-browser.mjs +51 -0
  86. package/fesm2022/bootkit-ng0-platform-browser.mjs.map +1 -0
  87. package/fesm2022/bootkit-ng0-script.mjs +59 -0
  88. package/fesm2022/bootkit-ng0-script.mjs.map +1 -0
  89. package/fesm2022/bootkit-ng0-security.mjs +17 -15
  90. package/fesm2022/bootkit-ng0-security.mjs.map +1 -1
  91. package/file/index.d.ts +22 -0
  92. package/form/index.d.ts +127 -0
  93. package/http/index.d.ts +141 -40
  94. package/localization/index.d.ts +305 -0
  95. package/localization/locales/index.d.ts +7 -0
  96. package/package.json +90 -10
  97. package/platform/browser/index.d.ts +22 -0
  98. package/script/index.d.ts +27 -0
  99. package/security/index.d.ts +3 -9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootkit-ng0-localization.mjs","sources":["../../../projects/ng0/localization/locale.ts","../../../projects/ng0/localization/locale-definition.ts","../../../projects/ng0/localization/localization.service.ts","../../../projects/ng0/localization/translate.pipe.ts","../../../projects/ng0/localization/translate-enum.pipe.ts","../../../projects/ng0/localization/translate-boolean-pipe.ts","../../../projects/ng0/localization/date.pipe.ts","../../../projects/ng0/localization/localize.pipe.ts","../../../projects/ng0/localization/localize-enum.pipe.ts","../../../projects/ng0/localization/localize-boolean-pipe.ts","../../../projects/ng0/localization/localize-date.pipe.ts","../../../projects/ng0/localization/localization.module.ts","../../../projects/ng0/localization/types.ts","../../../projects/ng0/localization/value-formatter.ts","../../../projects/ng0/localization/bootkit-ng0-localization.ts"],"sourcesContent":["import { LocaleDefinition } from \"./locale-definition\";\r\nimport { TranslatedValidationError } from \"./types\";\r\nimport { ValueFormatterFunction } from \"./value-formatter\";\r\n\r\n/** Locale */\r\nexport class Locale {\r\n constructor(public readonly definition: LocaleDefinition) {\r\n }\r\n\r\n /** \r\n * Returns the name of the locale\r\n * @returns The name of the locale\r\n */\r\n get name(): string {\r\n return this.definition.name;\r\n }\r\n\r\n /** \r\n * Translates a key in the dictionary\r\n * @param key The key to look up\r\n * @param fallback Optional fallback value if the key is not found\r\n * @returns The translated string or the fallbackValue if not found\r\n */\r\n translate(key: string, fallback?: string): string | undefined {\r\n return this.definition.dictionary?.[key] ?? fallback;\r\n }\r\n\r\n /**\r\n * Translates an enum value \r\n * @param enumName The name of the enum \r\n * @param enumValue The value of the enum to translate \r\n * @param fallback\r\n * @returns The translated string or the enum value itself if not found \r\n */\r\n\r\n translateEnum(enumName: string, enumValue: string | number | null | undefined, fallback?: string): string | undefined {\r\n let e = this.definition.enums?.[enumName];\r\n\r\n if (!e) {\r\n return fallback || enumValue?.toString();\r\n }\r\n\r\n if (enumValue === null) {\r\n return e['[null]'] || e['[empty]'];\r\n } else if (enumValue === undefined) {\r\n return e['[undefined]'] || e['[empty]'];\r\n } else if (enumValue === '') {\r\n return e['empty'];\r\n } else {\r\n return e[enumValue] || e['[?]'] || fallback || enumValue?.toString();\r\n }\r\n }\r\n\r\n /** \r\n * Translates a form validation error\r\n * @param errorKey The key of the error to translate\r\n * @param error The error object\r\n */\r\n translateError(errorKey: string, error: any, fallbackMessage: string | undefined = undefined): string | undefined {\r\n const errors = this.definition?.form?.validation?.errors;\r\n\r\n if (!errors) {\r\n return fallbackMessage;\r\n }\r\n\r\n const translatorFunc = errors[errorKey] ?? errors['*'];\r\n return typeof translatorFunc === 'function' ? translatorFunc(error) : fallbackMessage;\r\n }\r\n\r\n /** \r\n * Translates validation errors \r\n * @param errors Validation errors object\r\n * @returns Array of translated validation errors\r\n */\r\n translateErrors(errors: any): TranslatedValidationError[] {\r\n const result: TranslatedValidationError[] = [];\r\n for (const key in errors) {\r\n if (Object.prototype.hasOwnProperty.call(errors, key)) {\r\n result.push({\r\n key: key,\r\n value: errors[key],\r\n text: this.translateError(key, errors[key])\r\n });\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n\r\n /** \r\n * Translates the first error in the validation errors object \r\n * @param errors Validation errors object\r\n * @returns TranslatedValidationError or undefined if no errors\r\n */\r\n translateFirstError(errors: any, fallbackMessage: string | undefined = undefined): TranslatedValidationError | undefined {\r\n const keys = Object.keys(errors);\r\n if (keys.length === 0) {\r\n return undefined;\r\n }\r\n\r\n const key = keys[0];\r\n const value = errors[key];\r\n return {\r\n key,\r\n value,\r\n text: this.translateError(key, value, fallbackMessage)\r\n };\r\n }\r\n\r\n /**\r\n * Clones and extends this object and returns a new Locale (without modifying this object).\r\n */\r\n extend(definition?: Omit<LocaleDefinition, 'name'>): Locale {\r\n return new Locale({ ...this.definition, ...definition });\r\n }\r\n\r\n /**\r\n * \r\n * @param date Date string or timestamp\r\n * @returns Formatted date string based on the locale \r\n */\r\n formatDate(date: Date | string | number, format?: string): string {\r\n return date ? new Date(date).toLocaleDateString(this.definition.name, { hour: '2-digit', minute: '2-digit' }) : '';\r\n }\r\n\r\n /**\r\n * Returns a formatter function by its name and parameters.\r\n * @param format The format string in the form of \"formatterName:param1:param2:...\"\r\n * @returns A FormatFunction\r\n */\r\n getFormatter(format: string): ValueFormatterFunction {\r\n let parts = format.split(':');\r\n let name: string = parts[0];\r\n let params = parts.length > 1 ? parts.slice(1) : [];\r\n\r\n switch (name) {\r\n case 'boolean':\r\n let booleanKind = params.length > 0 ? params[0] : 'Default';\r\n let f = this.definition.formatters?.boolean?.[booleanKind];\r\n if (!Array.isArray(f)) {\r\n throw new Error(`Boolean formatter is not defined in locale ${this.definition.name}`);\r\n }\r\n\r\n return (value?: boolean) => {\r\n return value === true ? f[0] : (value === false ? f[1] : f[2]);\r\n }\r\n\r\n case 'enum':\r\n let enumName = params[0];\r\n if (!enumName) {\r\n // throw new Error('Enum name is required for enum formatter');\r\n return (enumValue: string | number) => enumValue?.toString() ?? '';\r\n }\r\n\r\n return (enumValue?: string | number | null) => {\r\n return this.translateEnum(enumName, enumValue, enumValue?.toString())!;\r\n }\r\n default:\r\n let customFormatter = this.definition.formatters?.custom?.[name];\r\n if (customFormatter) {\r\n return customFormatter;\r\n }\r\n\r\n throw new Error(`formatter is not defined in locale ${this.definition.name}`);\r\n }\r\n }\r\n}\r\n","import { ValueFormatterFunction } from \"./value-formatter\";\r\n\r\n/** Locale dictionary */\r\nexport type LocaleDictionary = { [key: string]: string; };\r\nexport type LocaleEnums = { [enumName: string]: { [enumValue: string]: string } };\r\n\r\n/** Locale Error Translator */\r\nexport type LocaleValidationErrorTranslator = (error: any) => string;\r\n\r\n\r\n/** Locale validation error translator functions */\r\nexport type LocaleValidationErrorTranslators = {\r\n [key: string]: LocaleValidationErrorTranslator;\r\n};\r\n\r\n/**\r\n * A function to format the paging info of a table.\r\n * \r\n */\r\nexport type TableComponentPagingFormatter = (info: {\r\n /**\r\n * The first record in the current page.\r\n */\r\n firstRecord: number,\r\n\r\n /**\r\n * The last record in the current page.\r\n */\r\n lastRecord: number,\r\n\r\n /**\r\n * The total number of records.\r\n */\r\n totalRecords?: number,\r\n\r\n /**\r\n * The current page index.\r\n */\r\n currentPage: number\r\n}) => string;\r\n\r\n/** \r\n * Locale definition\r\n */\r\nexport interface LocaleDefinition {\r\n /** Locale name */\r\n readonly name: string;\r\n\r\n /** Does this locale belongs to a RTL language */\r\n readonly rtl?: boolean;\r\n\r\n /** Locale dictionary */\r\n dictionary?: LocaleDictionary;\r\n enums?: LocaleEnums,\r\n form?: {\r\n validation?: {\r\n /** Form validation error translators. */\r\n errors?: LocaleValidationErrorTranslators\r\n }\r\n },\r\n data?: {\r\n logicalOperators?: {\r\n [operator: string]: string\r\n }\r\n },\r\n components?: {\r\n table?: {\r\n /**\r\n * No records found message.\r\n */\r\n noRecords?: string;\r\n\r\n /** \r\n * Error message displayed when loading data fails. \r\n */\r\n loadError?: string;\r\n\r\n /**\r\n * A format function to format the paging info.\r\n */\r\n pagingInfo?: TableComponentPagingFormatter;\r\n },\r\n select?: {\r\n placeholder?: string;\r\n }\r\n },\r\n\r\n formatters?: {\r\n boolean?: {\r\n [booleanKind: string]: string[] // [false, true]\r\n },\r\n enum?: {\r\n [enumName: string]: { [enumValue: string]: string }\r\n }\r\n custom?: {\r\n [formatterName: string]: ValueFormatterFunction,\r\n },\r\n // date?: {\r\n // calendars?: {\r\n // [calendar: string]: {\r\n // days: string[],\r\n // daysShort: string[],\r\n // months: string[],\r\n // monthsShort: string[],\r\n // }\r\n // }\r\n // };\r\n // }\r\n }\r\n};\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { Locale } from './locale';\r\nimport { LocaleChangeEvent } from './types';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LocalizationService {\r\n private _locales: Locale[] = [];\r\n private _activeLocale?: Locale;\r\n private _changeSubject = new Subject<LocaleChangeEvent>();\r\n readonly change = this._changeSubject.asObservable();\r\n\r\n constructor() {\r\n }\r\n\r\n /** \r\n * Adds a Locale \r\n */\r\n add(locale: Locale): void;\r\n /** Adds an array of Locales to this LocaleProvider */\r\n add(locales: Locale[]): void;\r\n add(l: any): void {\r\n if (l instanceof Locale) {\r\n this._locales.push(l);\r\n } else if (Array.isArray(l)) {\r\n l.forEach(x => this.add(x));\r\n } else {\r\n throw Error('Invalid locale');\r\n }\r\n\r\n if (this._locales.length == 1) {\r\n this._activeLocale = this._locales[0];\r\n }\r\n }\r\n\r\n /** Changes the active locale */\r\n set(localeName: string): void {\r\n const locale = this._locales.find(x => x.name === localeName);\r\n if (locale) {\r\n this._changeSubject.next({ old: this._activeLocale, new: locale });\r\n this._activeLocale = locale;\r\n return;\r\n }\r\n\r\n throw Error('Locale not found.');\r\n }\r\n\r\n /** Gets the active locale */\r\n get(): Locale | undefined {\r\n return this._activeLocale;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { LocalizationService } from './localization.service';\r\n\r\n\r\n/**\r\n * Pipe to translate a dictionary key into a localized string.\r\n * It uses the LocalizationService to fetch the translation.\r\n * If the translation is not found, it returns the fallback string if provided.\r\n */\r\n@Pipe({\r\n name: 'ng0Translate',\r\n standalone: true,\r\n pure: true\r\n})\r\nexport class TranslatePipe implements PipeTransform {\r\n constructor(private _ls: LocalizationService) {\r\n }\r\n\r\n transform(dictionaryKey: string, fallback?: string) {\r\n return this._ls.get()?.translate(dictionaryKey, fallback) || dictionaryKey;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { LocalizationService } from './localization.service';\r\n\r\n@Pipe({\r\n name: 'ng0TranslateEnum',\r\n standalone: true,\r\n pure: true\r\n})\r\nexport class TranslateEnumPipe implements PipeTransform {\r\n constructor(private _ls: LocalizationService) {\r\n }\r\n\r\n /**\r\n * \r\n * @param enumValue \r\n * @param enumName \r\n * @param nullValueKey \r\n * @param returnEnumAsFallback\r\n * @param fallbackKey \r\n * @returns \r\n */\r\n transform(enumValue: string | number | null | undefined, enumName: string, fallback?: string): any {\r\n return this._ls.get()?.translateEnum(enumName, enumValue, fallback);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { LocalizationService } from './localization.service';\r\n\r\n@Pipe({\r\n name: 'ng0TranslateBool',\r\n standalone: true,\r\n pure: true\r\n})\r\nexport class TranslateBooleanPipe implements PipeTransform {\r\n\r\n constructor(private localeProvider: LocalizationService) {\r\n }\r\n\r\n transform(value: any, falseKey: string = 'true', trueKey: string = 'false'): any {\r\n return this.localeProvider.get()?.translate(value ? trueKey : falseKey);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { LocalizationService } from './localization.service';\r\n\r\n@Pipe({\r\n name: 'ng0Date',\r\n standalone: true,\r\n pure: true\r\n})\r\nexport class DatePipe implements PipeTransform {\r\n constructor(private _ls: LocalizationService) {\r\n }\r\n\r\n transform(value: Date | string | number, format?: string) {\r\n return this._ls.get()?.formatDate(value, format);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { LocalizationService } from './localization.service';\r\n\r\n@Pipe({\r\n name: 'ng0Localize',\r\n standalone: true,\r\n pure: false\r\n})\r\nexport class LocalizePipe implements PipeTransform {\r\n constructor(private _ls: LocalizationService) {\r\n }\r\n\r\n transform(dictionaryKey: string) {\r\n return this._ls.get()?.translate(dictionaryKey);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { LocalizationService } from './localization.service';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\n@Pipe({\r\n name: 'ng0LocalizeEnum',\r\n standalone: true,\r\n pure: false\r\n})\r\nexport class LocalizeEnumPipe implements PipeTransform {\r\n private _recompute = true;\r\n private _value?: string;\r\n\r\n constructor(private _ls: LocalizationService) {\r\n _ls.change.pipe(takeUntilDestroyed()).subscribe(x => this._recompute = true);\r\n }\r\n\r\n /**\r\n * \r\n * @param enumValue \r\n * @param enumName \r\n * @param nullValueKey \r\n * @param returnEnumAsFallback\r\n * @param fallbackKey \r\n * @returns \r\n */\r\n transform(enumValue: string | number | null | undefined, enumName: string, fallback?: string): any {\r\n if (this._recompute) {\r\n this._value = this._ls.get()?.translateEnum(enumName, enumValue, fallback);\r\n this._recompute = false;\r\n }\r\n\r\n return this._value;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { LocalizationService } from './localization.service';\r\n\r\n@Pipe({\r\n name: 'ng0LocalizeBool',\r\n standalone: true,\r\n pure: false\r\n})\r\nexport class LocalizeBooleanPipe implements PipeTransform {\r\n constructor(private _ls: LocalizationService) {\r\n }\r\n\r\n transform(value: any, falseKey = 'true', trueKey: 'false') {\r\n return this._ls.get()?.translate(value ? trueKey : falseKey);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { Locale } from './locale';\r\nimport { LocalizationService } from './localization.service';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\n@Pipe({\r\n name: 'ng0LocalizeDate',\r\n standalone: true,\r\n pure: false\r\n})\r\nexport class LocalizeDatePipe implements PipeTransform {\r\n private _value?: string;\r\n private _recompute = true;\r\n\r\n constructor(private _ls: LocalizationService) {\r\n _ls.change.pipe(takeUntilDestroyed()).subscribe(x => this._recompute = true);\r\n }\r\n\r\n transform(value: number | string, format?: string) {\r\n if (this._recompute) {\r\n this._value = this._ls.get()?.formatDate(value, format);\r\n this._recompute = false;\r\n }\r\n\r\n return this._value;\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { TranslatePipe } from './translate.pipe';\r\nimport { TranslateEnumPipe } from './translate-enum.pipe';\r\nimport { TranslateBooleanPipe } from './translate-boolean-pipe';\r\nimport { DatePipe } from './date.pipe';\r\nimport { LocalizePipe } from './localize.pipe';\r\nimport { LocalizeEnumPipe } from './localize-enum.pipe';\r\nimport { LocalizeBooleanPipe } from './localize-boolean-pipe';\r\nimport { LocalizeDatePipe } from './localize-date.pipe';\r\n\r\nconst Declares = [\r\n // Pure pipes\r\n TranslatePipe,\r\n TranslateEnumPipe,\r\n TranslateBooleanPipe,\r\n DatePipe,\r\n\r\n // Impure pipes\r\n LocalizePipe,\r\n LocalizeEnumPipe,\r\n LocalizeBooleanPipe,\r\n LocalizeDatePipe\r\n];\r\n\r\n@NgModule({\r\n imports: Declares,\r\n exports: Declares\r\n})\r\nexport class LocalizationModule {\r\n}\r\n\r\n","import { InjectionToken } from '@angular/core';\r\nimport { LocalizationService } from './localization.service';\r\nimport { Locale } from './locale';\r\n\r\nexport const LOCALE = new InjectionToken<Locale | LocalizationService>('LOCALE');\r\n\r\nexport interface TranslatedValidationError {\r\n /** Error key */\r\n key: string;\r\n \r\n /** Error object */\r\n value: any;\r\n \r\n /** localized error text */\r\n text?: string;\r\n }\r\n \r\n export interface LocaleChangeEvent {\r\n old?: Locale;\r\n new: Locale;\r\n }\r\n ","import { Locale } from \"./locale\";\r\n\r\n/**\r\n * Format function type.\r\n * @param item The item to format.\r\n * @returns The formatted string.\r\n */\r\nexport type ValueFormatterFunction = (value: any, ...options: any[]) => string;\r\n\r\nexport type ValueFormatterLike = ValueFormatterFunction | string;\r\n\r\n/**\r\n * Default format function.\r\n * @param value The item to format.\r\n * @returns The formatted string.\r\n */\r\nexport function defaultValueFormatter(value: any): string {\r\n if (value == null) {\r\n return '';\r\n }\r\n\r\n return value.toString();\r\n}\r\n\r\nexport function ValueFormatterAttribute\r\n (locale?: Locale): ((v: ValueFormatterLike) => ValueFormatterFunction) {\r\n return (v) => {\r\n if (typeof v === 'function')\r\n return v;\r\n else if (typeof v === 'string') {\r\n if (v.startsWith('field:')) {\r\n let fieldName = v.substring(6);\r\n return (item: any, ...options: any[]) => (item?.[fieldName]?.toString() as string) ?? '';\r\n } else {\r\n if (locale == null) {\r\n throw Error('For using locale value formatters, provide a locale object.')\r\n }\r\n\r\n return locale.getFormatter(v);\r\n }\r\n }\r\n\r\n throw Error('invalid value');\r\n }\r\n}\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.LocalizationService"],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Injectable, input, HostListener, Directive } from '@angular/core';
3
+ import { Subject } from 'rxjs';
4
+
5
+ class ClipboardService {
6
+ _writeSubject = new Subject;
7
+ write = this._writeSubject.asObservable();
8
+ constructor() { }
9
+ writeText(text) {
10
+ window.navigator.clipboard.writeText(text);
11
+ this._writeSubject.next(text);
12
+ }
13
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: ClipboardService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
14
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: ClipboardService, providedIn: 'root' });
15
+ }
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: ClipboardService, decorators: [{
17
+ type: Injectable,
18
+ args: [{
19
+ providedIn: 'root'
20
+ }]
21
+ }], ctorParameters: () => [] });
22
+
23
+ class ClipboardCopyDirective {
24
+ clipboardService;
25
+ value = input(undefined, ...(ngDevMode ? [{ debugName: "value", alias: 'ng0-clipboard-copy' }] : [{ alias: 'ng0-clipboard-copy' }]));
26
+ constructor(clipboardService) {
27
+ this.clipboardService = clipboardService;
28
+ }
29
+ _onHostClick() {
30
+ this.clipboardService.writeText(this.value());
31
+ }
32
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: ClipboardCopyDirective, deps: [{ token: ClipboardService }], target: i0.ɵɵFactoryTarget.Directive });
33
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.2.1", type: ClipboardCopyDirective, isStandalone: true, selector: "[ng0-clipboard-copy]", inputs: { value: { classPropertyName: "value", publicName: "ng0-clipboard-copy", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "_onHostClick()" } }, ngImport: i0 });
34
+ }
35
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: ClipboardCopyDirective, decorators: [{
36
+ type: Directive,
37
+ args: [{
38
+ selector: '[ng0-clipboard-copy]',
39
+ standalone: true
40
+ }]
41
+ }], ctorParameters: () => [{ type: ClipboardService }], propDecorators: { _onHostClick: [{
42
+ type: HostListener,
43
+ args: ['click']
44
+ }] } });
45
+
46
+ /**
47
+ * Generated bundle index. Do not edit.
48
+ */
49
+
50
+ export { ClipboardCopyDirective, ClipboardService };
51
+ //# sourceMappingURL=bootkit-ng0-platform-browser.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootkit-ng0-platform-browser.mjs","sources":["../../../projects/ng0/platform/browser/clipboard/clipboard.service.ts","../../../projects/ng0/platform/browser/clipboard/clipboard-copy.directive.ts","../../../projects/ng0/platform/browser/bootkit-ng0-platform-browser.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ClipboardService {\r\n private _writeSubject = new Subject<any>;\r\n public readonly write = this._writeSubject.asObservable();\r\n\r\n constructor() { }\r\n\r\n public writeText(text: string) {\r\n window.navigator.clipboard.writeText(text);\r\n this._writeSubject.next(text);\r\n }\r\n}\r\n","import { Directive, HostListener, input } from '@angular/core';\r\nimport { ClipboardService } from './clipboard.service';\r\n\r\n@Directive({\r\n selector: '[ng0-clipboard-copy]',\r\n standalone: true\r\n})\r\nexport class ClipboardCopyDirective {\r\n public value = input<string>(undefined, {alias: 'ng0-clipboard-copy'})\r\n\r\n constructor(private clipboardService: ClipboardService) {\r\n }\r\n\r\n \r\n\r\n @HostListener('click') private _onHostClick() {\r\n this.clipboardService.writeText(this.value()!);\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.ClipboardService"],"mappings":";;;;MAMa,gBAAgB,CAAA;IACnB,aAAa,GAAG,IAAI,OAAY;AACxB,IAAA,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE;AAEzD,IAAA,WAAA,GAAA,EAAgB;AAET,IAAA,SAAS,CAAC,IAAY,EAAA;QAC3B,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC;AAC1C,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;IAC/B;uGATW,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAhB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cAFf,MAAM,EAAA,CAAA;;2FAEP,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;MCEY,sBAAsB,CAAA;AAGb,IAAA,gBAAA;AAFb,IAAA,KAAK,GAAG,KAAK,CAAS,SAAS,yCAAG,KAAK,EAAE,oBAAoB,EAAA,CAAA,GAAA,CAA5B,EAAC,KAAK,EAAE,oBAAoB,EAAC,GAAC;AAEtE,IAAA,WAAA,CAAoB,gBAAkC,EAAA;QAAlC,IAAA,CAAA,gBAAgB,GAAhB,gBAAgB;IACpC;IAI+B,YAAY,GAAA;QACzC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAG,CAAC;IAChD;uGAVW,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAJlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,UAAU,EAAE;AACb,iBAAA;kFASgC,YAAY,EAAA,CAAA;sBAA1C,YAAY;uBAAC,OAAO;;;ACfvB;;AAEG;;;;"}
@@ -0,0 +1,59 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Inject, Injectable } from '@angular/core';
3
+ import { DOCUMENT } from '@angular/common';
4
+
5
+ class ScriptLoader {
6
+ _document;
7
+ _renderer;
8
+ _loadedScripts = new Map();
9
+ constructor(_rendererFactory, _document) {
10
+ this._document = _document;
11
+ this._renderer = _rendererFactory.createRenderer(null, null);
12
+ }
13
+ async loadAll(...scripts) {
14
+ let r = [];
15
+ for (let s of scripts) {
16
+ r.push({ script: s, element: await this.load(s) });
17
+ }
18
+ return r;
19
+ }
20
+ load(script) {
21
+ return new Promise((resolve, reject) => {
22
+ let d = typeof script == 'string' ? { src: script } : script;
23
+ if (this._loadedScripts.has(d.src)) {
24
+ return resolve(this._loadedScripts.get(d.src));
25
+ }
26
+ const elm = this._renderer.createElement('script');
27
+ elm.type = 'text/javascript';
28
+ elm.src = d.src;
29
+ // if (Array.isArray(d.attrs)) {
30
+ // d.attrs.forEach(attr => {
31
+ // this._renderer.setAttribute(elm, attr, d.attrs[attr]);
32
+ // });
33
+ // }
34
+ elm.onload = (res) => {
35
+ this._loadedScripts.set(d.src, elm);
36
+ return resolve(elm);
37
+ };
38
+ this._renderer.appendChild(this._document.body, elm);
39
+ });
40
+ }
41
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: ScriptLoader, deps: [{ token: i0.RendererFactory2 }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
42
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: ScriptLoader, providedIn: 'root' });
43
+ }
44
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: ScriptLoader, decorators: [{
45
+ type: Injectable,
46
+ args: [{
47
+ providedIn: 'root'
48
+ }]
49
+ }], ctorParameters: () => [{ type: i0.RendererFactory2 }, { type: Document, decorators: [{
50
+ type: Inject,
51
+ args: [DOCUMENT]
52
+ }] }] });
53
+
54
+ /**
55
+ * Generated bundle index. Do not edit.
56
+ */
57
+
58
+ export { ScriptLoader };
59
+ //# sourceMappingURL=bootkit-ng0-script.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootkit-ng0-script.mjs","sources":["../../../projects/ng0/script/script-locader.ts","../../../projects/ng0/script/bootkit-ng0-script.ts"],"sourcesContent":["import { Renderer2, Inject, Injectable, RendererFactory2 } from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { ScriptDefinition, ScriptDefinitionObject } from './types';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ScriptLoader {\r\n private _renderer: Renderer2;\r\n private _loadedScripts = new Map<string, any>();\r\n\r\n constructor(\r\n _rendererFactory: RendererFactory2,\r\n @Inject(DOCUMENT) private _document: Document,\r\n ) {\r\n this._renderer = _rendererFactory.createRenderer(null, null);\r\n }\r\n\r\n public async loadAll(...scripts: ScriptDefinition[]) {\r\n let r: { script: ScriptDefinition, element: any }[] = [];\r\n for (let s of scripts) {\r\n r.push({ script: s, element: await this.load(s) })\r\n }\r\n\r\n return r;\r\n }\r\n\r\n public load(script: ScriptDefinition): Promise<any> {\r\n return new Promise<string>((resolve, reject) => {\r\n\r\n let d: ScriptDefinitionObject = typeof script == 'string' ? { src: script } : script;\r\n\r\n if (this._loadedScripts.has(d.src)) {\r\n return resolve(this._loadedScripts.get(d.src));\r\n }\r\n\r\n const elm = this._renderer.createElement('script');\r\n elm.type = 'text/javascript';\r\n elm.src = d.src;\r\n\r\n // if (Array.isArray(d.attrs)) {\r\n // d.attrs.forEach(attr => {\r\n // this._renderer.setAttribute(elm, attr, d.attrs[attr]);\r\n // });\r\n // }\r\n\r\n elm.onload = (res: any) => {\r\n this._loadedScripts.set(d.src, elm);\r\n return resolve(elm);\r\n }\r\n\r\n this._renderer.appendChild(this._document.body, elm);\r\n });\r\n }\r\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MAOa,YAAY,CAAA;AAMK,IAAA,SAAA;AALpB,IAAA,SAAS;AACT,IAAA,cAAc,GAAG,IAAI,GAAG,EAAe;IAE/C,WAAA,CACE,gBAAkC,EACR,SAAmB,EAAA;QAAnB,IAAA,CAAA,SAAS,GAAT,SAAS;QAEnC,IAAI,CAAC,SAAS,GAAG,gBAAgB,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC;IAC9D;AAEO,IAAA,MAAM,OAAO,CAAC,GAAG,OAA2B,EAAA;QACjD,IAAI,CAAC,GAAiD,EAAE;AACxD,QAAA,KAAK,IAAI,CAAC,IAAI,OAAO,EAAE;AACrB,YAAA,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACpD;AAEA,QAAA,OAAO,CAAC;IACV;AAEO,IAAA,IAAI,CAAC,MAAwB,EAAA;QAClC,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,KAAI;AAE7C,YAAA,IAAI,CAAC,GAA2B,OAAO,MAAM,IAAI,QAAQ,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM;YAEpF,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;AAClC,gBAAA,OAAO,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAChD;YAEA,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAC;AAClD,YAAA,GAAG,CAAC,IAAI,GAAG,iBAAiB;AAC5B,YAAA,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG;;;;;;AAQf,YAAA,GAAG,CAAC,MAAM,GAAG,CAAC,GAAQ,KAAI;gBACxB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC;AACnC,gBAAA,OAAO,OAAO,CAAC,GAAG,CAAC;AACrB,YAAA,CAAC;AAED,YAAA,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC;AACtD,QAAA,CAAC,CAAC;IACJ;AA9CW,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,kDAMb,QAAQ,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AANP,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,cAFX,MAAM,EAAA,CAAA;;2FAEP,YAAY,EAAA,UAAA,EAAA,CAAA;kBAHxB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;0BAOI,MAAM;2BAAC,QAAQ;;;ACbpB;;AAEG;;;;"}
@@ -35,19 +35,19 @@ class User {
35
35
  }
36
36
 
37
37
  class UserStore {
38
- user = signal(undefined);
38
+ user = signal(undefined, ...(ngDevMode ? [{ debugName: "user" }] : []));
39
39
  constructor() {
40
40
  }
41
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: UserStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
42
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: UserStore, providedIn: 'root' });
41
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: UserStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
42
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: UserStore, providedIn: 'root' });
43
43
  }
44
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: UserStore, decorators: [{
44
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: UserStore, decorators: [{
45
45
  type: Injectable,
46
46
  args: [{ providedIn: 'root' }]
47
47
  }], ctorParameters: () => [] });
48
48
 
49
49
  class UserDirective {
50
- claim = input(undefined, { alias: 'ng0Claim' });
50
+ claim = input(undefined, ...(ngDevMode ? [{ debugName: "claim", alias: 'ng0Claim' }] : [{ alias: 'ng0Claim' }]));
51
51
  _viewCreated = false;
52
52
  constructor(templateRef, viewContainer, userStore) {
53
53
  effect(() => {
@@ -64,10 +64,10 @@ class UserDirective {
64
64
  }
65
65
  });
66
66
  }
67
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: UserDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: UserStore }], target: i0.ɵɵFactoryTarget.Directive });
68
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.0.6", type: UserDirective, isStandalone: true, selector: "[ng0Claim]", inputs: { claim: { classPropertyName: "claim", publicName: "ng0Claim", isSignal: true, isRequired: false, transformFunction: null } }, exportAs: ["ng0Claim"], ngImport: i0 });
67
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: UserDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: UserStore }], target: i0.ɵɵFactoryTarget.Directive });
68
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.2.1", type: UserDirective, isStandalone: true, selector: "[ng0Claim]", inputs: { claim: { classPropertyName: "claim", publicName: "ng0Claim", isSignal: true, isRequired: false, transformFunction: null } }, exportAs: ["ng0Claim"], ngImport: i0 });
69
69
  }
70
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: UserDirective, decorators: [{
70
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: UserDirective, decorators: [{
71
71
  type: Directive,
72
72
  args: [{
73
73
  selector: '[ng0Claim]',
@@ -91,10 +91,10 @@ class GuestUserDirective {
91
91
  }
92
92
  });
93
93
  }
94
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: GuestUserDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: UserStore }], target: i0.ɵɵFactoryTarget.Directive });
95
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.6", type: GuestUserDirective, isStandalone: true, selector: "[ng0GuestUser]", exportAs: ["ng0GuestUser"], ngImport: i0 });
94
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: GuestUserDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: UserStore }], target: i0.ɵɵFactoryTarget.Directive });
95
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.1", type: GuestUserDirective, isStandalone: true, selector: "[ng0GuestUser]", exportAs: ["ng0GuestUser"], ngImport: i0 });
96
96
  }
97
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: GuestUserDirective, decorators: [{
97
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: GuestUserDirective, decorators: [{
98
98
  type: Directive,
99
99
  args: [{
100
100
  selector: '[ng0GuestUser]',
@@ -108,13 +108,13 @@ const items = [
108
108
  GuestUserDirective
109
109
  ];
110
110
  class SecurityModule {
111
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SecurityModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
112
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.6", ngImport: i0, type: SecurityModule, imports: [UserDirective,
111
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: SecurityModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
112
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.2.1", ngImport: i0, type: SecurityModule, imports: [UserDirective,
113
113
  GuestUserDirective], exports: [UserDirective,
114
114
  GuestUserDirective] });
115
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SecurityModule });
115
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: SecurityModule });
116
116
  }
117
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SecurityModule, decorators: [{
117
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: SecurityModule, decorators: [{
118
118
  type: NgModule,
119
119
  args: [{
120
120
  imports: items,
@@ -122,6 +122,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
122
122
  }]
123
123
  }] });
124
124
 
125
+ // export * from './types';
126
+
125
127
  /**
126
128
  * Generated bundle index. Do not edit.
127
129
  */
@@ -1 +1 @@
1
- {"version":3,"file":"bootkit-ng0-security.mjs","sources":["../../../projects/ng0/security/user.ts","../../../projects/ng0/security/user-store.ts","../../../projects/ng0/security/claim.directive.ts","../../../projects/ng0/security/guest-user.directive.ts","../../../projects/ng0/security/security.module.ts","../../../projects/ng0/security/bootkit-ng0-security.ts"],"sourcesContent":["import { ClaimLike, ClaimObject } from './types';\r\n\r\n/** User */\r\nexport class User {\r\n constructor(public readonly claims: string[]) {\r\n }\r\n\r\n public hasClaims(claims: string[]): boolean {\r\n return claims.every(x => this.claims.some(y => x === y));\r\n }\r\n\r\n public hasAnyClaim(claims: string[]): boolean {\r\n return claims.length == 0 || claims.some(x => this.claims.some(y => x === y));\r\n }\r\n\r\n public hasClaim(claim: ClaimLike): boolean {\r\n var type = typeof claim;\r\n if (type === 'string') {\r\n return this.claims.some(x => x === claim);\r\n }\r\n\r\n if (type === 'object') {\r\n const co = claim as ClaimObject;\r\n if (co?.any && co?.all) {\r\n throw Error('Setting \"any\" and \"all\" at the same time is not valid.');\r\n }\r\n\r\n if (Array.isArray(co?.any)) {\r\n return this.hasAnyClaim(co.any);\r\n }\r\n if (Array.isArray(co?.all)) {\r\n return this.hasClaims(co.all);\r\n }\r\n }\r\n\r\n throw Error('Invalid claim');\r\n }\r\n}\r\n","import { User } from './user';\r\nimport { Injectable, signal } from '@angular/core';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class UserStore<U extends User = User> {\r\n public readonly user = signal<U | null | undefined>(undefined);\r\n\r\n constructor() {\r\n }\r\n}","import { Directive, TemplateRef, ViewContainerRef, input, effect } from '@angular/core';\r\nimport { ClaimLike } from './types';\r\nimport { UserStore } from './user-store';\r\n\r\n@Directive({\r\n selector: '[ng0Claim]',\r\n exportAs: 'ng0Claim',\r\n standalone: true\r\n})\r\nexport class UserDirective {\r\n public claim = input<ClaimLike | null | undefined>(undefined, { alias: 'ng0Claim' });\r\n private _viewCreated = false;\r\n\r\n constructor(\r\n templateRef: TemplateRef<any>,\r\n viewContainer: ViewContainerRef,\r\n userStore: UserStore,\r\n ) {\r\n effect(() => {\r\n let claim = this.claim();\r\n let user = userStore.user();\r\n let show = !user ? false : (claim == undefined ? true : user.hasClaim(claim))\r\n\r\n if (show && !this._viewCreated) {\r\n viewContainer.createEmbeddedView(templateRef);\r\n this._viewCreated = true;\r\n } else if (!show && this._viewCreated) {\r\n viewContainer.clear();\r\n this._viewCreated = false;\r\n }\r\n })\r\n }\r\n}\r\n","import { Directive, TemplateRef, ViewContainerRef, effect } from '@angular/core';\r\nimport { UserStore } from './user-store';\r\n\r\n@Directive({\r\n selector: '[ng0GuestUser]',\r\n exportAs: 'ng0GuestUser',\r\n standalone: true\r\n})\r\nexport class GuestUserDirective {\r\n private _created = false;\r\n\r\n constructor(\r\n templateRef: TemplateRef<any>,\r\n viewContainer: ViewContainerRef,\r\n userStore: UserStore,\r\n ) {\r\n effect(() => {\r\n let show = userStore.user() == undefined\r\n\r\n if (show && !this._created) {\r\n viewContainer.createEmbeddedView(templateRef);\r\n this._created = true;\r\n } else if (!show && this._created) {\r\n viewContainer.clear();\r\n this._created = false;\r\n }\r\n })\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { UserDirective } from './claim.directive';\r\nimport { GuestUserDirective } from './guest-user.directive';\r\n\r\nconst items = [\r\n UserDirective,\r\n GuestUserDirective\r\n]\r\n\r\n@NgModule({\r\n imports: items,\r\n exports: items\r\n})\r\nexport class SecurityModule { }\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.UserStore"],"mappings":"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"}
1
+ {"version":3,"file":"bootkit-ng0-security.mjs","sources":["../../../projects/ng0/security/user.ts","../../../projects/ng0/security/user-store.ts","../../../projects/ng0/security/claim.directive.ts","../../../projects/ng0/security/guest-user.directive.ts","../../../projects/ng0/security/security.module.ts","../../../projects/ng0/security/public-api.ts","../../../projects/ng0/security/bootkit-ng0-security.ts"],"sourcesContent":["import { ClaimLike, ClaimObject } from '@bootkit/ng0/common';\r\n\r\n/** User */\r\nexport class User {\r\n constructor(public readonly claims: string[]) {\r\n }\r\n\r\n public hasClaims(claims: string[]): boolean {\r\n return claims.every(x => this.claims.some(y => x === y));\r\n }\r\n\r\n public hasAnyClaim(claims: string[]): boolean {\r\n return claims.length == 0 || claims.some(x => this.claims.some(y => x === y));\r\n }\r\n\r\n public hasClaim(claim: ClaimLike): boolean {\r\n var type = typeof claim;\r\n if (type === 'string') {\r\n return this.claims.some(x => x === claim);\r\n }\r\n\r\n if (type === 'object') {\r\n const co = claim as ClaimObject;\r\n if (co?.any && co?.all) {\r\n throw Error('Setting \"any\" and \"all\" at the same time is not valid.');\r\n }\r\n\r\n if (Array.isArray(co?.any)) {\r\n return this.hasAnyClaim(co.any);\r\n }\r\n if (Array.isArray(co?.all)) {\r\n return this.hasClaims(co.all);\r\n }\r\n }\r\n\r\n throw Error('Invalid claim');\r\n }\r\n}\r\n","import { User } from './user';\r\nimport { Injectable, signal } from '@angular/core';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class UserStore<U extends User = User> {\r\n public readonly user = signal<U | null | undefined>(undefined);\r\n\r\n constructor() {\r\n }\r\n}","import { Directive, TemplateRef, ViewContainerRef, input, effect } from '@angular/core';\r\n\r\nimport { UserStore } from './user-store';\r\nimport { ClaimLike } from '@bootkit/ng0/common';\r\n\r\n@Directive({\r\n selector: '[ng0Claim]',\r\n exportAs: 'ng0Claim',\r\n standalone: true\r\n})\r\nexport class UserDirective {\r\n public claim = input<ClaimLike | null | undefined>(undefined, { alias: 'ng0Claim' });\r\n private _viewCreated = false;\r\n\r\n constructor(\r\n templateRef: TemplateRef<any>,\r\n viewContainer: ViewContainerRef,\r\n userStore: UserStore,\r\n ) {\r\n effect(() => {\r\n let claim = this.claim();\r\n let user = userStore.user();\r\n let show = !user ? false : (claim == undefined ? true : user.hasClaim(claim))\r\n\r\n if (show && !this._viewCreated) {\r\n viewContainer.createEmbeddedView(templateRef);\r\n this._viewCreated = true;\r\n } else if (!show && this._viewCreated) {\r\n viewContainer.clear();\r\n this._viewCreated = false;\r\n }\r\n })\r\n }\r\n}\r\n","import { Directive, TemplateRef, ViewContainerRef, effect } from '@angular/core';\r\nimport { UserStore } from './user-store';\r\n\r\n@Directive({\r\n selector: '[ng0GuestUser]',\r\n exportAs: 'ng0GuestUser',\r\n standalone: true\r\n})\r\nexport class GuestUserDirective {\r\n private _created = false;\r\n\r\n constructor(\r\n templateRef: TemplateRef<any>,\r\n viewContainer: ViewContainerRef,\r\n userStore: UserStore,\r\n ) {\r\n effect(() => {\r\n let show = userStore.user() == undefined\r\n\r\n if (show && !this._created) {\r\n viewContainer.createEmbeddedView(templateRef);\r\n this._created = true;\r\n } else if (!show && this._created) {\r\n viewContainer.clear();\r\n this._created = false;\r\n }\r\n })\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { UserDirective } from './claim.directive';\r\nimport { GuestUserDirective } from './guest-user.directive';\r\n\r\nconst items = [\r\n UserDirective,\r\n GuestUserDirective\r\n]\r\n\r\n@NgModule({\r\n imports: items,\r\n exports: items\r\n})\r\nexport class SecurityModule { }\r\n","// export * from './types';\r\nexport * from './user';\r\nexport * from './user-store';\r\nexport * from './claim.directive';\r\nexport * from './guest-user.directive';\r\nexport * from './security.module';\r\n ","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.UserStore"],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Saves a Blob as a file in the user's browser.
3
+ * This function is only available in browsers that support the Blob API.
4
+ * @param blob
5
+ * @param fileName
6
+ *
7
+ */
8
+ declare function saveBlob(blob: Blob, fileName: string): void;
9
+ /**
10
+ * Triggers downloading a file from a given URL.
11
+ * @param url
12
+ * @param fileName
13
+ */
14
+ declare function downloadFile(url: string, fileName: string): void;
15
+ /**
16
+ * Converts a File object to a Base64 string.
17
+ * @param file The File object to convert.
18
+ * @return A Promise that resolves to the Base64 string representation of the file.
19
+ */
20
+ declare function convertFileToBase64(file: File): Promise<string | ArrayBuffer | null>;
21
+
22
+ export { convertFileToBase64, downloadFile, saveBlob };
@@ -0,0 +1,127 @@
1
+ import * as i0 from '@angular/core';
2
+ import { OnInit, OnChanges, ElementRef, SimpleChanges } from '@angular/core';
3
+ import { ControlValueAccessor, Validator, AbstractControl, ValidationErrors, FormControl, ValidatorFn } from '@angular/forms';
4
+
5
+ declare class FocusDirective implements OnInit, OnChanges {
6
+ private elementRef;
7
+ /**
8
+ *
9
+ */
10
+ focusOnLoad: boolean;
11
+ focusWhen?: boolean;
12
+ private focused;
13
+ constructor(elementRef: ElementRef);
14
+ ngOnInit(): void;
15
+ ngOnChanges(changes: SimpleChanges): void;
16
+ static ɵfac: i0.ɵɵFactoryDeclaration<FocusDirective, never>;
17
+ static ɵdir: i0.ɵɵDirectiveDeclaration<FocusDirective, "[ng0Focus]", ["ng0Focus"], { "focusOnLoad": { "alias": "focusOnLoad"; "required": false; }; "focusWhen": { "alias": "focusWhen"; "required": false; }; }, {}, never, never, true, never>;
18
+ }
19
+
20
+ /**
21
+ * Directive to allow only number input in text fields.
22
+ * It supports integer and decimal numbers, negative numbers, min/max values, thousands separator.
23
+ */
24
+ declare class NumberDirective implements ControlValueAccessor {
25
+ private _value?;
26
+ private _isDisabled?;
27
+ private _decimalSeparator;
28
+ private _thousandsSeparator;
29
+ private _onChangeCallback?;
30
+ private _onTouchedCallback?;
31
+ private _elmRef;
32
+ private _renderer;
33
+ /**
34
+ * The minimum number of digits to display after the decimal point.
35
+ * Applied only when 'numberType' is set to 'decimal'.
36
+ * @default 1
37
+ */
38
+ minFractionDigits: i0.InputSignalWithTransform<number, unknown>;
39
+ /**
40
+ * The maximum number of digits to display after the decimal point.
41
+ * Applied only when 'numberType' is set to 'decimal'.
42
+ * @default 2
43
+ */
44
+ maxFractionDigits: i0.InputSignalWithTransform<number, unknown>;
45
+ /**
46
+ * Whether to use grouping separators, such as thousands separators
47
+ * @default false
48
+ */
49
+ useGrouping: i0.InputSignalWithTransform<boolean, unknown>;
50
+ /**
51
+ * Type of numbers to allow
52
+ * 'decimal' - allow decimal numbers
53
+ * 'integer' - allow integer numbers only
54
+ * @default 'integer'
55
+ */
56
+ numberType: i0.InputSignal<"integer" | "decimal">;
57
+ constructor();
58
+ ngOnInit(): void;
59
+ registerOnChange(fn: any): void;
60
+ registerOnTouched(fn: any): void;
61
+ setDisabledState?(isDisabled: boolean): void;
62
+ writeValue(value: any): void;
63
+ private _onKeyDown;
64
+ private _onInput;
65
+ private _formatIntegerPart;
66
+ private _onBlur;
67
+ private _onPaste;
68
+ private _getInputState;
69
+ private _formatNumber;
70
+ private _isKeyAllowed;
71
+ private _setProperty;
72
+ static ɵfac: i0.ɵɵFactoryDeclaration<NumberDirective, never>;
73
+ static ɵdir: i0.ɵɵDirectiveDeclaration<NumberDirective, "[ng0Number]", never, { "minFractionDigits": { "alias": "minFractionDigits"; "required": false; "isSignal": true; }; "maxFractionDigits": { "alias": "maxFractionDigits"; "required": false; "isSignal": true; }; "useGrouping": { "alias": "useGrouping"; "required": false; "isSignal": true; }; "numberType": { "alias": "numberType"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
74
+ }
75
+
76
+ /** Min validator */
77
+ declare class MinValidatorDirective implements Validator {
78
+ min: i0.InputSignalWithTransform<number, string | number | null | undefined>;
79
+ validate(control: AbstractControl): ValidationErrors | null;
80
+ static ɵfac: i0.ɵɵFactoryDeclaration<MinValidatorDirective, never>;
81
+ static ɵdir: i0.ɵɵDirectiveDeclaration<MinValidatorDirective, "input[type=text][ng0Number][min]", ["ng0Min"], { "min": { "alias": "min"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
82
+ }
83
+
84
+ /** Max validator */
85
+ declare class MaxValidatorDirective implements Validator {
86
+ max: i0.InputSignalWithTransform<number, string | number | null | undefined>;
87
+ validate(control: AbstractControl): ValidationErrors | null;
88
+ static ɵfac: i0.ɵɵFactoryDeclaration<MaxValidatorDirective, never>;
89
+ static ɵdir: i0.ɵɵDirectiveDeclaration<MaxValidatorDirective, "input[type=text][ng0Number][max]", ["ng0Max"], { "max": { "alias": "max"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
90
+ }
91
+
92
+ declare class EqualWithValidatorDirective implements Validator {
93
+ targetValue?: string;
94
+ inequalityMessage?: string;
95
+ constructor();
96
+ validate(control: AbstractControl): {
97
+ [key: string]: any;
98
+ } | null;
99
+ static ɵfac: i0.ɵɵFactoryDeclaration<EqualWithValidatorDirective, never>;
100
+ static ɵdir: i0.ɵɵDirectiveDeclaration<EqualWithValidatorDirective, "[ng0EqualWith]", ["ng0EqualWith"], { "targetValue": { "alias": "ng0EqualWith"; "required": false; }; "inequalityMessage": { "alias": "inequalityMessage"; "required": false; }; }, {}, never, never, true, never>;
101
+ }
102
+
103
+ declare class UrlValidatorDirective implements Validator {
104
+ /** Directive is enabled or disabled */
105
+ iscUrl?: boolean | string;
106
+ validate(control: FormControl): ValidationErrors | null;
107
+ static ɵfac: i0.ɵɵFactoryDeclaration<UrlValidatorDirective, never>;
108
+ static ɵdir: i0.ɵɵDirectiveDeclaration<UrlValidatorDirective, "input[ng0Url]", ["ng0Url"], { "iscUrl": { "alias": "iscUrl"; "required": false; }; }, {}, never, never, true, never>;
109
+ }
110
+
111
+ declare class CustomValidatorDirective implements Validator {
112
+ validator: i0.InputSignal<(value: any) => ValidationErrors | null>;
113
+ constructor();
114
+ validate(control: AbstractControl): ValidationErrors | null;
115
+ static ɵfac: i0.ɵɵFactoryDeclaration<CustomValidatorDirective, never>;
116
+ static ɵdir: i0.ɵɵDirectiveDeclaration<CustomValidatorDirective, "[ng0CustomValidator]", ["ng0CustomValidator"], { "validator": { "alias": "ng0CustomValidator"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
117
+ }
118
+
119
+ declare class FormModule {
120
+ static ɵfac: i0.ɵɵFactoryDeclaration<FormModule, never>;
121
+ static ɵmod: i0.ɵɵNgModuleDeclaration<FormModule, never, [typeof NumberDirective, typeof MinValidatorDirective, typeof MaxValidatorDirective, typeof EqualWithValidatorDirective, typeof UrlValidatorDirective, typeof CustomValidatorDirective], [typeof NumberDirective, typeof MinValidatorDirective, typeof MaxValidatorDirective, typeof EqualWithValidatorDirective, typeof UrlValidatorDirective, typeof CustomValidatorDirective]>;
122
+ static ɵinj: i0.ɵɵInjectorDeclaration<FormModule>;
123
+ }
124
+
125
+ declare function equalWithValidator(targetValue?: string, inequalityMessage?: string): ValidatorFn;
126
+
127
+ export { CustomValidatorDirective, EqualWithValidatorDirective, FocusDirective, FormModule, MaxValidatorDirective, MinValidatorDirective, NumberDirective, UrlValidatorDirective, equalWithValidator };