{"version":3,"file":"ngx-core-components-i18n.mjs","sources":["../../../projects/ngx-core-components/i18n/ngx-core-i18n.ts","../../../projects/ngx-core-components/i18n/ngx-core-components-i18n.ts"],"sourcesContent":["import { InjectionToken, Provider } from '@angular/core';\n\n/**\n * Interface representing all user-facing labels in ngx-core-components\n */\nexport interface NgxCoreI18n {\n  grid: {\n    noData: string;\n    filterPlaceholder: string;\n    pageOf: (page: number, total: number) => string;\n    sortAscending: string;\n    sortDescending: string;\n    selectAll: string;\n    deselectAll: string;\n    exportCsv: string;\n    groupBy: string;\n  };\n  datePicker: {\n    months: string[];\n    shortMonths: string[];\n    weekdays: string[];\n    shortWeekdays: string[];\n    today: string;\n    clear: string;\n    cancel: string;\n    ok: string;\n  };\n  dialog: {\n    close: string;\n    confirm: string;\n    cancel: string;\n    ok: string;\n  };\n  fileUpload: {\n    browse: string;\n    dragDrop: string;\n    removeFile: string;\n    maxSizeError: string;\n    invalidTypeError: string;\n  };\n  autocomplete: {\n    noResults: string;\n    loading: string;\n    clearSelection: string;\n  };\n  dropdown: {\n    noResults: string;\n    selectPlaceholder: string;\n    clearSelection: string;\n    searchPlaceholder: string;\n  };\n  multiSelect: {\n    selectAll: string;\n    deselectAll: string;\n    selectedCount: (count: number) => string;\n    searchPlaceholder: string;\n  };\n  pagination: {\n    of: string;\n    page: string;\n    nextPage: string;\n    previousPage: string;\n    firstPage: string;\n    lastPage: string;\n    itemsPerPage: string;\n  };\n  scheduler: {\n    today: string;\n    day: string;\n    week: string;\n    month: string;\n    agenda: string;\n    allDay: string;\n    noEvents: string;\n  };\n  gantt: {\n    addTask: string;\n    deleteTask: string;\n    editTask: string;\n    zoomIn: string;\n    zoomOut: string;\n    today: string;\n    criticalPath: string;\n    baseline: string;\n  };\n  common: {\n    loading: string;\n    error: string;\n    retry: string;\n    save: string;\n    delete: string;\n    edit: string;\n    cancel: string;\n    ok: string;\n    close: string;\n    search: string;\n    noData: string;\n    required: string;\n  };\n}\n\n/**\n * Default English translations\n */\nexport const DEFAULT_EN_I18N: NgxCoreI18n = {\n  grid: {\n    noData: 'No rows to display',\n    filterPlaceholder: 'Filter...',\n    pageOf: (page, total) => `Page ${page} of ${total}`,\n    sortAscending: 'Sort Ascending',\n    sortDescending: 'Sort Descending',\n    selectAll: 'Select All',\n    deselectAll: 'Deselect All',\n    exportCsv: 'Export to CSV',\n    groupBy: 'Group by this column'\n  },\n  datePicker: {\n    months: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],\n    shortMonths: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n    weekdays: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n    shortWeekdays: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n    today: 'Today',\n    clear: 'Clear',\n    cancel: 'Cancel',\n    ok: 'OK'\n  },\n  dialog: {\n    close: 'Close',\n    confirm: 'Confirm',\n    cancel: 'Cancel',\n    ok: 'OK'\n  },\n  fileUpload: {\n    browse: 'Browse files',\n    dragDrop: 'Drag and drop files here',\n    removeFile: 'Remove file',\n    maxSizeError: 'File size exceeds limit',\n    invalidTypeError: 'Invalid file type'\n  },\n  autocomplete: {\n    noResults: 'No results found',\n    loading: 'Loading...',\n    clearSelection: 'Clear selection'\n  },\n  dropdown: {\n    noResults: 'No results found',\n    selectPlaceholder: 'Select...',\n    clearSelection: 'Clear selection',\n    searchPlaceholder: 'Search...'\n  },\n  multiSelect: {\n    selectAll: 'Select All',\n    deselectAll: 'Deselect All',\n    selectedCount: (count) => `${count} selected`,\n    searchPlaceholder: 'Search...'\n  },\n  pagination: {\n    of: 'of',\n    page: 'Page',\n    nextPage: 'Next Page',\n    previousPage: 'Previous Page',\n    firstPage: 'First Page',\n    lastPage: 'Last Page',\n    itemsPerPage: 'Items per page'\n  },\n  scheduler: {\n    today: 'Today',\n    day: 'Day',\n    week: 'Week',\n    month: 'Month',\n    agenda: 'Agenda',\n    allDay: 'All Day',\n    noEvents: 'No events scheduled'\n  },\n  gantt: {\n    addTask: 'Add Task',\n    deleteTask: 'Delete Task',\n    editTask: 'Edit Task',\n    zoomIn: 'Zoom In',\n    zoomOut: 'Zoom Out',\n    today: 'Today',\n    criticalPath: 'Critical Path',\n    baseline: 'Baseline'\n  },\n  common: {\n    loading: 'Loading...',\n    error: 'An error occurred',\n    retry: 'Retry',\n    save: 'Save',\n    delete: 'Delete',\n    edit: 'Edit',\n    cancel: 'Cancel',\n    ok: 'OK',\n    close: 'Close',\n    search: 'Search...',\n    noData: 'No data',\n    required: 'This field is required'\n  }\n};\n\n/**\n * Injection token for library translations\n */\nexport const NGX_CORE_I18N = new InjectionToken<NgxCoreI18n>('ngx-core-i18n', {\n  providedIn: 'root',\n  factory: () => DEFAULT_EN_I18N\n});\n\n/**\n * Provider helper function to configure custom translations\n */\nexport function provideNgxI18n(overrides: Partial<NgxCoreI18n>): Provider {\n  const merged = deepMerge(DEFAULT_EN_I18N, overrides);\n  return {\n    provide: NGX_CORE_I18N,\n    useValue: merged\n  };\n}\n\n/**\n * Helper utility to perform deep merging of configurations\n */\nfunction deepMerge(target: any, source: any): any {\n  const output = { ...target };\n  if (isObject(target) && isObject(source)) {\n    Object.keys(source).forEach(key => {\n      if (isObject(source[key])) {\n        if (!(key in target)) {\n          Object.assign(output, { [key]: source[key] });\n        } else {\n          output[key] = deepMerge(target[key], source[key]);\n        }\n      } else {\n        Object.assign(output, { [key]: source[key] });\n      }\n    });\n  }\n  return output;\n}\n\nfunction isObject(item: any): boolean {\n  return item && typeof item === 'object' && !Array.isArray(item);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}