@lucca-front/ng 10.0.7 → 10.0.8-rc.3
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/esm2020/title/lib/title.service.mjs +5 -5
- package/fesm2015/lucca-front-ng-title.mjs +4 -4
- package/fesm2015/lucca-front-ng-title.mjs.map +1 -1
- package/fesm2020/lucca-front-ng-title.mjs +4 -4
- package/fesm2020/lucca-front-ng-title.mjs.map +1 -1
- package/formly/style/_components.scss +13 -0
- package/formly/style/main.scss +2 -0
- package/material/style/_components.scss +11 -0
- package/material/style/components/_autocomplete.scss +13 -0
- package/material/style/components/_buttons.scss +3 -0
- package/material/style/components/_datepicker.scss +122 -0
- package/material/style/components/_dialog.scss +32 -0
- package/material/style/components/_input.scss +3 -0
- package/material/style/components/_menu.scss +21 -0
- package/material/style/components/_mixins.scss +8 -0
- package/material/style/components/_options.scss +24 -0
- package/material/style/components/_select.scss +42 -0
- package/material/style/components/_tooltip.scss +9 -0
- package/material/style/main.scss +10 -0
- package/package.json +3 -3
- package/schematics/lib/scss-ast.js +15 -1
- package/schematics/migrations/css-vars/migration.js +7 -0
- package/schematics/migrations/css-vars/updaters/color.js +23 -14
- package/schematics/migrations/css-vars/updaters/theme.js +16 -7
- package/schematics/migrations/css-vars/updaters/warning.js +9 -0
- package/title/README.md +14 -0
- package/title/lib/title.service.d.ts +4 -3
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Inject, Injectable } from '@angular/core';
|
|
2
2
|
import { ActivationEnd } from '@angular/router';
|
|
3
|
-
import { BehaviorSubject } from 'rxjs';
|
|
4
|
-
import { distinctUntilChanged, filter, map, tap } from 'rxjs/operators';
|
|
3
|
+
import { BehaviorSubject, combineLatest, of } from 'rxjs';
|
|
4
|
+
import { distinctUntilChanged, filter, map, switchMap, tap } from 'rxjs/operators';
|
|
5
5
|
import { LU_TITLE_TRANSLATE_SERVICE } from './title-translate.service';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
import * as i1 from "@angular/router";
|
|
@@ -14,7 +14,7 @@ export class LuTitleService {
|
|
|
14
14
|
this.translateService = translateService;
|
|
15
15
|
this.titlePartsSubject = new BehaviorSubject(['Lucca']);
|
|
16
16
|
this.titleParts$ = this.titlePartsSubject.asObservable();
|
|
17
|
-
this.title$ = this.titleParts$.pipe(
|
|
17
|
+
this.title$ = this.titleParts$.pipe(switchMap((titleParts) => combineLatest(titleParts.map((part) => (typeof part === 'string' ? of(part) : part)))), map((parts) => parts.join(TitleSeparator)));
|
|
18
18
|
}
|
|
19
19
|
init(applicationNameTranslationKey) {
|
|
20
20
|
this.router.events
|
|
@@ -42,11 +42,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImpor
|
|
|
42
42
|
function getPageTitleParts(snapshot) {
|
|
43
43
|
const pageTitle = {
|
|
44
44
|
title: (snapshot.data?.['title'] || ''),
|
|
45
|
-
params: snapshot.params,
|
|
45
|
+
params: { ...snapshot.params, ...snapshot.data },
|
|
46
46
|
};
|
|
47
47
|
return snapshot.parent ? [pageTitle, ...getPageTitleParts(snapshot.parent)] : [pageTitle];
|
|
48
48
|
}
|
|
49
49
|
function uniqTitle(titleParts) {
|
|
50
50
|
return titleParts.filter(({ title }, index) => titleParts.findIndex((pageTitle) => pageTitle.title === title) === index);
|
|
51
51
|
}
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGl0bGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nL3RpdGxlL3NyYy9saWIvdGl0bGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQTBCLGFBQWEsRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFtQixFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0UsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25GLE9BQU8sRUFBNEIsMEJBQTBCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7OztBQUdqRyxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsS0FBSyxDQUFDO0FBR3BDLE1BQU0sT0FBTyxjQUFjO0lBUTFCLFlBQW9CLE1BQWMsRUFBVSxLQUFZLEVBQThDLGdCQUEwQztRQUE1SCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQVUsVUFBSyxHQUFMLEtBQUssQ0FBTztRQUE4QyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQTBCO1FBUHhJLHNCQUFpQixHQUFHLElBQUksZUFBZSxDQUEwQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDcEcsZ0JBQVcsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDcEQsV0FBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUM3QixTQUFTLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sSUFBSSxLQUFLLFFBQVEs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QUFFO0tBQ2hELENBQUM7SUFDRixPQUFPLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLEdBQUcsaUJBQWlCLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDM0YsQ0FBQztBQUVELFNBQVMsU0FBUyxDQUFDLFVBQTRCO0lBQzlDLE9BQU8sVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsS0FBSyxLQUFLLEtBQUssQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDO0FBQzFILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVGl0bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgQWN0aXZhdGlvbkVuZCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlSW5wdXQsIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIG1hcCwgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IElMdVRpdGxlVHJhbnNsYXRlU2VydmljZSwgTFVfVElUTEVfVFJBTlNMQVRFX1NFUlZJQ0UgfSBmcm9tICcuL3RpdGxlLXRyYW5zbGF0ZS5zZXJ2aWNlJztcclxuXHJcbmV4cG9ydCB0eXBlIFBhZ2VUaXRsZSA9IHsgdGl0bGU6IHN0cmluZzsgcGFyYW1zOiB7IFtwYXJhbTogc3RyaW5nXTogc3RyaW5nIH0gfTtcclxuZXhwb3J0IGNvbnN0IFRpdGxlU2VwYXJhdG9yID0gJyDigJMgJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEx1VGl0bGVTZXJ2aWNlIHtcclxuXHRwcml2YXRlIHRpdGxlUGFydHNTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBcnJheTxzdHJpbmcgfCBPYnNlcnZhYmxlSW5wdXQ8c3RyaW5nPj4+KFsnTHVjY2EnXSk7XHJcblx0dGl0bGVQYXJ0cyQgPSB0aGlzLnRpdGxlUGFydHNTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xyXG5cdHRpdGxlJCA9IHRoaXMudGl0bGVQYXJ0cyQucGlwZShcclxuXHRcdHN3aXRjaE1hcCgodGl0bGVQYXJ0cykgPT4gY29tYmluZUxhdGVzdCh0aXRsZVBhcnRzLm1hcCgocGFydCkgPT4gKHR5cGVvZiBwYXJ0ID09PSAnc3RyaW5nJyA/IG9mKHBhcnQpIDogcGFydCkpKSksXHJcblx0XHRtYXAoKHBhcnRzKSA9PiBwYXJ0cy5qb2luKFRpdGxlU2VwYXJhdG9yKSksXHJcblx0KTtcclxuXHJcblx0Y29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZXI6IFJvdXRlciwgcHJpdmF0ZSB0aXRsZTogVGl0bGUsIEBJbmplY3QoTFVfVElUTEVfVFJBTlNMQVRFX1NFUlZJQ0UpIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogSUx1VGl0bGVUcmFuc2xhdGVTZXJ2aWNlKSB7fVxyXG5cclxuXHRpbml0KGFwcGxpY2F0aW9uTmFtZVRyYW5zbGF0aW9uS2V5OiBzdHJpbmcpIHtcclxuXHRcdHRoaXMucm91dGVyLmV2ZW50c1xyXG5cdFx0XHQucGlwZShcclxuXHRcdFx0XHRmaWx0ZXIoKGV2ZW50KSA9PiB7XHJcblx0XHRcdFx0XHRyZXR1cm4gZXZlbnQgaW5zdGFuY2VvZiBBY3RpdmF0aW9uRW5kICYmIGV2ZW50LnNuYXBzaG90LmNoaWxkcmVuLmxlbmd0aCA9PT0gMDtcclxuXHRcdFx0XHR9KSxcclxuXHRcdFx0XHRtYXAoKGV2ZW50OiBBY3RpdmF0aW9uRW5kKSA9PiBnZXRQYWdlVGl0bGVQYXJ0cyhldmVudC5zbmFwc2hvdCkpLFxyXG5cdFx0XHRcdG1hcCgodGl0bGVQYXJ0cykgPT4gdW5pcVRpdGxlKHRpdGxlUGFydHMpKSxcclxuXHRcdFx0XHRtYXAoKHRpdGxlUGFydHMpID0+IHRpdGxlUGFydHMuZmlsdGVyKCh7IHRpdGxlIH0pID0+IHRpdGxlICE9PSAnJykubWFwKCh7IHRpdGxlLCBwYXJhbXMgfSkgPT4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnRyYW5zbGF0ZSh0aXRsZSwgcGFyYW1zKSkpLFxyXG5cdFx0XHRcdG1hcCgodGl0bGVQYXJ0czogQXJyYXk8c3RyaW5nPikgPT4gWy4uLnRpdGxlUGFydHMsIHRoaXMudHJhbnNsYXRlU2VydmljZS50cmFuc2xhdGUoYXBwbGljYXRpb25OYW1lVHJhbnNsYXRpb25LZXksIHt9KSwgJ0x1Y2NhJ10uZmlsdGVyKCh4KSA9PiAhIXgpKSxcclxuXHRcdFx0XHRkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxyXG5cdFx0XHRcdHRhcCgodGl0bGVQYXJ0cykgPT4gdGhpcy50aXRsZVBhcnRzU3ViamVjdC5uZXh0KHRpdGxlUGFydHMpKSxcclxuXHRcdFx0KVxyXG5cdFx0XHQuc3Vic2NyaWJlKCk7XHJcblxyXG5cdFx0dGhpcy50aXRsZSQucGlwZSh0YXAoKHRpdGxlKSA9PiB0aGlzLnRpdGxlLnNldFRpdGxlKHRpdGxlKSkpLnN1YnNjcmliZSgpO1xyXG5cdH1cclxuXHJcblx0cHJlcGVuZFRpdGxlKHRpdGxlOiBzdHJpbmcgfCBPYnNlcnZhYmxlSW5wdXQ8c3RyaW5nPikge1xyXG5cdFx0dGhpcy50aXRsZVBhcnRzU3ViamVjdC5uZXh0KFt0aXRsZSwgLi4udGhpcy50aXRsZVBhcnRzU3ViamVjdC52YWx1ZV0pO1xyXG5cdH1cclxuXHJcblx0b3ZlcnJpZGVGaXJzdFRpdGxlUGFydCh0aXRsZTogc3RyaW5nIHwgT2JzZXJ2YWJsZUlucHV0PHN0cmluZz4pIHtcclxuXHRcdHRoaXMudGl0bGVQYXJ0c1N1YmplY3QubmV4dChbdGl0bGUsIC4uLnRoaXMudGl0bGVQYXJ0c1N1YmplY3QudmFsdWUuc2xpY2UoMSldKTtcclxuXHR9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldFBhZ2VUaXRsZVBhcnRzKHNuYXBzaG90OiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KTogQXJyYXk8UGFnZVRpdGxlPiB7XHJcblx0Y29uc3QgcGFnZVRpdGxlOiBQYWdlVGl0bGUgPSB7XHJcblx0XHR0aXRsZTogKHNuYXBzaG90LmRhdGE/LlsndGl0bGUnXSB8fCAnJykgYXMgc3RyaW5nLFxyXG5cdFx0cGFyYW1zOiB7IC4uLnNuYXBzaG90LnBhcmFtcywgLi4uc25hcHNob3QuZGF0YSB9LFxyXG5cdH07XHJcblx0cmV0dXJuIHNuYXBzaG90LnBhcmVudCA/IFtwYWdlVGl0bGUsIC4uLmdldFBhZ2VUaXRsZVBhcnRzKHNuYXBzaG90LnBhcmVudCldIDogW3BhZ2VUaXRsZV07XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHVuaXFUaXRsZSh0aXRsZVBhcnRzOiBBcnJheTxQYWdlVGl0bGU+KTogQXJyYXk8UGFnZVRpdGxlPiB7XHJcblx0cmV0dXJuIHRpdGxlUGFydHMuZmlsdGVyKCh7IHRpdGxlIH0sIGluZGV4KSA9PiB0aXRsZVBhcnRzLmZpbmRJbmRleCgocGFnZVRpdGxlKSA9PiBwYWdlVGl0bGUudGl0bGUgPT09IHRpdGxlKSA9PT0gaW5kZXgpO1xyXG59XHJcbiJdfQ==
|
|
@@ -2,8 +2,8 @@ import * as i0 from '@angular/core';
|
|
|
2
2
|
import { InjectionToken, Injectable, Inject, NgModule } from '@angular/core';
|
|
3
3
|
import * as i1 from '@angular/router';
|
|
4
4
|
import { ActivationEnd, RouterModule } from '@angular/router';
|
|
5
|
-
import { BehaviorSubject } from 'rxjs';
|
|
6
|
-
import { map, filter, distinctUntilChanged, tap } from 'rxjs/operators';
|
|
5
|
+
import { BehaviorSubject, combineLatest, of } from 'rxjs';
|
|
6
|
+
import { switchMap, map, filter, distinctUntilChanged, tap } from 'rxjs/operators';
|
|
7
7
|
import * as i2 from '@angular/platform-browser';
|
|
8
8
|
|
|
9
9
|
const LU_TITLE_TRANSLATE_SERVICE = new InjectionToken('LU_TITLE_TRANSLATE_SERVICE');
|
|
@@ -16,7 +16,7 @@ class LuTitleService {
|
|
|
16
16
|
this.translateService = translateService;
|
|
17
17
|
this.titlePartsSubject = new BehaviorSubject(['Lucca']);
|
|
18
18
|
this.titleParts$ = this.titlePartsSubject.asObservable();
|
|
19
|
-
this.title$ = this.titleParts$.pipe(
|
|
19
|
+
this.title$ = this.titleParts$.pipe(switchMap((titleParts) => combineLatest(titleParts.map((part) => (typeof part === 'string' ? of(part) : part)))), map((parts) => parts.join(TitleSeparator)));
|
|
20
20
|
}
|
|
21
21
|
init(applicationNameTranslationKey) {
|
|
22
22
|
this.router.events
|
|
@@ -47,7 +47,7 @@ function getPageTitleParts(snapshot) {
|
|
|
47
47
|
var _a;
|
|
48
48
|
const pageTitle = {
|
|
49
49
|
title: (((_a = snapshot.data) === null || _a === void 0 ? void 0 : _a['title']) || ''),
|
|
50
|
-
params: snapshot.params,
|
|
50
|
+
params: Object.assign(Object.assign({}, snapshot.params), snapshot.data),
|
|
51
51
|
};
|
|
52
52
|
return snapshot.parent ? [pageTitle, ...getPageTitleParts(snapshot.parent)] : [pageTitle];
|
|
53
53
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lucca-front-ng-title.mjs","sources":["../../../packages/ng/title/src/lib/title-translate.service.ts","../../../packages/ng/title/src/lib/title.service.ts","../../../packages/ng/title/src/lib/title.module.ts","../../../packages/ng/title/src/lucca-front-ng-title.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\r\n\r\nexport const LU_TITLE_TRANSLATE_SERVICE = new InjectionToken<ILuTitleTranslateService>('LU_TITLE_TRANSLATE_SERVICE');\r\n\r\nexport interface ILuTitleTranslateService {\r\n\ttranslate(key: string, args?: Record<string, unknown>): string;\r\n}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { Title } from '@angular/platform-browser';\r\nimport { ActivatedRouteSnapshot, ActivationEnd, Router } from '@angular/router';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { distinctUntilChanged, filter, map, tap } from 'rxjs/operators';\r\nimport { ILuTitleTranslateService, LU_TITLE_TRANSLATE_SERVICE } from './title-translate.service';\r\n\r\nexport type PageTitle = { title: string; params: { [param: string]: string } };\r\nexport const TitleSeparator = ' – ';\r\n\r\n@Injectable()\r\nexport class LuTitleService {\r\n\tprivate titlePartsSubject = new BehaviorSubject<string
|
|
1
|
+
{"version":3,"file":"lucca-front-ng-title.mjs","sources":["../../../packages/ng/title/src/lib/title-translate.service.ts","../../../packages/ng/title/src/lib/title.service.ts","../../../packages/ng/title/src/lib/title.module.ts","../../../packages/ng/title/src/lucca-front-ng-title.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\r\n\r\nexport const LU_TITLE_TRANSLATE_SERVICE = new InjectionToken<ILuTitleTranslateService>('LU_TITLE_TRANSLATE_SERVICE');\r\n\r\nexport interface ILuTitleTranslateService {\r\n\ttranslate(key: string, args?: Record<string, unknown>): string;\r\n}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { Title } from '@angular/platform-browser';\r\nimport { ActivatedRouteSnapshot, ActivationEnd, Router } from '@angular/router';\r\nimport { BehaviorSubject, combineLatest, ObservableInput, of } from 'rxjs';\r\nimport { distinctUntilChanged, filter, map, switchMap, tap } from 'rxjs/operators';\r\nimport { ILuTitleTranslateService, LU_TITLE_TRANSLATE_SERVICE } from './title-translate.service';\r\n\r\nexport type PageTitle = { title: string; params: { [param: string]: string } };\r\nexport const TitleSeparator = ' – ';\r\n\r\n@Injectable()\r\nexport class LuTitleService {\r\n\tprivate titlePartsSubject = new BehaviorSubject<Array<string | ObservableInput<string>>>(['Lucca']);\r\n\ttitleParts$ = this.titlePartsSubject.asObservable();\r\n\ttitle$ = this.titleParts$.pipe(\r\n\t\tswitchMap((titleParts) => combineLatest(titleParts.map((part) => (typeof part === 'string' ? of(part) : part)))),\r\n\t\tmap((parts) => parts.join(TitleSeparator)),\r\n\t);\r\n\r\n\tconstructor(private router: Router, private title: Title, @Inject(LU_TITLE_TRANSLATE_SERVICE) private translateService: ILuTitleTranslateService) {}\r\n\r\n\tinit(applicationNameTranslationKey: string) {\r\n\t\tthis.router.events\r\n\t\t\t.pipe(\r\n\t\t\t\tfilter((event) => {\r\n\t\t\t\t\treturn event instanceof ActivationEnd && event.snapshot.children.length === 0;\r\n\t\t\t\t}),\r\n\t\t\t\tmap((event: ActivationEnd) => getPageTitleParts(event.snapshot)),\r\n\t\t\t\tmap((titleParts) => uniqTitle(titleParts)),\r\n\t\t\t\tmap((titleParts) => titleParts.filter(({ title }) => title !== '').map(({ title, params }) => this.translateService.translate(title, params))),\r\n\t\t\t\tmap((titleParts: Array<string>) => [...titleParts, this.translateService.translate(applicationNameTranslationKey, {}), 'Lucca'].filter((x) => !!x)),\r\n\t\t\t\tdistinctUntilChanged(),\r\n\t\t\t\ttap((titleParts) => this.titlePartsSubject.next(titleParts)),\r\n\t\t\t)\r\n\t\t\t.subscribe();\r\n\r\n\t\tthis.title$.pipe(tap((title) => this.title.setTitle(title))).subscribe();\r\n\t}\r\n\r\n\tprependTitle(title: string | ObservableInput<string>) {\r\n\t\tthis.titlePartsSubject.next([title, ...this.titlePartsSubject.value]);\r\n\t}\r\n\r\n\toverrideFirstTitlePart(title: string | ObservableInput<string>) {\r\n\t\tthis.titlePartsSubject.next([title, ...this.titlePartsSubject.value.slice(1)]);\r\n\t}\r\n}\r\n\r\nfunction getPageTitleParts(snapshot: ActivatedRouteSnapshot): Array<PageTitle> {\r\n\tconst pageTitle: PageTitle = {\r\n\t\ttitle: (snapshot.data?.['title'] || '') as string,\r\n\t\tparams: { ...snapshot.params, ...snapshot.data },\r\n\t};\r\n\treturn snapshot.parent ? [pageTitle, ...getPageTitleParts(snapshot.parent)] : [pageTitle];\r\n}\r\n\r\nfunction uniqTitle(titleParts: Array<PageTitle>): Array<PageTitle> {\r\n\treturn titleParts.filter(({ title }, index) => titleParts.findIndex((pageTitle) => pageTitle.title === title) === index);\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule } from '@angular/router';\r\nimport { LuTitleService } from './title.service';\r\n\r\n@NgModule({\r\n\timports: [RouterModule],\r\n\tproviders: [LuTitleService],\r\n})\r\nexport class LuTitleModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;MAEa,0BAA0B,GAAG,IAAI,cAAc,CAA2B,4BAA4B;;ACM5G,MAAM,cAAc,GAAG,MAAM;MAGvB,cAAc,CAAA;AAQ1B,IAAA,WAAA,CAAoB,MAAc,EAAU,KAAY,EAA8C,gBAA0C,EAAA;AAA5H,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;AAAU,QAAA,IAAK,CAAA,KAAA,GAAL,KAAK,CAAO;AAA8C,QAAA,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAA0B;QAPxI,IAAiB,CAAA,iBAAA,GAAG,IAAI,eAAe,CAA0C,CAAC,OAAO,CAAC,CAAC,CAAC;QACpG,IAAA,CAAA,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC;AACpD,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAC7B,SAAS,CAAC,CAAC,UAAU,KAAK,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM,OAAO,IAAI,KAAK,QAAQ,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,EAChH,GAAG,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAC1C,CAAC;KAEkJ;AAEpJ,IAAA,IAAI,CAAC,6BAAqC,EAAA;QACzC,IAAI,CAAC,MAAM,CAAC,MAAM;AAChB,aAAA,IAAI,CACJ,MAAM,CAAC,CAAC,KAAK,KAAI;AAChB,YAAA,OAAO,KAAK,YAAY,aAAa,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC;AAC/E,SAAC,CAAC,EACF,GAAG,CAAC,CAAC,KAAoB,KAAK,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAChE,GAAG,CAAC,CAAC,UAAU,KAAK,SAAS,CAAC,UAAU,CAAC,CAAC,EAC1C,GAAG,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,KAAK,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAC9I,GAAG,CAAC,CAAC,UAAyB,KAAK,CAAC,GAAG,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,6BAA6B,EAAE,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EACnJ,oBAAoB,EAAE,EACtB,GAAG,CAAC,CAAC,UAAU,KAAK,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAC5D;AACA,aAAA,SAAS,EAAE,CAAC;QAEd,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;KACzE;AAED,IAAA,YAAY,CAAC,KAAuC,EAAA;AACnD,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;KACtE;AAED,IAAA,sBAAsB,CAAC,KAAuC,EAAA;QAC7D,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAC/E;;AAlCW,cAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,6DAQwC,0BAA0B,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;+GARhF,cAAc,EAAA,CAAA,CAAA;2FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAD1B,UAAU;;;8BASiD,MAAM;+BAAC,0BAA0B,CAAA;;;AA6B7F,SAAS,iBAAiB,CAAC,QAAgC,EAAA;;AAC1D,IAAA,MAAM,SAAS,GAAc;AAC5B,QAAA,KAAK,GAAG,CAAA,CAAA,EAAA,GAAA,QAAQ,CAAC,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAG,OAAO,CAAC,KAAI,EAAE,CAAW;QACjD,MAAM,EAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAO,QAAQ,CAAC,MAAM,GAAK,QAAQ,CAAC,IAAI,CAAE;KAChD,CAAC;IACF,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,SAAS,EAAE,GAAG,iBAAiB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAC3F,CAAC;AAED,SAAS,SAAS,CAAC,UAA4B,EAAA;AAC9C,IAAA,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,KAAK,KAAK,UAAU,CAAC,SAAS,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC;AAC1H;;MClDa,aAAa,CAAA;;0GAAb,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAb,aAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,YAHf,YAAY,CAAA,EAAA,CAAA,CAAA;AAGV,aAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,EAFd,SAAA,EAAA,CAAC,cAAc,CAAC,YADjB,YAAY,CAAA,EAAA,CAAA,CAAA;2FAGV,aAAa,EAAA,UAAA,EAAA,CAAA;kBAJzB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACT,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,SAAS,EAAE,CAAC,cAAc,CAAC;iBAC3B,CAAA;;;ACPD;;AAEG;;;;"}
|
|
@@ -2,8 +2,8 @@ import * as i0 from '@angular/core';
|
|
|
2
2
|
import { InjectionToken, Injectable, Inject, NgModule } from '@angular/core';
|
|
3
3
|
import * as i1 from '@angular/router';
|
|
4
4
|
import { ActivationEnd, RouterModule } from '@angular/router';
|
|
5
|
-
import { BehaviorSubject } from 'rxjs';
|
|
6
|
-
import { map, filter, distinctUntilChanged, tap } from 'rxjs/operators';
|
|
5
|
+
import { BehaviorSubject, combineLatest, of } from 'rxjs';
|
|
6
|
+
import { switchMap, map, filter, distinctUntilChanged, tap } from 'rxjs/operators';
|
|
7
7
|
import * as i2 from '@angular/platform-browser';
|
|
8
8
|
|
|
9
9
|
const LU_TITLE_TRANSLATE_SERVICE = new InjectionToken('LU_TITLE_TRANSLATE_SERVICE');
|
|
@@ -16,7 +16,7 @@ class LuTitleService {
|
|
|
16
16
|
this.translateService = translateService;
|
|
17
17
|
this.titlePartsSubject = new BehaviorSubject(['Lucca']);
|
|
18
18
|
this.titleParts$ = this.titlePartsSubject.asObservable();
|
|
19
|
-
this.title$ = this.titleParts$.pipe(
|
|
19
|
+
this.title$ = this.titleParts$.pipe(switchMap((titleParts) => combineLatest(titleParts.map((part) => (typeof part === 'string' ? of(part) : part)))), map((parts) => parts.join(TitleSeparator)));
|
|
20
20
|
}
|
|
21
21
|
init(applicationNameTranslationKey) {
|
|
22
22
|
this.router.events
|
|
@@ -44,7 +44,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImpor
|
|
|
44
44
|
function getPageTitleParts(snapshot) {
|
|
45
45
|
const pageTitle = {
|
|
46
46
|
title: (snapshot.data?.['title'] || ''),
|
|
47
|
-
params: snapshot.params,
|
|
47
|
+
params: { ...snapshot.params, ...snapshot.data },
|
|
48
48
|
};
|
|
49
49
|
return snapshot.parent ? [pageTitle, ...getPageTitleParts(snapshot.parent)] : [pageTitle];
|
|
50
50
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lucca-front-ng-title.mjs","sources":["../../../packages/ng/title/src/lib/title-translate.service.ts","../../../packages/ng/title/src/lib/title.service.ts","../../../packages/ng/title/src/lib/title.module.ts","../../../packages/ng/title/src/lucca-front-ng-title.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\r\n\r\nexport const LU_TITLE_TRANSLATE_SERVICE = new InjectionToken<ILuTitleTranslateService>('LU_TITLE_TRANSLATE_SERVICE');\r\n\r\nexport interface ILuTitleTranslateService {\r\n\ttranslate(key: string, args?: Record<string, unknown>): string;\r\n}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { Title } from '@angular/platform-browser';\r\nimport { ActivatedRouteSnapshot, ActivationEnd, Router } from '@angular/router';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { distinctUntilChanged, filter, map, tap } from 'rxjs/operators';\r\nimport { ILuTitleTranslateService, LU_TITLE_TRANSLATE_SERVICE } from './title-translate.service';\r\n\r\nexport type PageTitle = { title: string; params: { [param: string]: string } };\r\nexport const TitleSeparator = ' – ';\r\n\r\n@Injectable()\r\nexport class LuTitleService {\r\n\tprivate titlePartsSubject = new BehaviorSubject<string
|
|
1
|
+
{"version":3,"file":"lucca-front-ng-title.mjs","sources":["../../../packages/ng/title/src/lib/title-translate.service.ts","../../../packages/ng/title/src/lib/title.service.ts","../../../packages/ng/title/src/lib/title.module.ts","../../../packages/ng/title/src/lucca-front-ng-title.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\r\n\r\nexport const LU_TITLE_TRANSLATE_SERVICE = new InjectionToken<ILuTitleTranslateService>('LU_TITLE_TRANSLATE_SERVICE');\r\n\r\nexport interface ILuTitleTranslateService {\r\n\ttranslate(key: string, args?: Record<string, unknown>): string;\r\n}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { Title } from '@angular/platform-browser';\r\nimport { ActivatedRouteSnapshot, ActivationEnd, Router } from '@angular/router';\r\nimport { BehaviorSubject, combineLatest, ObservableInput, of } from 'rxjs';\r\nimport { distinctUntilChanged, filter, map, switchMap, tap } from 'rxjs/operators';\r\nimport { ILuTitleTranslateService, LU_TITLE_TRANSLATE_SERVICE } from './title-translate.service';\r\n\r\nexport type PageTitle = { title: string; params: { [param: string]: string } };\r\nexport const TitleSeparator = ' – ';\r\n\r\n@Injectable()\r\nexport class LuTitleService {\r\n\tprivate titlePartsSubject = new BehaviorSubject<Array<string | ObservableInput<string>>>(['Lucca']);\r\n\ttitleParts$ = this.titlePartsSubject.asObservable();\r\n\ttitle$ = this.titleParts$.pipe(\r\n\t\tswitchMap((titleParts) => combineLatest(titleParts.map((part) => (typeof part === 'string' ? of(part) : part)))),\r\n\t\tmap((parts) => parts.join(TitleSeparator)),\r\n\t);\r\n\r\n\tconstructor(private router: Router, private title: Title, @Inject(LU_TITLE_TRANSLATE_SERVICE) private translateService: ILuTitleTranslateService) {}\r\n\r\n\tinit(applicationNameTranslationKey: string) {\r\n\t\tthis.router.events\r\n\t\t\t.pipe(\r\n\t\t\t\tfilter((event) => {\r\n\t\t\t\t\treturn event instanceof ActivationEnd && event.snapshot.children.length === 0;\r\n\t\t\t\t}),\r\n\t\t\t\tmap((event: ActivationEnd) => getPageTitleParts(event.snapshot)),\r\n\t\t\t\tmap((titleParts) => uniqTitle(titleParts)),\r\n\t\t\t\tmap((titleParts) => titleParts.filter(({ title }) => title !== '').map(({ title, params }) => this.translateService.translate(title, params))),\r\n\t\t\t\tmap((titleParts: Array<string>) => [...titleParts, this.translateService.translate(applicationNameTranslationKey, {}), 'Lucca'].filter((x) => !!x)),\r\n\t\t\t\tdistinctUntilChanged(),\r\n\t\t\t\ttap((titleParts) => this.titlePartsSubject.next(titleParts)),\r\n\t\t\t)\r\n\t\t\t.subscribe();\r\n\r\n\t\tthis.title$.pipe(tap((title) => this.title.setTitle(title))).subscribe();\r\n\t}\r\n\r\n\tprependTitle(title: string | ObservableInput<string>) {\r\n\t\tthis.titlePartsSubject.next([title, ...this.titlePartsSubject.value]);\r\n\t}\r\n\r\n\toverrideFirstTitlePart(title: string | ObservableInput<string>) {\r\n\t\tthis.titlePartsSubject.next([title, ...this.titlePartsSubject.value.slice(1)]);\r\n\t}\r\n}\r\n\r\nfunction getPageTitleParts(snapshot: ActivatedRouteSnapshot): Array<PageTitle> {\r\n\tconst pageTitle: PageTitle = {\r\n\t\ttitle: (snapshot.data?.['title'] || '') as string,\r\n\t\tparams: { ...snapshot.params, ...snapshot.data },\r\n\t};\r\n\treturn snapshot.parent ? [pageTitle, ...getPageTitleParts(snapshot.parent)] : [pageTitle];\r\n}\r\n\r\nfunction uniqTitle(titleParts: Array<PageTitle>): Array<PageTitle> {\r\n\treturn titleParts.filter(({ title }, index) => titleParts.findIndex((pageTitle) => pageTitle.title === title) === index);\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule } from '@angular/router';\r\nimport { LuTitleService } from './title.service';\r\n\r\n@NgModule({\r\n\timports: [RouterModule],\r\n\tproviders: [LuTitleService],\r\n})\r\nexport class LuTitleModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
formly-form,
|
|
2
|
+
formly-group,
|
|
3
|
+
formly-field {
|
|
4
|
+
display: inherit;
|
|
5
|
+
flex-wrap: inherit;
|
|
6
|
+
flex-direction: inherit;
|
|
7
|
+
width: 100%;
|
|
8
|
+
}
|
|
9
|
+
formly-form .checkboxesfield:not(fieldset),
|
|
10
|
+
formly-form .radiosfield:not(fieldset) {
|
|
11
|
+
margin-top: 0 !important;
|
|
12
|
+
padding: var(--components-field-framed-side-padding) var(--components-field-framed-side-padding) var(--components-field-framed-bottom-padding) !important;
|
|
13
|
+
}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
@use '@lucca-front/icons/src/commons/utils/icon';
|
|
2
|
+
@use '@lucca-front/scss/src/commons/utils/form';
|
|
3
|
+
|
|
4
|
+
.mat-datepicker-content {
|
|
5
|
+
@include box-shadow-override();
|
|
6
|
+
@extend .card;
|
|
7
|
+
display: block;
|
|
8
|
+
margin-top: 2px;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.mat-datepicker-toggle {
|
|
12
|
+
@extend .textfield-suffix;
|
|
13
|
+
pointer-events: auto;
|
|
14
|
+
|
|
15
|
+
button {
|
|
16
|
+
background: none !important;
|
|
17
|
+
border-radius: 0;
|
|
18
|
+
height: auto;
|
|
19
|
+
line-height: 1;
|
|
20
|
+
width: auto;
|
|
21
|
+
|
|
22
|
+
&::after {
|
|
23
|
+
@include icon.generate('calendar');
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
mat-icon {
|
|
27
|
+
display: none;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
// CALENDAR
|
|
33
|
+
.mat-calendar {
|
|
34
|
+
width: 296px;
|
|
35
|
+
|
|
36
|
+
.mat-button {
|
|
37
|
+
@extend .button, .mod-text;
|
|
38
|
+
font-size: 1em;
|
|
39
|
+
text-decoration: none;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.mat-calendar-arrow {
|
|
43
|
+
display: none;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
.mat-calendar-arrow {
|
|
47
|
+
display: none;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.mat-icon-button {
|
|
51
|
+
@extend .button, .mod-text;
|
|
52
|
+
border-radius: 3px;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.mat-calendar-content {
|
|
56
|
+
padding: 0 0.5em 0.5em 0.5em;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
// CALENDAR HEADER
|
|
61
|
+
.mat-calendar-controls {
|
|
62
|
+
margin-top: 0 !important;
|
|
63
|
+
.mat-icon-button[disabled] {
|
|
64
|
+
opacity: 0.4;
|
|
65
|
+
}
|
|
66
|
+
.mat-calendar-period-button {
|
|
67
|
+
flex: 1;
|
|
68
|
+
order: 1;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
.mat-calendar-next-button {
|
|
72
|
+
order: 2;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
.mat-calendar-spacer {
|
|
76
|
+
display: none;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
// TABLE
|
|
81
|
+
.mat-calendar-body-cell {
|
|
82
|
+
.mat-calendar-body-cell-content {
|
|
83
|
+
box-shadow: form.fakeborderoverlay(var(--commons-divider-color));
|
|
84
|
+
border: none;
|
|
85
|
+
border-radius: 0;
|
|
86
|
+
color: var(--palettes-grey-600);
|
|
87
|
+
height: 100%;
|
|
88
|
+
left: 0;
|
|
89
|
+
top: 0;
|
|
90
|
+
width: 100%;
|
|
91
|
+
|
|
92
|
+
&:hover,
|
|
93
|
+
&.mat-calendar-body-selected {
|
|
94
|
+
background-color: var(--palette-primary-700);
|
|
95
|
+
color: var(--palette-primary-text);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
&.mat-calendar-body-disabled {
|
|
100
|
+
opacity: 0.5;
|
|
101
|
+
pointer-events: none;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
// SPECIFIC MONTH-VIEW
|
|
106
|
+
md-month-view,
|
|
107
|
+
mat-month-view {
|
|
108
|
+
.mat-calendar-table-header th {
|
|
109
|
+
color: var(--palettes-grey-600);
|
|
110
|
+
font-size: 0.9em;
|
|
111
|
+
padding-bottom: 0.4em;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
.mat-calendar-body-label {
|
|
115
|
+
overflow: hidden;
|
|
116
|
+
text-indent: -999px;
|
|
117
|
+
|
|
118
|
+
&[colspan='7'] {
|
|
119
|
+
display: none; // REMOVE MONTH LABEL ABOVE NUMBERS IF FULL WIDTH
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
@use '@lucca-front/scss/src/commons/utils/media';
|
|
2
|
+
@use '@lucca-front/icons/src/commons/utils/icon';
|
|
3
|
+
|
|
4
|
+
.mat-dialog-container {
|
|
5
|
+
@extend .card;
|
|
6
|
+
|
|
7
|
+
background: white;
|
|
8
|
+
max-width: 80vw; // MIGHT BE CHANGED INTO A THEME VARIABLE
|
|
9
|
+
overflow: visible !important;
|
|
10
|
+
padding: 0 !important;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.cdk-overlay-pane {
|
|
14
|
+
&.mod-sidePanel {
|
|
15
|
+
position: fixed !important;
|
|
16
|
+
top: var(--commons-banner-height);
|
|
17
|
+
right: 0;
|
|
18
|
+
bottom: 0;
|
|
19
|
+
width: 60%;
|
|
20
|
+
max-width: 800px;
|
|
21
|
+
@include media.smallerThan('s') {
|
|
22
|
+
width: 80%;
|
|
23
|
+
}
|
|
24
|
+
@include media.smallerThan('xs') {
|
|
25
|
+
width: 100%;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.mat-dialog-container {
|
|
29
|
+
max-width: 100%;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
.mat-menu-item {
|
|
2
|
+
@extend .textfield-options-entry;
|
|
3
|
+
background-color: transparent;
|
|
4
|
+
&.mat-selected,
|
|
5
|
+
&.mat-active {
|
|
6
|
+
@extend .is-focus;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
.mat-menu-panel {
|
|
11
|
+
@extend .textfield-options;
|
|
12
|
+
position: relative;
|
|
13
|
+
top: auto;
|
|
14
|
+
opacity: 1;
|
|
15
|
+
transform: none;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.mat-menu-content {
|
|
19
|
+
padding-top: 0 !important;
|
|
20
|
+
padding-bottom: 0 !important;
|
|
21
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
.mat-option {
|
|
2
|
+
@extend .textfield-options-entry;
|
|
3
|
+
|
|
4
|
+
display: block;
|
|
5
|
+
line-height: unset !important;
|
|
6
|
+
outline: none;
|
|
7
|
+
&.mat-selected,
|
|
8
|
+
&.mat-active {
|
|
9
|
+
@extend .textfield-options-entry, .is-focus;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.mat-option-ripple {
|
|
13
|
+
bottom: 0;
|
|
14
|
+
left: 0;
|
|
15
|
+
pointer-events: none;
|
|
16
|
+
position: absolute;
|
|
17
|
+
right: 0;
|
|
18
|
+
top: 0;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.mat-ripple {
|
|
22
|
+
overflow: hidden;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
mat-select {
|
|
2
|
+
@extend .textfield;
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
.textfield.mod-framed mat-select {
|
|
6
|
+
padding: 0 !important;
|
|
7
|
+
.mat-select-trigger {
|
|
8
|
+
font-size: 1rem;
|
|
9
|
+
margin: 2.2rem 1rem 0.7rem;
|
|
10
|
+
&::after {
|
|
11
|
+
bottom: -0.7rem;
|
|
12
|
+
content: '';
|
|
13
|
+
display: block;
|
|
14
|
+
left: -1rem;
|
|
15
|
+
position: absolute;
|
|
16
|
+
right: -1rem;
|
|
17
|
+
top: -2.2rem;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.textfield:not(.mod-compact) mat-select {
|
|
23
|
+
padding-top: 0 !important;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.mat-select-trigger {
|
|
27
|
+
height: 1.1rem !important;
|
|
28
|
+
min-width: 0 !important;
|
|
29
|
+
text-overflow: ellipsis;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.mat-select-placeholder {
|
|
33
|
+
width: auto !important;
|
|
34
|
+
}
|
|
35
|
+
.mat-select-panel {
|
|
36
|
+
@extend .textfield-options;
|
|
37
|
+
|
|
38
|
+
position: relative;
|
|
39
|
+
top: auto;
|
|
40
|
+
transform: none;
|
|
41
|
+
opacity: 1;
|
|
42
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
.mat-tooltip {
|
|
2
|
+
border-radius: var(--commons-border-radius);
|
|
3
|
+
background: var(--components-tooltip-background-color);
|
|
4
|
+
color: var(--components-tooltip-color);
|
|
5
|
+
font-size: var(--sizes-smaller-line-height) !important;
|
|
6
|
+
margin: 0.5em !important;
|
|
7
|
+
padding: .25rem .5rem !important;
|
|
8
|
+
line-height: 1rem;
|
|
9
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
@use '@angular/material' as mat;
|
|
2
|
+
|
|
3
|
+
@import 'components';
|
|
4
|
+
|
|
5
|
+
// CHANGE DEFAULT FONTS TO LUCCA-FRONT FONTS
|
|
6
|
+
$lucca-front-mat-typography: mat.define-typography-config(
|
|
7
|
+
$font-family: var(--commons-font-family),
|
|
8
|
+
);
|
|
9
|
+
|
|
10
|
+
@include mat.all-component-typographies($lucca-front-mat-typography);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lucca-front/ng",
|
|
3
|
-
"version": "10.0.
|
|
3
|
+
"version": "10.0.8-rc.3",
|
|
4
4
|
"description": "A library of icons made by the team @Lucca",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -29,8 +29,8 @@
|
|
|
29
29
|
"@angular/common": "^14.0.0",
|
|
30
30
|
"@angular/core": "^14.0.0",
|
|
31
31
|
"@angular/cdk": "^14.0.0",
|
|
32
|
-
"@lucca-front/icons": "v10.0.
|
|
33
|
-
"@lucca-front/scss": "v10.0.
|
|
32
|
+
"@lucca-front/icons": "v10.0.8-rc.3",
|
|
33
|
+
"@lucca-front/scss": "v10.0.8-rc.3",
|
|
34
34
|
"@types/dompurify": "^2.3.0",
|
|
35
35
|
"dompurify": "^2.3.0",
|
|
36
36
|
"rxjs": "^6.0.0 || ^7.0.0"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.wrapWithCalcFunctionNode = exports.commentNode = exports.removeImportNode = exports.addForwardRule = exports.addImport = exports.addMixinImport = exports.removeContainerIfEmpty = void 0;
|
|
3
|
+
exports.wrapWithCalcFunctionNode = exports.commentNode = exports.removeImportNode = exports.updateDeprecatedVariable = exports.addForwardRule = exports.addImport = exports.addMixinImport = exports.removeContainerIfEmpty = void 0;
|
|
4
4
|
const scss_value_ast_js_1 = require("./scss-value-ast.js");
|
|
5
5
|
function removeContainerIfEmpty(node) {
|
|
6
6
|
if (!node) {
|
|
@@ -68,6 +68,20 @@ function addForwardRule(root, name, postCss, afterNode) {
|
|
|
68
68
|
return addImport(root, new postCss.AtRule({ name: 'forward', params: `'${name}'` }), afterNode);
|
|
69
69
|
}
|
|
70
70
|
exports.addForwardRule = addForwardRule;
|
|
71
|
+
function updateDeprecatedVariable(root, mappingOldToNew, postcssValueParser) {
|
|
72
|
+
root.walkDecls((decl) => {
|
|
73
|
+
const valueNode = new scss_value_ast_js_1.ScssValueAst(decl.value, postcssValueParser);
|
|
74
|
+
valueNode.walkFunction('var', (funcNode) => {
|
|
75
|
+
const varName = funcNode.nodes[0]?.value ?? '';
|
|
76
|
+
const newVarName = varName && mappingOldToNew[varName];
|
|
77
|
+
if (newVarName) {
|
|
78
|
+
funcNode.nodes = new scss_value_ast_js_1.ScssValueAst(newVarName, postcssValueParser).nodes;
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
decl.value = valueNode.toString();
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
exports.updateDeprecatedVariable = updateDeprecatedVariable;
|
|
71
85
|
/**
|
|
72
86
|
* @returns {boolean} returns true if whole node is deleted
|
|
73
87
|
*/
|
|
@@ -14,6 +14,7 @@ const main_import_js_1 = require("./updaters/main-import.js");
|
|
|
14
14
|
const mixins_js_1 = require("./updaters/mixins.js");
|
|
15
15
|
const remove_scss_placeholder_js_1 = require("./updaters/remove-scss-placeholder.js");
|
|
16
16
|
const theme_js_1 = require("./updaters/theme.js");
|
|
17
|
+
const warning_js_1 = require("./updaters/warning.js");
|
|
17
18
|
function migrateScssFile(content, postCss, postCssScss, postcssValueParser) {
|
|
18
19
|
const root = postCssScss.parse(content);
|
|
19
20
|
root.walkAtRules('import', (rule) => {
|
|
@@ -50,6 +51,12 @@ function migrateScssFile(content, postCss, postCssScss, postcssValueParser) {
|
|
|
50
51
|
(0, scss_ast_js_1.commentNode)(rule, 'Import non géré par la migration auto.', postCss);
|
|
51
52
|
}
|
|
52
53
|
});
|
|
54
|
+
(0, warning_js_1.addWarnings)(root);
|
|
55
|
+
(0, scss_ast_js_1.updateDeprecatedVariable)(root, {
|
|
56
|
+
'--commons-background-dark': '--commons-background-base',
|
|
57
|
+
'--commons-background-darker': '--commons-background-base',
|
|
58
|
+
'--commons-background-darkest': '--commons-background-base',
|
|
59
|
+
}, postcssValueParser);
|
|
53
60
|
return root.toResult({ syntax: { stringify: postCssScss.stringify } }).css;
|
|
54
61
|
}
|
|
55
62
|
exports.migrateScssFile = migrateScssFile;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.commentSassFuncWithVar = exports.updateColorMixin = void 0;
|
|
3
|
+
exports.commentSassFuncWithVar = exports.updateColorMixin = exports.getPaletteNodes = void 0;
|
|
4
4
|
const scss_ast_js_1 = require("../../../lib/scss-ast.js");
|
|
5
5
|
const scss_value_ast_js_1 = require("../../../lib/scss-value-ast.js");
|
|
6
|
+
const theme_js_1 = require("./theme.js");
|
|
6
7
|
const legacyLevelToLevel = {
|
|
7
8
|
'see-through': '50',
|
|
8
9
|
darker: '900',
|
|
@@ -19,24 +20,32 @@ const textLevelToLevel = {
|
|
|
19
20
|
light: '600',
|
|
20
21
|
placeholder: '400',
|
|
21
22
|
};
|
|
23
|
+
function getPaletteNodes(firstArg, secondArg, postcssValueParser) {
|
|
24
|
+
const [color, legacyLevel] = firstArg.split('.');
|
|
25
|
+
if (color === 'white') {
|
|
26
|
+
return new scss_value_ast_js_1.ScssValueAst(`--colors-${color}-color`, postcssValueParser).nodes;
|
|
27
|
+
}
|
|
28
|
+
if (color === 'text') {
|
|
29
|
+
if (legacyLevel && !textLevelToLevel[legacyLevel]) {
|
|
30
|
+
const parts = ['colors', (0, theme_js_1.getVariableFromThemeArg)(firstArg), (0, theme_js_1.getVariableFromThemeArg)(secondArg)].filter(Boolean).join('-');
|
|
31
|
+
return new scss_value_ast_js_1.ScssValueAst(`--${parts}`, postcssValueParser).nodes;
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
const level = textLevelToLevel[legacyLevel] ?? textLevelToLevel['default'];
|
|
35
|
+
return new scss_value_ast_js_1.ScssValueAst(`--palettes-grey-${level}`, postcssValueParser).nodes;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
let level = legacyLevel ?? secondArg ?? '700';
|
|
39
|
+
level = legacyLevelToLevel[level] ?? level;
|
|
40
|
+
return new scss_value_ast_js_1.ScssValueAst(`--palettes-${color}-${level}`, postcssValueParser).nodes;
|
|
41
|
+
}
|
|
42
|
+
exports.getPaletteNodes = getPaletteNodes;
|
|
22
43
|
function updateColorMixin(root, postcssValueParser) {
|
|
23
44
|
root.walkDecls((decl) => {
|
|
24
45
|
const valueNode = new scss_value_ast_js_1.ScssValueAst(decl.value, postcssValueParser);
|
|
25
46
|
valueNode.walkFunction('_color', (funcNode) => {
|
|
26
|
-
const [color, legacyLevel] = funcNode.nodes[0].value.split('.');
|
|
27
47
|
funcNode.value = 'var';
|
|
28
|
-
|
|
29
|
-
funcNode.nodes = new scss_value_ast_js_1.ScssValueAst(`--colors-${color}-color`, postcssValueParser).nodes;
|
|
30
|
-
}
|
|
31
|
-
else if (color === 'text') {
|
|
32
|
-
const level = textLevelToLevel[legacyLevel] ?? textLevelToLevel['default'];
|
|
33
|
-
funcNode.nodes = new scss_value_ast_js_1.ScssValueAst(`--palettes-grey-${level}`, postcssValueParser).nodes;
|
|
34
|
-
}
|
|
35
|
-
else {
|
|
36
|
-
let level = legacyLevel ?? funcNode.nodes[2]?.value ?? '700';
|
|
37
|
-
level = legacyLevelToLevel[level] ?? level;
|
|
38
|
-
funcNode.nodes = new scss_value_ast_js_1.ScssValueAst(`--palettes-${color}-${level}`, postcssValueParser).nodes;
|
|
39
|
-
}
|
|
48
|
+
funcNode.nodes = getPaletteNodes(funcNode.nodes[0].value, funcNode.nodes[2]?.value, postcssValueParser);
|
|
40
49
|
});
|
|
41
50
|
decl.value = valueNode.toString();
|
|
42
51
|
});
|
|
@@ -1,18 +1,24 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.updateThemeMixin = void 0;
|
|
3
|
+
exports.getVariableFromThemeArg = exports.updateThemeMixin = void 0;
|
|
4
4
|
const scss_ast_js_1 = require("../../../lib/scss-ast.js");
|
|
5
5
|
const scss_value_ast_js_1 = require("../../../lib/scss-value-ast.js");
|
|
6
|
+
const color_js_1 = require("./color.js");
|
|
6
7
|
function updateThemeMixin(root, postCss, postcssValueParser) {
|
|
7
8
|
root.walkDecls((decl) => {
|
|
8
9
|
const valueNode = new scss_value_ast_js_1.ScssValueAst(decl.value, postcssValueParser);
|
|
9
10
|
// _theme("spacings.smallest") => var(--spacings-smallest)
|
|
10
11
|
valueNode.walkFunction('_theme', (funcNode) => updateThemeNode(funcNode, decl, (themeVar) => {
|
|
11
12
|
funcNode.value = 'var';
|
|
12
|
-
funcNode.nodes
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
if (funcNode.nodes[0]?.value.startsWith('palette.')) {
|
|
14
|
+
funcNode.nodes = (0, color_js_1.getPaletteNodes)(funcNode.nodes[0].value.replace('palette.', ''), undefined, postcssValueParser);
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
funcNode.nodes = new scss_value_ast_js_1.ScssValueAst(`--${themeVar}`, postcssValueParser).nodes;
|
|
18
|
+
const siblings = valueNode.getSiblings(funcNode);
|
|
19
|
+
if (siblings.some((s) => s.type === 'word' && s.value === '*')) {
|
|
20
|
+
(0, scss_ast_js_1.wrapWithCalcFunctionNode)(valueNode, funcNode, postcssValueParser);
|
|
21
|
+
}
|
|
16
22
|
}
|
|
17
23
|
}, postCss));
|
|
18
24
|
// _component("navSide.width") => var(--components-navSide-width)
|
|
@@ -44,7 +50,10 @@ function updateThemeNode(funcNode, declaration, updater, postCss) {
|
|
|
44
50
|
(0, scss_ast_js_1.commentNode)(declaration, `Utilisation de ${funcNode.value} non gérée par la migration automatique`, postCss);
|
|
45
51
|
return false;
|
|
46
52
|
}
|
|
47
|
-
|
|
48
|
-
updater(themeVar);
|
|
53
|
+
updater(getVariableFromThemeArg(funcNode.nodes[0].value));
|
|
49
54
|
return undefined;
|
|
50
55
|
}
|
|
56
|
+
function getVariableFromThemeArg(arg) {
|
|
57
|
+
return arg?.replace?.(/\./g, '-') || '';
|
|
58
|
+
}
|
|
59
|
+
exports.getVariableFromThemeArg = getVariableFromThemeArg;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.addWarnings = void 0;
|
|
4
|
+
function addWarnings(root) {
|
|
5
|
+
root.walkAtRules('each', (rule) => {
|
|
6
|
+
rule.raws.before = (rule.raws.before || '') + '// [LF NEXT] Vérifier le contenu de la boucle.\n';
|
|
7
|
+
});
|
|
8
|
+
}
|
|
9
|
+
exports.addWarnings = addWarnings;
|
package/title/README.md
CHANGED
|
@@ -35,6 +35,20 @@ const userName: string = this.userService.getCurrentUser();
|
|
|
35
35
|
this.luTitleService.prependTitle(userName);
|
|
36
36
|
```
|
|
37
37
|
|
|
38
|
+
You can also replace the first fragment using:
|
|
39
|
+
|
|
40
|
+
```typescript
|
|
41
|
+
const userName: string = this.userService.getOtherUser();
|
|
42
|
+
this.luTitleService.overrideFirstTitlePart(userName);
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Both `prependTitle` and `overrideFirstTitlePart` can also be called using `Observable<string>` :
|
|
46
|
+
|
|
47
|
+
```typescript
|
|
48
|
+
const selectedUser$ = this.userStore.selected$;
|
|
49
|
+
this.luTitleService.prependTitle(selectedUser$);
|
|
50
|
+
```
|
|
51
|
+
|
|
38
52
|
## Quickstart
|
|
39
53
|
|
|
40
54
|
You will need to:
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Title } from '@angular/platform-browser';
|
|
2
2
|
import { Router } from '@angular/router';
|
|
3
|
+
import { ObservableInput } from 'rxjs';
|
|
3
4
|
import { ILuTitleTranslateService } from './title-translate.service';
|
|
4
5
|
import * as i0 from "@angular/core";
|
|
5
6
|
export declare type PageTitle = {
|
|
@@ -14,12 +15,12 @@ export declare class LuTitleService {
|
|
|
14
15
|
private title;
|
|
15
16
|
private translateService;
|
|
16
17
|
private titlePartsSubject;
|
|
17
|
-
titleParts$: import("rxjs").Observable<string[]>;
|
|
18
|
+
titleParts$: import("rxjs").Observable<(string | ObservableInput<string>)[]>;
|
|
18
19
|
title$: import("rxjs").Observable<string>;
|
|
19
20
|
constructor(router: Router, title: Title, translateService: ILuTitleTranslateService);
|
|
20
21
|
init(applicationNameTranslationKey: string): void;
|
|
21
|
-
prependTitle(title: string): void;
|
|
22
|
-
overrideFirstTitlePart(title: string): void;
|
|
22
|
+
prependTitle(title: string | ObservableInput<string>): void;
|
|
23
|
+
overrideFirstTitlePart(title: string | ObservableInput<string>): void;
|
|
23
24
|
static ɵfac: i0.ɵɵFactoryDeclaration<LuTitleService, never>;
|
|
24
25
|
static ɵprov: i0.ɵɵInjectableDeclaration<LuTitleService>;
|
|
25
26
|
}
|