@dignite/ng.site 1.0.0 → 2.0.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/README.md +16 -2
- package/fesm2022/dignite-ng.site-config.mjs +10 -1
- package/fesm2022/dignite-ng.site-config.mjs.map +1 -1
- package/fesm2022/{dignite-ng.site-content-editor.component-iFWDeYJ9.mjs → dignite-ng.site-content-editor.component-DA6FaJSU.mjs} +2 -2
- package/fesm2022/{dignite-ng.site-content-editor.component-iFWDeYJ9.mjs.map → dignite-ng.site-content-editor.component-DA6FaJSU.mjs.map} +1 -1
- package/fesm2022/{dignite-ng.site-content-types.component-D2jMSSq6.mjs → dignite-ng.site-content-types.component-Dnqe8A4t.mjs} +27 -7
- package/fesm2022/dignite-ng.site-content-types.component-Dnqe8A4t.mjs.map +1 -0
- package/fesm2022/{dignite-ng.site-contents.component-DKuel8w-.mjs → dignite-ng.site-contents.component-Ch5GYIHE.mjs} +2 -2
- package/fesm2022/{dignite-ng.site-contents.component-DKuel8w-.mjs.map → dignite-ng.site-contents.component-Ch5GYIHE.mjs.map} +1 -1
- package/fesm2022/{dignite-ng.site-dignite-ng.site-CsKxqjY9.mjs → dignite-ng.site-dignite-ng.site-BMcNABSG.mjs} +283 -55
- package/fesm2022/dignite-ng.site-dignite-ng.site-BMcNABSG.mjs.map +1 -0
- package/fesm2022/{dignite-ng.site-fields.component-By_YyfIx.mjs → dignite-ng.site-fields.component-BaK27N9k.mjs} +5 -3
- package/fesm2022/dignite-ng.site-fields.component-BaK27N9k.mjs.map +1 -0
- package/fesm2022/{dignite-ng.site-pages.component-S9BEgC4W.mjs → dignite-ng.site-pages.component-BwGyK7jw.mjs} +28 -5
- package/fesm2022/dignite-ng.site-pages.component-BwGyK7jw.mjs.map +1 -0
- package/fesm2022/dignite-ng.site-setting-management.mjs +123 -0
- package/fesm2022/dignite-ng.site-setting-management.mjs.map +1 -0
- package/fesm2022/dignite-ng.site-theme-workbench.component-CA47DnTj.mjs +1206 -0
- package/fesm2022/dignite-ng.site-theme-workbench.component-CA47DnTj.mjs.map +1 -0
- package/fesm2022/dignite-ng.site.mjs +1 -1
- package/package.json +17 -1
- package/types/dignite-ng.site-config.d.ts +2 -1
- package/types/dignite-ng.site-setting-management.d.ts +41 -0
- package/types/dignite-ng.site.d.ts +386 -111
- package/fesm2022/dignite-ng.site-content-types.component-D2jMSSq6.mjs.map +0 -1
- package/fesm2022/dignite-ng.site-dignite-ng.site-CsKxqjY9.mjs.map +0 -1
- package/fesm2022/dignite-ng.site-fields.component-By_YyfIx.mjs.map +0 -1
- package/fesm2022/dignite-ng.site-pages.component-S9BEgC4W.mjs.map +0 -1
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import * as i2 from '@abp/ng.core';
|
|
2
|
+
import { CoreModule, PermissionDirective } from '@abp/ng.core';
|
|
3
|
+
import { ToasterService, ThemeSharedModule } from '@abp/ng.theme.shared';
|
|
4
|
+
import * as i0 from '@angular/core';
|
|
5
|
+
import { inject, signal, computed, ChangeDetectionStrategy, Component, makeEnvironmentProviders, provideAppInitializer } from '@angular/core';
|
|
6
|
+
import * as i1 from '@angular/forms';
|
|
7
|
+
import { FormsModule } from '@angular/forms';
|
|
8
|
+
import { Dignite, eSitePolicyNames } from '@dignite/ng.site';
|
|
9
|
+
import { SettingTabsService } from '@abp/ng.setting-management/config';
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* The languages the site serves, as a tab of Setting Management's page: the whole ordered list: the first is the default, whose pages have no language
|
|
13
|
+
* prefix in their address. The server refuses a tag it does not recognize and canonicalizes the ones it keeps, so the
|
|
14
|
+
* list shown after a save is what it stored.
|
|
15
|
+
*/
|
|
16
|
+
class LanguagesSettingComponent {
|
|
17
|
+
constructor() {
|
|
18
|
+
this.service = inject(Dignite.Site.Admin.Languages.SiteLanguageAdminService);
|
|
19
|
+
this.toaster = inject(ToasterService);
|
|
20
|
+
this.policies = eSitePolicyNames;
|
|
21
|
+
// Signals, not fields: the layout shell is OnPush, and a value set in a subscribe callback would not repaint.
|
|
22
|
+
this.languages = signal([], /* @ts-ignore */
|
|
23
|
+
...(ngDevMode ? [{ debugName: "languages" }] : /* istanbul ignore next */ []));
|
|
24
|
+
this.saved = signal([], /* @ts-ignore */
|
|
25
|
+
...(ngDevMode ? [{ debugName: "saved" }] : /* istanbul ignore next */ []));
|
|
26
|
+
this.newLanguage = signal('', /* @ts-ignore */
|
|
27
|
+
...(ngDevMode ? [{ debugName: "newLanguage" }] : /* istanbul ignore next */ []));
|
|
28
|
+
this.saving = signal(false, /* @ts-ignore */
|
|
29
|
+
...(ngDevMode ? [{ debugName: "saving" }] : /* istanbul ignore next */ []));
|
|
30
|
+
this.isDirty = computed(() => this.languages().join(',') !== this.saved().join(','), /* @ts-ignore */
|
|
31
|
+
...(ngDevMode ? [{ debugName: "isDirty" }] : /* istanbul ignore next */ []));
|
|
32
|
+
this.load();
|
|
33
|
+
}
|
|
34
|
+
load() {
|
|
35
|
+
this.service.get().subscribe(result => this.show(result.enabledLanguages));
|
|
36
|
+
}
|
|
37
|
+
/** Adds the tag typed, once; the server decides whether it is a language. */
|
|
38
|
+
add() {
|
|
39
|
+
const tag = this.newLanguage().trim();
|
|
40
|
+
if (!tag) {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
if (!this.languages().some(language => language.toLowerCase() === tag.toLowerCase())) {
|
|
44
|
+
this.languages.update(list => [...list, tag]);
|
|
45
|
+
}
|
|
46
|
+
this.newLanguage.set('');
|
|
47
|
+
}
|
|
48
|
+
/** The last language cannot go: a site serves at least one. */
|
|
49
|
+
remove(index) {
|
|
50
|
+
if (this.languages().length <= 1) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
this.languages.update(list => list.filter((_, i) => i !== index));
|
|
54
|
+
}
|
|
55
|
+
move(index, offset) {
|
|
56
|
+
const target = index + offset;
|
|
57
|
+
if (target < 0 || target >= this.languages().length) {
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
this.languages.update(list => {
|
|
61
|
+
const next = [...list];
|
|
62
|
+
[next[index], next[target]] = [next[target], next[index]];
|
|
63
|
+
return next;
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
makeDefault(index) {
|
|
67
|
+
if (index <= 0) {
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
this.languages.update(list => [list[index], ...list.filter((_, i) => i !== index)]);
|
|
71
|
+
}
|
|
72
|
+
save() {
|
|
73
|
+
if (this.saving() || !this.isDirty()) {
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
this.saving.set(true);
|
|
77
|
+
this.service.update({ enabledLanguages: this.languages() }).subscribe({
|
|
78
|
+
next: result => {
|
|
79
|
+
this.show(result.enabledLanguages);
|
|
80
|
+
this.saving.set(false);
|
|
81
|
+
this.toaster.success('AbpUi::SavedSuccessfully');
|
|
82
|
+
},
|
|
83
|
+
error: () => this.saving.set(false),
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
show(languages) {
|
|
87
|
+
this.languages.set([...languages]);
|
|
88
|
+
this.saved.set([...languages]);
|
|
89
|
+
}
|
|
90
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.2", ngImport: i0, type: LanguagesSettingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
91
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.2.2", type: LanguagesSettingComponent, isStandalone: true, selector: "site-languages-setting", ngImport: i0, template: "<h4 class=\"mb-1\">{{ 'Site::Languages' | abpLocalization }}</h4>\n<p class=\"text-muted\">{{ 'Site::Languages:Hint' | abpLocalization }}</p>\n\n<ul class=\"list-group mb-3\">\n @for (language of languages(); track language; let i = $index) {\n <li class=\"list-group-item d-flex align-items-center gap-2\">\n <span class=\"fw-semibold\">{{ language }}</span>\n @if (i === 0) {\n <span class=\"badge bg-primary\">{{ 'Site::Languages:Default' | abpLocalization }}</span>\n }\n <span class=\"ms-auto d-flex gap-1\" *abpPermission=\"policies.LanguagesUpdate\">\n @if (i > 0) {\n <button type=\"button\" class=\"btn btn-sm btn-outline-secondary\" (click)=\"makeDefault(i)\">\n {{ 'Site::Languages:MakeDefault' | abpLocalization }}\n </button>\n }\n <button type=\"button\" class=\"btn btn-sm btn-outline-secondary\" [disabled]=\"i === 0\" (click)=\"move(i, -1)\">\n <i class=\"fa fa-arrow-up\"></i>\n </button>\n <button\n type=\"button\"\n class=\"btn btn-sm btn-outline-secondary\"\n [disabled]=\"i === languages().length - 1\"\n (click)=\"move(i, 1)\"\n >\n <i class=\"fa fa-arrow-down\"></i>\n </button>\n <button\n type=\"button\"\n class=\"btn btn-sm btn-outline-danger\"\n [disabled]=\"languages().length <= 1\"\n (click)=\"remove(i)\"\n >\n <i class=\"fa fa-trash\"></i>\n </button>\n </span>\n </li>\n }\n</ul>\n\n<ng-container *abpPermission=\"policies.LanguagesUpdate\">\n <div class=\"input-group mb-3\">\n <input\n type=\"text\"\n class=\"form-control\"\n [ngModel]=\"newLanguage()\"\n (ngModelChange)=\"newLanguage.set($event)\"\n (keydown.enter)=\"$event.preventDefault(); add()\"\n [placeholder]=\"'Site::Languages:Placeholder' | abpLocalization\"\n />\n <button type=\"button\" class=\"btn btn-outline-primary\" (click)=\"add()\">\n <i class=\"fa fa-plus me-1\"></i>{{ 'Site::Languages:Add' | abpLocalization }}\n </button>\n </div>\n\n @if (isDirty()) {\n <div class=\"alert alert-warning\">{{ 'Site::Languages:ChangeWarning' | abpLocalization }}</div>\n }\n\n <button type=\"button\" class=\"btn btn-primary\" [disabled]=\"!isDirty() || saving()\" (click)=\"save()\">\n <i class=\"fa fa-check me-1\"></i>{{ 'AbpUi::Save' | abpLocalization }}\n </button>\n</ng-container>\n", dependencies: [{ kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox]):not([ngNoCva])[formControlName],textarea:not([ngNoCva])[formControlName],input:not([type=checkbox]):not([ngNoCva])[formControl],textarea:not([ngNoCva])[formControl],input:not([type=checkbox]):not([ngNoCva])[ngModel],textarea:not([ngNoCva])[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission", "abpPermissionRunChangeDetection"] }, { kind: "ngmodule", type: ThemeSharedModule }, { kind: "ngmodule", type: FormsModule }, { kind: "pipe", type: i2.LocalizationPipe, name: "abpLocalization" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
92
|
+
}
|
|
93
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.2", ngImport: i0, type: LanguagesSettingComponent, decorators: [{
|
|
94
|
+
type: Component,
|
|
95
|
+
args: [{ selector: 'site-languages-setting', changeDetection: ChangeDetectionStrategy.OnPush, imports: [CoreModule, ThemeSharedModule, FormsModule, PermissionDirective], template: "<h4 class=\"mb-1\">{{ 'Site::Languages' | abpLocalization }}</h4>\n<p class=\"text-muted\">{{ 'Site::Languages:Hint' | abpLocalization }}</p>\n\n<ul class=\"list-group mb-3\">\n @for (language of languages(); track language; let i = $index) {\n <li class=\"list-group-item d-flex align-items-center gap-2\">\n <span class=\"fw-semibold\">{{ language }}</span>\n @if (i === 0) {\n <span class=\"badge bg-primary\">{{ 'Site::Languages:Default' | abpLocalization }}</span>\n }\n <span class=\"ms-auto d-flex gap-1\" *abpPermission=\"policies.LanguagesUpdate\">\n @if (i > 0) {\n <button type=\"button\" class=\"btn btn-sm btn-outline-secondary\" (click)=\"makeDefault(i)\">\n {{ 'Site::Languages:MakeDefault' | abpLocalization }}\n </button>\n }\n <button type=\"button\" class=\"btn btn-sm btn-outline-secondary\" [disabled]=\"i === 0\" (click)=\"move(i, -1)\">\n <i class=\"fa fa-arrow-up\"></i>\n </button>\n <button\n type=\"button\"\n class=\"btn btn-sm btn-outline-secondary\"\n [disabled]=\"i === languages().length - 1\"\n (click)=\"move(i, 1)\"\n >\n <i class=\"fa fa-arrow-down\"></i>\n </button>\n <button\n type=\"button\"\n class=\"btn btn-sm btn-outline-danger\"\n [disabled]=\"languages().length <= 1\"\n (click)=\"remove(i)\"\n >\n <i class=\"fa fa-trash\"></i>\n </button>\n </span>\n </li>\n }\n</ul>\n\n<ng-container *abpPermission=\"policies.LanguagesUpdate\">\n <div class=\"input-group mb-3\">\n <input\n type=\"text\"\n class=\"form-control\"\n [ngModel]=\"newLanguage()\"\n (ngModelChange)=\"newLanguage.set($event)\"\n (keydown.enter)=\"$event.preventDefault(); add()\"\n [placeholder]=\"'Site::Languages:Placeholder' | abpLocalization\"\n />\n <button type=\"button\" class=\"btn btn-outline-primary\" (click)=\"add()\">\n <i class=\"fa fa-plus me-1\"></i>{{ 'Site::Languages:Add' | abpLocalization }}\n </button>\n </div>\n\n @if (isDirty()) {\n <div class=\"alert alert-warning\">{{ 'Site::Languages:ChangeWarning' | abpLocalization }}</div>\n }\n\n <button type=\"button\" class=\"btn btn-primary\" [disabled]=\"!isDirty() || saving()\" (click)=\"save()\">\n <i class=\"fa fa-check me-1\"></i>{{ 'AbpUi::Save' | abpLocalization }}\n </button>\n</ng-container>\n" }]
|
|
96
|
+
}], ctorParameters: () => [] });
|
|
97
|
+
|
|
98
|
+
/** The name of the tab: a localization key of the `Site` resource, which the tab strip localizes. */
|
|
99
|
+
const SITE_LANGUAGES_SETTING_TAB_NAME = 'Site::Languages';
|
|
100
|
+
function configureSiteSettingTabs() {
|
|
101
|
+
inject(SettingTabsService).add([
|
|
102
|
+
{
|
|
103
|
+
name: SITE_LANGUAGES_SETTING_TAB_NAME,
|
|
104
|
+
order: 10,
|
|
105
|
+
requiredPolicy: eSitePolicyNames.Languages,
|
|
106
|
+
component: LanguagesSettingComponent,
|
|
107
|
+
},
|
|
108
|
+
]);
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Adds the site's languages to Setting Management's page as a tab. Next to `provideSettingManagementConfig()` in the
|
|
112
|
+
* application's configuration: the page is that module's, and an application that does not use it does not use this.
|
|
113
|
+
*/
|
|
114
|
+
function provideSiteSettingTabs() {
|
|
115
|
+
return makeEnvironmentProviders([provideAppInitializer(configureSiteSettingTabs)]);
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* Generated bundle index. Do not edit.
|
|
120
|
+
*/
|
|
121
|
+
|
|
122
|
+
export { LanguagesSettingComponent, SITE_LANGUAGES_SETTING_TAB_NAME, configureSiteSettingTabs, provideSiteSettingTabs };
|
|
123
|
+
//# sourceMappingURL=dignite-ng.site-setting-management.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dignite-ng.site-setting-management.mjs","sources":["../../../projects/site/setting-management/src/languages-setting.component.ts","../../../projects/site/setting-management/src/languages-setting.component.html","../../../projects/site/setting-management/src/providers/setting-tab.provider.ts","../../../projects/site/setting-management/src/dignite-ng.site-setting-management.ts"],"sourcesContent":["import { CoreModule, PermissionDirective } from '@abp/ng.core';\nimport { ThemeSharedModule, ToasterService } from '@abp/ng.theme.shared';\nimport { ChangeDetectionStrategy, Component, computed, inject, signal } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { Dignite, eSitePolicyNames } from '@dignite/ng.site';\n\n/**\n * The languages the site serves, as a tab of Setting Management's page: the whole ordered list: the first is the default, whose pages have no language\n * prefix in their address. The server refuses a tag it does not recognize and canonicalizes the ones it keeps, so the\n * list shown after a save is what it stored.\n */\n@Component({\n selector: 'site-languages-setting',\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './languages-setting.component.html',\n imports: [CoreModule, ThemeSharedModule, FormsModule, PermissionDirective],\n})\nexport class LanguagesSettingComponent {\n private readonly service = inject(Dignite.Site.Admin.Languages.SiteLanguageAdminService);\n private readonly toaster = inject(ToasterService);\n\n readonly policies = eSitePolicyNames;\n\n // Signals, not fields: the layout shell is OnPush, and a value set in a subscribe callback would not repaint.\n readonly languages = signal<string[]>([]);\n readonly saved = signal<string[]>([]);\n readonly newLanguage = signal('');\n readonly saving = signal(false);\n\n readonly isDirty = computed(() => this.languages().join(',') !== this.saved().join(','));\n\n constructor() {\n this.load();\n }\n\n load() {\n this.service.get().subscribe(result => this.show(result.enabledLanguages));\n }\n\n /** Adds the tag typed, once; the server decides whether it is a language. */\n add() {\n const tag = this.newLanguage().trim();\n if (!tag) {\n return;\n }\n\n if (!this.languages().some(language => language.toLowerCase() === tag.toLowerCase())) {\n this.languages.update(list => [...list, tag]);\n }\n this.newLanguage.set('');\n }\n\n /** The last language cannot go: a site serves at least one. */\n remove(index: number) {\n if (this.languages().length <= 1) {\n return;\n }\n this.languages.update(list => list.filter((_, i) => i !== index));\n }\n\n move(index: number, offset: -1 | 1) {\n const target = index + offset;\n if (target < 0 || target >= this.languages().length) {\n return;\n }\n this.languages.update(list => {\n const next = [...list];\n [next[index], next[target]] = [next[target], next[index]];\n return next;\n });\n }\n\n makeDefault(index: number) {\n if (index <= 0) {\n return;\n }\n this.languages.update(list => [list[index], ...list.filter((_, i) => i !== index)]);\n }\n\n save() {\n if (this.saving() || !this.isDirty()) {\n return;\n }\n\n this.saving.set(true);\n this.service.update({ enabledLanguages: this.languages() }).subscribe({\n next: result => {\n this.show(result.enabledLanguages);\n this.saving.set(false);\n this.toaster.success('AbpUi::SavedSuccessfully');\n },\n error: () => this.saving.set(false),\n });\n }\n\n private show(languages: string[]) {\n this.languages.set([...languages]);\n this.saved.set([...languages]);\n }\n}\n","<h4 class=\"mb-1\">{{ 'Site::Languages' | abpLocalization }}</h4>\n<p class=\"text-muted\">{{ 'Site::Languages:Hint' | abpLocalization }}</p>\n\n<ul class=\"list-group mb-3\">\n @for (language of languages(); track language; let i = $index) {\n <li class=\"list-group-item d-flex align-items-center gap-2\">\n <span class=\"fw-semibold\">{{ language }}</span>\n @if (i === 0) {\n <span class=\"badge bg-primary\">{{ 'Site::Languages:Default' | abpLocalization }}</span>\n }\n <span class=\"ms-auto d-flex gap-1\" *abpPermission=\"policies.LanguagesUpdate\">\n @if (i > 0) {\n <button type=\"button\" class=\"btn btn-sm btn-outline-secondary\" (click)=\"makeDefault(i)\">\n {{ 'Site::Languages:MakeDefault' | abpLocalization }}\n </button>\n }\n <button type=\"button\" class=\"btn btn-sm btn-outline-secondary\" [disabled]=\"i === 0\" (click)=\"move(i, -1)\">\n <i class=\"fa fa-arrow-up\"></i>\n </button>\n <button\n type=\"button\"\n class=\"btn btn-sm btn-outline-secondary\"\n [disabled]=\"i === languages().length - 1\"\n (click)=\"move(i, 1)\"\n >\n <i class=\"fa fa-arrow-down\"></i>\n </button>\n <button\n type=\"button\"\n class=\"btn btn-sm btn-outline-danger\"\n [disabled]=\"languages().length <= 1\"\n (click)=\"remove(i)\"\n >\n <i class=\"fa fa-trash\"></i>\n </button>\n </span>\n </li>\n }\n</ul>\n\n<ng-container *abpPermission=\"policies.LanguagesUpdate\">\n <div class=\"input-group mb-3\">\n <input\n type=\"text\"\n class=\"form-control\"\n [ngModel]=\"newLanguage()\"\n (ngModelChange)=\"newLanguage.set($event)\"\n (keydown.enter)=\"$event.preventDefault(); add()\"\n [placeholder]=\"'Site::Languages:Placeholder' | abpLocalization\"\n />\n <button type=\"button\" class=\"btn btn-outline-primary\" (click)=\"add()\">\n <i class=\"fa fa-plus me-1\"></i>{{ 'Site::Languages:Add' | abpLocalization }}\n </button>\n </div>\n\n @if (isDirty()) {\n <div class=\"alert alert-warning\">{{ 'Site::Languages:ChangeWarning' | abpLocalization }}</div>\n }\n\n <button type=\"button\" class=\"btn btn-primary\" [disabled]=\"!isDirty() || saving()\" (click)=\"save()\">\n <i class=\"fa fa-check me-1\"></i>{{ 'AbpUi::Save' | abpLocalization }}\n </button>\n</ng-container>\n","import { SettingTabsService } from '@abp/ng.setting-management/config';\nimport { eSitePolicyNames } from '@dignite/ng.site';\nimport { inject, makeEnvironmentProviders, provideAppInitializer } from '@angular/core';\nimport { LanguagesSettingComponent } from '../languages-setting.component';\n\n/** The name of the tab: a localization key of the `Site` resource, which the tab strip localizes. */\nexport const SITE_LANGUAGES_SETTING_TAB_NAME = 'Site::Languages';\n\nexport function configureSiteSettingTabs() {\n inject(SettingTabsService).add([\n {\n name: SITE_LANGUAGES_SETTING_TAB_NAME,\n order: 10,\n requiredPolicy: eSitePolicyNames.Languages,\n component: LanguagesSettingComponent,\n },\n ]);\n}\n\n/**\n * Adds the site's languages to Setting Management's page as a tab. Next to `provideSettingManagementConfig()` in the\n * application's configuration: the page is that module's, and an application that does not use it does not use this.\n */\nexport function provideSiteSettingTabs() {\n return makeEnvironmentProviders([provideAppInitializer(configureSiteSettingTabs)]);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|