ngwr 15.2.0 → 15.4.0
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.
- package/alert/styles/_index.scss +13 -5
- package/bits/border-glow/styles/_rules.scss +60 -49
- package/bits/click-spark/click-spark.scss +5 -1
- package/bits/click-spark/styles/_index.scss +10 -15
- package/bits/click-spark/styles/_rules.scss +20 -0
- package/fesm2022/ngwr-alert.mjs +2 -2
- package/fesm2022/ngwr-alert.mjs.map +1 -1
- package/fesm2022/ngwr-bits-aurora.mjs +108 -52
- package/fesm2022/ngwr-bits-aurora.mjs.map +1 -1
- package/fesm2022/ngwr-bits-border-glow-testing.mjs +8 -8
- package/fesm2022/ngwr-bits-border-glow-testing.mjs.map +1 -1
- package/fesm2022/ngwr-bits-border-glow.mjs +29 -26
- package/fesm2022/ngwr-bits-border-glow.mjs.map +1 -1
- package/fesm2022/ngwr-bits-dot-grid.mjs +11 -14
- package/fesm2022/ngwr-bits-dot-grid.mjs.map +1 -1
- package/fesm2022/ngwr-bits-fuzzy-text.mjs +18 -4
- package/fesm2022/ngwr-bits-fuzzy-text.mjs.map +1 -1
- package/fesm2022/ngwr-bits-ripple-grid.mjs +14 -13
- package/fesm2022/ngwr-bits-ripple-grid.mjs.map +1 -1
- package/fesm2022/ngwr-bits-splash-cursor.mjs +21 -10
- package/fesm2022/ngwr-bits-splash-cursor.mjs.map +1 -1
- package/fesm2022/ngwr-bits-waves.mjs +10 -15
- package/fesm2022/ngwr-bits-waves.mjs.map +1 -1
- package/fesm2022/ngwr-breadcrumbs.mjs +18 -2
- package/fesm2022/ngwr-breadcrumbs.mjs.map +1 -1
- package/fesm2022/ngwr-hotkey.mjs +23 -1
- package/fesm2022/ngwr-hotkey.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-ar.mjs +2 -0
- package/fesm2022/ngwr-i18n-ar.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-cs.mjs +2 -0
- package/fesm2022/ngwr-i18n-cs.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-de.mjs +2 -0
- package/fesm2022/ngwr-i18n-de.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-en.mjs +2 -0
- package/fesm2022/ngwr-i18n-en.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-es.mjs +2 -0
- package/fesm2022/ngwr-i18n-es.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-fr.mjs +2 -0
- package/fesm2022/ngwr-i18n-fr.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-he.mjs +2 -0
- package/fesm2022/ngwr-i18n-he.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-hi.mjs +2 -0
- package/fesm2022/ngwr-i18n-hi.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-id.mjs +2 -0
- package/fesm2022/ngwr-i18n-id.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-it.mjs +2 -0
- package/fesm2022/ngwr-i18n-it.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-ja.mjs +2 -0
- package/fesm2022/ngwr-i18n-ja.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-ko.mjs +2 -0
- package/fesm2022/ngwr-i18n-ko.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-nl.mjs +2 -0
- package/fesm2022/ngwr-i18n-nl.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-pl.mjs +2 -0
- package/fesm2022/ngwr-i18n-pl.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-pt.mjs +2 -0
- package/fesm2022/ngwr-i18n-pt.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-ru.mjs +2 -0
- package/fesm2022/ngwr-i18n-ru.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-sv.mjs +2 -0
- package/fesm2022/ngwr-i18n-sv.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-tr.mjs +2 -0
- package/fesm2022/ngwr-i18n-tr.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-uk.mjs +2 -0
- package/fesm2022/ngwr-i18n-uk.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-vi.mjs +2 -0
- package/fesm2022/ngwr-i18n-vi.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-zh-tw.mjs +2 -0
- package/fesm2022/ngwr-i18n-zh-tw.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-zh.mjs +2 -0
- package/fesm2022/ngwr-i18n-zh.mjs.map +1 -1
- package/fesm2022/ngwr-pagination.mjs +3 -0
- package/fesm2022/ngwr-pagination.mjs.map +1 -1
- package/fesm2022/ngwr-pipes.mjs +163 -49
- package/fesm2022/ngwr-pipes.mjs.map +1 -1
- package/fesm2022/ngwr-schema-form.mjs +3 -0
- package/fesm2022/ngwr-schema-form.mjs.map +1 -1
- package/fesm2022/ngwr-select-testing.mjs +16 -0
- package/fesm2022/ngwr-select-testing.mjs.map +1 -1
- package/fesm2022/ngwr-select.mjs +218 -38
- package/fesm2022/ngwr-select.mjs.map +1 -1
- package/fesm2022/ngwr-statistic.mjs +20 -21
- package/fesm2022/ngwr-statistic.mjs.map +1 -1
- package/fesm2022/ngwr-version.mjs +1 -1
- package/fesm2022/ngwr-version.mjs.map +1 -1
- package/i18n/ar.json +2 -0
- package/i18n/cs.json +2 -0
- package/i18n/de.json +2 -0
- package/i18n/en.json +2 -0
- package/i18n/es.json +2 -0
- package/i18n/fr.json +2 -0
- package/i18n/he.json +2 -0
- package/i18n/hi.json +2 -0
- package/i18n/id.json +2 -0
- package/i18n/it.json +2 -0
- package/i18n/ja.json +2 -0
- package/i18n/ko.json +2 -0
- package/i18n/nl.json +2 -0
- package/i18n/pl.json +2 -0
- package/i18n/pt.json +2 -0
- package/i18n/ru.json +2 -0
- package/i18n/sv.json +2 -0
- package/i18n/tr.json +2 -0
- package/i18n/uk.json +2 -0
- package/i18n/vi.json +2 -0
- package/i18n/zh-TW.json +2 -0
- package/i18n/zh.json +2 -0
- package/llms-full.txt +5 -5
- package/package.json +1 -1
- package/schematics/use/symbol-map.json +2 -0
- package/select/styles/_index.scss +23 -1
- package/skills/ngwr/SKILL.md +3 -1
- package/skills/ngwr/references/catalog.md +1 -1
- package/types/ngwr-alert.d.ts +3 -1
- package/types/ngwr-bits-aurora.d.ts +24 -2
- package/types/ngwr-bits-border-glow-testing.d.ts +9 -5
- package/types/ngwr-bits-border-glow.d.ts +10 -4
- package/types/ngwr-bits-fuzzy-text.d.ts +2 -1
- package/types/ngwr-bits-ripple-grid.d.ts +7 -2
- package/types/ngwr-bits-splash-cursor.d.ts +2 -1
- package/types/ngwr-breadcrumbs.d.ts +15 -0
- package/types/ngwr-hotkey.d.ts +14 -2
- package/types/ngwr-pipes.d.ts +142 -32
- package/types/ngwr-select-testing.d.ts +9 -0
- package/types/ngwr-select.d.ts +133 -2
- package/types/ngwr-sidebar.d.ts +1 -1
- package/types/ngwr-version.d.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngwr-breadcrumbs.mjs","names":[],"sources":["../../../projects/lib/breadcrumbs/breadcrumbs.ts","../../../projects/lib/breadcrumbs/breadcrumbs.html","../../../projects/lib/breadcrumbs/breadcrumbs-item.ts","../../../projects/lib/breadcrumbs/breadcrumbs-item.html"],"sourcesContent":["/**\n * @license\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE\n */\n\nimport { Component, ViewEncapsulation, computed, input } from '@angular/core';\n\nimport { useI18nText } from 'ngwr/i18n';\n\n/** Escape a string for use inside a double-quoted CSS `<string>`. */\nfunction cssString(value: string): string {\n return value.replace(/[\\\\\"]/g, '\\\\$&').replace(/[\\n\\r\\f]/g, char => `\\\\${char.codePointAt(0)!.toString(16)} `);\n}\n\n/**\n * Breadcrumb navigation. Project `<wr-breadcrumbs-item>` children — each keeps\n * its own element and takes `role=\"listitem\"` inside the `<ol>` rather than\n * rendering an `<li>`, separated by the configured glyph (default `/`). The\n * container exposes the `nav[aria-label]` landmark required by WCAG.\n *\n * @example\n * ```html\n * <wr-breadcrumbs>\n * <wr-breadcrumbs-item routerLink=\"/\">Home</wr-breadcrumbs-item>\n * <wr-breadcrumbs-item routerLink=\"/docs\">Docs</wr-breadcrumbs-item>\n * <wr-breadcrumbs-item>Current</wr-breadcrumbs-item>\n * </wr-breadcrumbs>\n *\n * <!-- Custom separator -->\n * <wr-breadcrumbs separator=\"›\">…</wr-breadcrumbs>\n * ```\n *\n * @see https://ngwr.dev/reference/components/breadcrumbs\n */\n@Component({\n selector: 'wr-breadcrumbs',\n templateUrl: './breadcrumbs.html',\n styleUrl: './breadcrumbs.scss',\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'wr-breadcrumbs',\n '[style.--wr-breadcrumbs-separator]': 'separatorValue()',\n },\n})\nexport class WrBreadcrumbs {\n /** Separator glyph between items. Any short string. @default '/' */\n readonly separator = input('/');\n\n /**\n * Accessible label for the `nav` landmark. Falls back to `breadcrumbs.label`,\n * then `'Breadcrumbs'`.\n */\n readonly ariaLabel = input<string | null>(null);\n\n // The English default used to live on the input itself, which made this the one\n // landmark in the library a catalog could not reach: `wr-anchor` and `wr-sidebar`\n // announced in Russian on the same page while this one stayed \"Breadcrumbs\", and\n // the only escape was restating `[ariaLabel]` on every trail.\n protected readonly resolvedAriaLabel = useI18nText(this.ariaLabel, 'breadcrumbs.label', 'Breadcrumbs');\n\n // The glyph is WRAPPED in quotes here and unwrapped by `content:` in the\n // stylesheet, so an unescaped `\"` inside it closes the library's own string\n // and the rest of the value is parsed as CSS — `/\" url(\"…\") \"` computes to\n // `content: \"/\" url(\"…\") \"\"`, an image the browser fetches. Escaping is the\n // whole fix, and it is lossless: a separator that IS a quote still renders.\n protected readonly separatorValue = computed(() => `\"${cssString(this.separator())}\"`);\n}\n","<nav class=\"wr-breadcrumbs__nav\" [attr.aria-label]=\"resolvedAriaLabel()\">\n <ol class=\"wr-breadcrumbs__list\">\n <ng-content />\n </ol>\n</nav>\n","/**\n * @license\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE\n */\n\nimport { NgTemplateOutlet } from '@angular/common';\nimport { Component, ViewEncapsulation, computed, input } from '@angular/core';\nimport { RouterLink } from '@angular/router';\n\nimport { WrIcon, type WrIconName } from 'ngwr/icon';\n\n/**\n * One row inside `<wr-breadcrumbs>`. The host itself is the row — a\n * `<wr-breadcrumbs-item role=\"listitem\" class=\"wr-breadcrumbs__item\">`\n * inside the parent's `<ol>` — and it contains either a real\n * `<a class=\"wr-breadcrumbs__link\">` (when `[href]` or `[routerLink]` is\n * set) or, for the current crumb, a non-interactive\n * `<a class=\"wr-breadcrumbs__current\" role=\"text\" tabindex=\"-1\"\n * aria-current=\"page\">` (when neither is set — typically the last crumb).\n *\n * @example\n * ```html\n * <wr-breadcrumbs-item icon=\"home\" routerLink=\"/\">Home</wr-breadcrumbs-item>\n * <wr-breadcrumbs-item href=\"https://ngwr.dev\">External</wr-breadcrumbs-item>\n * <wr-breadcrumbs-item>Current page</wr-breadcrumbs-item>\n * ```\n */\n@Component({\n selector: 'wr-breadcrumbs-item',\n templateUrl: './breadcrumbs-item.html',\n encapsulation: ViewEncapsulation.None,\n imports: [NgTemplateOutlet, RouterLink, WrIcon],\n host: { class: 'wr-breadcrumbs__item', role: 'listitem' },\n})\nexport class WrBreadcrumbsItem {\n /** Plain anchor href. Overridden by `routerLink` when both are set. */\n readonly href = input<string | null>(null);\n\n /** Angular router target. Anything `RouterLink` accepts (string or `any[]`). */\n readonly routerLink = input<string | readonly unknown[] | null>(null);\n\n /** Open external `href` in a new tab. Ignored when `routerLink` is set. @default false */\n readonly external = input(false);\n\n /** Optional leading icon rendered inline before the label. @default null */\n readonly icon = input<WrIconName | null>(null);\n\n protected readonly isLink = computed(() => this.href() != null || this.routerLink() != null);\n protected readonly isRouter = computed(() => this.routerLink() != null);\n\n protected readonly rootClass = computed(() => (this.isLink() ? 'wr-breadcrumbs__link' : 'wr-breadcrumbs__current'));\n}\n","<!--\n The label lives in a template rather than inside each branch below. A default\n `<ng-content />` written into two `@if` branches fills only ONE of them — the\n last in static order — and the other renders empty, with no template error and\n nothing in the console. This component has been broken exactly that way\n before; stamping one template from either branch keeps two anchors and one\n projection.\n-->\n<ng-template #label>\n @if (icon(); as i) {\n <wr-icon class=\"wr-breadcrumbs__icon\" [name]=\"i\" />\n }\n <ng-content />\n</ng-template>\n\n@if (isRouter()) {\n <!--\n Only ROUTER crumbs get `RouterLink`. Applied unconditionally it owns the\n anchor's `href` and writes null into it whenever `routerLink` is null —\n which silently turned every `href`-based crumb, a documented input, into\n text that navigates nowhere.\n -->\n <a [class]=\"rootClass()\" [routerLink]=\"routerLink()\">\n <ng-container [ngTemplateOutlet]=\"label\" />\n </a>\n} @else {\n <a\n [class]=\"rootClass()\"\n [attr.href]=\"href()\"\n [attr.aria-current]=\"isLink() ? null : 'page'\"\n [attr.role]=\"isLink() ? null : 'text'\"\n [attr.tabindex]=\"isLink() ? null : -1\"\n [attr.target]=\"external() ? '_blank' : null\"\n [attr.rel]=\"external() ? 'noreferrer noopener' : null\"\n >\n <ng-container [ngTemplateOutlet]=\"label\" />\n </a>\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ngwr-breadcrumbs.mjs","names":[],"sources":["../../../projects/lib/breadcrumbs/breadcrumbs.ts","../../../projects/lib/breadcrumbs/breadcrumbs.html","../../../projects/lib/breadcrumbs/breadcrumbs-item.ts","../../../projects/lib/breadcrumbs/breadcrumbs-item.html"],"sourcesContent":["/**\n * @license\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE\n */\n\nimport { Component, ViewEncapsulation, computed, input } from '@angular/core';\n\nimport { useI18nText } from 'ngwr/i18n';\n\n/** Escape a string for use inside a double-quoted CSS `<string>`. */\nfunction cssString(value: string): string {\n return value.replace(/[\\\\\"]/g, '\\\\$&').replace(/[\\n\\r\\f]/g, char => `\\\\${char.codePointAt(0)!.toString(16)} `);\n}\n\n/**\n * Breadcrumb navigation. Project `<wr-breadcrumbs-item>` children — each keeps\n * its own element and takes `role=\"listitem\"` inside the `<ol>` rather than\n * rendering an `<li>`, separated by the configured glyph (default `/`). The\n * container exposes the `nav[aria-label]` landmark required by WCAG.\n *\n * @example\n * ```html\n * <wr-breadcrumbs>\n * <wr-breadcrumbs-item routerLink=\"/\">Home</wr-breadcrumbs-item>\n * <wr-breadcrumbs-item routerLink=\"/docs\">Docs</wr-breadcrumbs-item>\n * <wr-breadcrumbs-item>Current</wr-breadcrumbs-item>\n * </wr-breadcrumbs>\n *\n * <!-- Custom separator -->\n * <wr-breadcrumbs separator=\"›\">…</wr-breadcrumbs>\n * ```\n *\n * @see https://ngwr.dev/reference/components/breadcrumbs\n */\n@Component({\n selector: 'wr-breadcrumbs',\n templateUrl: './breadcrumbs.html',\n styleUrl: './breadcrumbs.scss',\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'wr-breadcrumbs',\n '[style.--wr-breadcrumbs-separator]': 'separatorValue()',\n },\n})\nexport class WrBreadcrumbs {\n /** Separator glyph between items. Any short string. @default '/' */\n readonly separator = input('/');\n\n /**\n * Accessible label for the `nav` landmark. Falls back to `breadcrumbs.label`,\n * then `'Breadcrumbs'`.\n */\n readonly ariaLabel = input<string | null>(null);\n\n // The English default used to live on the input itself, which made this the one\n // landmark in the library a catalog could not reach: `wr-anchor` and `wr-sidebar`\n // announced in Russian on the same page while this one stayed \"Breadcrumbs\", and\n // the only escape was restating `[ariaLabel]` on every trail.\n protected readonly resolvedAriaLabel = useI18nText(this.ariaLabel, 'breadcrumbs.label', 'Breadcrumbs');\n\n // The glyph is WRAPPED in quotes here and unwrapped by `content:` in the\n // stylesheet, so an unescaped `\"` inside it closes the library's own string\n // and the rest of the value is parsed as CSS — `/\" url(\"…\") \"` computes to\n // `content: \"/\" url(\"…\") \"\"`, an image the browser fetches. Escaping is the\n // whole fix, and it is lossless: a separator that IS a quote still renders.\n protected readonly separatorValue = computed(() => `\"${cssString(this.separator())}\"`);\n}\n","<nav class=\"wr-breadcrumbs__nav\" [attr.aria-label]=\"resolvedAriaLabel()\">\n <ol class=\"wr-breadcrumbs__list\">\n <ng-content />\n </ol>\n</nav>\n","/**\n * @license\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE\n */\n\nimport { NgTemplateOutlet } from '@angular/common';\nimport { Component, ViewEncapsulation, computed, input } from '@angular/core';\nimport { type Params, RouterLink } from '@angular/router';\n\nimport { WrIcon, type WrIconName } from 'ngwr/icon';\n\n/**\n * One row inside `<wr-breadcrumbs>`. The host itself is the row — a\n * `<wr-breadcrumbs-item role=\"listitem\" class=\"wr-breadcrumbs__item\">`\n * inside the parent's `<ol>` — and it contains either a real\n * `<a class=\"wr-breadcrumbs__link\">` (when `[href]` or `[routerLink]` is\n * set) or, for the current crumb, a non-interactive\n * `<a class=\"wr-breadcrumbs__current\" role=\"text\" tabindex=\"-1\"\n * aria-current=\"page\">` (when neither is set — typically the last crumb).\n *\n * @example\n * ```html\n * <wr-breadcrumbs-item icon=\"home\" routerLink=\"/\">Home</wr-breadcrumbs-item>\n * <wr-breadcrumbs-item routerLink=\"/debts\" [queryParams]=\"{ date: day }\">Debts</wr-breadcrumbs-item>\n * <wr-breadcrumbs-item href=\"https://ngwr.dev\">External</wr-breadcrumbs-item>\n * <wr-breadcrumbs-item>Current page</wr-breadcrumbs-item>\n * ```\n */\n@Component({\n selector: 'wr-breadcrumbs-item',\n templateUrl: './breadcrumbs-item.html',\n encapsulation: ViewEncapsulation.None,\n imports: [NgTemplateOutlet, RouterLink, WrIcon],\n host: { class: 'wr-breadcrumbs__item', role: 'listitem' },\n})\nexport class WrBreadcrumbsItem {\n /** Plain anchor href. Overridden by `routerLink` when both are set. */\n readonly href = input<string | null>(null);\n\n /** Angular router target. Anything `RouterLink` accepts (string or `any[]`). */\n readonly routerLink = input<string | readonly unknown[] | null>(null);\n\n /**\n * Query parameters for a `routerLink` crumb, the way `RouterLink` takes them.\n * A `?` written into `routerLink` is part of the path, and the router escapes\n * it: `/debts?date=1` became `/debts%3Fdate%3D1`. Ignored without `routerLink`.\n *\n * @default null\n */\n readonly queryParams = input<Params | null>(null);\n\n /** Open external `href` in a new tab. Ignored when `routerLink` is set. @default false */\n readonly external = input(false);\n\n /** Optional leading icon rendered inline before the label. @default null */\n readonly icon = input<WrIconName | null>(null);\n\n protected readonly isLink = computed(() => this.href() != null || this.routerLink() != null);\n protected readonly isRouter = computed(() => this.routerLink() != null);\n\n protected readonly rootClass = computed(() => (this.isLink() ? 'wr-breadcrumbs__link' : 'wr-breadcrumbs__current'));\n}\n","<!--\n The label lives in a template rather than inside each branch below. A default\n `<ng-content />` written into two `@if` branches fills only ONE of them — the\n last in static order — and the other renders empty, with no template error and\n nothing in the console. This component has been broken exactly that way\n before; stamping one template from either branch keeps two anchors and one\n projection.\n-->\n<ng-template #label>\n @if (icon(); as i) {\n <wr-icon class=\"wr-breadcrumbs__icon\" [name]=\"i\" />\n }\n <ng-content />\n</ng-template>\n\n@if (isRouter()) {\n <!--\n Only ROUTER crumbs get `RouterLink`. Applied unconditionally it owns the\n anchor's `href` and writes null into it whenever `routerLink` is null —\n which silently turned every `href`-based crumb, a documented input, into\n text that navigates nowhere.\n -->\n <a [class]=\"rootClass()\" [routerLink]=\"routerLink()\" [queryParams]=\"queryParams()\">\n <ng-container [ngTemplateOutlet]=\"label\" />\n </a>\n} @else {\n <a\n [class]=\"rootClass()\"\n [attr.href]=\"href()\"\n [attr.aria-current]=\"isLink() ? null : 'page'\"\n [attr.role]=\"isLink() ? null : 'text'\"\n [attr.tabindex]=\"isLink() ? null : -1\"\n [attr.target]=\"external() ? '_blank' : null\"\n [attr.rel]=\"external() ? 'noreferrer noopener' : null\"\n >\n <ng-container [ngTemplateOutlet]=\"label\" />\n </a>\n}\n"],"mappings":"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"}
|
package/fesm2022/ngwr-hotkey.mjs
CHANGED
|
@@ -21,6 +21,27 @@ const KEY_ALIASES = {
|
|
|
21
21
|
right: "arrowright",
|
|
22
22
|
del: "delete"
|
|
23
23
|
};
|
|
24
|
+
const PUNCTUATION_CODES = {
|
|
25
|
+
Backquote: "`",
|
|
26
|
+
Minus: "-",
|
|
27
|
+
Equal: "=",
|
|
28
|
+
BracketLeft: "[",
|
|
29
|
+
BracketRight: "]",
|
|
30
|
+
Backslash: "\\",
|
|
31
|
+
Semicolon: ";",
|
|
32
|
+
Quote: "'",
|
|
33
|
+
Comma: ",",
|
|
34
|
+
Period: ".",
|
|
35
|
+
Slash: "/"
|
|
36
|
+
};
|
|
37
|
+
function physicalKey(code) {
|
|
38
|
+
if (/^Key[A-Z]$/.test(code)) return code.slice(3).toLowerCase();
|
|
39
|
+
if (/^Digit\d$/.test(code)) return code.slice(5);
|
|
40
|
+
return PUNCTUATION_CODES[code] ?? null;
|
|
41
|
+
}
|
|
42
|
+
function isNonLatinLetter(key) {
|
|
43
|
+
return /^\p{L}$/u.test(key) && !/^\p{Script=Latin}$/u.test(key);
|
|
44
|
+
}
|
|
24
45
|
function parseHotkeySpec(spec, isMac = false) {
|
|
25
46
|
const tokens = spec.split("+").map((t) => t.trim().toLowerCase()).filter(Boolean);
|
|
26
47
|
let ctrl = false;
|
|
@@ -66,7 +87,8 @@ function matchesHotkey(event, parsed) {
|
|
|
66
87
|
if (event.altKey !== parsed.alt) return false;
|
|
67
88
|
if (event.shiftKey !== parsed.shift) return false;
|
|
68
89
|
if (event.metaKey !== parsed.meta) return false;
|
|
69
|
-
|
|
90
|
+
if (event.key.toLowerCase() === parsed.key) return true;
|
|
91
|
+
return !event.altKey && isNonLatinLetter(event.key) && physicalKey(event.code) === parsed.key;
|
|
70
92
|
}
|
|
71
93
|
/**
|
|
72
94
|
* @license
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngwr-hotkey.mjs","names":["DOCUMENT"],"sources":["../../../projects/lib/hotkey/parse-spec.ts","../../../projects/lib/hotkey/wr-hotkey.ts","../../../projects/lib/hotkey/wr-hotkey-binding.ts"],"sourcesContent":["/**\n * @license\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE\n */\n\nimport type { WrHotkeySpec } from './types';\n\n/** Map of user-friendly aliases to canonical `KeyboardEvent.key` strings. */\nconst KEY_ALIASES: Readonly<Record<string, string>> = {\n esc: 'escape',\n space: ' ',\n spacebar: ' ',\n enter: 'enter',\n return: 'enter',\n up: 'arrowup',\n down: 'arrowdown',\n left: 'arrowleft',\n right: 'arrowright',\n del: 'delete',\n};\n\n/** Normalised representation of a hotkey spec — easy to match against an event. */\ninterface WrParsedHotkey {\n readonly ctrl: boolean;\n readonly alt: boolean;\n readonly shift: boolean;\n readonly meta: boolean;\n /** Lowercased `KeyboardEvent.key` value the spec matches. */\n readonly key: string;\n}\n\n/**\n * Parse a hotkey spec like `'mod+shift+k'` into a normalised structure.\n *\n * @param spec - the spec to parse\n * @param isMac - when true, `mod` resolves to `meta` (Cmd); otherwise `ctrl`\n */\nfunction parseHotkeySpec(spec: WrHotkeySpec, isMac = false): WrParsedHotkey {\n const tokens = spec\n .split('+')\n .map(t => t.trim().toLowerCase())\n .filter(Boolean);\n\n let ctrl = false;\n let alt = false;\n let shift = false;\n let meta = false;\n let key = '';\n\n for (const token of tokens) {\n switch (token) {\n case 'ctrl':\n case 'control':\n ctrl = true;\n break;\n case 'alt':\n case 'option':\n alt = true;\n break;\n case 'shift':\n shift = true;\n break;\n case 'cmd':\n case 'command':\n case 'meta':\n case 'super':\n case 'win':\n meta = true;\n break;\n case 'mod':\n if (isMac) meta = true;\n else ctrl = true;\n break;\n default:\n key = KEY_ALIASES[token] ?? token;\n break;\n }\n }\n\n return { ctrl, alt, shift, meta, key };\n}\n\n/** Does `event` satisfy the parsed hotkey? */\nfunction matchesHotkey(event: KeyboardEvent, parsed: WrParsedHotkey): boolean {\n if (event.ctrlKey !== parsed.ctrl) return false;\n if (event.altKey !== parsed.alt) return false;\n if (event.shiftKey !== parsed.shift) return false;\n if (event.metaKey !== parsed.meta) return false;\n return event.key.toLowerCase() === parsed.key;\n}\n\nexport { parseHotkeySpec, matchesHotkey };\nexport type { WrParsedHotkey };\n","/**\n * @license\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE\n */\n\nimport { DOCUMENT } from '@angular/common';\nimport { DestroyRef, Service, NgZone, inject } from '@angular/core';\n\nimport { WrPlatform } from 'ngwr/platform';\n\nimport { matchesHotkey, parseHotkeySpec, type WrParsedHotkey } from './parse-spec';\nimport type { WrHotkeyHandle, WrHotkeyOptions, WrHotkeySpec } from './types';\n\ninterface Binding {\n readonly parsed: WrParsedHotkey;\n readonly handler: (event: KeyboardEvent) => void;\n readonly options: Required<WrHotkeyOptions>;\n}\n\nconst FALLBACK_OPTIONS: Required<WrHotkeyOptions> = {\n element: undefined as unknown as HTMLElement,\n preventDefault: true,\n allowInInput: false,\n priority: 0,\n};\n\nfunction isEditableTarget(target: EventTarget | null): boolean {\n if (!(target instanceof HTMLElement)) return false;\n const tag = target.tagName;\n if (tag === 'INPUT' || tag === 'TEXTAREA' || tag === 'SELECT') return true;\n return target.isContentEditable;\n}\n\n/**\n * Global keybinding registry.\n *\n * Bindings are keyed off `KeyboardEvent.key` + modifier state. Multiple\n * handlers per chord fire in priority order; a handler that calls\n * `event.preventDefault()` stops lower-priority bindings on that key.\n *\n * The listener runs outside Angular — only matched bindings re-enter\n * the zone, so an idle page doesn't trigger CD on every keystroke.\n *\n * Use `[wrHotkey]` for declarative element-scoped bindings.\n *\n * @example\n * ```ts\n * const hotkeys = inject(WrHotkey);\n * const handle = hotkeys.bind('mod+k', () => openCommandPalette());\n * // ...later\n * handle.unbind();\n * ```\n *\n * @see https://ngwr.dev/reference/services/hotkey\n */\n@Service()\nexport class WrHotkey {\n private readonly doc = inject(DOCUMENT);\n private readonly zone = inject(NgZone);\n private readonly platform = inject(WrPlatform);\n private readonly destroyRef = inject(DestroyRef);\n\n private readonly isMac = (this.platform.userAgent ?? '').toLowerCase().includes('mac');\n\n /** Bindings grouped by listener target. */\n private readonly registries = new Map<EventTarget, Set<Binding>>();\n\n constructor() {\n // Every listener belongs to this injector. Provided at the root that is the\n // whole application, but a route or component that provides its own\n // `WrHotkey` used to leave its `keydown` listeners on the document after it\n // was destroyed — still dispatching into handlers whose component was gone.\n this.destroyRef.onDestroy(() => {\n for (const target of [...this.listeners.keys()]) this.detach(target);\n this.registries.clear();\n });\n }\n\n /** Register a binding. */\n bind(spec: WrHotkeySpec, handler: (event: KeyboardEvent) => void, options: WrHotkeyOptions = {}): WrHotkeyHandle {\n const parsed = parseHotkeySpec(spec, this.isMac);\n const resolved: Required<WrHotkeyOptions> = { ...FALLBACK_OPTIONS, ...options };\n const target: EventTarget = resolved.element ?? this.doc;\n const binding: Binding = { parsed, handler, options: resolved };\n\n let bucket = this.registries.get(target);\n if (!bucket) {\n bucket = new Set();\n this.registries.set(target, bucket);\n this.attach(target);\n }\n bucket.add(binding);\n\n return {\n unbind: () => {\n // Look the bucket up again rather than closing over it, and let\n // `Set.delete` report whether this binding was still in it. The captured\n // bucket could be a REPLACED one: unbind the last binding, register a\n // new one for the same target, then call the old handle a second time —\n // which is ordinary, a directive releasing on destroy and on an input\n // change — and the stale empty set read as \"nothing left here\", taking\n // the live binding's listener down with it.\n const current = this.registries.get(target);\n if (!current?.delete(binding)) return;\n if (current.size === 0) {\n this.registries.delete(target);\n this.detach(target);\n }\n },\n };\n }\n\n // Internals\n\n private readonly listeners = new Map<EventTarget, EventListener>();\n\n private attach(target: EventTarget): void {\n const listener: EventListener = event => this.dispatch(target, event as KeyboardEvent);\n this.zone.runOutsideAngular(() => target.addEventListener('keydown', listener));\n this.listeners.set(target, listener);\n }\n\n private detach(target: EventTarget): void {\n const listener = this.listeners.get(target);\n if (!listener) return;\n target.removeEventListener('keydown', listener);\n this.listeners.delete(target);\n }\n\n private dispatch(target: EventTarget, event: KeyboardEvent): void {\n const bucket = this.registries.get(target);\n if (!bucket || bucket.size === 0) return;\n\n const matches: Binding[] = [];\n for (const binding of bucket) {\n if (!matchesHotkey(event, binding.parsed)) continue;\n if (!binding.options.allowInInput && isEditableTarget(event.target)) continue;\n matches.push(binding);\n }\n if (matches.length === 0) return;\n\n matches.sort((a, b) => b.options.priority - a.options.priority);\n\n this.zone.run(() => {\n // Two different questions, one flag. `preventDefault` is browser\n // suppression; `defaultPrevented` after a handler ran is how this service\n // reads \"that handler claimed the chord\". Applying the option first and\n // then reading the flag back meant the service saw its OWN mark as a\n // claim, so under the shipped default (`preventDefault: true`) only the\n // top-priority binding on a chord ever ran. Deferring the option's call to\n // the end keeps the flag inside the loop reporting only what a HANDLER\n // did — the rule this class already documents — and leaves a binding free\n // to suppress the browser AND claim the chord. The entry snapshot matters\n // too: another listener earlier in the propagation path may have\n // prevented the event already, and that is nobody's claim here.\n const preventedOnEntry = event.defaultPrevented;\n let suppress = false;\n\n for (const binding of matches) {\n binding.handler(event);\n if (binding.options.preventDefault) suppress = true;\n if (!preventedOnEntry && event.defaultPrevented) break;\n }\n\n if (suppress) event.preventDefault();\n });\n }\n}\n","/**\n * @license\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE\n */\n\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { DestroyRef, Directive, ElementRef, effect, inject, input, output } from '@angular/core';\n\nimport type { WrHotkeyHandle, WrHotkeySpec } from './types';\nimport { WrHotkey } from './wr-hotkey';\n\n/**\n * Declarative wrapper around {@link WrHotkey}.\n *\n * Binds on init (and re-binds when the spec changes), unbinds on destroy.\n * Defaults to global scope so the binding works regardless of focus —\n * pass `[scoped]=\"true\"` to limit it to the host element.\n *\n * @example\n * ```html\n * <button (wrHotkeyMatch)=\"open()\" [wrHotkey]=\"'mod+k'\">Open palette</button>\n * <div tabindex=\"0\" [wrHotkey]=\"'escape'\" [scoped]=\"true\" (wrHotkeyMatch)=\"close()\">…</div>\n * ```\n */\n@Directive({ selector: '[wrHotkey]' })\nexport class WrHotkeyBinding {\n /**\n * The chord to listen for — `'mod+k'`, `'shift+?'`, or the full spec object.\n * `mod` resolves to ⌘ on macOS and Ctrl everywhere else.\n */\n readonly wrHotkey = input.required<WrHotkeySpec>();\n\n /** Scope the binding to the host element instead of `document`. @default false */\n readonly scoped = input(false, { transform: coerceBooleanProperty });\n\n /** Fire even when an input / textarea has focus. @default false */\n readonly allowInInput = input(false, { transform: coerceBooleanProperty });\n\n /** Suppress the default action when the binding fires. @default true */\n readonly preventDefault = input(true, { transform: coerceBooleanProperty });\n\n /** Emits the original KeyboardEvent on match. */\n readonly wrHotkeyMatch = output<KeyboardEvent>();\n\n private readonly hotkeys = inject(WrHotkey);\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n private handle: WrHotkeyHandle | null = null;\n\n constructor() {\n effect(() => {\n this.handle?.unbind();\n this.handle = this.hotkeys.bind(this.wrHotkey(), event => this.wrHotkeyMatch.emit(event), {\n element: this.scoped() ? this.host.nativeElement : undefined,\n allowInInput: this.allowInInput(),\n preventDefault: this.preventDefault(),\n });\n });\n inject(DestroyRef).onDestroy(() => this.handle?.unbind());\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ngwr-hotkey.mjs","names":["DOCUMENT"],"sources":["../../../projects/lib/hotkey/parse-spec.ts","../../../projects/lib/hotkey/wr-hotkey.ts","../../../projects/lib/hotkey/wr-hotkey-binding.ts"],"sourcesContent":["/**\n * @license\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE\n */\n\nimport type { WrHotkeySpec } from './types';\n\n/** Map of user-friendly aliases to canonical `KeyboardEvent.key` strings. */\nconst KEY_ALIASES: Readonly<Record<string, string>> = {\n esc: 'escape',\n space: ' ',\n spacebar: ' ',\n enter: 'enter',\n return: 'enter',\n up: 'arrowup',\n down: 'arrowdown',\n left: 'arrowleft',\n right: 'arrowright',\n del: 'delete',\n};\n\n/** What the US layout prints on each punctuation key, by `KeyboardEvent.code`. */\nconst PUNCTUATION_CODES: Readonly<Record<string, string>> = {\n Backquote: '`',\n Minus: '-',\n Equal: '=',\n BracketLeft: '[',\n BracketRight: ']',\n Backslash: '\\\\',\n Semicolon: ';',\n Quote: \"'\",\n Comma: ',',\n Period: '.',\n Slash: '/',\n};\n\n/** The key a spec names for a physical key, read off the US layout, or `null`. */\nfunction physicalKey(code: string): string | null {\n if (/^Key[A-Z]$/.test(code)) return code.slice(3).toLowerCase();\n if (/^Digit\\d$/.test(code)) return code.slice(5);\n return PUNCTUATION_CODES[code] ?? null;\n}\n\n/** One letter of a script other than Latin: what a Russian, Greek or Hebrew layout types. */\nfunction isNonLatinLetter(key: string): boolean {\n return /^\\p{L}$/u.test(key) && !/^\\p{Script=Latin}$/u.test(key);\n}\n\n/** Normalised representation of a hotkey spec — easy to match against an event. */\ninterface WrParsedHotkey {\n readonly ctrl: boolean;\n readonly alt: boolean;\n readonly shift: boolean;\n readonly meta: boolean;\n /** Lowercased `KeyboardEvent.key` value the spec matches. */\n readonly key: string;\n}\n\n/**\n * Parse a hotkey spec like `'mod+shift+k'` into a normalised structure.\n *\n * @param spec - the spec to parse\n * @param isMac - when true, `mod` resolves to `meta` (Cmd); otherwise `ctrl`\n */\nfunction parseHotkeySpec(spec: WrHotkeySpec, isMac = false): WrParsedHotkey {\n const tokens = spec\n .split('+')\n .map(t => t.trim().toLowerCase())\n .filter(Boolean);\n\n let ctrl = false;\n let alt = false;\n let shift = false;\n let meta = false;\n let key = '';\n\n for (const token of tokens) {\n switch (token) {\n case 'ctrl':\n case 'control':\n ctrl = true;\n break;\n case 'alt':\n case 'option':\n alt = true;\n break;\n case 'shift':\n shift = true;\n break;\n case 'cmd':\n case 'command':\n case 'meta':\n case 'super':\n case 'win':\n meta = true;\n break;\n case 'mod':\n if (isMac) meta = true;\n else ctrl = true;\n break;\n default:\n key = KEY_ALIASES[token] ?? token;\n break;\n }\n }\n\n return { ctrl, alt, shift, meta, key };\n}\n\n/**\n * Does `event` satisfy the parsed hotkey?\n *\n * The typed character decides, and the physical key only stands in when that\n * character is a letter of a non-Latin script. On a Russian layout the key\n * labelled K types `л`, so `mod+k` used to be dead for anyone who had not\n * switched to English; the same goes for Greek, Hebrew or Arabic. A Latin\n * layout never falls back, not even on a letter outside ASCII: on Dvorak the key\n * labelled K types `t`, and Turkish `ı` or German `ß` are keys of their own.\n * Nor does a chord holding Alt, since macOS Option and Windows AltGr type a\n * symbol on purpose, `€` on AltGr+E among them.\n */\nfunction matchesHotkey(event: KeyboardEvent, parsed: WrParsedHotkey): boolean {\n if (event.ctrlKey !== parsed.ctrl) return false;\n if (event.altKey !== parsed.alt) return false;\n if (event.shiftKey !== parsed.shift) return false;\n if (event.metaKey !== parsed.meta) return false;\n if (event.key.toLowerCase() === parsed.key) return true;\n return !event.altKey && isNonLatinLetter(event.key) && physicalKey(event.code) === parsed.key;\n}\n\nexport { parseHotkeySpec, matchesHotkey };\nexport type { WrParsedHotkey };\n","/**\n * @license\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE\n */\n\nimport { DOCUMENT } from '@angular/common';\nimport { DestroyRef, Service, NgZone, inject } from '@angular/core';\n\nimport { WrPlatform } from 'ngwr/platform';\n\nimport { matchesHotkey, parseHotkeySpec, type WrParsedHotkey } from './parse-spec';\nimport type { WrHotkeyHandle, WrHotkeyOptions, WrHotkeySpec } from './types';\n\ninterface Binding {\n readonly parsed: WrParsedHotkey;\n readonly handler: (event: KeyboardEvent) => void;\n readonly options: Required<WrHotkeyOptions>;\n}\n\nconst FALLBACK_OPTIONS: Required<WrHotkeyOptions> = {\n element: undefined as unknown as HTMLElement,\n preventDefault: true,\n allowInInput: false,\n priority: 0,\n};\n\nfunction isEditableTarget(target: EventTarget | null): boolean {\n if (!(target instanceof HTMLElement)) return false;\n const tag = target.tagName;\n if (tag === 'INPUT' || tag === 'TEXTAREA' || tag === 'SELECT') return true;\n return target.isContentEditable;\n}\n\n/**\n * Global keybinding registry.\n *\n * Bindings are keyed off `KeyboardEvent.key` + modifier state, and a letter\n * shortcut also fires on a non-Latin layout, by the physical key. Multiple\n * handlers per chord fire in priority order; a handler that calls\n * `event.preventDefault()` stops lower-priority bindings on that key.\n *\n * The listener runs outside Angular — only matched bindings re-enter\n * the zone, so an idle page doesn't trigger CD on every keystroke.\n *\n * Use `[wrHotkey]` for declarative element-scoped bindings.\n *\n * @example\n * ```ts\n * const hotkeys = inject(WrHotkey);\n * const handle = hotkeys.bind('mod+k', () => openCommandPalette());\n * // ...later\n * handle.unbind();\n * ```\n *\n * @see https://ngwr.dev/reference/services/hotkey\n */\n@Service()\nexport class WrHotkey {\n private readonly doc = inject(DOCUMENT);\n private readonly zone = inject(NgZone);\n private readonly platform = inject(WrPlatform);\n private readonly destroyRef = inject(DestroyRef);\n\n private readonly isMac = (this.platform.userAgent ?? '').toLowerCase().includes('mac');\n\n /** Bindings grouped by listener target. */\n private readonly registries = new Map<EventTarget, Set<Binding>>();\n\n constructor() {\n // Every listener belongs to this injector. Provided at the root that is the\n // whole application, but a route or component that provides its own\n // `WrHotkey` used to leave its `keydown` listeners on the document after it\n // was destroyed — still dispatching into handlers whose component was gone.\n this.destroyRef.onDestroy(() => {\n for (const target of [...this.listeners.keys()]) this.detach(target);\n this.registries.clear();\n });\n }\n\n /** Register a binding. */\n bind(spec: WrHotkeySpec, handler: (event: KeyboardEvent) => void, options: WrHotkeyOptions = {}): WrHotkeyHandle {\n const parsed = parseHotkeySpec(spec, this.isMac);\n const resolved: Required<WrHotkeyOptions> = { ...FALLBACK_OPTIONS, ...options };\n const target: EventTarget = resolved.element ?? this.doc;\n const binding: Binding = { parsed, handler, options: resolved };\n\n let bucket = this.registries.get(target);\n if (!bucket) {\n bucket = new Set();\n this.registries.set(target, bucket);\n this.attach(target);\n }\n bucket.add(binding);\n\n return {\n unbind: () => {\n // Look the bucket up again rather than closing over it, and let\n // `Set.delete` report whether this binding was still in it. The captured\n // bucket could be a REPLACED one: unbind the last binding, register a\n // new one for the same target, then call the old handle a second time —\n // which is ordinary, a directive releasing on destroy and on an input\n // change — and the stale empty set read as \"nothing left here\", taking\n // the live binding's listener down with it.\n const current = this.registries.get(target);\n if (!current?.delete(binding)) return;\n if (current.size === 0) {\n this.registries.delete(target);\n this.detach(target);\n }\n },\n };\n }\n\n // Internals\n\n private readonly listeners = new Map<EventTarget, EventListener>();\n\n private attach(target: EventTarget): void {\n const listener: EventListener = event => this.dispatch(target, event as KeyboardEvent);\n this.zone.runOutsideAngular(() => target.addEventListener('keydown', listener));\n this.listeners.set(target, listener);\n }\n\n private detach(target: EventTarget): void {\n const listener = this.listeners.get(target);\n if (!listener) return;\n target.removeEventListener('keydown', listener);\n this.listeners.delete(target);\n }\n\n private dispatch(target: EventTarget, event: KeyboardEvent): void {\n const bucket = this.registries.get(target);\n if (!bucket || bucket.size === 0) return;\n\n const matches: Binding[] = [];\n for (const binding of bucket) {\n if (!matchesHotkey(event, binding.parsed)) continue;\n if (!binding.options.allowInInput && isEditableTarget(event.target)) continue;\n matches.push(binding);\n }\n if (matches.length === 0) return;\n\n matches.sort((a, b) => b.options.priority - a.options.priority);\n\n this.zone.run(() => {\n // Two different questions, one flag. `preventDefault` is browser\n // suppression; `defaultPrevented` after a handler ran is how this service\n // reads \"that handler claimed the chord\". Applying the option first and\n // then reading the flag back meant the service saw its OWN mark as a\n // claim, so under the shipped default (`preventDefault: true`) only the\n // top-priority binding on a chord ever ran. Deferring the option's call to\n // the end keeps the flag inside the loop reporting only what a HANDLER\n // did — the rule this class already documents — and leaves a binding free\n // to suppress the browser AND claim the chord. The entry snapshot matters\n // too: another listener earlier in the propagation path may have\n // prevented the event already, and that is nobody's claim here.\n const preventedOnEntry = event.defaultPrevented;\n let suppress = false;\n\n for (const binding of matches) {\n binding.handler(event);\n if (binding.options.preventDefault) suppress = true;\n if (!preventedOnEntry && event.defaultPrevented) break;\n }\n\n if (suppress) event.preventDefault();\n });\n }\n}\n","/**\n * @license\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE\n */\n\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { DestroyRef, Directive, ElementRef, effect, inject, input, output } from '@angular/core';\n\nimport type { WrHotkeyHandle, WrHotkeySpec } from './types';\nimport { WrHotkey } from './wr-hotkey';\n\n/**\n * Declarative wrapper around {@link WrHotkey}.\n *\n * Binds on init (and re-binds when the spec changes), unbinds on destroy.\n * Defaults to global scope so the binding works regardless of focus —\n * pass `[scoped]=\"true\"` to limit it to the host element.\n *\n * @example\n * ```html\n * <button (wrHotkeyMatch)=\"open()\" [wrHotkey]=\"'mod+k'\">Open palette</button>\n * <div tabindex=\"0\" [wrHotkey]=\"'escape'\" [scoped]=\"true\" (wrHotkeyMatch)=\"close()\">…</div>\n * ```\n */\n@Directive({ selector: '[wrHotkey]' })\nexport class WrHotkeyBinding {\n /**\n * The chord to listen for — `'mod+k'`, `'shift+?'`, or the full spec object.\n * `mod` resolves to ⌘ on macOS and Ctrl everywhere else.\n */\n readonly wrHotkey = input.required<WrHotkeySpec>();\n\n /** Scope the binding to the host element instead of `document`. @default false */\n readonly scoped = input(false, { transform: coerceBooleanProperty });\n\n /** Fire even when an input / textarea has focus. @default false */\n readonly allowInInput = input(false, { transform: coerceBooleanProperty });\n\n /** Suppress the default action when the binding fires. @default true */\n readonly preventDefault = input(true, { transform: coerceBooleanProperty });\n\n /** Emits the original KeyboardEvent on match. */\n readonly wrHotkeyMatch = output<KeyboardEvent>();\n\n private readonly hotkeys = inject(WrHotkey);\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n private handle: WrHotkeyHandle | null = null;\n\n constructor() {\n effect(() => {\n this.handle?.unbind();\n this.handle = this.hotkeys.bind(this.wrHotkey(), event => this.wrHotkeyMatch.emit(event), {\n element: this.scoped() ? this.host.nativeElement : undefined,\n allowInInput: this.allowInInput(),\n preventDefault: this.preventDefault(),\n });\n });\n inject(DestroyRef).onDestroy(() => this.handle?.unbind());\n }\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngwr-i18n-ar.mjs","names":[],"sources":["../../../projects/lib/i18n/ar/public-api.ts"],"sourcesContent":["import { type WrI18nCatalog } from 'ngwr/i18n';\n\n/** Base Arabic catalog for ngwr built-in component strings. */\nexport const wrAr: WrI18nCatalog = {\n common: {\n ok: 'موافق',\n cancel: 'إلغاء',\n close: 'إغلاق',\n confirm: 'تأكيد',\n delete: 'حذف',\n save: 'حفظ',\n edit: 'تعديل',\n add: 'إضافة',\n remove: 'إزالة',\n clear: 'مسح',\n search: 'بحث',\n loading: 'جارٍ التحميل…',\n select: 'تحديد',\n next: 'التالي',\n previous: 'السابق',\n back: 'رجوع',\n today: 'اليوم',\n yesterday: 'أمس',\n tomorrow: 'غدًا',\n of: 'من',\n },\n pagination: {\n prev: 'الصفحة السابقة',\n next: 'الصفحة التالية',\n itemsPerPage: 'عدد العناصر في الصفحة',\n perPage: '{{size}} / صفحة',\n goToPage: 'الانتقال إلى الصفحة {{page}}',\n label: 'ترقيم الصفحات',\n pageOf: 'الصفحة {{current}} من {{total}}',\n range: '{{from}}–{{to}} من {{total}}',\n compact: '{{current}} / {{total}}',\n },\n table: {\n empty: 'لا توجد بيانات',\n loading: 'جارٍ التحميل…',\n sort: 'فرز عمود {{column}}',\n filter: 'تصفية عمود {{column}}',\n selectAll: 'تحديد كل الصفوف',\n selectRow: 'تحديد الصف',\n expandRow: 'تبديل تفاصيل الصف',\n toggleRow: 'تبديل الصفوف الفرعية',\n selectGroup: 'تحديد المجموعة',\n toggleGroup: 'تبديل المجموعة',\n noMatches: 'لا توجد نتائج مطابقة',\n search: 'بحث',\n reset: 'إعادة تعيين',\n },\n eventCalendar: {\n today: 'اليوم',\n previous: 'السابق',\n next: 'التالي',\n month: 'شهر',\n week: 'أسبوع',\n day: 'يوم',\n time: 'الوقت',\n allDay: 'طوال اليوم',\n label: 'التقويم',\n more: '+{{count}} أخرى',\n header: '{{month}} {{year}}',\n range: '{{from}} – {{to}}',\n chipLabel: '{{title}}، {{time}}',\n slotLabel: '{{time}} — {{date}}',\n allDayCellLabel: '{{label}} — {{date}}',\n },\n tour: {\n next: 'التالي',\n back: 'السابق',\n done: 'تم',\n skip: 'تخطي الجولة',\n progress: 'الخطوة {{current}} من {{total}}',\n },\n splitter: {\n divider: 'تغيير حجم الأجزاء',\n },\n stepper: {\n optional: 'اختياري',\n completed: 'مكتملة',\n },\n transfer: {\n source: 'المتاح',\n target: 'المحدد',\n search: 'بحث',\n empty: 'لا شيء هنا',\n selectAll: 'تحديد الكل',\n toTarget: 'النقل إلى المحدد',\n toSource: 'النقل إلى المتاح',\n count: '{{checked}} / {{total}}',\n selectAllAria: '{{pane}} — {{action}}',\n },\n form: {\n optional: 'اختياري',\n },\n select: {\n // The combobox's own accessible name, also read by `wr-tree` and\n // `wr-cascader`. «تحديد» is the word this catalog uses for marking rows and\n // groups that already exist; picking one value out of a list is «اختيار»,\n // which is also the verb the placeholder «اختر…» below opens with.\n label: 'اختيار',\n placeholder: 'اختر…',\n empty: 'لا توجد خيارات',\n clearSelection: 'مسح التحديد',\n removeItem: 'إزالة {{label}}',\n noResults: 'لا توجد نتائج',\n loading: 'جارٍ التحميل…',\n more: '+{{count}} أخرى',\n },\n // `tree` covers both inline display and combobox-mode pickers\n // (replaces the dropped `treeSelect` namespace).\n tree: {\n expand: 'توسيع',\n collapse: 'طي',\n placeholder: 'اختر…',\n clearSelection: 'مسح التحديد',\n removeItem: 'إزالة {{label}}',\n more: '+{{count}} أخرى',\n },\n commandPalette: {\n label: 'لوحة الأوامر',\n placeholder: 'اكتب أمرًا أو ابحث…',\n noResults: 'لا توجد نتائج',\n loading: 'جارٍ البحث…',\n escHint: 'esc',\n },\n empty: {\n noData: 'لا توجد بيانات',\n },\n fileUpload: {\n browse: 'انقر للاستعراض',\n dropZone: 'أو أفلت الملفات هنا',\n removeFile: 'إزالة الملف',\n invalid: 'نوع ملف غير مدعوم',\n tooBig: 'حجم الملف كبير جدًا',\n size: '{{value}} {{unit}}',\n unitByte: 'بايت',\n unitKb: 'كيلوبايت',\n unitMb: 'ميجابايت',\n unitGb: 'جيجابايت',\n unitTb: 'تيرابايت',\n },\n popconfirm: {\n label: 'تأكيد الإجراء',\n confirm: 'تأكيد',\n cancel: 'إلغاء',\n },\n toast: {\n region: 'الإشعارات',\n close: 'إغلاق',\n copy: 'نسخ',\n copied: 'تم النسخ',\n closeAll: 'إغلاق الكل',\n },\n input: {\n showPassword: 'إظهار كلمة المرور',\n hidePassword: 'إخفاء كلمة المرور',\n },\n inputNumber: {\n increment: 'زيادة',\n decrement: 'إنقاص',\n },\n inputOtp: {\n label: 'رمز التحقق',\n digit: 'الرقم {{index}}',\n character: 'الحرف {{index}}',\n },\n anchor: {\n label: 'جدول المحتويات',\n },\n avatar: {\n alt: 'الصورة الرمزية',\n },\n backTop: {\n label: 'العودة إلى الأعلى',\n },\n breadcrumbs: {\n label: 'مسار التنقل',\n },\n burger: {\n label: 'تبديل القائمة',\n },\n calendar: {\n prevMonth: 'الشهر السابق',\n nextMonth: 'الشهر التالي',\n prevYear: 'السنة السابقة',\n nextYear: 'السنة التالية',\n // The month / year pickers are `role=\"listbox\"`, and a listbox owes a\n // name — without one a screen reader announces the control as nothing at\n // all. Caught by `check:state-a11y` once a state finally opened the view.\n monthList: 'الأشهر',\n yearList: 'السنوات',\n prevYears: '12 سنة سابقة',\n nextYears: '12 سنة تالية',\n header: '{{month}} {{year}}',\n yearRange: '{{from}} – {{to}}',\n dayLabel: '{{weekday}}، {{date}}',\n },\n imageCropper: {\n empty: 'لا توجد صورة',\n window: 'منطقة الاقتصاص',\n keyHelp:\n 'مفاتيح الأسهم تحرّك منطقة الاقتصاص. اضغط باستمرار على Alt مع أحد مفاتيح الأسهم لتغيير حجمها، وعلى Shift لخطوات أكبر. ' +\n 'يُعلن عن المنطقة بقيم اليسار والأعلى والعرض والارتفاع بالبكسل داخل الصورة.',\n },\n sortableList: {\n keyHelp:\n 'اضغط مفتاح المسافة لالتقاط هذا العنصر، ثم استخدم مفاتيح الأسهم لتحريكه. ' +\n 'اضغط مفتاح المسافة مرة أخرى لإفلاته، أو Escape لإعادته إلى مكانه.',\n grabbed: 'تم الالتقاط. {{index}} من {{total}}.',\n moved: '{{index}} من {{total}}.',\n dropped: 'تم الإفلات. {{index}} من {{total}}.',\n cancelled: 'تم إلغاء النقل.',\n },\n colorPicker: {\n area: 'التشبع والسطوع، {{saturation}}% و{{brightness}}%',\n hue: 'درجة اللون',\n alpha: 'العتامة',\n formatHex: 'HEX',\n formatRgb: 'RGB',\n formatHsl: 'HSL',\n channelHex: 'HEX',\n channelRed: 'R',\n channelGreen: 'G',\n channelBlue: 'B',\n channelHue: 'H',\n channelSaturation: 'S%',\n channelLightness: 'L%',\n channelAlpha: 'A%',\n },\n barChart: {\n label: 'مخطط شريطي',\n total: 'الإجمالي',\n value: 'القيمة',\n datum: '{{label}}: {{value}}',\n },\n calendarHeatmap: {\n label: 'خريطة حرارية للتقويم',\n cell: '{{date}}: {{count}}',\n },\n lineChart: {\n label: 'مخطط خطي',\n areaLabel: 'مخطط مساحي',\n },\n donutChart: {\n label: 'مخطط دائري مجوف',\n pieLabel: 'مخطط دائري',\n },\n chartLegend: {\n toggleLabel: 'إظهار السلاسل أو إخفاؤها',\n hidden: 'مخفية',\n },\n scatterChart: {\n label: 'مخطط التشتت',\n x: 'X',\n y: 'Y',\n size: 'الحجم',\n },\n radarChart: {\n label: 'مخطط راداري',\n polarAreaLabel: 'مخطط مساحي قطبي',\n },\n heatmapChart: {\n label: 'خريطة حرارية',\n noData: 'لا توجد بيانات',\n },\n funnelChart: {\n label: 'مخطط قمعي',\n stage: 'المرحلة',\n value: 'القيمة',\n fromPrevious: 'من السابقة',\n fromFirst: 'من الأولى',\n ofPrevious: '{{percent}} من السابقة',\n ofFirst: '{{percent}} من الأولى',\n stageName: '{{label}}: {{value}}',\n stageNameOne: '{{label}}: {{value}}، {{conversion}}',\n stageNameBoth: '{{label}}: {{value}}، {{previous}}، {{first}}',\n },\n waterfallChart: {\n label: 'مخطط شلالي',\n step: 'الخطوة',\n change: 'التغيير',\n runningTotal: 'الإجمالي التراكمي',\n changeStep: '{{label}}: {{change}}، الإجمالي التراكمي {{total}}',\n totalStep: '{{label}}: الإجمالي {{total}}',\n },\n treemapChart: {\n label: 'مخطط شجري',\n value: 'القيمة',\n share: 'الحصة',\n },\n bulletChart: {\n label: 'مخطط رصاصي',\n target: 'الهدف',\n summary: '{{label}}: {{value}} من هدف {{target}}',\n summaryNoTarget: '{{label}}: {{value}}',\n summaryNoValue: '{{label}}: لا قيمة، الهدف {{target}}',\n noValue: '{{label}}: لا قيمة',\n },\n boxplotChart: {\n label: 'مخطط الصندوق',\n group: 'المجموعة',\n upperWhisker: 'الشارب العلوي',\n q3: 'Q3',\n median: 'الوسيط',\n q1: 'Q1',\n lowerWhisker: 'الشارب السفلي',\n outliers: 'القيم الشاذة',\n moreOutliers: '+{{count}} أخرى',\n },\n candlestickChart: {\n label: 'مخطط الشموع',\n open: 'الافتتاح',\n high: 'الأعلى',\n low: 'الأدنى',\n close: 'الإغلاق',\n },\n compare: {\n label: 'فاصل المقارنة',\n },\n // The two `roledescription` values are spoken INSTEAD of the role name, so they\n // are bare nouns. Arabic has no letter case, so English's lowercase rule has no\n // counterpart here — what carries it is dropping the definite article.\n carousel: {\n label: 'العرض الدوّار',\n goToSlide: 'الانتقال إلى الشريحة {{index}}',\n prev: 'الشريحة السابقة',\n next: 'الشريحة التالية',\n pagination: 'ترقيم شرائح العرض الدوّار',\n roledescription: 'عرض دوّار',\n slideRoledescription: 'شريحة',\n },\n alert: {\n close: 'إغلاق التنبيه',\n },\n qr: {\n label: 'رمز QR',\n },\n image: {\n viewer: 'معاينة الصورة',\n open: 'فتح المعاينة',\n close: 'إغلاق المعاينة',\n },\n window: {\n close: 'إغلاق',\n minimize: 'تصغير',\n maximize: 'تكبير',\n restore: 'استعادة',\n restoreDown: 'استعادة لأسفل',\n restoreWindow: 'استعادة {{title}}',\n closeWindow: 'إغلاق النافذة',\n untitled: 'بلا عنوان',\n taskbar: 'النوافذ المصغّرة',\n taskbarAll: 'النوافذ المفتوحة',\n taskbarMore: 'نوافذ أخرى: {{count}}',\n moveMode: 'جارٍ نقل النافذة. استخدم مفاتيح الأسهم، وEnter للإنهاء، وEscape للإلغاء.',\n resizeMode: 'جارٍ تغيير حجم النافذة. استخدم مفاتيح الأسهم، وEnter للإنهاء، وEscape للإلغاء.',\n moved: 'نُقلت النافذة إلى {{x}}، {{y}}',\n resized: 'تغيّر حجم النافذة إلى {{width}} في {{height}}',\n },\n dialog: {\n close: 'إغلاق مربع الحوار',\n },\n // Deliberately generic: a popover panel has no universal name, and an unnamed\n // `role=\"dialog\"` announces as nothing at all. Override per instance with\n // `[ariaLabel]`.\n popover: {\n label: 'لوحة منبثقة',\n },\n editor: {\n label: 'نص منسق',\n toolbar: 'التنسيق',\n bold: 'غامق',\n italic: 'مائل',\n underline: 'تسطير',\n strike: 'يتوسطه خط',\n code: 'رمز مضمّن',\n paragraph: 'فقرة',\n heading: 'عنوان {{level}}',\n bulletList: 'قائمة نقطية',\n orderedList: 'قائمة مرقمة',\n blockquote: 'اقتباس',\n codeBlock: 'كتلة رمز',\n link: 'إدراج رابط',\n horizontalRule: 'خط أفقي',\n undo: 'تراجع',\n redo: 'إعادة',\n linkUrl: 'عنوان الرابط',\n linkApply: 'تطبيق',\n linkRemove: 'إزالة الرابط',\n linkInvalid: 'لا يمكن استخدام هذا العنوان رابطًا.',\n shortcut: '{{label}} ({{keys}})',\n keyCtrl: 'Ctrl',\n keyShift: 'Shift',\n keyAlt: 'Alt',\n taskDone: 'تم:',\n taskTodo: 'لم يتم:',\n },\n // Arabic inflects a counted noun differently at one, at two, at three-to-ten\n // and at eleven-and-up, and the interpolator has no plural machinery — so a\n // string that counts ITEMS here does one of two things rather than write\n // \"{{count}} <noun>\" and be wrong at most counts. Either the number goes LAST,\n // after a colon, so no noun has to agree with it (`mention.available`), or\n // the noun is dropped: the overflow chips in `select`, `tree` and\n // `eventCalendar` read «+{{count}} أخرى», the invariable feminine-singular\n // form a non-human plural takes, leaving nothing for the count to inflect.\n marquee: {\n label: 'شريط متحرك',\n link: 'رابط',\n },\n mention: {\n listbox: 'الإشارات',\n available: 'المطابقات المتاحة: {{count}}',\n inserted: 'تم الإدراج: {{label}}',\n },\n drawer: {\n close: 'إغلاق اللوحة',\n },\n datePicker: {\n open: 'فتح التقويم',\n openTime: 'فتح منتقي الوقت',\n openDateTime: 'فتح منتقي التاريخ والوقت',\n openRange: 'فتح تقويم الفترة',\n panel: 'اختيار التاريخ',\n panelTime: 'اختيار الوقت',\n panelDateTime: 'اختيار التاريخ والوقت',\n panelRange: 'اختيار الفترة',\n panelRangeDateTime: 'اختيار الفترة بالتاريخ والوقت',\n rangeStart: 'بداية الفترة',\n rangeEnd: 'نهاية الفترة',\n startTime: 'وقت البدء',\n endTime: 'وقت الانتهاء',\n hours: 'الساعات',\n minutes: 'الدقائق',\n seconds: 'الثواني',\n incrementHours: 'زيادة الساعات',\n decrementHours: 'إنقاص الساعات',\n incrementMinutes: 'زيادة الدقائق',\n decrementMinutes: 'إنقاص الدقائق',\n incrementSeconds: 'زيادة الثواني',\n decrementSeconds: 'إنقاص الثواني',\n toggleAmPm: 'تبديل ص / م',\n am: 'ص',\n pm: 'م',\n },\n sidebar: {\n label: 'الشريط الجانبي',\n containsCurrent: 'تحتوي على الصفحة الحالية',\n subpages: 'الصفحات الفرعية لـ {{title}}',\n separator: '،',\n },\n spinner: {\n label: 'جارٍ التحميل',\n },\n rating: {\n label: 'التقييم',\n },\n gauge: {\n label: 'عداد',\n },\n graph: {\n label: 'مخطط',\n parents: 'الآباء: {{names}}.',\n children: 'الأبناء: {{names}}.',\n },\n progress: {\n label: 'التقدم',\n },\n meterGroup: {\n label: 'مقياس',\n },\n knob: {\n label: 'القيمة',\n },\n slider: {\n label: 'القيمة',\n lower: 'القيمة الدنيا',\n upper: 'القيمة العليا',\n },\n speedDial: {\n label: 'الإجراءات',\n },\n statistic: {\n delta: '{{value}}{{suffix}}',\n deltaSuffix: '%',\n },\n result: {\n notFound: 'عذرًا، الصفحة التي زرتها غير موجودة.',\n forbidden: 'عذرًا، ليس لديك إذن بالوصول إلى هذه الصفحة.',\n serverError: 'عذرًا، حدث خطأ ما.',\n },\n date: {\n months: {\n jan: 'يناير',\n feb: 'فبراير',\n mar: 'مارس',\n apr: 'أبريل',\n may: 'مايو',\n jun: 'يونيو',\n jul: 'يوليو',\n aug: 'أغسطس',\n sep: 'سبتمبر',\n oct: 'أكتوبر',\n nov: 'نوفمبر',\n dec: 'ديسمبر',\n },\n },\n};\n"],"mappings":"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OAAO;EACP,MAAM;CACP;CACD,SAAS;EACP,SAAS;EACT,WAAW;EACX,UAAU;CACX;CACD,QAAQ,EACN,OAAO,eACR;CACD,YAAY;EACV,MAAM;EACN,UAAU;EACV,cAAc;EACd,WAAW;EACX,OAAO;EACP,WAAW;EACX,eAAe;EACf,YAAY;EACZ,oBAAoB;EACpB,YAAY;EACZ,UAAU;EACV,WAAW;EACX,SAAS;EACT,OAAO;EACP,SAAS;EACT,SAAS;EACT,gBAAgB;EAChB,gBAAgB;EAChB,kBAAkB;EAClB,kBAAkB;EAClB,kBAAkB;EAClB,kBAAkB;EAClB,YAAY;EACZ,IAAI;EACJ,IAAI;CACL;CACD,SAAS;EACP,OAAO;EACP,iBAAiB;EACjB,UAAU;EACV,WAAW;CACZ;CACD,SAAS,EACP,OAAO,eACR;CACD,QAAQ,EACN,OAAO,UACR;CACD,OAAO,EACL,OAAO,OACR;CACD,OAAO;EACL,OAAO;EACP,SAAS;EACT,UAAU;CACX;CACD,UAAU,EACR,OAAO,SACR;CACD,YAAY,EACV,OAAO,QACR;CACD,MAAM,EACJ,OAAO,SACR;CACD,QAAQ;EACN,OAAO;EACP,OAAO;EACP,OAAO;CACR;CACD,WAAW,EACT,OAAO,YACR;CACD,WAAW;EACT,OAAO;EACP,aAAa;CACd;CACD,QAAQ;EACN,UAAU;EACV,WAAW;EACX,aAAa;CACd;CACD,MAAM,EACJ,QAAQ;EACN,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;CACN,EACF;AACF"}
|
|
1
|
+
{"version":3,"file":"ngwr-i18n-ar.mjs","names":[],"sources":["../../../projects/lib/i18n/ar/public-api.ts"],"sourcesContent":["import { type WrI18nCatalog } from 'ngwr/i18n';\n\n/** Base Arabic catalog for ngwr built-in component strings. */\nexport const wrAr: WrI18nCatalog = {\n common: {\n ok: 'موافق',\n cancel: 'إلغاء',\n close: 'إغلاق',\n confirm: 'تأكيد',\n delete: 'حذف',\n save: 'حفظ',\n edit: 'تعديل',\n add: 'إضافة',\n remove: 'إزالة',\n clear: 'مسح',\n search: 'بحث',\n loading: 'جارٍ التحميل…',\n select: 'تحديد',\n next: 'التالي',\n previous: 'السابق',\n back: 'رجوع',\n today: 'اليوم',\n yesterday: 'أمس',\n tomorrow: 'غدًا',\n of: 'من',\n },\n pagination: {\n prev: 'الصفحة السابقة',\n next: 'الصفحة التالية',\n itemsPerPage: 'عدد العناصر في الصفحة',\n perPage: '{{size}} / صفحة',\n goToPage: 'الانتقال إلى الصفحة {{page}}',\n label: 'ترقيم الصفحات',\n pageOf: 'الصفحة {{current}} من {{total}}',\n range: '{{from}}–{{to}} من {{total}}',\n compact: '{{current}} / {{total}}',\n },\n table: {\n empty: 'لا توجد بيانات',\n loading: 'جارٍ التحميل…',\n sort: 'فرز عمود {{column}}',\n filter: 'تصفية عمود {{column}}',\n selectAll: 'تحديد كل الصفوف',\n selectRow: 'تحديد الصف',\n expandRow: 'تبديل تفاصيل الصف',\n toggleRow: 'تبديل الصفوف الفرعية',\n selectGroup: 'تحديد المجموعة',\n toggleGroup: 'تبديل المجموعة',\n noMatches: 'لا توجد نتائج مطابقة',\n search: 'بحث',\n reset: 'إعادة تعيين',\n },\n eventCalendar: {\n today: 'اليوم',\n previous: 'السابق',\n next: 'التالي',\n month: 'شهر',\n week: 'أسبوع',\n day: 'يوم',\n time: 'الوقت',\n allDay: 'طوال اليوم',\n label: 'التقويم',\n more: '+{{count}} أخرى',\n header: '{{month}} {{year}}',\n range: '{{from}} – {{to}}',\n chipLabel: '{{title}}، {{time}}',\n slotLabel: '{{time}} — {{date}}',\n allDayCellLabel: '{{label}} — {{date}}',\n },\n tour: {\n next: 'التالي',\n back: 'السابق',\n done: 'تم',\n skip: 'تخطي الجولة',\n progress: 'الخطوة {{current}} من {{total}}',\n },\n splitter: {\n divider: 'تغيير حجم الأجزاء',\n },\n stepper: {\n optional: 'اختياري',\n completed: 'مكتملة',\n },\n transfer: {\n source: 'المتاح',\n target: 'المحدد',\n search: 'بحث',\n empty: 'لا شيء هنا',\n selectAll: 'تحديد الكل',\n toTarget: 'النقل إلى المحدد',\n toSource: 'النقل إلى المتاح',\n count: '{{checked}} / {{total}}',\n selectAllAria: '{{pane}} — {{action}}',\n },\n form: {\n optional: 'اختياري',\n },\n select: {\n // The combobox's own accessible name, also read by `wr-tree` and\n // `wr-cascader`. «تحديد» is the word this catalog uses for marking rows and\n // groups that already exist; picking one value out of a list is «اختيار»,\n // which is also the verb the placeholder «اختر…» below opens with.\n label: 'اختيار',\n placeholder: 'اختر…',\n empty: 'لا توجد خيارات',\n clearSelection: 'مسح التحديد',\n removeItem: 'إزالة {{label}}',\n noResults: 'لا توجد نتائج',\n loading: 'جارٍ التحميل…',\n loadError: 'تعذّر تحميل النتائج',\n retry: 'إعادة المحاولة',\n more: '+{{count}} أخرى',\n },\n // `tree` covers both inline display and combobox-mode pickers\n // (replaces the dropped `treeSelect` namespace).\n tree: {\n expand: 'توسيع',\n collapse: 'طي',\n placeholder: 'اختر…',\n clearSelection: 'مسح التحديد',\n removeItem: 'إزالة {{label}}',\n more: '+{{count}} أخرى',\n },\n commandPalette: {\n label: 'لوحة الأوامر',\n placeholder: 'اكتب أمرًا أو ابحث…',\n noResults: 'لا توجد نتائج',\n loading: 'جارٍ البحث…',\n escHint: 'esc',\n },\n empty: {\n noData: 'لا توجد بيانات',\n },\n fileUpload: {\n browse: 'انقر للاستعراض',\n dropZone: 'أو أفلت الملفات هنا',\n removeFile: 'إزالة الملف',\n invalid: 'نوع ملف غير مدعوم',\n tooBig: 'حجم الملف كبير جدًا',\n size: '{{value}} {{unit}}',\n unitByte: 'بايت',\n unitKb: 'كيلوبايت',\n unitMb: 'ميجابايت',\n unitGb: 'جيجابايت',\n unitTb: 'تيرابايت',\n },\n popconfirm: {\n label: 'تأكيد الإجراء',\n confirm: 'تأكيد',\n cancel: 'إلغاء',\n },\n toast: {\n region: 'الإشعارات',\n close: 'إغلاق',\n copy: 'نسخ',\n copied: 'تم النسخ',\n closeAll: 'إغلاق الكل',\n },\n input: {\n showPassword: 'إظهار كلمة المرور',\n hidePassword: 'إخفاء كلمة المرور',\n },\n inputNumber: {\n increment: 'زيادة',\n decrement: 'إنقاص',\n },\n inputOtp: {\n label: 'رمز التحقق',\n digit: 'الرقم {{index}}',\n character: 'الحرف {{index}}',\n },\n anchor: {\n label: 'جدول المحتويات',\n },\n avatar: {\n alt: 'الصورة الرمزية',\n },\n backTop: {\n label: 'العودة إلى الأعلى',\n },\n breadcrumbs: {\n label: 'مسار التنقل',\n },\n burger: {\n label: 'تبديل القائمة',\n },\n calendar: {\n prevMonth: 'الشهر السابق',\n nextMonth: 'الشهر التالي',\n prevYear: 'السنة السابقة',\n nextYear: 'السنة التالية',\n // The month / year pickers are `role=\"listbox\"`, and a listbox owes a\n // name — without one a screen reader announces the control as nothing at\n // all. Caught by `check:state-a11y` once a state finally opened the view.\n monthList: 'الأشهر',\n yearList: 'السنوات',\n prevYears: '12 سنة سابقة',\n nextYears: '12 سنة تالية',\n header: '{{month}} {{year}}',\n yearRange: '{{from}} – {{to}}',\n dayLabel: '{{weekday}}، {{date}}',\n },\n imageCropper: {\n empty: 'لا توجد صورة',\n window: 'منطقة الاقتصاص',\n keyHelp:\n 'مفاتيح الأسهم تحرّك منطقة الاقتصاص. اضغط باستمرار على Alt مع أحد مفاتيح الأسهم لتغيير حجمها، وعلى Shift لخطوات أكبر. ' +\n 'يُعلن عن المنطقة بقيم اليسار والأعلى والعرض والارتفاع بالبكسل داخل الصورة.',\n },\n sortableList: {\n keyHelp:\n 'اضغط مفتاح المسافة لالتقاط هذا العنصر، ثم استخدم مفاتيح الأسهم لتحريكه. ' +\n 'اضغط مفتاح المسافة مرة أخرى لإفلاته، أو Escape لإعادته إلى مكانه.',\n grabbed: 'تم الالتقاط. {{index}} من {{total}}.',\n moved: '{{index}} من {{total}}.',\n dropped: 'تم الإفلات. {{index}} من {{total}}.',\n cancelled: 'تم إلغاء النقل.',\n },\n colorPicker: {\n area: 'التشبع والسطوع، {{saturation}}% و{{brightness}}%',\n hue: 'درجة اللون',\n alpha: 'العتامة',\n formatHex: 'HEX',\n formatRgb: 'RGB',\n formatHsl: 'HSL',\n channelHex: 'HEX',\n channelRed: 'R',\n channelGreen: 'G',\n channelBlue: 'B',\n channelHue: 'H',\n channelSaturation: 'S%',\n channelLightness: 'L%',\n channelAlpha: 'A%',\n },\n barChart: {\n label: 'مخطط شريطي',\n total: 'الإجمالي',\n value: 'القيمة',\n datum: '{{label}}: {{value}}',\n },\n calendarHeatmap: {\n label: 'خريطة حرارية للتقويم',\n cell: '{{date}}: {{count}}',\n },\n lineChart: {\n label: 'مخطط خطي',\n areaLabel: 'مخطط مساحي',\n },\n donutChart: {\n label: 'مخطط دائري مجوف',\n pieLabel: 'مخطط دائري',\n },\n chartLegend: {\n toggleLabel: 'إظهار السلاسل أو إخفاؤها',\n hidden: 'مخفية',\n },\n scatterChart: {\n label: 'مخطط التشتت',\n x: 'X',\n y: 'Y',\n size: 'الحجم',\n },\n radarChart: {\n label: 'مخطط راداري',\n polarAreaLabel: 'مخطط مساحي قطبي',\n },\n heatmapChart: {\n label: 'خريطة حرارية',\n noData: 'لا توجد بيانات',\n },\n funnelChart: {\n label: 'مخطط قمعي',\n stage: 'المرحلة',\n value: 'القيمة',\n fromPrevious: 'من السابقة',\n fromFirst: 'من الأولى',\n ofPrevious: '{{percent}} من السابقة',\n ofFirst: '{{percent}} من الأولى',\n stageName: '{{label}}: {{value}}',\n stageNameOne: '{{label}}: {{value}}، {{conversion}}',\n stageNameBoth: '{{label}}: {{value}}، {{previous}}، {{first}}',\n },\n waterfallChart: {\n label: 'مخطط شلالي',\n step: 'الخطوة',\n change: 'التغيير',\n runningTotal: 'الإجمالي التراكمي',\n changeStep: '{{label}}: {{change}}، الإجمالي التراكمي {{total}}',\n totalStep: '{{label}}: الإجمالي {{total}}',\n },\n treemapChart: {\n label: 'مخطط شجري',\n value: 'القيمة',\n share: 'الحصة',\n },\n bulletChart: {\n label: 'مخطط رصاصي',\n target: 'الهدف',\n summary: '{{label}}: {{value}} من هدف {{target}}',\n summaryNoTarget: '{{label}}: {{value}}',\n summaryNoValue: '{{label}}: لا قيمة، الهدف {{target}}',\n noValue: '{{label}}: لا قيمة',\n },\n boxplotChart: {\n label: 'مخطط الصندوق',\n group: 'المجموعة',\n upperWhisker: 'الشارب العلوي',\n q3: 'Q3',\n median: 'الوسيط',\n q1: 'Q1',\n lowerWhisker: 'الشارب السفلي',\n outliers: 'القيم الشاذة',\n moreOutliers: '+{{count}} أخرى',\n },\n candlestickChart: {\n label: 'مخطط الشموع',\n open: 'الافتتاح',\n high: 'الأعلى',\n low: 'الأدنى',\n close: 'الإغلاق',\n },\n compare: {\n label: 'فاصل المقارنة',\n },\n // The two `roledescription` values are spoken INSTEAD of the role name, so they\n // are bare nouns. Arabic has no letter case, so English's lowercase rule has no\n // counterpart here — what carries it is dropping the definite article.\n carousel: {\n label: 'العرض الدوّار',\n goToSlide: 'الانتقال إلى الشريحة {{index}}',\n prev: 'الشريحة السابقة',\n next: 'الشريحة التالية',\n pagination: 'ترقيم شرائح العرض الدوّار',\n roledescription: 'عرض دوّار',\n slideRoledescription: 'شريحة',\n },\n alert: {\n close: 'إغلاق التنبيه',\n },\n qr: {\n label: 'رمز QR',\n },\n image: {\n viewer: 'معاينة الصورة',\n open: 'فتح المعاينة',\n close: 'إغلاق المعاينة',\n },\n window: {\n close: 'إغلاق',\n minimize: 'تصغير',\n maximize: 'تكبير',\n restore: 'استعادة',\n restoreDown: 'استعادة لأسفل',\n restoreWindow: 'استعادة {{title}}',\n closeWindow: 'إغلاق النافذة',\n untitled: 'بلا عنوان',\n taskbar: 'النوافذ المصغّرة',\n taskbarAll: 'النوافذ المفتوحة',\n taskbarMore: 'نوافذ أخرى: {{count}}',\n moveMode: 'جارٍ نقل النافذة. استخدم مفاتيح الأسهم، وEnter للإنهاء، وEscape للإلغاء.',\n resizeMode: 'جارٍ تغيير حجم النافذة. استخدم مفاتيح الأسهم، وEnter للإنهاء، وEscape للإلغاء.',\n moved: 'نُقلت النافذة إلى {{x}}، {{y}}',\n resized: 'تغيّر حجم النافذة إلى {{width}} في {{height}}',\n },\n dialog: {\n close: 'إغلاق مربع الحوار',\n },\n // Deliberately generic: a popover panel has no universal name, and an unnamed\n // `role=\"dialog\"` announces as nothing at all. Override per instance with\n // `[ariaLabel]`.\n popover: {\n label: 'لوحة منبثقة',\n },\n editor: {\n label: 'نص منسق',\n toolbar: 'التنسيق',\n bold: 'غامق',\n italic: 'مائل',\n underline: 'تسطير',\n strike: 'يتوسطه خط',\n code: 'رمز مضمّن',\n paragraph: 'فقرة',\n heading: 'عنوان {{level}}',\n bulletList: 'قائمة نقطية',\n orderedList: 'قائمة مرقمة',\n blockquote: 'اقتباس',\n codeBlock: 'كتلة رمز',\n link: 'إدراج رابط',\n horizontalRule: 'خط أفقي',\n undo: 'تراجع',\n redo: 'إعادة',\n linkUrl: 'عنوان الرابط',\n linkApply: 'تطبيق',\n linkRemove: 'إزالة الرابط',\n linkInvalid: 'لا يمكن استخدام هذا العنوان رابطًا.',\n shortcut: '{{label}} ({{keys}})',\n keyCtrl: 'Ctrl',\n keyShift: 'Shift',\n keyAlt: 'Alt',\n taskDone: 'تم:',\n taskTodo: 'لم يتم:',\n },\n // Arabic inflects a counted noun differently at one, at two, at three-to-ten\n // and at eleven-and-up, and the interpolator has no plural machinery — so a\n // string that counts ITEMS here does one of two things rather than write\n // \"{{count}} <noun>\" and be wrong at most counts. Either the number goes LAST,\n // after a colon, so no noun has to agree with it (`mention.available`), or\n // the noun is dropped: the overflow chips in `select`, `tree` and\n // `eventCalendar` read «+{{count}} أخرى», the invariable feminine-singular\n // form a non-human plural takes, leaving nothing for the count to inflect.\n marquee: {\n label: 'شريط متحرك',\n link: 'رابط',\n },\n mention: {\n listbox: 'الإشارات',\n available: 'المطابقات المتاحة: {{count}}',\n inserted: 'تم الإدراج: {{label}}',\n },\n drawer: {\n close: 'إغلاق اللوحة',\n },\n datePicker: {\n open: 'فتح التقويم',\n openTime: 'فتح منتقي الوقت',\n openDateTime: 'فتح منتقي التاريخ والوقت',\n openRange: 'فتح تقويم الفترة',\n panel: 'اختيار التاريخ',\n panelTime: 'اختيار الوقت',\n panelDateTime: 'اختيار التاريخ والوقت',\n panelRange: 'اختيار الفترة',\n panelRangeDateTime: 'اختيار الفترة بالتاريخ والوقت',\n rangeStart: 'بداية الفترة',\n rangeEnd: 'نهاية الفترة',\n startTime: 'وقت البدء',\n endTime: 'وقت الانتهاء',\n hours: 'الساعات',\n minutes: 'الدقائق',\n seconds: 'الثواني',\n incrementHours: 'زيادة الساعات',\n decrementHours: 'إنقاص الساعات',\n incrementMinutes: 'زيادة الدقائق',\n decrementMinutes: 'إنقاص الدقائق',\n incrementSeconds: 'زيادة الثواني',\n decrementSeconds: 'إنقاص الثواني',\n toggleAmPm: 'تبديل ص / م',\n am: 'ص',\n pm: 'م',\n },\n sidebar: {\n label: 'الشريط الجانبي',\n containsCurrent: 'تحتوي على الصفحة الحالية',\n subpages: 'الصفحات الفرعية لـ {{title}}',\n separator: '،',\n },\n spinner: {\n label: 'جارٍ التحميل',\n },\n rating: {\n label: 'التقييم',\n },\n gauge: {\n label: 'عداد',\n },\n graph: {\n label: 'مخطط',\n parents: 'الآباء: {{names}}.',\n children: 'الأبناء: {{names}}.',\n },\n progress: {\n label: 'التقدم',\n },\n meterGroup: {\n label: 'مقياس',\n },\n knob: {\n label: 'القيمة',\n },\n slider: {\n label: 'القيمة',\n lower: 'القيمة الدنيا',\n upper: 'القيمة العليا',\n },\n speedDial: {\n label: 'الإجراءات',\n },\n statistic: {\n delta: '{{value}}{{suffix}}',\n deltaSuffix: '%',\n },\n result: {\n notFound: 'عذرًا، الصفحة التي زرتها غير موجودة.',\n forbidden: 'عذرًا، ليس لديك إذن بالوصول إلى هذه الصفحة.',\n serverError: 'عذرًا، حدث خطأ ما.',\n },\n date: {\n months: {\n jan: 'يناير',\n feb: 'فبراير',\n mar: 'مارس',\n apr: 'أبريل',\n may: 'مايو',\n jun: 'يونيو',\n jul: 'يوليو',\n aug: 'أغسطس',\n sep: 'سبتمبر',\n oct: 'أكتوبر',\n nov: 'نوفمبر',\n dec: 'ديسمبر',\n },\n },\n};\n"],"mappings":"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CACX;CASD,SAAS;EACP,OAAO;EACP,MAAM;CACP;CACD,SAAS;EACP,SAAS;EACT,WAAW;EACX,UAAU;CACX;CACD,QAAQ,EACN,OAAO,eACR;CACD,YAAY;EACV,MAAM;EACN,UAAU;EACV,cAAc;EACd,WAAW;EACX,OAAO;EACP,WAAW;EACX,eAAe;EACf,YAAY;EACZ,oBAAoB;EACpB,YAAY;EACZ,UAAU;EACV,WAAW;EACX,SAAS;EACT,OAAO;EACP,SAAS;EACT,SAAS;EACT,gBAAgB;EAChB,gBAAgB;EAChB,kBAAkB;EAClB,kBAAkB;EAClB,kBAAkB;EAClB,kBAAkB;EAClB,YAAY;EACZ,IAAI;EACJ,IAAI;CACL;CACD,SAAS;EACP,OAAO;EACP,iBAAiB;EACjB,UAAU;EACV,WAAW;CACZ;CACD,SAAS,EACP,OAAO,eACR;CACD,QAAQ,EACN,OAAO,UACR;CACD,OAAO,EACL,OAAO,OACR;CACD,OAAO;EACL,OAAO;EACP,SAAS;EACT,UAAU;CACX;CACD,UAAU,EACR,OAAO,SACR;CACD,YAAY,EACV,OAAO,QACR;CACD,MAAM,EACJ,OAAO,SACR;CACD,QAAQ;EACN,OAAO;EACP,OAAO;EACP,OAAO;CACR;CACD,WAAW,EACT,OAAO,YACR;CACD,WAAW;EACT,OAAO;EACP,aAAa;CACd;CACD,QAAQ;EACN,UAAU;EACV,WAAW;EACX,aAAa;CACd;CACD,MAAM,EACJ,QAAQ;EACN,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;CACN,EACF;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngwr-i18n-cs.mjs","names":[],"sources":["../../../projects/lib/i18n/cs/public-api.ts"],"sourcesContent":["import { type WrI18nCatalog } from 'ngwr/i18n';\n\n/** Base Czech catalog for ngwr built-in component strings. */\nexport const wrCs: WrI18nCatalog = {\n common: {\n ok: 'OK',\n cancel: 'Zrušit',\n close: 'Zavřít',\n confirm: 'Potvrdit',\n delete: 'Smazat',\n save: 'Uložit',\n edit: 'Upravit',\n add: 'Přidat',\n remove: 'Odebrat',\n clear: 'Vymazat',\n search: 'Hledat',\n loading: 'Načítání…',\n select: 'Vybrat',\n next: 'Další',\n previous: 'Předchozí',\n back: 'Zpět',\n today: 'Dnes',\n yesterday: 'Včera',\n tomorrow: 'Zítra',\n of: 'z',\n },\n pagination: {\n prev: 'Předchozí stránka',\n next: 'Další stránka',\n itemsPerPage: 'Položek na stránku',\n perPage: '{{size}} / str.',\n goToPage: 'Přejít na stránku {{page}}',\n label: 'Stránkování',\n pageOf: 'Stránka {{current}} z {{total}}',\n range: '{{from}}–{{to}} z {{total}}',\n compact: '{{current}} / {{total}}',\n },\n table: {\n empty: 'Žádná data',\n loading: 'Načítání…',\n sort: 'Seřadit sloupec {{column}}',\n filter: 'Filtrovat sloupec {{column}}',\n selectAll: 'Vybrat všechny řádky',\n selectRow: 'Vybrat řádek',\n expandRow: 'Přepnout podrobnosti řádku',\n toggleRow: 'Přepnout podřízené řádky',\n selectGroup: 'Vybrat skupinu',\n toggleGroup: 'Přepnout skupinu',\n noMatches: 'Žádné shody',\n search: 'Hledat',\n reset: 'Resetovat',\n },\n eventCalendar: {\n today: 'Dnes',\n previous: 'Předchozí',\n next: 'Další',\n month: 'Měsíc',\n week: 'Týden',\n day: 'Den',\n time: 'Čas',\n allDay: 'Celý den',\n label: 'Kalendář',\n more: 'Další: {{count}}',\n header: '{{month}} {{year}}',\n range: '{{from}} – {{to}}',\n chipLabel: '{{title}}, {{time}}',\n slotLabel: '{{time}} — {{date}}',\n allDayCellLabel: '{{label}} — {{date}}',\n },\n tour: {\n next: 'Další',\n back: 'Zpět',\n done: 'Hotovo',\n skip: 'Přeskočit',\n progress: 'Krok {{current}} z {{total}}',\n },\n splitter: {\n divider: 'Změnit velikost panelů',\n },\n stepper: {\n optional: 'nepovinné',\n completed: 'dokončeno',\n },\n transfer: {\n source: 'Dostupné',\n target: 'Vybrané',\n search: 'Hledat',\n empty: 'Nic tu není',\n selectAll: 'Vybrat vše',\n toTarget: 'Přesunout mezi vybrané',\n toSource: 'Vrátit mezi dostupné',\n count: '{{checked}} / {{total}}',\n selectAllAria: '{{pane}} — {{action}}',\n },\n form: {\n optional: 'nepovinné',\n },\n select: {\n label: 'Vybrat',\n placeholder: 'Vyberte…',\n empty: 'Žádné možnosti',\n clearSelection: 'Zrušit výběr',\n removeItem: 'Odebrat {{label}}',\n noResults: 'Žádné výsledky',\n loading: 'Načítání…',\n more: 'Další: {{count}}',\n },\n tree: {\n expand: 'Rozbalit',\n collapse: 'Sbalit',\n placeholder: 'Vyberte…',\n clearSelection: 'Zrušit výběr',\n removeItem: 'Odebrat {{label}}',\n more: 'Další: {{count}}',\n },\n commandPalette: {\n label: 'Paleta příkazů',\n placeholder: 'Zadejte příkaz nebo hledejte…',\n noResults: 'Žádné výsledky',\n loading: 'Hledání…',\n escHint: 'esc',\n },\n empty: {\n noData: 'Žádná data',\n },\n fileUpload: {\n browse: 'Kliknutím vyberte',\n dropZone: 'nebo sem přetáhněte soubory',\n removeFile: 'Odebrat soubor',\n invalid: 'Nepodporovaný typ souboru',\n tooBig: 'Soubor je příliš velký',\n size: '{{value}} {{unit}}',\n unitByte: 'B',\n unitKb: 'kB',\n unitMb: 'MB',\n unitGb: 'GB',\n unitTb: 'TB',\n },\n popconfirm: {\n label: 'Potvrzení akce',\n confirm: 'Potvrdit',\n cancel: 'Zrušit',\n },\n toast: {\n region: 'Oznámení',\n close: 'Zavřít',\n copy: 'Kopírovat',\n copied: 'Zkopírováno',\n closeAll: 'Zavřít vše',\n },\n input: {\n showPassword: 'Zobrazit heslo',\n hidePassword: 'Skrýt heslo',\n },\n inputNumber: {\n increment: 'Zvýšit',\n decrement: 'Snížit',\n },\n inputOtp: {\n label: 'Ověřovací kód',\n digit: 'Číslice {{index}}',\n character: 'Znak {{index}}',\n },\n anchor: {\n label: 'Obsah',\n },\n avatar: {\n alt: 'Avatar',\n },\n backTop: {\n label: 'Zpět nahoru',\n },\n breadcrumbs: {\n label: 'Drobečková navigace',\n },\n burger: {\n label: 'Přepnout nabídku',\n },\n calendar: {\n prevMonth: 'Předchozí měsíc',\n nextMonth: 'Další měsíc',\n prevYear: 'Předchozí rok',\n nextYear: 'Další rok',\n monthList: 'Měsíce',\n yearList: 'Roky',\n prevYears: 'Předchozích 12 let',\n nextYears: 'Dalších 12 let',\n header: '{{month}} {{year}}',\n yearRange: '{{from}} – {{to}}',\n dayLabel: '{{weekday}}, {{date}}',\n },\n imageCropper: {\n empty: 'Žádný obrázek',\n window: 'Oblast oříznutí',\n keyHelp:\n 'Šipky posouvají výřez. Alt se šipkou mění jeho velikost, Shift zvětšuje krok. ' +\n 'Výřez se oznamuje jako pozice zleva, pozice shora, šířka a výška v pixelech obrázku.',\n },\n sortableList: {\n keyHelp:\n 'Mezerníkem položku uchopíte, šipkami ji přesunete. ' +\n 'Dalším stisknutím mezerníku ji položíte, klávesou Escape ji vrátíte zpět.',\n grabbed: 'Uchopeno. {{index}} z {{total}}.',\n moved: '{{index}} z {{total}}.',\n dropped: 'Položeno. {{index}} z {{total}}.',\n cancelled: 'Přesun zrušen.',\n },\n colorPicker: {\n area: 'Sytost a jas, {{saturation}} % a {{brightness}} %',\n hue: 'Odstín',\n alpha: 'Krytí',\n formatHex: 'HEX',\n formatRgb: 'RGB',\n formatHsl: 'HSL',\n channelHex: 'HEX',\n channelRed: 'R',\n channelGreen: 'G',\n channelBlue: 'B',\n channelHue: 'H',\n channelSaturation: 'S%',\n channelLightness: 'L%',\n channelAlpha: 'A%',\n },\n barChart: {\n label: 'Sloupcový graf',\n total: 'Celkem',\n value: 'Hodnota',\n datum: '{{label}}: {{value}}',\n },\n calendarHeatmap: {\n label: 'Kalendářní tepelná mapa',\n cell: '{{date}}: {{count}}',\n },\n lineChart: {\n label: 'Spojnicový graf',\n areaLabel: 'Plošný graf',\n },\n donutChart: {\n label: 'Prstencový graf',\n pieLabel: 'Koláčový graf',\n },\n chartLegend: {\n toggleLabel: 'Přepnout viditelnost řad',\n hidden: 'skryto',\n },\n scatterChart: {\n label: 'Bodový graf',\n x: 'X',\n y: 'Y',\n size: 'Velikost',\n },\n radarChart: {\n label: 'Paprskový graf',\n polarAreaLabel: 'Polární plošný graf',\n },\n heatmapChart: {\n label: 'Teplotní mapa',\n noData: 'Žádná data',\n },\n funnelChart: {\n label: 'Trychtýřový graf',\n stage: 'Fáze',\n value: 'Hodnota',\n fromPrevious: 'Z předchozí',\n fromFirst: 'Z první',\n ofPrevious: '{{percent}} z předchozí',\n ofFirst: '{{percent}} z první',\n stageName: '{{label}}: {{value}}',\n stageNameOne: '{{label}}: {{value}}, {{conversion}}',\n stageNameBoth: '{{label}}: {{value}}, {{previous}}, {{first}}',\n },\n waterfallChart: {\n label: 'Vodopádový graf',\n step: 'Krok',\n change: 'Změna',\n runningTotal: 'Průběžný součet',\n changeStep: '{{label}}: {{change}}, průběžný součet {{total}}',\n totalStep: '{{label}}: součet {{total}}',\n },\n treemapChart: {\n label: 'Stromová mapa',\n value: 'Hodnota',\n share: 'Podíl',\n },\n bulletChart: {\n label: 'Odrážkový graf',\n target: 'Cíl',\n summary: '{{label}}: {{value}} z cíle {{target}}',\n summaryNoTarget: '{{label}}: {{value}}',\n summaryNoValue: '{{label}}: bez hodnoty, cíl {{target}}',\n noValue: '{{label}}: bez hodnoty',\n },\n boxplotChart: {\n label: 'Krabicový graf',\n group: 'Skupina',\n upperWhisker: 'Horní vous',\n q3: 'Q3',\n median: 'Medián',\n q1: 'Q1',\n lowerWhisker: 'Dolní vous',\n outliers: 'Odlehlé hodnoty',\n moreOutliers: 'ještě {{count}}',\n },\n candlestickChart: {\n label: 'Svíčkový graf',\n open: 'Otevření',\n high: 'Maximum',\n low: 'Minimum',\n close: 'Uzavření',\n },\n compare: {\n label: 'Oddělovač porovnání',\n },\n carousel: {\n label: 'Karusel',\n goToSlide: 'Přejít na snímek {{index}}',\n prev: 'Předchozí snímek',\n next: 'Další snímek',\n pagination: 'Stránkování karuselu',\n roledescription: 'karusel',\n slideRoledescription: 'snímek',\n },\n alert: {\n close: 'Zavřít upozornění',\n },\n qr: {\n label: 'QR kód',\n },\n image: {\n viewer: 'Náhled obrázku',\n open: 'Otevřít náhled',\n close: 'Zavřít náhled',\n },\n window: {\n close: 'Zavřít',\n minimize: 'Minimalizovat',\n maximize: 'Maximalizovat',\n restore: 'Obnovit',\n restoreDown: 'Obnovit velikost',\n restoreWindow: 'Obnovit {{title}}',\n closeWindow: 'Zavřít okno',\n untitled: 'Bez názvu',\n taskbar: 'Minimalizovaná okna',\n taskbarAll: 'Otevřená okna',\n taskbarMore: 'Další okna: {{count}}',\n moveMode: 'Přesouvání okna. Použijte šipky, Enter pro dokončení a Escape pro zrušení.',\n resizeMode: 'Změna velikosti okna. Použijte šipky, Enter pro dokončení a Escape pro zrušení.',\n moved: 'Okno přesunuto na {{x}}, {{y}}',\n resized: 'Velikost okna změněna na {{width}} krát {{height}}',\n },\n dialog: {\n close: 'Zavřít dialog',\n },\n popover: {\n label: 'Vyskakovací panel',\n },\n editor: {\n label: 'Formátovaný text',\n toolbar: 'Formátování',\n bold: 'Tučné',\n italic: 'Kurzíva',\n underline: 'Podtržené',\n strike: 'Přeškrtnuté',\n code: 'Kód v textu',\n paragraph: 'Odstavec',\n heading: 'Nadpis {{level}}',\n bulletList: 'Odrážkový seznam',\n orderedList: 'Číslovaný seznam',\n blockquote: 'Citace',\n codeBlock: 'Blok kódu',\n link: 'Vložit odkaz',\n horizontalRule: 'Vodorovná čára',\n undo: 'Zpět',\n redo: 'Znovu',\n linkUrl: 'Adresa odkazu',\n linkApply: 'Použít',\n linkRemove: 'Odebrat odkaz',\n linkInvalid: 'Tuto adresu nelze použít jako odkaz.',\n shortcut: '{{label}} ({{keys}})',\n keyCtrl: 'Ctrl',\n keyShift: 'Shift',\n keyAlt: 'Alt',\n taskDone: 'Splněno:',\n taskTodo: 'Nesplněno:',\n },\n marquee: {\n label: 'Běžící text',\n link: 'odkaz',\n },\n mention: {\n listbox: 'Zmínky',\n available: 'Počet shod: {{count}}',\n inserted: 'Vloženo: {{label}}',\n },\n drawer: {\n close: 'Zavřít vysouvací panel',\n },\n datePicker: {\n open: 'Otevřít kalendář',\n openTime: 'Otevřít výběr času',\n openDateTime: 'Otevřít výběr data a času',\n openRange: 'Otevřít kalendář pro výběr období',\n panel: 'Výběr data',\n panelTime: 'Výběr času',\n panelDateTime: 'Výběr data a času',\n panelRange: 'Výběr období',\n panelRangeDateTime: 'Výběr období a času',\n rangeStart: 'Začátek období',\n rangeEnd: 'Konec období',\n startTime: 'Čas začátku',\n endTime: 'Čas konce',\n hours: 'Hodiny',\n minutes: 'Minuty',\n seconds: 'Sekundy',\n incrementHours: 'Zvýšit hodiny',\n decrementHours: 'Snížit hodiny',\n incrementMinutes: 'Zvýšit minuty',\n decrementMinutes: 'Snížit minuty',\n incrementSeconds: 'Zvýšit sekundy',\n decrementSeconds: 'Snížit sekundy',\n toggleAmPm: 'Přepnout dop. / odp.',\n am: 'dop.',\n pm: 'odp.',\n },\n sidebar: {\n label: 'Postranní panel',\n containsCurrent: 'obsahuje aktuální stránku',\n subpages: 'Podstránky položky {{title}}',\n separator: ',',\n },\n spinner: {\n label: 'Načítání',\n },\n rating: {\n label: 'Hodnocení',\n },\n gauge: {\n label: 'Ukazatel',\n },\n graph: {\n label: 'Graf',\n parents: 'Rodiče: {{names}}.',\n children: 'Potomci: {{names}}.',\n },\n progress: {\n label: 'Průběh',\n },\n meterGroup: {\n label: 'Měřidlo',\n },\n knob: {\n label: 'Hodnota',\n },\n slider: {\n label: 'Hodnota',\n lower: 'Dolní hodnota',\n upper: 'Horní hodnota',\n },\n speedDial: {\n label: 'Akce',\n },\n statistic: {\n delta: '{{value}}{{suffix}}',\n deltaSuffix: '%',\n },\n result: {\n notFound: 'Omlouváme se, požadovaná stránka neexistuje.',\n forbidden: 'Omlouváme se, k této stránce nemáte přístup.',\n serverError: 'Omlouváme se, něco se pokazilo.',\n },\n date: {\n months: {\n jan: 'leden',\n feb: 'únor',\n mar: 'březen',\n apr: 'duben',\n may: 'květen',\n jun: 'červen',\n jul: 'červenec',\n aug: 'srpen',\n sep: 'září',\n oct: 'říjen',\n nov: 'listopad',\n dec: 'prosinec',\n },\n },\n};\n"],"mappings":"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AO;EACP,MAAM;CACP;CACD,SAAS;EACP,SAAS;EACT,WAAW;EACX,UAAU;CACX;CACD,QAAQ,EACN,OAAO,yBACR;CACD,YAAY;EACV,MAAM;EACN,UAAU;EACV,cAAc;EACd,WAAW;EACX,OAAO;EACP,WAAW;EACX,eAAe;EACf,YAAY;EACZ,oBAAoB;EACpB,YAAY;EACZ,UAAU;EACV,WAAW;EACX,SAAS;EACT,OAAO;EACP,SAAS;EACT,SAAS;EACT,gBAAgB;EAChB,gBAAgB;EAChB,kBAAkB;EAClB,kBAAkB;EAClB,kBAAkB;EAClB,kBAAkB;EAClB,YAAY;EACZ,IAAI;EACJ,IAAI;CACL;CACD,SAAS;EACP,OAAO;EACP,iBAAiB;EACjB,UAAU;EACV,WAAW;CACZ;CACD,SAAS,EACP,OAAO,WACR;CACD,QAAQ,EACN,OAAO,YACR;CACD,OAAO,EACL,OAAO,WACR;CACD,OAAO;EACL,OAAO;EACP,SAAS;EACT,UAAU;CACX;CACD,UAAU,EACR,OAAO,SACR;CACD,YAAY,EACV,OAAO,UACR;CACD,MAAM,EACJ,OAAO,UACR;CACD,QAAQ;EACN,OAAO;EACP,OAAO;EACP,OAAO;CACR;CACD,WAAW,EACT,OAAO,OACR;CACD,WAAW;EACT,OAAO;EACP,aAAa;CACd;CACD,QAAQ;EACN,UAAU;EACV,WAAW;EACX,aAAa;CACd;CACD,MAAM,EACJ,QAAQ;EACN,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;CACN,EACF;AACF"}
|
|
1
|
+
{"version":3,"file":"ngwr-i18n-cs.mjs","names":[],"sources":["../../../projects/lib/i18n/cs/public-api.ts"],"sourcesContent":["import { type WrI18nCatalog } from 'ngwr/i18n';\n\n/** Base Czech catalog for ngwr built-in component strings. */\nexport const wrCs: WrI18nCatalog = {\n common: {\n ok: 'OK',\n cancel: 'Zrušit',\n close: 'Zavřít',\n confirm: 'Potvrdit',\n delete: 'Smazat',\n save: 'Uložit',\n edit: 'Upravit',\n add: 'Přidat',\n remove: 'Odebrat',\n clear: 'Vymazat',\n search: 'Hledat',\n loading: 'Načítání…',\n select: 'Vybrat',\n next: 'Další',\n previous: 'Předchozí',\n back: 'Zpět',\n today: 'Dnes',\n yesterday: 'Včera',\n tomorrow: 'Zítra',\n of: 'z',\n },\n pagination: {\n prev: 'Předchozí stránka',\n next: 'Další stránka',\n itemsPerPage: 'Položek na stránku',\n perPage: '{{size}} / str.',\n goToPage: 'Přejít na stránku {{page}}',\n label: 'Stránkování',\n pageOf: 'Stránka {{current}} z {{total}}',\n range: '{{from}}–{{to}} z {{total}}',\n compact: '{{current}} / {{total}}',\n },\n table: {\n empty: 'Žádná data',\n loading: 'Načítání…',\n sort: 'Seřadit sloupec {{column}}',\n filter: 'Filtrovat sloupec {{column}}',\n selectAll: 'Vybrat všechny řádky',\n selectRow: 'Vybrat řádek',\n expandRow: 'Přepnout podrobnosti řádku',\n toggleRow: 'Přepnout podřízené řádky',\n selectGroup: 'Vybrat skupinu',\n toggleGroup: 'Přepnout skupinu',\n noMatches: 'Žádné shody',\n search: 'Hledat',\n reset: 'Resetovat',\n },\n eventCalendar: {\n today: 'Dnes',\n previous: 'Předchozí',\n next: 'Další',\n month: 'Měsíc',\n week: 'Týden',\n day: 'Den',\n time: 'Čas',\n allDay: 'Celý den',\n label: 'Kalendář',\n more: 'Další: {{count}}',\n header: '{{month}} {{year}}',\n range: '{{from}} – {{to}}',\n chipLabel: '{{title}}, {{time}}',\n slotLabel: '{{time}} — {{date}}',\n allDayCellLabel: '{{label}} — {{date}}',\n },\n tour: {\n next: 'Další',\n back: 'Zpět',\n done: 'Hotovo',\n skip: 'Přeskočit',\n progress: 'Krok {{current}} z {{total}}',\n },\n splitter: {\n divider: 'Změnit velikost panelů',\n },\n stepper: {\n optional: 'nepovinné',\n completed: 'dokončeno',\n },\n transfer: {\n source: 'Dostupné',\n target: 'Vybrané',\n search: 'Hledat',\n empty: 'Nic tu není',\n selectAll: 'Vybrat vše',\n toTarget: 'Přesunout mezi vybrané',\n toSource: 'Vrátit mezi dostupné',\n count: '{{checked}} / {{total}}',\n selectAllAria: '{{pane}} — {{action}}',\n },\n form: {\n optional: 'nepovinné',\n },\n select: {\n label: 'Vybrat',\n placeholder: 'Vyberte…',\n empty: 'Žádné možnosti',\n clearSelection: 'Zrušit výběr',\n removeItem: 'Odebrat {{label}}',\n noResults: 'Žádné výsledky',\n loading: 'Načítání…',\n loadError: 'Výsledky se nepodařilo načíst',\n retry: 'Zkusit znovu',\n more: 'Další: {{count}}',\n },\n tree: {\n expand: 'Rozbalit',\n collapse: 'Sbalit',\n placeholder: 'Vyberte…',\n clearSelection: 'Zrušit výběr',\n removeItem: 'Odebrat {{label}}',\n more: 'Další: {{count}}',\n },\n commandPalette: {\n label: 'Paleta příkazů',\n placeholder: 'Zadejte příkaz nebo hledejte…',\n noResults: 'Žádné výsledky',\n loading: 'Hledání…',\n escHint: 'esc',\n },\n empty: {\n noData: 'Žádná data',\n },\n fileUpload: {\n browse: 'Kliknutím vyberte',\n dropZone: 'nebo sem přetáhněte soubory',\n removeFile: 'Odebrat soubor',\n invalid: 'Nepodporovaný typ souboru',\n tooBig: 'Soubor je příliš velký',\n size: '{{value}} {{unit}}',\n unitByte: 'B',\n unitKb: 'kB',\n unitMb: 'MB',\n unitGb: 'GB',\n unitTb: 'TB',\n },\n popconfirm: {\n label: 'Potvrzení akce',\n confirm: 'Potvrdit',\n cancel: 'Zrušit',\n },\n toast: {\n region: 'Oznámení',\n close: 'Zavřít',\n copy: 'Kopírovat',\n copied: 'Zkopírováno',\n closeAll: 'Zavřít vše',\n },\n input: {\n showPassword: 'Zobrazit heslo',\n hidePassword: 'Skrýt heslo',\n },\n inputNumber: {\n increment: 'Zvýšit',\n decrement: 'Snížit',\n },\n inputOtp: {\n label: 'Ověřovací kód',\n digit: 'Číslice {{index}}',\n character: 'Znak {{index}}',\n },\n anchor: {\n label: 'Obsah',\n },\n avatar: {\n alt: 'Avatar',\n },\n backTop: {\n label: 'Zpět nahoru',\n },\n breadcrumbs: {\n label: 'Drobečková navigace',\n },\n burger: {\n label: 'Přepnout nabídku',\n },\n calendar: {\n prevMonth: 'Předchozí měsíc',\n nextMonth: 'Další měsíc',\n prevYear: 'Předchozí rok',\n nextYear: 'Další rok',\n monthList: 'Měsíce',\n yearList: 'Roky',\n prevYears: 'Předchozích 12 let',\n nextYears: 'Dalších 12 let',\n header: '{{month}} {{year}}',\n yearRange: '{{from}} – {{to}}',\n dayLabel: '{{weekday}}, {{date}}',\n },\n imageCropper: {\n empty: 'Žádný obrázek',\n window: 'Oblast oříznutí',\n keyHelp:\n 'Šipky posouvají výřez. Alt se šipkou mění jeho velikost, Shift zvětšuje krok. ' +\n 'Výřez se oznamuje jako pozice zleva, pozice shora, šířka a výška v pixelech obrázku.',\n },\n sortableList: {\n keyHelp:\n 'Mezerníkem položku uchopíte, šipkami ji přesunete. ' +\n 'Dalším stisknutím mezerníku ji položíte, klávesou Escape ji vrátíte zpět.',\n grabbed: 'Uchopeno. {{index}} z {{total}}.',\n moved: '{{index}} z {{total}}.',\n dropped: 'Položeno. {{index}} z {{total}}.',\n cancelled: 'Přesun zrušen.',\n },\n colorPicker: {\n area: 'Sytost a jas, {{saturation}} % a {{brightness}} %',\n hue: 'Odstín',\n alpha: 'Krytí',\n formatHex: 'HEX',\n formatRgb: 'RGB',\n formatHsl: 'HSL',\n channelHex: 'HEX',\n channelRed: 'R',\n channelGreen: 'G',\n channelBlue: 'B',\n channelHue: 'H',\n channelSaturation: 'S%',\n channelLightness: 'L%',\n channelAlpha: 'A%',\n },\n barChart: {\n label: 'Sloupcový graf',\n total: 'Celkem',\n value: 'Hodnota',\n datum: '{{label}}: {{value}}',\n },\n calendarHeatmap: {\n label: 'Kalendářní tepelná mapa',\n cell: '{{date}}: {{count}}',\n },\n lineChart: {\n label: 'Spojnicový graf',\n areaLabel: 'Plošný graf',\n },\n donutChart: {\n label: 'Prstencový graf',\n pieLabel: 'Koláčový graf',\n },\n chartLegend: {\n toggleLabel: 'Přepnout viditelnost řad',\n hidden: 'skryto',\n },\n scatterChart: {\n label: 'Bodový graf',\n x: 'X',\n y: 'Y',\n size: 'Velikost',\n },\n radarChart: {\n label: 'Paprskový graf',\n polarAreaLabel: 'Polární plošný graf',\n },\n heatmapChart: {\n label: 'Teplotní mapa',\n noData: 'Žádná data',\n },\n funnelChart: {\n label: 'Trychtýřový graf',\n stage: 'Fáze',\n value: 'Hodnota',\n fromPrevious: 'Z předchozí',\n fromFirst: 'Z první',\n ofPrevious: '{{percent}} z předchozí',\n ofFirst: '{{percent}} z první',\n stageName: '{{label}}: {{value}}',\n stageNameOne: '{{label}}: {{value}}, {{conversion}}',\n stageNameBoth: '{{label}}: {{value}}, {{previous}}, {{first}}',\n },\n waterfallChart: {\n label: 'Vodopádový graf',\n step: 'Krok',\n change: 'Změna',\n runningTotal: 'Průběžný součet',\n changeStep: '{{label}}: {{change}}, průběžný součet {{total}}',\n totalStep: '{{label}}: součet {{total}}',\n },\n treemapChart: {\n label: 'Stromová mapa',\n value: 'Hodnota',\n share: 'Podíl',\n },\n bulletChart: {\n label: 'Odrážkový graf',\n target: 'Cíl',\n summary: '{{label}}: {{value}} z cíle {{target}}',\n summaryNoTarget: '{{label}}: {{value}}',\n summaryNoValue: '{{label}}: bez hodnoty, cíl {{target}}',\n noValue: '{{label}}: bez hodnoty',\n },\n boxplotChart: {\n label: 'Krabicový graf',\n group: 'Skupina',\n upperWhisker: 'Horní vous',\n q3: 'Q3',\n median: 'Medián',\n q1: 'Q1',\n lowerWhisker: 'Dolní vous',\n outliers: 'Odlehlé hodnoty',\n moreOutliers: 'ještě {{count}}',\n },\n candlestickChart: {\n label: 'Svíčkový graf',\n open: 'Otevření',\n high: 'Maximum',\n low: 'Minimum',\n close: 'Uzavření',\n },\n compare: {\n label: 'Oddělovač porovnání',\n },\n carousel: {\n label: 'Karusel',\n goToSlide: 'Přejít na snímek {{index}}',\n prev: 'Předchozí snímek',\n next: 'Další snímek',\n pagination: 'Stránkování karuselu',\n roledescription: 'karusel',\n slideRoledescription: 'snímek',\n },\n alert: {\n close: 'Zavřít upozornění',\n },\n qr: {\n label: 'QR kód',\n },\n image: {\n viewer: 'Náhled obrázku',\n open: 'Otevřít náhled',\n close: 'Zavřít náhled',\n },\n window: {\n close: 'Zavřít',\n minimize: 'Minimalizovat',\n maximize: 'Maximalizovat',\n restore: 'Obnovit',\n restoreDown: 'Obnovit velikost',\n restoreWindow: 'Obnovit {{title}}',\n closeWindow: 'Zavřít okno',\n untitled: 'Bez názvu',\n taskbar: 'Minimalizovaná okna',\n taskbarAll: 'Otevřená okna',\n taskbarMore: 'Další okna: {{count}}',\n moveMode: 'Přesouvání okna. Použijte šipky, Enter pro dokončení a Escape pro zrušení.',\n resizeMode: 'Změna velikosti okna. Použijte šipky, Enter pro dokončení a Escape pro zrušení.',\n moved: 'Okno přesunuto na {{x}}, {{y}}',\n resized: 'Velikost okna změněna na {{width}} krát {{height}}',\n },\n dialog: {\n close: 'Zavřít dialog',\n },\n popover: {\n label: 'Vyskakovací panel',\n },\n editor: {\n label: 'Formátovaný text',\n toolbar: 'Formátování',\n bold: 'Tučné',\n italic: 'Kurzíva',\n underline: 'Podtržené',\n strike: 'Přeškrtnuté',\n code: 'Kód v textu',\n paragraph: 'Odstavec',\n heading: 'Nadpis {{level}}',\n bulletList: 'Odrážkový seznam',\n orderedList: 'Číslovaný seznam',\n blockquote: 'Citace',\n codeBlock: 'Blok kódu',\n link: 'Vložit odkaz',\n horizontalRule: 'Vodorovná čára',\n undo: 'Zpět',\n redo: 'Znovu',\n linkUrl: 'Adresa odkazu',\n linkApply: 'Použít',\n linkRemove: 'Odebrat odkaz',\n linkInvalid: 'Tuto adresu nelze použít jako odkaz.',\n shortcut: '{{label}} ({{keys}})',\n keyCtrl: 'Ctrl',\n keyShift: 'Shift',\n keyAlt: 'Alt',\n taskDone: 'Splněno:',\n taskTodo: 'Nesplněno:',\n },\n marquee: {\n label: 'Běžící text',\n link: 'odkaz',\n },\n mention: {\n listbox: 'Zmínky',\n available: 'Počet shod: {{count}}',\n inserted: 'Vloženo: {{label}}',\n },\n drawer: {\n close: 'Zavřít vysouvací panel',\n },\n datePicker: {\n open: 'Otevřít kalendář',\n openTime: 'Otevřít výběr času',\n openDateTime: 'Otevřít výběr data a času',\n openRange: 'Otevřít kalendář pro výběr období',\n panel: 'Výběr data',\n panelTime: 'Výběr času',\n panelDateTime: 'Výběr data a času',\n panelRange: 'Výběr období',\n panelRangeDateTime: 'Výběr období a času',\n rangeStart: 'Začátek období',\n rangeEnd: 'Konec období',\n startTime: 'Čas začátku',\n endTime: 'Čas konce',\n hours: 'Hodiny',\n minutes: 'Minuty',\n seconds: 'Sekundy',\n incrementHours: 'Zvýšit hodiny',\n decrementHours: 'Snížit hodiny',\n incrementMinutes: 'Zvýšit minuty',\n decrementMinutes: 'Snížit minuty',\n incrementSeconds: 'Zvýšit sekundy',\n decrementSeconds: 'Snížit sekundy',\n toggleAmPm: 'Přepnout dop. / odp.',\n am: 'dop.',\n pm: 'odp.',\n },\n sidebar: {\n label: 'Postranní panel',\n containsCurrent: 'obsahuje aktuální stránku',\n subpages: 'Podstránky položky {{title}}',\n separator: ',',\n },\n spinner: {\n label: 'Načítání',\n },\n rating: {\n label: 'Hodnocení',\n },\n gauge: {\n label: 'Ukazatel',\n },\n graph: {\n label: 'Graf',\n parents: 'Rodiče: {{names}}.',\n children: 'Potomci: {{names}}.',\n },\n progress: {\n label: 'Průběh',\n },\n meterGroup: {\n label: 'Měřidlo',\n },\n knob: {\n label: 'Hodnota',\n },\n slider: {\n label: 'Hodnota',\n lower: 'Dolní hodnota',\n upper: 'Horní hodnota',\n },\n speedDial: {\n label: 'Akce',\n },\n statistic: {\n delta: '{{value}}{{suffix}}',\n deltaSuffix: '%',\n },\n result: {\n notFound: 'Omlouváme se, požadovaná stránka neexistuje.',\n forbidden: 'Omlouváme se, k této stránce nemáte přístup.',\n serverError: 'Omlouváme se, něco se pokazilo.',\n },\n date: {\n months: {\n jan: 'leden',\n feb: 'únor',\n mar: 'březen',\n apr: 'duben',\n may: 'květen',\n jun: 'červen',\n jul: 'červenec',\n aug: 'srpen',\n sep: 'září',\n oct: 'říjen',\n nov: 'listopad',\n dec: 'prosinec',\n },\n },\n};\n"],"mappings":"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CX;CACD,SAAS;EACP,OAAO;EACP,MAAM;CACP;CACD,SAAS;EACP,SAAS;EACT,WAAW;EACX,UAAU;CACX;CACD,QAAQ,EACN,OAAO,yBACR;CACD,YAAY;EACV,MAAM;EACN,UAAU;EACV,cAAc;EACd,WAAW;EACX,OAAO;EACP,WAAW;EACX,eAAe;EACf,YAAY;EACZ,oBAAoB;EACpB,YAAY;EACZ,UAAU;EACV,WAAW;EACX,SAAS;EACT,OAAO;EACP,SAAS;EACT,SAAS;EACT,gBAAgB;EAChB,gBAAgB;EAChB,kBAAkB;EAClB,kBAAkB;EAClB,kBAAkB;EAClB,kBAAkB;EAClB,YAAY;EACZ,IAAI;EACJ,IAAI;CACL;CACD,SAAS;EACP,OAAO;EACP,iBAAiB;EACjB,UAAU;EACV,WAAW;CACZ;CACD,SAAS,EACP,OAAO,WACR;CACD,QAAQ,EACN,OAAO,YACR;CACD,OAAO,EACL,OAAO,WACR;CACD,OAAO;EACL,OAAO;EACP,SAAS;EACT,UAAU;CACX;CACD,UAAU,EACR,OAAO,SACR;CACD,YAAY,EACV,OAAO,UACR;CACD,MAAM,EACJ,OAAO,UACR;CACD,QAAQ;EACN,OAAO;EACP,OAAO;EACP,OAAO;CACR;CACD,WAAW,EACT,OAAO,OACR;CACD,WAAW;EACT,OAAO;EACP,aAAa;CACd;CACD,QAAQ;EACN,UAAU;EACV,WAAW;EACX,aAAa;CACd;CACD,MAAM,EACJ,QAAQ;EACN,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;CACN,EACF;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngwr-i18n-de.mjs","names":[],"sources":["../../../projects/lib/i18n/de/public-api.ts"],"sourcesContent":["import { type WrI18nCatalog } from 'ngwr/i18n';\n\n/** Base German catalog for ngwr built-in component strings. */\nexport const wrDe: WrI18nCatalog = {\n common: {\n ok: 'OK',\n cancel: 'Abbrechen',\n close: 'Schließen',\n confirm: 'Bestätigen',\n delete: 'Löschen',\n save: 'Speichern',\n edit: 'Bearbeiten',\n add: 'Hinzufügen',\n remove: 'Entfernen',\n clear: 'Leeren',\n search: 'Suchen',\n loading: 'Wird geladen…',\n select: 'Auswählen',\n next: 'Weiter',\n previous: 'Zurück',\n back: 'Zurück',\n today: 'Heute',\n yesterday: 'Gestern',\n tomorrow: 'Morgen',\n of: 'von',\n },\n pagination: {\n prev: 'Vorherige Seite',\n next: 'Nächste Seite',\n itemsPerPage: 'Einträge pro Seite',\n perPage: '{{size}} / Seite',\n goToPage: 'Zu Seite {{page}} wechseln',\n label: 'Seitennavigation',\n pageOf: 'Seite {{current}} von {{total}}',\n range: '{{from}}–{{to}} von {{total}}',\n compact: '{{current}} / {{total}}',\n },\n table: {\n empty: 'Keine Daten',\n loading: 'Wird geladen…',\n sort: 'Spalte {{column}} sortieren',\n filter: 'Spalte {{column}} filtern',\n selectAll: 'Alle Zeilen auswählen',\n selectRow: 'Zeile auswählen',\n expandRow: 'Zeilendetails ein-/ausblenden',\n toggleRow: 'Untergeordnete Zeilen ein-/ausblenden',\n selectGroup: 'Gruppe auswählen',\n toggleGroup: 'Gruppe ein-/ausblenden',\n noMatches: 'Keine Treffer',\n search: 'Suchen',\n reset: 'Zurücksetzen',\n },\n eventCalendar: {\n today: 'Heute',\n previous: 'Zurück',\n next: 'Weiter',\n month: 'Monat',\n week: 'Woche',\n day: 'Tag',\n time: 'Uhrzeit',\n allDay: 'Ganztägig',\n label: 'Kalender',\n more: '+{{count}} weitere',\n header: '{{month}} {{year}}',\n range: '{{from}} – {{to}}',\n chipLabel: '{{title}}, {{time}}',\n slotLabel: '{{time}} — {{date}}',\n allDayCellLabel: '{{label}} — {{date}}',\n },\n tour: {\n next: 'Weiter',\n back: 'Zurück',\n done: 'Fertig',\n skip: 'Tour überspringen',\n progress: 'Schritt {{current}} von {{total}}',\n },\n splitter: {\n divider: 'Bereichsgröße ändern',\n },\n stepper: {\n optional: 'optional',\n completed: 'abgeschlossen',\n },\n transfer: {\n source: 'Verfügbar',\n target: 'Ausgewählt',\n search: 'Suchen',\n empty: 'Nichts vorhanden',\n selectAll: 'Alle auswählen',\n toTarget: 'Zur Auswahl hinzufügen',\n toSource: 'Aus der Auswahl entfernen',\n count: '{{checked}} / {{total}}',\n selectAllAria: '{{pane}} — {{action}}',\n },\n form: {\n optional: 'optional',\n },\n select: {\n // Accessible name of a `role=\"combobox\"`, so a noun rather than the command\n // `Auswählen` — the placeholder below is the one that prompts an action.\n label: 'Auswahl',\n placeholder: 'Auswählen…',\n empty: 'Keine Optionen',\n clearSelection: 'Auswahl aufheben',\n removeItem: '{{label}} entfernen',\n noResults: 'Keine Ergebnisse',\n loading: 'Wird geladen…',\n more: '+{{count}} weitere',\n },\n // `tree` covers both inline display and combobox-mode pickers\n // (replaces the dropped `treeSelect` namespace).\n tree: {\n expand: 'Erweitern',\n collapse: 'Reduzieren',\n placeholder: 'Auswählen…',\n clearSelection: 'Auswahl aufheben',\n removeItem: '{{label}} entfernen',\n more: '+{{count}} weitere',\n },\n commandPalette: {\n label: 'Befehlspalette',\n placeholder: 'Befehl eingeben oder suchen…',\n noResults: 'Keine Ergebnisse',\n loading: 'Suche läuft…',\n escHint: 'esc',\n },\n empty: {\n noData: 'Keine Daten',\n },\n fileUpload: {\n browse: 'Zum Auswählen klicken',\n dropZone: 'oder Dateien hierher ziehen',\n removeFile: 'Datei entfernen',\n invalid: 'Nicht unterstützter Dateityp',\n tooBig: 'Datei zu groß',\n size: '{{value}} {{unit}}',\n unitByte: 'B',\n unitKb: 'KB',\n unitMb: 'MB',\n unitGb: 'GB',\n unitTb: 'TB',\n },\n popconfirm: {\n label: 'Aktion bestätigen',\n confirm: 'Bestätigen',\n cancel: 'Abbrechen',\n },\n toast: {\n region: 'Benachrichtigungen',\n close: 'Schließen',\n copy: 'Kopieren',\n copied: 'Kopiert',\n closeAll: 'Alle schließen',\n },\n input: {\n showPassword: 'Passwort anzeigen',\n hidePassword: 'Passwort ausblenden',\n },\n inputNumber: {\n increment: 'Erhöhen',\n decrement: 'Verringern',\n },\n inputOtp: {\n label: 'Bestätigungscode',\n digit: 'Ziffer {{index}}',\n character: 'Zeichen {{index}}',\n },\n anchor: {\n label: 'Inhaltsverzeichnis',\n },\n avatar: {\n alt: 'Avatar',\n },\n backTop: {\n label: 'Nach oben',\n },\n breadcrumbs: {\n label: 'Navigationspfad',\n },\n burger: {\n label: 'Menü ein-/ausblenden',\n },\n calendar: {\n prevMonth: 'Vorheriger Monat',\n nextMonth: 'Nächster Monat',\n prevYear: 'Vorheriges Jahr',\n nextYear: 'Nächstes Jahr',\n // The month / year pickers are `role=\"listbox\"`, and a listbox owes a\n // name — without one a screen reader announces the control as nothing at\n // all. Caught by `check:state-a11y` once a state finally opened the view.\n monthList: 'Monate',\n yearList: 'Jahre',\n prevYears: 'Vorherige 12 Jahre',\n nextYears: 'Nächste 12 Jahre',\n header: '{{month}} {{year}}',\n yearRange: '{{from}} – {{to}}',\n dayLabel: '{{weekday}}, {{date}}',\n },\n imageCropper: {\n empty: 'Kein Bild',\n window: 'Zuschneidebereich',\n keyHelp:\n 'Mit den Pfeiltasten verschieben Sie den Zuschneidebereich. Halten Sie Alt und eine Pfeiltaste gedrückt, ' +\n 'um die Größe zu ändern, und Umschalt für größere Schritte. Der Bereich wird als Abstand links, ' +\n 'Abstand oben, Breite und Höhe in Bildpixeln angesagt.',\n },\n sortableList: {\n keyHelp:\n 'Drücken Sie die Leertaste, um dieses Element aufzunehmen, und verschieben Sie es dann mit den Pfeiltasten. ' +\n 'Drücken Sie die Leertaste erneut, um es abzulegen, oder Escape, um es an seinen Platz zurückzulegen.',\n grabbed: 'Aufgenommen. {{index}} von {{total}}.',\n moved: '{{index}} von {{total}}.',\n dropped: 'Abgelegt. {{index}} von {{total}}.',\n cancelled: 'Verschieben abgebrochen.',\n },\n colorPicker: {\n area: 'Sättigung und Helligkeit, {{saturation}} % und {{brightness}} %',\n hue: 'Farbton',\n alpha: 'Deckkraft',\n formatHex: 'HEX',\n formatRgb: 'RGB',\n formatHsl: 'HSL',\n channelHex: 'HEX',\n channelRed: 'R',\n channelGreen: 'G',\n channelBlue: 'B',\n channelHue: 'H',\n channelSaturation: 'S%',\n channelLightness: 'L%',\n channelAlpha: 'A%',\n },\n barChart: {\n label: 'Balkendiagramm',\n total: 'Gesamt',\n value: 'Wert',\n datum: '{{label}}: {{value}}',\n },\n calendarHeatmap: {\n label: 'Kalender-Heatmap',\n cell: '{{date}}: {{count}}',\n },\n lineChart: {\n label: 'Liniendiagramm',\n areaLabel: 'Flächendiagramm',\n },\n donutChart: {\n label: 'Ringdiagramm',\n pieLabel: 'Kreisdiagramm',\n },\n chartLegend: {\n toggleLabel: 'Sichtbarkeit der Datenreihen umschalten',\n hidden: 'ausgeblendet',\n },\n scatterChart: {\n label: 'Streudiagramm',\n x: 'X',\n y: 'Y',\n size: 'Größe',\n },\n radarChart: {\n label: 'Netzdiagramm',\n polarAreaLabel: 'Polarflächendiagramm',\n },\n heatmapChart: {\n label: 'Heatmap',\n noData: 'Keine Daten',\n },\n funnelChart: {\n label: 'Trichterdiagramm',\n stage: 'Stufe',\n value: 'Wert',\n fromPrevious: 'Gegenüber vorheriger',\n fromFirst: 'Gegenüber erster',\n ofPrevious: '{{percent}} der vorherigen',\n ofFirst: '{{percent}} der ersten',\n stageName: '{{label}}: {{value}}',\n stageNameOne: '{{label}}: {{value}}, {{conversion}}',\n stageNameBoth: '{{label}}: {{value}}, {{previous}}, {{first}}',\n },\n waterfallChart: {\n label: 'Wasserfalldiagramm',\n step: 'Schritt',\n change: 'Änderung',\n runningTotal: 'Laufende Summe',\n changeStep: '{{label}}: {{change}}, laufende Summe {{total}}',\n totalStep: '{{label}}: Summe {{total}}',\n },\n treemapChart: {\n label: 'Treemap-Diagramm',\n value: 'Wert',\n share: 'Anteil',\n },\n bulletChart: {\n label: 'Bullet-Diagramm',\n target: 'Ziel',\n summary: '{{label}}: {{value}} von Ziel {{target}}',\n summaryNoTarget: '{{label}}: {{value}}',\n summaryNoValue: '{{label}}: kein Wert, Ziel {{target}}',\n noValue: '{{label}}: kein Wert',\n },\n boxplotChart: {\n label: 'Boxplot',\n group: 'Gruppe',\n upperWhisker: 'Oberer Whisker',\n q3: 'Q3',\n median: 'Median',\n q1: 'Q1',\n lowerWhisker: 'Unterer Whisker',\n outliers: 'Ausreißer',\n moreOutliers: '+{{count}} weitere',\n },\n candlestickChart: {\n label: 'Kerzendiagramm',\n open: 'Eröffnung',\n high: 'Hoch',\n low: 'Tief',\n close: 'Schluss',\n },\n compare: {\n label: 'Vergleichsregler',\n },\n // Die beiden `roledescription`-Werte werden ANSTELLE des Rollennamens\n // vorgelesen. Anders als im Englischen bleiben sie großgeschrieben —\n // deutsche Substantive kennen keine Kleinschreibung als Stilmittel.\n carousel: {\n label: 'Karussell',\n goToSlide: 'Zu Folie {{index}} wechseln',\n prev: 'Vorherige Folie',\n next: 'Nächste Folie',\n pagination: 'Karussell-Navigation',\n roledescription: 'Karussell',\n slideRoledescription: 'Folie',\n },\n alert: {\n close: 'Hinweis schließen',\n },\n qr: {\n label: 'QR-Code',\n },\n image: {\n viewer: 'Bildvorschau',\n open: 'Vorschau öffnen',\n close: 'Vorschau schließen',\n },\n window: {\n close: 'Schließen',\n minimize: 'Minimieren',\n maximize: 'Maximieren',\n restore: 'Wiederherstellen',\n restoreDown: 'Verkleinern',\n restoreWindow: '{{title}} wiederherstellen',\n closeWindow: 'Fenster schließen',\n untitled: 'Unbenannt',\n taskbar: 'Minimierte Fenster',\n taskbarAll: 'Geöffnete Fenster',\n taskbarMore: 'Weitere Fenster: {{count}}',\n moveMode:\n 'Fenster wird verschoben. Verwenden Sie die Pfeiltasten, die Eingabetaste zum Beenden und Escape zum Abbrechen.',\n resizeMode:\n 'Fenstergröße wird geändert. Verwenden Sie die Pfeiltasten, die Eingabetaste zum Beenden und Escape zum Abbrechen.',\n moved: 'Fenster verschoben nach {{x}}, {{y}}',\n resized: 'Fenstergröße geändert auf {{width}} mal {{height}}',\n },\n dialog: {\n close: 'Dialog schließen',\n },\n // Bewusst allgemein: eine Popover-Fläche hat keinen universellen Namen, und\n // ein `role=\"dialog\"` ohne Namen wird gar nicht angesagt. Pro Instanz über\n // `[ariaLabel]` überschreiben.\n popover: {\n label: 'Popover',\n },\n editor: {\n label: 'Formatierter Text',\n toolbar: 'Formatierung',\n bold: 'Fett',\n italic: 'Kursiv',\n underline: 'Unterstrichen',\n strike: 'Durchgestrichen',\n code: 'Inline-Code',\n paragraph: 'Absatz',\n heading: 'Überschrift {{level}}',\n bulletList: 'Aufzählung',\n orderedList: 'Nummerierte Liste',\n blockquote: 'Zitat',\n codeBlock: 'Codeblock',\n link: 'Link einfügen',\n horizontalRule: 'Horizontale Linie',\n undo: 'Rückgängig',\n redo: 'Wiederholen',\n linkUrl: 'Linkadresse',\n linkApply: 'Übernehmen',\n linkRemove: 'Link entfernen',\n linkInvalid: 'Diese Adresse kann nicht als Link verwendet werden.',\n shortcut: '{{label}} ({{keys}})',\n keyCtrl: 'Strg',\n keyShift: 'Umschalt',\n keyAlt: 'Alt',\n taskDone: 'Erledigt:',\n taskTodo: 'Offen:',\n },\n // Zahl am Ende und ein Substantiv ohne Pluralform: „Treffer“ lautet im\n // Singular wie im Plural, und der Interpolator beugt nichts.\n marquee: {\n label: 'Laufschrift',\n link: 'Link',\n },\n mention: {\n listbox: 'Erwähnungen',\n available: 'Treffer: {{count}}',\n inserted: 'Eingefügt: {{label}}',\n },\n drawer: {\n close: 'Bereich schließen',\n },\n datePicker: {\n open: 'Kalender öffnen',\n openTime: 'Uhrzeitauswahl öffnen',\n openDateTime: 'Datums- und Uhrzeitauswahl öffnen',\n openRange: 'Kalender für Zeitraum öffnen',\n panel: 'Datum wählen',\n panelTime: 'Uhrzeit wählen',\n panelDateTime: 'Datum und Uhrzeit wählen',\n panelRange: 'Zeitraum wählen',\n panelRangeDateTime: 'Zeitraum mit Uhrzeit wählen',\n rangeStart: 'Beginn des Zeitraums',\n rangeEnd: 'Ende des Zeitraums',\n startTime: 'Startzeit',\n endTime: 'Endzeit',\n hours: 'Stunden',\n minutes: 'Minuten',\n seconds: 'Sekunden',\n incrementHours: 'Stunden erhöhen',\n decrementHours: 'Stunden verringern',\n incrementMinutes: 'Minuten erhöhen',\n decrementMinutes: 'Minuten verringern',\n incrementSeconds: 'Sekunden erhöhen',\n decrementSeconds: 'Sekunden verringern',\n toggleAmPm: 'AM / PM umschalten',\n am: 'AM',\n pm: 'PM',\n },\n sidebar: {\n label: 'Seitenleiste',\n containsCurrent: 'enthält die aktuelle Seite',\n subpages: 'Unterseiten von {{title}}',\n separator: ',',\n },\n spinner: {\n label: 'Wird geladen',\n },\n rating: {\n label: 'Bewertung',\n },\n gauge: {\n label: 'Messanzeige',\n },\n graph: {\n label: 'Graph',\n parents: 'Übergeordnet: {{names}}.',\n children: 'Untergeordnet: {{names}}.',\n },\n progress: {\n label: 'Fortschritt',\n },\n meterGroup: {\n label: 'Messwerte',\n },\n knob: {\n label: 'Wert',\n },\n slider: {\n label: 'Wert',\n lower: 'Unterer Wert',\n upper: 'Oberer Wert',\n },\n speedDial: {\n label: 'Aktionen',\n },\n statistic: {\n // Der Join, den die Sprache besitzt: im Deutschen steht zwischen Zahl und\n // Einheit ein Leerzeichen — „+12,4 %“, nicht „+12,4%“ (DIN 5008), wie auch\n // bei `fileUpload.size` und `colorPicker.area`.\n delta: '{{value}} {{suffix}}',\n deltaSuffix: '%',\n },\n result: {\n notFound: 'Diese Seite existiert leider nicht.',\n forbidden: 'Sie sind leider nicht berechtigt, auf diese Seite zuzugreifen.',\n serverError: 'Leider ist ein Fehler aufgetreten.',\n },\n date: {\n months: {\n jan: 'Januar',\n feb: 'Februar',\n mar: 'März',\n apr: 'April',\n may: 'Mai',\n jun: 'Juni',\n jul: 'Juli',\n aug: 'August',\n sep: 'September',\n oct: 'Oktober',\n nov: 'November',\n dec: 'Dezember',\n },\n },\n};\n"],"mappings":"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AO;EACP,MAAM;CACP;CACD,SAAS;EACP,SAAS;EACT,WAAW;EACX,UAAU;CACX;CACD,QAAQ,EACN,OAAO,oBACR;CACD,YAAY;EACV,MAAM;EACN,UAAU;EACV,cAAc;EACd,WAAW;EACX,OAAO;EACP,WAAW;EACX,eAAe;EACf,YAAY;EACZ,oBAAoB;EACpB,YAAY;EACZ,UAAU;EACV,WAAW;EACX,SAAS;EACT,OAAO;EACP,SAAS;EACT,SAAS;EACT,gBAAgB;EAChB,gBAAgB;EAChB,kBAAkB;EAClB,kBAAkB;EAClB,kBAAkB;EAClB,kBAAkB;EAClB,YAAY;EACZ,IAAI;EACJ,IAAI;CACL;CACD,SAAS;EACP,OAAO;EACP,iBAAiB;EACjB,UAAU;EACV,WAAW;CACZ;CACD,SAAS,EACP,OAAO,eACR;CACD,QAAQ,EACN,OAAO,YACR;CACD,OAAO,EACL,OAAO,cACR;CACD,OAAO;EACL,OAAO;EACP,SAAS;EACT,UAAU;CACX;CACD,UAAU,EACR,OAAO,cACR;CACD,YAAY,EACV,OAAO,YACR;CACD,MAAM,EACJ,OAAO,OACR;CACD,QAAQ;EACN,OAAO;EACP,OAAO;EACP,OAAO;CACR;CACD,WAAW,EACT,OAAO,WACR;CACD,WAAW;EAIT,OAAO;EACP,aAAa;CACd;CACD,QAAQ;EACN,UAAU;EACV,WAAW;EACX,aAAa;CACd;CACD,MAAM,EACJ,QAAQ;EACN,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;CACN,EACF;AACF"}
|
|
1
|
+
{"version":3,"file":"ngwr-i18n-de.mjs","names":[],"sources":["../../../projects/lib/i18n/de/public-api.ts"],"sourcesContent":["import { type WrI18nCatalog } from 'ngwr/i18n';\n\n/** Base German catalog for ngwr built-in component strings. */\nexport const wrDe: WrI18nCatalog = {\n common: {\n ok: 'OK',\n cancel: 'Abbrechen',\n close: 'Schließen',\n confirm: 'Bestätigen',\n delete: 'Löschen',\n save: 'Speichern',\n edit: 'Bearbeiten',\n add: 'Hinzufügen',\n remove: 'Entfernen',\n clear: 'Leeren',\n search: 'Suchen',\n loading: 'Wird geladen…',\n select: 'Auswählen',\n next: 'Weiter',\n previous: 'Zurück',\n back: 'Zurück',\n today: 'Heute',\n yesterday: 'Gestern',\n tomorrow: 'Morgen',\n of: 'von',\n },\n pagination: {\n prev: 'Vorherige Seite',\n next: 'Nächste Seite',\n itemsPerPage: 'Einträge pro Seite',\n perPage: '{{size}} / Seite',\n goToPage: 'Zu Seite {{page}} wechseln',\n label: 'Seitennavigation',\n pageOf: 'Seite {{current}} von {{total}}',\n range: '{{from}}–{{to}} von {{total}}',\n compact: '{{current}} / {{total}}',\n },\n table: {\n empty: 'Keine Daten',\n loading: 'Wird geladen…',\n sort: 'Spalte {{column}} sortieren',\n filter: 'Spalte {{column}} filtern',\n selectAll: 'Alle Zeilen auswählen',\n selectRow: 'Zeile auswählen',\n expandRow: 'Zeilendetails ein-/ausblenden',\n toggleRow: 'Untergeordnete Zeilen ein-/ausblenden',\n selectGroup: 'Gruppe auswählen',\n toggleGroup: 'Gruppe ein-/ausblenden',\n noMatches: 'Keine Treffer',\n search: 'Suchen',\n reset: 'Zurücksetzen',\n },\n eventCalendar: {\n today: 'Heute',\n previous: 'Zurück',\n next: 'Weiter',\n month: 'Monat',\n week: 'Woche',\n day: 'Tag',\n time: 'Uhrzeit',\n allDay: 'Ganztägig',\n label: 'Kalender',\n more: '+{{count}} weitere',\n header: '{{month}} {{year}}',\n range: '{{from}} – {{to}}',\n chipLabel: '{{title}}, {{time}}',\n slotLabel: '{{time}} — {{date}}',\n allDayCellLabel: '{{label}} — {{date}}',\n },\n tour: {\n next: 'Weiter',\n back: 'Zurück',\n done: 'Fertig',\n skip: 'Tour überspringen',\n progress: 'Schritt {{current}} von {{total}}',\n },\n splitter: {\n divider: 'Bereichsgröße ändern',\n },\n stepper: {\n optional: 'optional',\n completed: 'abgeschlossen',\n },\n transfer: {\n source: 'Verfügbar',\n target: 'Ausgewählt',\n search: 'Suchen',\n empty: 'Nichts vorhanden',\n selectAll: 'Alle auswählen',\n toTarget: 'Zur Auswahl hinzufügen',\n toSource: 'Aus der Auswahl entfernen',\n count: '{{checked}} / {{total}}',\n selectAllAria: '{{pane}} — {{action}}',\n },\n form: {\n optional: 'optional',\n },\n select: {\n // Accessible name of a `role=\"combobox\"`, so a noun rather than the command\n // `Auswählen` — the placeholder below is the one that prompts an action.\n label: 'Auswahl',\n placeholder: 'Auswählen…',\n empty: 'Keine Optionen',\n clearSelection: 'Auswahl aufheben',\n removeItem: '{{label}} entfernen',\n noResults: 'Keine Ergebnisse',\n loading: 'Wird geladen…',\n loadError: 'Ergebnisse konnten nicht geladen werden',\n retry: 'Erneut versuchen',\n more: '+{{count}} weitere',\n },\n // `tree` covers both inline display and combobox-mode pickers\n // (replaces the dropped `treeSelect` namespace).\n tree: {\n expand: 'Erweitern',\n collapse: 'Reduzieren',\n placeholder: 'Auswählen…',\n clearSelection: 'Auswahl aufheben',\n removeItem: '{{label}} entfernen',\n more: '+{{count}} weitere',\n },\n commandPalette: {\n label: 'Befehlspalette',\n placeholder: 'Befehl eingeben oder suchen…',\n noResults: 'Keine Ergebnisse',\n loading: 'Suche läuft…',\n escHint: 'esc',\n },\n empty: {\n noData: 'Keine Daten',\n },\n fileUpload: {\n browse: 'Zum Auswählen klicken',\n dropZone: 'oder Dateien hierher ziehen',\n removeFile: 'Datei entfernen',\n invalid: 'Nicht unterstützter Dateityp',\n tooBig: 'Datei zu groß',\n size: '{{value}} {{unit}}',\n unitByte: 'B',\n unitKb: 'KB',\n unitMb: 'MB',\n unitGb: 'GB',\n unitTb: 'TB',\n },\n popconfirm: {\n label: 'Aktion bestätigen',\n confirm: 'Bestätigen',\n cancel: 'Abbrechen',\n },\n toast: {\n region: 'Benachrichtigungen',\n close: 'Schließen',\n copy: 'Kopieren',\n copied: 'Kopiert',\n closeAll: 'Alle schließen',\n },\n input: {\n showPassword: 'Passwort anzeigen',\n hidePassword: 'Passwort ausblenden',\n },\n inputNumber: {\n increment: 'Erhöhen',\n decrement: 'Verringern',\n },\n inputOtp: {\n label: 'Bestätigungscode',\n digit: 'Ziffer {{index}}',\n character: 'Zeichen {{index}}',\n },\n anchor: {\n label: 'Inhaltsverzeichnis',\n },\n avatar: {\n alt: 'Avatar',\n },\n backTop: {\n label: 'Nach oben',\n },\n breadcrumbs: {\n label: 'Navigationspfad',\n },\n burger: {\n label: 'Menü ein-/ausblenden',\n },\n calendar: {\n prevMonth: 'Vorheriger Monat',\n nextMonth: 'Nächster Monat',\n prevYear: 'Vorheriges Jahr',\n nextYear: 'Nächstes Jahr',\n // The month / year pickers are `role=\"listbox\"`, and a listbox owes a\n // name — without one a screen reader announces the control as nothing at\n // all. Caught by `check:state-a11y` once a state finally opened the view.\n monthList: 'Monate',\n yearList: 'Jahre',\n prevYears: 'Vorherige 12 Jahre',\n nextYears: 'Nächste 12 Jahre',\n header: '{{month}} {{year}}',\n yearRange: '{{from}} – {{to}}',\n dayLabel: '{{weekday}}, {{date}}',\n },\n imageCropper: {\n empty: 'Kein Bild',\n window: 'Zuschneidebereich',\n keyHelp:\n 'Mit den Pfeiltasten verschieben Sie den Zuschneidebereich. Halten Sie Alt und eine Pfeiltaste gedrückt, ' +\n 'um die Größe zu ändern, und Umschalt für größere Schritte. Der Bereich wird als Abstand links, ' +\n 'Abstand oben, Breite und Höhe in Bildpixeln angesagt.',\n },\n sortableList: {\n keyHelp:\n 'Drücken Sie die Leertaste, um dieses Element aufzunehmen, und verschieben Sie es dann mit den Pfeiltasten. ' +\n 'Drücken Sie die Leertaste erneut, um es abzulegen, oder Escape, um es an seinen Platz zurückzulegen.',\n grabbed: 'Aufgenommen. {{index}} von {{total}}.',\n moved: '{{index}} von {{total}}.',\n dropped: 'Abgelegt. {{index}} von {{total}}.',\n cancelled: 'Verschieben abgebrochen.',\n },\n colorPicker: {\n area: 'Sättigung und Helligkeit, {{saturation}} % und {{brightness}} %',\n hue: 'Farbton',\n alpha: 'Deckkraft',\n formatHex: 'HEX',\n formatRgb: 'RGB',\n formatHsl: 'HSL',\n channelHex: 'HEX',\n channelRed: 'R',\n channelGreen: 'G',\n channelBlue: 'B',\n channelHue: 'H',\n channelSaturation: 'S%',\n channelLightness: 'L%',\n channelAlpha: 'A%',\n },\n barChart: {\n label: 'Balkendiagramm',\n total: 'Gesamt',\n value: 'Wert',\n datum: '{{label}}: {{value}}',\n },\n calendarHeatmap: {\n label: 'Kalender-Heatmap',\n cell: '{{date}}: {{count}}',\n },\n lineChart: {\n label: 'Liniendiagramm',\n areaLabel: 'Flächendiagramm',\n },\n donutChart: {\n label: 'Ringdiagramm',\n pieLabel: 'Kreisdiagramm',\n },\n chartLegend: {\n toggleLabel: 'Sichtbarkeit der Datenreihen umschalten',\n hidden: 'ausgeblendet',\n },\n scatterChart: {\n label: 'Streudiagramm',\n x: 'X',\n y: 'Y',\n size: 'Größe',\n },\n radarChart: {\n label: 'Netzdiagramm',\n polarAreaLabel: 'Polarflächendiagramm',\n },\n heatmapChart: {\n label: 'Heatmap',\n noData: 'Keine Daten',\n },\n funnelChart: {\n label: 'Trichterdiagramm',\n stage: 'Stufe',\n value: 'Wert',\n fromPrevious: 'Gegenüber vorheriger',\n fromFirst: 'Gegenüber erster',\n ofPrevious: '{{percent}} der vorherigen',\n ofFirst: '{{percent}} der ersten',\n stageName: '{{label}}: {{value}}',\n stageNameOne: '{{label}}: {{value}}, {{conversion}}',\n stageNameBoth: '{{label}}: {{value}}, {{previous}}, {{first}}',\n },\n waterfallChart: {\n label: 'Wasserfalldiagramm',\n step: 'Schritt',\n change: 'Änderung',\n runningTotal: 'Laufende Summe',\n changeStep: '{{label}}: {{change}}, laufende Summe {{total}}',\n totalStep: '{{label}}: Summe {{total}}',\n },\n treemapChart: {\n label: 'Treemap-Diagramm',\n value: 'Wert',\n share: 'Anteil',\n },\n bulletChart: {\n label: 'Bullet-Diagramm',\n target: 'Ziel',\n summary: '{{label}}: {{value}} von Ziel {{target}}',\n summaryNoTarget: '{{label}}: {{value}}',\n summaryNoValue: '{{label}}: kein Wert, Ziel {{target}}',\n noValue: '{{label}}: kein Wert',\n },\n boxplotChart: {\n label: 'Boxplot',\n group: 'Gruppe',\n upperWhisker: 'Oberer Whisker',\n q3: 'Q3',\n median: 'Median',\n q1: 'Q1',\n lowerWhisker: 'Unterer Whisker',\n outliers: 'Ausreißer',\n moreOutliers: '+{{count}} weitere',\n },\n candlestickChart: {\n label: 'Kerzendiagramm',\n open: 'Eröffnung',\n high: 'Hoch',\n low: 'Tief',\n close: 'Schluss',\n },\n compare: {\n label: 'Vergleichsregler',\n },\n // Die beiden `roledescription`-Werte werden ANSTELLE des Rollennamens\n // vorgelesen. Anders als im Englischen bleiben sie großgeschrieben —\n // deutsche Substantive kennen keine Kleinschreibung als Stilmittel.\n carousel: {\n label: 'Karussell',\n goToSlide: 'Zu Folie {{index}} wechseln',\n prev: 'Vorherige Folie',\n next: 'Nächste Folie',\n pagination: 'Karussell-Navigation',\n roledescription: 'Karussell',\n slideRoledescription: 'Folie',\n },\n alert: {\n close: 'Hinweis schließen',\n },\n qr: {\n label: 'QR-Code',\n },\n image: {\n viewer: 'Bildvorschau',\n open: 'Vorschau öffnen',\n close: 'Vorschau schließen',\n },\n window: {\n close: 'Schließen',\n minimize: 'Minimieren',\n maximize: 'Maximieren',\n restore: 'Wiederherstellen',\n restoreDown: 'Verkleinern',\n restoreWindow: '{{title}} wiederherstellen',\n closeWindow: 'Fenster schließen',\n untitled: 'Unbenannt',\n taskbar: 'Minimierte Fenster',\n taskbarAll: 'Geöffnete Fenster',\n taskbarMore: 'Weitere Fenster: {{count}}',\n moveMode:\n 'Fenster wird verschoben. Verwenden Sie die Pfeiltasten, die Eingabetaste zum Beenden und Escape zum Abbrechen.',\n resizeMode:\n 'Fenstergröße wird geändert. Verwenden Sie die Pfeiltasten, die Eingabetaste zum Beenden und Escape zum Abbrechen.',\n moved: 'Fenster verschoben nach {{x}}, {{y}}',\n resized: 'Fenstergröße geändert auf {{width}} mal {{height}}',\n },\n dialog: {\n close: 'Dialog schließen',\n },\n // Bewusst allgemein: eine Popover-Fläche hat keinen universellen Namen, und\n // ein `role=\"dialog\"` ohne Namen wird gar nicht angesagt. Pro Instanz über\n // `[ariaLabel]` überschreiben.\n popover: {\n label: 'Popover',\n },\n editor: {\n label: 'Formatierter Text',\n toolbar: 'Formatierung',\n bold: 'Fett',\n italic: 'Kursiv',\n underline: 'Unterstrichen',\n strike: 'Durchgestrichen',\n code: 'Inline-Code',\n paragraph: 'Absatz',\n heading: 'Überschrift {{level}}',\n bulletList: 'Aufzählung',\n orderedList: 'Nummerierte Liste',\n blockquote: 'Zitat',\n codeBlock: 'Codeblock',\n link: 'Link einfügen',\n horizontalRule: 'Horizontale Linie',\n undo: 'Rückgängig',\n redo: 'Wiederholen',\n linkUrl: 'Linkadresse',\n linkApply: 'Übernehmen',\n linkRemove: 'Link entfernen',\n linkInvalid: 'Diese Adresse kann nicht als Link verwendet werden.',\n shortcut: '{{label}} ({{keys}})',\n keyCtrl: 'Strg',\n keyShift: 'Umschalt',\n keyAlt: 'Alt',\n taskDone: 'Erledigt:',\n taskTodo: 'Offen:',\n },\n // Zahl am Ende und ein Substantiv ohne Pluralform: „Treffer“ lautet im\n // Singular wie im Plural, und der Interpolator beugt nichts.\n marquee: {\n label: 'Laufschrift',\n link: 'Link',\n },\n mention: {\n listbox: 'Erwähnungen',\n available: 'Treffer: {{count}}',\n inserted: 'Eingefügt: {{label}}',\n },\n drawer: {\n close: 'Bereich schließen',\n },\n datePicker: {\n open: 'Kalender öffnen',\n openTime: 'Uhrzeitauswahl öffnen',\n openDateTime: 'Datums- und Uhrzeitauswahl öffnen',\n openRange: 'Kalender für Zeitraum öffnen',\n panel: 'Datum wählen',\n panelTime: 'Uhrzeit wählen',\n panelDateTime: 'Datum und Uhrzeit wählen',\n panelRange: 'Zeitraum wählen',\n panelRangeDateTime: 'Zeitraum mit Uhrzeit wählen',\n rangeStart: 'Beginn des Zeitraums',\n rangeEnd: 'Ende des Zeitraums',\n startTime: 'Startzeit',\n endTime: 'Endzeit',\n hours: 'Stunden',\n minutes: 'Minuten',\n seconds: 'Sekunden',\n incrementHours: 'Stunden erhöhen',\n decrementHours: 'Stunden verringern',\n incrementMinutes: 'Minuten erhöhen',\n decrementMinutes: 'Minuten verringern',\n incrementSeconds: 'Sekunden erhöhen',\n decrementSeconds: 'Sekunden verringern',\n toggleAmPm: 'AM / PM umschalten',\n am: 'AM',\n pm: 'PM',\n },\n sidebar: {\n label: 'Seitenleiste',\n containsCurrent: 'enthält die aktuelle Seite',\n subpages: 'Unterseiten von {{title}}',\n separator: ',',\n },\n spinner: {\n label: 'Wird geladen',\n },\n rating: {\n label: 'Bewertung',\n },\n gauge: {\n label: 'Messanzeige',\n },\n graph: {\n label: 'Graph',\n parents: 'Übergeordnet: {{names}}.',\n children: 'Untergeordnet: {{names}}.',\n },\n progress: {\n label: 'Fortschritt',\n },\n meterGroup: {\n label: 'Messwerte',\n },\n knob: {\n label: 'Wert',\n },\n slider: {\n label: 'Wert',\n lower: 'Unterer Wert',\n upper: 'Oberer Wert',\n },\n speedDial: {\n label: 'Aktionen',\n },\n statistic: {\n // Der Join, den die Sprache besitzt: im Deutschen steht zwischen Zahl und\n // Einheit ein Leerzeichen — „+12,4 %“, nicht „+12,4%“ (DIN 5008), wie auch\n // bei `fileUpload.size` und `colorPicker.area`.\n delta: '{{value}} {{suffix}}',\n deltaSuffix: '%',\n },\n result: {\n notFound: 'Diese Seite existiert leider nicht.',\n forbidden: 'Sie sind leider nicht berechtigt, auf diese Seite zuzugreifen.',\n serverError: 'Leider ist ein Fehler aufgetreten.',\n },\n date: {\n months: {\n jan: 'Januar',\n feb: 'Februar',\n mar: 'März',\n apr: 'April',\n may: 'Mai',\n jun: 'Juni',\n jul: 'Juli',\n aug: 'August',\n sep: 'September',\n oct: 'Oktober',\n nov: 'November',\n dec: 'Dezember',\n },\n },\n};\n"],"mappings":"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CX;CAGD,SAAS;EACP,OAAO;EACP,MAAM;CACP;CACD,SAAS;EACP,SAAS;EACT,WAAW;EACX,UAAU;CACX;CACD,QAAQ,EACN,OAAO,oBACR;CACD,YAAY;EACV,MAAM;EACN,UAAU;EACV,cAAc;EACd,WAAW;EACX,OAAO;EACP,WAAW;EACX,eAAe;EACf,YAAY;EACZ,oBAAoB;EACpB,YAAY;EACZ,UAAU;EACV,WAAW;EACX,SAAS;EACT,OAAO;EACP,SAAS;EACT,SAAS;EACT,gBAAgB;EAChB,gBAAgB;EAChB,kBAAkB;EAClB,kBAAkB;EAClB,kBAAkB;EAClB,kBAAkB;EAClB,YAAY;EACZ,IAAI;EACJ,IAAI;CACL;CACD,SAAS;EACP,OAAO;EACP,iBAAiB;EACjB,UAAU;EACV,WAAW;CACZ;CACD,SAAS,EACP,OAAO,eACR;CACD,QAAQ,EACN,OAAO,YACR;CACD,OAAO,EACL,OAAO,cACR;CACD,OAAO;EACL,OAAO;EACP,SAAS;EACT,UAAU;CACX;CACD,UAAU,EACR,OAAO,cACR;CACD,YAAY,EACV,OAAO,YACR;CACD,MAAM,EACJ,OAAO,OACR;CACD,QAAQ;EACN,OAAO;EACP,OAAO;EACP,OAAO;CACR;CACD,WAAW,EACT,OAAO,WACR;CACD,WAAW;EAIT,OAAO;EACP,aAAa;CACd;CACD,QAAQ;EACN,UAAU;EACV,WAAW;EACX,aAAa;CACd;CACD,MAAM,EACJ,QAAQ;EACN,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;CACN,EACF;AACF"}
|