@ng-atomic/common 18.2.0 → 18.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/common.module.d.ts +15 -0
- package/esm2022/common.module.mjs +34 -0
- package/esm2022/index.mjs +2 -2
- package/esm2022/models/index.mjs +1 -1
- package/esm2022/pipes/data-accessor/data-accessor.pipe.mjs +4 -4
- package/esm2022/pipes/domain/domain.pipe.mjs +19 -1
- package/esm2022/pipes/smart-field/smart-field.pipe.mjs +2 -2
- package/esm2022/services/app/app.service.mjs +48 -2
- package/esm2022/services/fab/fab.service.mjs +11 -5
- package/esm2022/services/form/_index/index.service.mjs +2 -2
- package/esm2022/services/form/columns/columns.service.mjs +19 -10
- package/esm2022/services/form/json-schema/index.mjs +2 -0
- package/esm2022/services/form/json-schema/json-schema.mjs +51 -0
- package/esm2022/services/form/json-schema/json-schema.service.mjs +139 -0
- package/esm2022/services/form/json-schema/ng-atomic-common-services-form-json-schema.mjs +5 -0
- package/esm2022/services/initializer/initializer.service.mjs +2 -2
- package/esm2022/services/loading/loading.service.mjs +28 -31
- package/esm2022/services/root-property/root-property.service.mjs +3 -1
- package/esm2022/services/sheets/actions/actions.sheet.mjs +45 -0
- package/esm2022/services/sheets/actions/index.mjs +2 -0
- package/esm2022/services/sheets/actions/ng-atomic-common-services-sheets-actions.mjs +5 -0
- package/esm2022/services/sheets/index.mjs +3 -0
- package/esm2022/services/sheets/ng-atomic-common-services-sheets.mjs +5 -0
- package/esm2022/services/sheets/sheets.module.mjs +25 -0
- package/esm2022/services/sheets/sheets.service.mjs +22 -0
- package/esm2022/services/side-app/side-app.service.mjs +33 -3
- package/esm2022/services/ui/ui.helpers.mjs +47 -65
- package/esm2022/utils/inject/inject.mjs +61 -22
- package/fesm2022/ng-atomic-common-pipes-data-accessor.mjs +3 -3
- package/fesm2022/ng-atomic-common-pipes-data-accessor.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-pipes-domain.mjs +18 -0
- package/fesm2022/ng-atomic-common-pipes-domain.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-pipes-smart-field.mjs +1 -1
- package/fesm2022/ng-atomic-common-pipes-smart-field.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-services-app.mjs +49 -3
- package/fesm2022/ng-atomic-common-services-app.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-services-fab.mjs +10 -4
- package/fesm2022/ng-atomic-common-services-fab.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-services-form-_index.mjs +1 -1
- package/fesm2022/ng-atomic-common-services-form-_index.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-services-form-columns.mjs +18 -9
- package/fesm2022/ng-atomic-common-services-form-columns.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-services-form-json-schema.mjs +193 -0
- package/fesm2022/ng-atomic-common-services-form-json-schema.mjs.map +1 -0
- package/fesm2022/ng-atomic-common-services-initializer.mjs +1 -1
- package/fesm2022/ng-atomic-common-services-initializer.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-services-loading.mjs +26 -29
- package/fesm2022/ng-atomic-common-services-loading.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-services-root-property.mjs +2 -0
- package/fesm2022/ng-atomic-common-services-root-property.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-services-sheets-actions.mjs +52 -0
- package/fesm2022/ng-atomic-common-services-sheets-actions.mjs.map +1 -0
- package/fesm2022/ng-atomic-common-services-sheets.mjs +50 -0
- package/fesm2022/ng-atomic-common-services-sheets.mjs.map +1 -0
- package/fesm2022/ng-atomic-common-services-side-app.mjs +33 -3
- package/fesm2022/ng-atomic-common-services-side-app.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-services-ui.mjs +46 -64
- package/fesm2022/ng-atomic-common-services-ui.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-utils.mjs +62 -23
- package/fesm2022/ng-atomic-common-utils.mjs.map +1 -1
- package/fesm2022/ng-atomic-common.mjs +76 -0
- package/fesm2022/ng-atomic-common.mjs.map +1 -1
- package/index.d.ts +1 -1
- package/models/index.d.ts +1 -0
- package/package.json +20 -2
- package/pipes/data-accessor/data-accessor.pipe.d.ts +3 -3
- package/pipes/domain/domain.pipe.d.ts +2 -1
- package/pipes/smart-field/smart-field.pipe.d.ts +1 -1
- package/services/app/app.service.d.ts +12 -0
- package/services/fab/fab.service.d.ts +3 -3
- package/services/form/columns/columns.service.d.ts +8 -1
- package/services/form/json-schema/index.d.ts +1 -0
- package/services/form/json-schema/json-schema.d.ts +2 -0
- package/services/form/json-schema/json-schema.service.d.ts +54 -0
- package/services/loading/loading.service.d.ts +13 -12
- package/services/sheets/actions/actions.sheet.d.ts +9 -0
- package/services/sheets/actions/index.d.ts +1 -0
- package/services/sheets/index.d.ts +2 -0
- package/services/sheets/sheets.module.d.ts +11 -0
- package/services/sheets/sheets.service.d.ts +10 -0
- package/services/side-app/side-app.service.d.ts +12 -0
- package/services/ui/ui.helpers.d.ts +6 -5
- package/utils/inject/inject.d.ts +29 -7
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ng-atomic-common-services-form-json-schema.mjs","sources":["../../../../../packages/@ng-atomic/common/src/lib/services/form/json-schema/json-schema.ts","../../../../../packages/@ng-atomic/common/src/lib/services/form/json-schema/json-schema.service.ts","../../../../../packages/@ng-atomic/common/src/lib/services/form/json-schema/ng-atomic-common-services-form-json-schema.ts"],"sourcesContent":["import { ValidationTypes } from \"class-validator\"\nimport { targetConstructorToSchema as _targetConstructorToSchema } from \"class-validator-jsonschema\"\nimport { IOptions } from \"class-validator-jsonschema/build/options\";\nimport { JSONSchema7 } from 'json-schema';\n// TODO(@NozomuMiyamoto): fix\n// @ts-ignore\n// const { defaultMetadataStorage } = require('class-transformer/cjs/storage');\nimport { defaultMetadataStorage } from 'class-transformer/esm5/storage';\n\nfunction getPropType(target: object, property: string) {\n return Reflect.getMetadata('design:type', target, property)\n}\n\nfunction targetToSchema(\n type: any,\n options: any\n): any {\n if (typeof type === 'function') {\n if (\n type.prototype === String.prototype ||\n type.prototype === Symbol.prototype\n ) {\n return { type: 'string' }\n } else if (type.prototype === Number.prototype) {\n return { type: 'number' }\n } else if (type.prototype === Boolean.prototype) {\n return { type: 'boolean' }\n }\n\n return targetConstructorToSchema(type, options)\n }\n}\n\nconst additionalConverters= {\n [ValidationTypes.NESTED_VALIDATION]: (meta: any, options: any) => {\n if (typeof meta.target === 'function') {\n const typeMeta = options.classTransformerMetadataStorage\n ? options.classTransformerMetadataStorage.findTypeMetadata(\n meta.target,\n meta.propertyName\n )\n : null\n const childType = typeMeta\n ? typeMeta.typeFunction()\n : getPropType(meta.target.prototype, meta.propertyName)\n return targetToSchema(childType, options)\n }\n },\n isDayjs: (meta: any): JSONSchema7 => {\n return {\n type: 'string',\n format: 'date-time', // JSON Schemaで日付型を指定\n };\n },\n};\n\nexport function targetConstructorToSchema(target: Function, options: Partial<IOptions> = {}) {\n return _targetConstructorToSchema(target, {\n ...options,\n additionalConverters,\n classTransformerMetadataStorage: defaultMetadataStorage,\n });\n}\n","import { Injectable, inject } from \"@angular/core\";\nimport { FormBuilder, FormGroup, NonNullableFormBuilder, Validators } from \"@angular/forms\";\nimport { JsonSchema } from \"json-schema-library\";\nimport { targetConstructorToSchema } from './json-schema';\nimport { merge } from \"lodash-es\";\n\nexport function buildFormGroupByJsonSchema(schema: JsonSchema, {\n fb = inject(FormBuilder).nonNullable,\n value = {},\n}: {\n fb?: FormBuilder | NonNullableFormBuilder,\n value?: object,\n} = {}): FormGroup {\n if (!schema || !schema?.properties) {\n return fb.group({});\n }\n const group: any = {};\n \n for (const key in schema.properties) {\n const property = schema.properties[key];\n const validators = [];\n\n if (schema.required && schema.required.includes(key)) {\n validators.push(Validators.required);\n }\n group[key] = buildFormByJsonSchemaProperty(property, {fb, value: value?.[key], validators});\n }\n return fb.group(group);\n}\n\nexport function buildFormArrayByJsonSchema(schema: JsonSchema, {\n fb = inject(FormBuilder).nonNullable,\n value = [],\n}: {\n fb?: FormBuilder | NonNullableFormBuilder,\n value?: any[],\n} = {}): any {\n if (!schema || !schema.items) {\n return fb.array([]);\n }\n console.debug('[buildFormArrayByJsonSchema] schema:', schema);\n const array = fb.array([\n buildFormGroupByJsonSchema(schema.items, {fb}),\n ])\n return array;\n}\n\nexport function buildFormByJsonSchemaProperty(property: JsonSchema, {\n fb = inject(FormBuilder).nonNullable,\n value = null,\n validators = [],\n}: {\n fb?: FormBuilder | NonNullableFormBuilder,\n value?: object | object[],\n validators?: any[],\n} = {}): any {\n if (property.type === 'string') {\n if (property.format === 'date-time') {\n return fb.control(value ?? property.default ?? null, validators);\n } else if (property.format === 'binary') {\n return fb.control(value ?? property.default ?? null, validators);\n } else {\n return fb.control(value ?? property.default ?? '', validators);\n }\n } else if (property.type === 'integer') {\n return fb.control(value ?? property.default ?? 0, validators);\n } else if (property.type === 'number') {\n return fb.control(value ?? property.default ?? 0, validators);\n } else if (property.type === 'object') {\n return buildFormGroupByJsonSchema(property, {fb, value: (value || {}) as object});\n }\n else if (property.type === 'array') {\n return buildFormArrayByJsonSchema(property, {fb, value: (value || []) as any[]});\n }\n}\n\nexport function buildFormFieldMapByJsonSchema(\n schema: JsonSchema,\n options: {\n merge?: { [key: string]: any },\n } = {},\n): any {\n if (!schema || !schema.properties) {\n return {\n id: { type: 'hidden' },\n };\n }\n const fieldMap: any = {};\n \n for (const key in schema.properties) {\n const property = schema.properties[key];\n if (property.type === 'string') {\n if (property.enum) {\n fieldMap[key] = { type: 'select', options: property.enum.map((v: string) => ({ value: v, name: v })) };\n } else if (property.format === 'date-time') {\n fieldMap[key] = { type: 'date' };\n } else if (property.format === 'binary') {\n fieldMap[key] = { type: 'file' };\n } else {\n fieldMap[key] = { type: 'text' };\n }\n } else if (property.type === 'object') {\n const childFieldMap = buildFormFieldMapByJsonSchema(property, options);\n for (const childKey in childFieldMap) {\n fieldMap[`${key}.${childKey}`] = childFieldMap[childKey];\n }\n } else if (property.type === 'array') {\n const childFieldMap = buildFormFieldMapByJsonSchema(property.items, options);\n for (const childKey in childFieldMap) {\n // TODO: 正規表現でパスマッチを判定できるようにする。\n fieldMap[`${key}.\\\\d+.${childKey}`] = childFieldMap[childKey];\n }\n } else {\n fieldMap[key] = { type: property.type };\n }\n // const type = ? 'date' : property.type;\n }\n\n console.debug('[buildFormFieldMapByJsonSchema] fieldMap:', fieldMap);\n\n return merge(fieldMap, options.merge);\n}\n\nexport function buildFormByJsonSchema(schema: JsonSchema, {\n fb = inject(FormBuilder).nonNullable,\n value = {},\n fieldMap = {},\n}: {\n fb?: FormBuilder | NonNullableFormBuilder,\n value?: object,\n fieldMap?: object,\n} = {}): any {\n return {\n form: buildFormGroupByJsonSchema(schema, {fb, value}),\n fieldMap: buildFormFieldMapByJsonSchema(schema, {merge: fieldMap}),\n };\n}\n\nexport function buildFormGroup(klass: new() => any, {\n fb = inject(FormBuilder).nonNullable,\n value,\n}: {\n fb?: FormBuilder | NonNullableFormBuilder,\n value?: object,\n}): FormGroup {\n const schema = targetConstructorToSchema(klass);\n return buildFormGroupByJsonSchema(schema, {fb, value});\n}\n\n\nexport function buildFormFieldMap(klass: new() => any, options: {\n merge?: { [key: string]: any },\n}): any {\n const schema = targetConstructorToSchema(klass);\n const map = buildFormFieldMapByJsonSchema(schema, options);\n return merge(map, options.merge);\n}\n\nexport function buildForm(klass: new() => any, {\n fb = inject(FormBuilder).nonNullable,\n value = {},\n fieldMap = {},\n}: {\n fb?: FormBuilder | NonNullableFormBuilder,\n value?: object,\n fieldMap?: object,\n} = {}): any {\n const schema = targetConstructorToSchema(klass);\n return {\n form: buildFormGroupByJsonSchema(schema, {fb, value}),\n fieldMap: buildFormFieldMapByJsonSchema(schema, {merge: fieldMap}),\n };\n}\n\n\n@Injectable({ providedIn: 'root' })\nexport class JsonSchemaFormService {\n private fb = inject(FormBuilder).nonNullable;\n\n build(schema: JsonSchema, {\n fb = this.fb,\n value = {},\n }: {\n fb?: FormBuilder | NonNullableFormBuilder,\n value?: object,\n } = {}): FormGroup {\n return buildFormGroupByJsonSchema(schema, {fb, value});\n }\n\n buildFieldMap(\n schema: JsonSchema,\n options: {\n merge?: { [key: string]: any },\n } = {},\n ): any {\n return buildFormFieldMapByJsonSchema(schema, options);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["_targetConstructorToSchema"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { InjectionToken, inject, Injector, runInInjectionContext, Injectable } from '@angular/core';
|
|
3
3
|
|
|
4
|
-
const STORE_INITIALIZER = new InjectionToken('[@ng-atomic/
|
|
4
|
+
const STORE_INITIALIZER = new InjectionToken('[@ng-atomic/common/pages/form] StoreInitializer');
|
|
5
5
|
function provideStoreInitializer(key, initializer) {
|
|
6
6
|
return [
|
|
7
7
|
{ provide: STORE_INITIALIZER, useValue: { key, initializer }, multi: true },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-atomic-common-services-initializer.mjs","sources":["../../../../../packages/@ng-atomic/common/src/lib/services/initializer/initializer.service.ts","../../../../../packages/@ng-atomic/common/src/lib/services/initializer/ng-atomic-common-services-initializer.ts"],"sourcesContent":["import { Injectable, Injector, inject, runInInjectionContext } from '@angular/core';\nimport { InjectionToken } from \"@angular/core\";\n\ntype StoreInitializer<S> = (store: S) => Promise<void> | void;\n\ninterface StoreInitializerEntry<S> {\n key: { new(): S };\n initializer: StoreInitializer<S>;\n}\n\nconst STORE_INITIALIZER = new InjectionToken<StoreInitializer<any>>('[@ng-atomic/
|
|
1
|
+
{"version":3,"file":"ng-atomic-common-services-initializer.mjs","sources":["../../../../../packages/@ng-atomic/common/src/lib/services/initializer/initializer.service.ts","../../../../../packages/@ng-atomic/common/src/lib/services/initializer/ng-atomic-common-services-initializer.ts"],"sourcesContent":["import { Injectable, Injector, inject, runInInjectionContext } from '@angular/core';\nimport { InjectionToken } from \"@angular/core\";\n\ntype StoreInitializer<S> = (store: S) => Promise<void> | void;\n\ninterface StoreInitializerEntry<S> {\n key: { new(): S };\n initializer: StoreInitializer<S>;\n}\n\nconst STORE_INITIALIZER = new InjectionToken<StoreInitializer<any>>('[@ng-atomic/common/pages/form] StoreInitializer');\n\nfunction provideStoreInitializer<S>(key: {new(): S}, initializer: StoreInitializer<S>) {\n return [\n { provide: STORE_INITIALIZER, useValue: { key, initializer}, multi: true },\n ];\n}\n\nfunction injectInitializerEntries<S>(): StoreInitializerEntry<S>[] {\n return inject<StoreInitializerEntry<S>[]>(STORE_INITIALIZER, {optional: true}) ?? [];\n}\n\nfunction injectStoreInitializers<S>(key: {new(): S}): StoreInitializer<S>[] {\n const entries = injectInitializerEntries<S>();\n return entries.filter(entry => entry.key === key).map(entry => entry.initializer);\n}\n\nexport function makeInitializerConfig<S>(klass: {new(): S}) {\n return {\n provide<SI extends StoreInitializer<S>>(initializer: SI) {\n return provideStoreInitializer(klass, initializer);\n },\n inject(): StoreInitializer<S>[] {\n return injectStoreInitializers(klass);\n },\n async initializeStore(store: S) {\n const injector = inject(Injector);\n const initializers = injectStoreInitializers(klass);\n for (const initializer of initializers) {\n await runInInjectionContext(injector, () => initializer(store));\n }\n },\n }\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class InitializerService {\n\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;AAUA,MAAM,iBAAiB,GAAG,IAAI,cAAc,CAAwB,iDAAiD,CAAC,CAAC;AAEvH,SAAS,uBAAuB,CAAI,GAAe,EAAE,WAAgC,EAAA;IACnF,OAAO;AACL,QAAA,EAAE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,WAAW,EAAC,EAAE,KAAK,EAAE,IAAI,EAAE;KAC3E,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB,GAAA;AAC/B,IAAA,OAAO,MAAM,CAA6B,iBAAiB,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,IAAI,EAAE,CAAC;AACvF,CAAC;AAED,SAAS,uBAAuB,CAAI,GAAe,EAAA;AACjD,IAAA,MAAM,OAAO,GAAG,wBAAwB,EAAK,CAAC;IAC9C,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;AACpF,CAAC;AAEK,SAAU,qBAAqB,CAAI,KAAiB,EAAA;IACxD,OAAO;AACL,QAAA,OAAO,CAAiC,WAAe,EAAA;AACrD,YAAA,OAAO,uBAAuB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;SACpD;QACD,MAAM,GAAA;AACJ,YAAA,OAAO,uBAAuB,CAAC,KAAK,CAAC,CAAC;SACvC;QACD,MAAM,eAAe,CAAC,KAAQ,EAAA;AAC5B,YAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;AAClC,YAAA,MAAM,YAAY,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;AACpD,YAAA,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE;AACtC,gBAAA,MAAM,qBAAqB,CAAC,QAAQ,EAAE,MAAM,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;aACjE;SACF;KACF,CAAA;AACH,CAAC;MAKY,kBAAkB,CAAA;8GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,cAFjB,MAAM,EAAA,CAAA,CAAA,EAAA;;2FAEP,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;AC/CD;;AAEG;;;;"}
|
|
@@ -1,41 +1,38 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Injectable } from '@angular/core';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
2
|
+
import { signal, effect, computed, Injectable } from '@angular/core';
|
|
3
|
+
import { toObservable } from '@angular/core/rxjs-interop';
|
|
4
|
+
import { get, set, unset } from 'lodash-es';
|
|
5
|
+
import { of } from 'rxjs';
|
|
6
|
+
import { tap, switchMap } from 'rxjs/operators';
|
|
6
7
|
|
|
7
8
|
class LoadingService {
|
|
8
9
|
constructor() {
|
|
9
|
-
this.
|
|
10
|
-
this.loadingMap$ = this.
|
|
11
|
-
this.
|
|
12
|
-
this.isLoading$ = this.
|
|
13
|
-
this.
|
|
10
|
+
this.loadingMap = signal({});
|
|
11
|
+
this.loadingMap$ = toObservable(this.loadingMap);
|
|
12
|
+
this.isLoading = this.getIsLoading();
|
|
13
|
+
this.isLoading$ = toObservable(this.isLoading);
|
|
14
|
+
this.isProgress = (domain = 'progress') => this.getIsLoading(domain)();
|
|
15
|
+
effect(() => console.info('LoadingService.loadingMap:', this.loadingMap()));
|
|
14
16
|
}
|
|
15
|
-
|
|
16
|
-
this.
|
|
17
|
-
return key;
|
|
18
|
-
}
|
|
19
|
-
end(key) {
|
|
20
|
-
this.loadingEntries$.next([key, false]);
|
|
17
|
+
getIsLoading(domain = 'default') {
|
|
18
|
+
return computed(() => Object.keys(get(this.loadingMap(), [domain], {}))?.length > 0);
|
|
21
19
|
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
20
|
+
start(key = randomStr(16), domain = 'default') {
|
|
21
|
+
this.loadingMap.update((map) => ({ ...set(map, [domain, key], true) }));
|
|
22
|
+
return key;
|
|
25
23
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
this.end(key);
|
|
24
|
+
end(key, domain = 'default') {
|
|
25
|
+
this.loadingMap.update((map) => ({ ...(unset(map, [domain, key]), map) }));
|
|
29
26
|
}
|
|
30
|
-
async await(callback) {
|
|
31
|
-
|
|
32
|
-
const
|
|
33
|
-
|
|
27
|
+
async await(callback, domain = 'default', key = randomStr(16)) {
|
|
28
|
+
this.start(key, domain);
|
|
29
|
+
const wrappedCallback = async () => await callback();
|
|
30
|
+
const res = await wrappedCallback().catch(error => { console.error(error); });
|
|
31
|
+
this.end(key, domain);
|
|
34
32
|
return res;
|
|
35
33
|
}
|
|
36
|
-
switchMap(project) {
|
|
37
|
-
|
|
38
|
-
return (source) => source.pipe(tap(() => this.start(key)), switchMap(project), tap(() => this.end(key)));
|
|
34
|
+
switchMap(project, domain = 'default', key = randomStr(16)) {
|
|
35
|
+
return (source) => source.pipe(tap(() => this.start(key, domain)), switchMap(project), tap(() => this.end(key, domain)));
|
|
39
36
|
}
|
|
40
37
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: LoadingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
41
38
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: LoadingService, providedIn: 'root' }); }
|
|
@@ -45,7 +42,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImpor
|
|
|
45
42
|
args: [{
|
|
46
43
|
providedIn: 'root',
|
|
47
44
|
}]
|
|
48
|
-
}] });
|
|
45
|
+
}], ctorParameters: () => [] });
|
|
49
46
|
class NoopLoadingService extends LoadingService {
|
|
50
47
|
constructor() {
|
|
51
48
|
super(...arguments);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-atomic-common-services-loading.mjs","sources":["../../../../../packages/@ng-atomic/common/src/lib/services/loading/loading.service.ts","../../../../../packages/@ng-atomic/common/src/lib/services/loading/ng-atomic-common-services-loading.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport {
|
|
1
|
+
{"version":3,"file":"ng-atomic-common-services-loading.mjs","sources":["../../../../../packages/@ng-atomic/common/src/lib/services/loading/loading.service.ts","../../../../../packages/@ng-atomic/common/src/lib/services/loading/ng-atomic-common-services-loading.ts"],"sourcesContent":["import { computed, effect, Injectable, Signal, signal } from '@angular/core';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { set, unset, get } from 'lodash-es';\nimport { ObservableInput, ObservedValueOf, OperatorFunction, of } from 'rxjs';\nimport { tap, switchMap } from 'rxjs/operators';\n\ntype LoadingMap = Record<string, Record<string, boolean>>;\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LoadingService {\n readonly loadingMap = signal<LoadingMap>({})\n readonly loadingMap$ = toObservable(this.loadingMap);\n readonly isLoading = this.getIsLoading();\n readonly isLoading$ = toObservable(this.isLoading);\n readonly isProgress = (domain = 'progress') => this.getIsLoading(domain)();\n\n constructor() {\n effect(() => console.info('LoadingService.loadingMap:', this.loadingMap()));\n }\n\n getIsLoading(domain = 'default'): Signal<boolean> {\n return computed(() => Object.keys(get(this.loadingMap(), [domain], {}))?.length > 0);\n }\n\n start(key: string = randomStr(16), domain = 'default'): string {\n this.loadingMap.update((map) => ({...set(map, [domain, key], true)}));\n return key;\n }\n\n end(key: string, domain = 'default'): void {\n this.loadingMap.update((map) => ({...(unset(map, [domain, key]), map)}));\n }\n\n async await<T = any>(\n callback: (...args: any[]) => Promise<T | void> | (T | void),\n domain = 'default',\n key = randomStr(16),\n ): Promise<T | void> {\n this.start(key, domain);\n const wrappedCallback = async () => await callback();\n const res = await wrappedCallback().catch(error => {console.error(error);});\n this.end(key, domain);\n return res;\n }\n\n switchMap<T, O extends ObservableInput<any>>(\n project: (value: T, index: number) => O,\n domain = 'default',\n key = randomStr(16),\n ): OperatorFunction<T, ObservedValueOf<O>> {\n return (source) => source.pipe(\n tap(() => this.start(key, domain)),\n switchMap(project),\n tap(() => this.end(key, domain)),\n );\n }\n}\n\n@Injectable()\nexport class NoopLoadingService extends LoadingService {\n readonly isLoading$ = of(false);\n}\n\nexport function provideNoopLoadingService() {\n return { provide: LoadingService, useClass: NoopLoadingService };\n}\n\nexport function randomStr(n = 16): string {\n return Math.random().toString(36).substr(2, n);\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -82,6 +82,8 @@ class RootPropertyService {
|
|
|
82
82
|
'--loading-primary-color': 'var(--accent-color)',
|
|
83
83
|
'--background-primary-color': 'var(--primary-color)',
|
|
84
84
|
'--background-on-primary-color': 'var(--on-primary-color)',
|
|
85
|
+
'--table-background-color': 'var(--background-color)',
|
|
86
|
+
'--table-on-background-color': 'var(--on-background-color)',
|
|
85
87
|
'--selection-color': 'var(--background-color)',
|
|
86
88
|
'--selection-background-color': 'var(--on-background-color)',
|
|
87
89
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-atomic-common-services-root-property.mjs","sources":["../../../../../packages/@ng-atomic/common/src/lib/services/root-property/root-property.service.ts","../../../../../packages/@ng-atomic/common/src/lib/services/root-property/root-property.di.ts","../../../../../packages/@ng-atomic/common/src/lib/services/root-property/ng-atomic-common-services-root-property.ts"],"sourcesContent":["import { isPlatformBrowser, isPlatformServer } from '@angular/common';\nimport { Directive, ElementRef, Injectable, PLATFORM_ID, effect, inject } from '@angular/core';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { makeConfig, UIContext } from '@ng-atomic/common/services/ui';\nimport { MaterialCssVarsService } from 'angular-material-css-vars';\nimport { Observable, delay, filter, map, of } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class RootPropertyService {\n static readonly Config = makeConfig(() => {\n return (context) => {\n switch (context.breakpoint) {\n case 'xSmall': return {\n '--primary-color': '#404040',\n '--on-primary-color': '#f0f0f0',\n '--surface-color': '#fff',\n '--on-surface-color': '#404040',\n '--background-color': '#fff',\n '--menu-width': '220px',\n '--page-width-lv1': '100vw',\n '--page-width-lv2': '100vw',\n '--page-width-lv3': '100vw',\n '--page-width-lv4': '100vw',\n '--page-height-lv1': '100vh',\n };\n case 'small':\n case 'medium': return {\n '--primary-color': '#404040',\n '--on-primary-color': '#f0f0f0',\n '--surface-color': '#fff',\n '--on-surface-color': '#404040',\n '--background-color': '#fff',\n '--menu-width': '64px',\n '--page-width-lv1': '360px',\n '--page-width-lv2': 'max(calc(min(100vw, 1600px) - 360px - var(--menu-width)), 360px)',\n '--page-width-lv3': 'max(calc(min(100vw, 1600px) - var(--menu-width)), 360px)',\n '--page-width-lv4': '100vw',\n '--page-height-lv1': '100vh',\n };\n case 'large': return {\n '--primary-color': '#404040',\n '--on-primary-color': '#f0f0f0',\n '--surface-color': '#fff',\n '--on-surface-color': '#404040',\n '--background-color': '#fff',\n '--menu-width': '220px',\n '--page-width-lv1': '360px',\n '--page-width-lv2': 'max(calc(min(100vw, 1600px) - var(--page-width-lv1) - var(--menu-width)), var(--page-width-lv1))',\n '--page-width-lv3': 'max(calc(min(100vw, 1600px) - var(--menu-width)), var(--page-width-lv1))',\n '--page-width-lv4': '100vw',\n '--page-height-lv1': '100vh',\n };\n case 'xLarge': return {\n '--primary-color': '#404040',\n '--on-primary-color': '#f0f0f0',\n '--surface-color': '#fff',\n '--on-surface-color': '#404040',\n '--background-color': '#fff',\n '--menu-width': '220px',\n '--page-width-lv1': '360px',\n '--page-width-lv2': 'max(calc(min(100vw) - var(--page-width-lv1) - var(--menu-width)), var(--page-width-lv1))',\n '--page-width-lv3': 'max(calc(min(100vw) - var(--menu-width)), var(--page-width-lv1))',\n '--page-width-lv4': '100vw',\n '--page-height-lv1': '100vh',\n };\n }\n };\n }, ['root', 'properties']);\n static provideColorSchemaA() {\n return RootPropertyService.Config.provide(() => {\n return (config) => ({\n ...config,\n '--primary-color': '#404040',\n '--on-primary-color': '#f0f0f0',\n '--accent-color': '#d8ab12',\n '--background-color': '#ffffff',\n '--on-background-color': '#404040',\n '--menu-background-color': '#404040',\n '--menu-on-background-color': '#f0f0f0',\n '--navigator-background-color': '#404040',\n '--navigator-on-background-color': '#f0f0f0',\n '--loading-primary-color': 'var(--accent-color)',\n '--background-primary-color': 'var(--primary-color)',\n '--background-on-primary-color': 'var(--on-primary-color)',\n '--selection-color': 'var(--background-color)',\n '--selection-background-color': 'var(--on-background-color)',\n });\n });\n }\n\n static provideColorSchema1 = RootPropertyService.provideColorSchemaA;\n static provideMenuWidthForIconButtonMenu() {\n return RootPropertyService.Config.provide(() => {\n const getMenuWidth = (context: UIContext) => {\n switch (context.breakpoint) {\n case 'xSmall': return '220px';\n case 'small':\n case 'medium':\n case 'large':\n case 'xLarge': return '64px';\n }\n }\n return (config, context) => ({\n ...config,\n '--menu-width': getMenuWidth(context),\n });\n });\n }\n\n readonly config = RootPropertyService.Config.inject();\n\n readonly platformId = inject(PLATFORM_ID);\n readonly matCssVar = inject(MaterialCssVarsService);\n\n constructor() {\n effect(() => {\n if (isPlatformBrowser(this.platformId)) {\n for (const [key, value] of Object.entries(this.config?.() ?? {})) {\n document.documentElement.style.setProperty(key, value);\n }\n }\n this.matCssVar.setPrimaryColor(this.config()['--primary-color']);\n this.matCssVar.setAccentColor(this.config()['--accent-color']);\n this.matCssVar.setWarnColor(this.config()['--warn-color']);\n this.matCssVar.setDarkTheme(false);\n });\n }\n}\n\n@Directive({ standalone: true, selector: '[atomicStyle]' })\nexport class NgAtomicStyleDirective {\n readonly #el = inject(ElementRef);\n readonly platformId = inject(PLATFORM_ID);\n\n constructor(private rootPropertyService: RootPropertyService) {\n effect(() => {\n for (const [key, value] of Object.entries(this.rootPropertyService.config?.() ?? {})) {\n this.#el.nativeElement.style.setProperty(key, value);\n }\n });\n }\n}\n\n@Injectable({providedIn: 'root'})\nexport class RootPropertyGuard {\n\treadonly properties = RootPropertyService.Config.inject();\n\treadonly properties$ = toObservable(this.properties);\n\treadonly platformId = inject(PLATFORM_ID);\n\n\tcanActivate(): Observable<boolean> {\n\t\tif (isPlatformServer(this.platformId)) return of(null);\t\n\t\treturn this.properties$.pipe(\n\t\t\tfilter(properties => properties['--background-color'] === '#f0f0f0'),\n\t\t\tdelay(500),\n\t\t\tmap(() => true),\n\t\t);\n\t}\n}\n","import { ENVIRONMENT_INITIALIZER, inject } from \"@angular/core\";\nimport { provideMaterialCssVars } from \"angular-material-css-vars\";\nimport { RootPropertyService } from \"./root-property.service\";\n\nexport function provideRootProperty() {\n return [\n {\n provide: ENVIRONMENT_INITIALIZER,\n useFactory: () => () => inject(RootPropertyService),\n multi: true,\n },\n provideMaterialCssVars({}),\n RootPropertyService.provideColorSchemaA(),\n ]\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ng-atomic-common-services-root-property.mjs","sources":["../../../../../packages/@ng-atomic/common/src/lib/services/root-property/root-property.service.ts","../../../../../packages/@ng-atomic/common/src/lib/services/root-property/root-property.di.ts","../../../../../packages/@ng-atomic/common/src/lib/services/root-property/ng-atomic-common-services-root-property.ts"],"sourcesContent":["import { isPlatformBrowser, isPlatformServer } from '@angular/common';\nimport { Directive, ElementRef, Injectable, PLATFORM_ID, effect, inject } from '@angular/core';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { makeConfig, UIContext } from '@ng-atomic/common/services/ui';\nimport { MaterialCssVarsService } from 'angular-material-css-vars';\nimport { Observable, delay, filter, map, of } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class RootPropertyService {\n static readonly Config = makeConfig(() => {\n return (context) => {\n switch (context.breakpoint) {\n case 'xSmall': return {\n '--primary-color': '#404040',\n '--on-primary-color': '#f0f0f0',\n '--surface-color': '#fff',\n '--on-surface-color': '#404040',\n '--background-color': '#fff',\n '--menu-width': '220px',\n '--page-width-lv1': '100vw',\n '--page-width-lv2': '100vw',\n '--page-width-lv3': '100vw',\n '--page-width-lv4': '100vw',\n '--page-height-lv1': '100vh',\n };\n case 'small':\n case 'medium': return {\n '--primary-color': '#404040',\n '--on-primary-color': '#f0f0f0',\n '--surface-color': '#fff',\n '--on-surface-color': '#404040',\n '--background-color': '#fff',\n '--menu-width': '64px',\n '--page-width-lv1': '360px',\n '--page-width-lv2': 'max(calc(min(100vw, 1600px) - 360px - var(--menu-width)), 360px)',\n '--page-width-lv3': 'max(calc(min(100vw, 1600px) - var(--menu-width)), 360px)',\n '--page-width-lv4': '100vw',\n '--page-height-lv1': '100vh',\n };\n case 'large': return {\n '--primary-color': '#404040',\n '--on-primary-color': '#f0f0f0',\n '--surface-color': '#fff',\n '--on-surface-color': '#404040',\n '--background-color': '#fff',\n '--menu-width': '220px',\n '--page-width-lv1': '360px',\n '--page-width-lv2': 'max(calc(min(100vw, 1600px) - var(--page-width-lv1) - var(--menu-width)), var(--page-width-lv1))',\n '--page-width-lv3': 'max(calc(min(100vw, 1600px) - var(--menu-width)), var(--page-width-lv1))',\n '--page-width-lv4': '100vw',\n '--page-height-lv1': '100vh',\n };\n case 'xLarge': return {\n '--primary-color': '#404040',\n '--on-primary-color': '#f0f0f0',\n '--surface-color': '#fff',\n '--on-surface-color': '#404040',\n '--background-color': '#fff',\n '--menu-width': '220px',\n '--page-width-lv1': '360px',\n '--page-width-lv2': 'max(calc(min(100vw) - var(--page-width-lv1) - var(--menu-width)), var(--page-width-lv1))',\n '--page-width-lv3': 'max(calc(min(100vw) - var(--menu-width)), var(--page-width-lv1))',\n '--page-width-lv4': '100vw',\n '--page-height-lv1': '100vh',\n };\n }\n };\n }, ['root', 'properties']);\n static provideColorSchemaA() {\n return RootPropertyService.Config.provide(() => {\n return (config) => ({\n ...config,\n '--primary-color': '#404040',\n '--on-primary-color': '#f0f0f0',\n '--accent-color': '#d8ab12',\n '--background-color': '#ffffff',\n '--on-background-color': '#404040',\n '--menu-background-color': '#404040',\n '--menu-on-background-color': '#f0f0f0',\n '--navigator-background-color': '#404040',\n '--navigator-on-background-color': '#f0f0f0',\n '--loading-primary-color': 'var(--accent-color)',\n '--background-primary-color': 'var(--primary-color)',\n '--background-on-primary-color': 'var(--on-primary-color)',\n '--table-background-color': 'var(--background-color)',\n '--table-on-background-color': 'var(--on-background-color)',\n '--selection-color': 'var(--background-color)',\n '--selection-background-color': 'var(--on-background-color)',\n });\n });\n }\n\n static provideColorSchema1 = RootPropertyService.provideColorSchemaA;\n static provideMenuWidthForIconButtonMenu() {\n return RootPropertyService.Config.provide(() => {\n const getMenuWidth = (context: UIContext) => {\n switch (context.breakpoint) {\n case 'xSmall': return '220px';\n case 'small':\n case 'medium':\n case 'large':\n case 'xLarge': return '64px';\n }\n }\n return (config, context) => ({\n ...config,\n '--menu-width': getMenuWidth(context),\n });\n });\n }\n\n readonly config = RootPropertyService.Config.inject();\n\n readonly platformId = inject(PLATFORM_ID);\n readonly matCssVar = inject(MaterialCssVarsService);\n\n constructor() {\n effect(() => {\n if (isPlatformBrowser(this.platformId)) {\n for (const [key, value] of Object.entries(this.config?.() ?? {})) {\n document.documentElement.style.setProperty(key, value);\n }\n }\n this.matCssVar.setPrimaryColor(this.config()['--primary-color']);\n this.matCssVar.setAccentColor(this.config()['--accent-color']);\n this.matCssVar.setWarnColor(this.config()['--warn-color']);\n this.matCssVar.setDarkTheme(false);\n });\n }\n}\n\n@Directive({ standalone: true, selector: '[atomicStyle]' })\nexport class NgAtomicStyleDirective {\n readonly #el = inject(ElementRef);\n readonly platformId = inject(PLATFORM_ID);\n\n constructor(private rootPropertyService: RootPropertyService) {\n effect(() => {\n for (const [key, value] of Object.entries(this.rootPropertyService.config?.() ?? {})) {\n this.#el.nativeElement.style.setProperty(key, value);\n }\n });\n }\n}\n\n@Injectable({providedIn: 'root'})\nexport class RootPropertyGuard {\n\treadonly properties = RootPropertyService.Config.inject();\n\treadonly properties$ = toObservable(this.properties);\n\treadonly platformId = inject(PLATFORM_ID);\n\n\tcanActivate(): Observable<boolean> {\n\t\tif (isPlatformServer(this.platformId)) return of(null);\t\n\t\treturn this.properties$.pipe(\n\t\t\tfilter(properties => properties['--background-color'] === '#f0f0f0'),\n\t\t\tdelay(500),\n\t\t\tmap(() => true),\n\t\t);\n\t}\n}\n","import { ENVIRONMENT_INITIALIZER, inject } from \"@angular/core\";\nimport { provideMaterialCssVars } from \"angular-material-css-vars\";\nimport { RootPropertyService } from \"./root-property.service\";\n\nexport function provideRootProperty() {\n return [\n {\n provide: ENVIRONMENT_INITIALIZER,\n useFactory: () => () => inject(RootPropertyService),\n multi: true,\n },\n provideMaterialCssVars({}),\n RootPropertyService.provideColorSchemaA(),\n ]\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;MAQa,mBAAmB,CAAA;AACd,IAAA,SAAA,IAAA,CAAA,MAAM,GAAG,UAAU,CAAC,MAAK;QACvC,OAAO,CAAC,OAAO,KAAI;AACjB,YAAA,QAAQ,OAAO,CAAC,UAAU;gBACxB,KAAK,QAAQ,EAAE,OAAO;AACpB,oBAAA,iBAAiB,EAAE,SAAS;AAC5B,oBAAA,oBAAoB,EAAE,SAAS;AAC/B,oBAAA,iBAAiB,EAAE,MAAM;AACzB,oBAAA,oBAAoB,EAAE,SAAS;AAC/B,oBAAA,oBAAoB,EAAE,MAAM;AAC5B,oBAAA,cAAc,EAAE,OAAO;AACvB,oBAAA,kBAAkB,EAAE,OAAO;AAC3B,oBAAA,kBAAkB,EAAE,OAAO;AAC3B,oBAAA,kBAAkB,EAAE,OAAO;AAC3B,oBAAA,kBAAkB,EAAE,OAAO;AAC3B,oBAAA,mBAAmB,EAAE,OAAO;iBAC7B,CAAC;AACF,gBAAA,KAAK,OAAO,CAAC;gBACb,KAAK,QAAQ,EAAE,OAAO;AACpB,oBAAA,iBAAiB,EAAE,SAAS;AAC5B,oBAAA,oBAAoB,EAAE,SAAS;AAC/B,oBAAA,iBAAiB,EAAE,MAAM;AACzB,oBAAA,oBAAoB,EAAE,SAAS;AAC/B,oBAAA,oBAAoB,EAAE,MAAM;AAC5B,oBAAA,cAAc,EAAE,MAAM;AACtB,oBAAA,kBAAkB,EAAE,OAAO;AAC3B,oBAAA,kBAAkB,EAAE,kEAAkE;AACtF,oBAAA,kBAAkB,EAAE,0DAA0D;AAC9E,oBAAA,kBAAkB,EAAE,OAAO;AAC3B,oBAAA,mBAAmB,EAAE,OAAO;iBAC7B,CAAC;gBACF,KAAK,OAAO,EAAE,OAAO;AACnB,oBAAA,iBAAiB,EAAE,SAAS;AAC5B,oBAAA,oBAAoB,EAAE,SAAS;AAC/B,oBAAA,iBAAiB,EAAE,MAAM;AACzB,oBAAA,oBAAoB,EAAE,SAAS;AAC/B,oBAAA,oBAAoB,EAAE,MAAM;AAC5B,oBAAA,cAAc,EAAE,OAAO;AACvB,oBAAA,kBAAkB,EAAE,OAAO;AAC3B,oBAAA,kBAAkB,EAAE,kGAAkG;AACtH,oBAAA,kBAAkB,EAAE,0EAA0E;AAC9F,oBAAA,kBAAkB,EAAE,OAAO;AAC3B,oBAAA,mBAAmB,EAAE,OAAO;iBAC7B,CAAC;gBACF,KAAK,QAAQ,EAAE,OAAO;AACpB,oBAAA,iBAAiB,EAAE,SAAS;AAC5B,oBAAA,oBAAoB,EAAE,SAAS;AAC/B,oBAAA,iBAAiB,EAAE,MAAM;AACzB,oBAAA,oBAAoB,EAAE,SAAS;AAC/B,oBAAA,oBAAoB,EAAE,MAAM;AAC5B,oBAAA,cAAc,EAAE,OAAO;AACvB,oBAAA,kBAAkB,EAAE,OAAO;AAC3B,oBAAA,kBAAkB,EAAE,0FAA0F;AAC9G,oBAAA,kBAAkB,EAAE,kEAAkE;AACtF,oBAAA,kBAAkB,EAAE,OAAO;AAC3B,oBAAA,mBAAmB,EAAE,OAAO;iBAC7B,CAAC;aACH;AACH,SAAC,CAAC;KACH,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,EAAA;AAC3B,IAAA,OAAO,mBAAmB,GAAA;AACxB,QAAA,OAAO,mBAAmB,CAAC,MAAM,CAAC,OAAO,CAAC,MAAK;AAC7C,YAAA,OAAO,CAAC,MAAM,MAAM;AAClB,gBAAA,GAAG,MAAM;AACT,gBAAA,iBAAiB,EAAE,SAAS;AAC5B,gBAAA,oBAAoB,EAAE,SAAS;AAC/B,gBAAA,gBAAgB,EAAE,SAAS;AAC3B,gBAAA,oBAAoB,EAAE,SAAS;AAC/B,gBAAA,uBAAuB,EAAE,SAAS;AAClC,gBAAA,yBAAyB,EAAE,SAAS;AACpC,gBAAA,4BAA4B,EAAE,SAAS;AACvC,gBAAA,8BAA8B,EAAE,SAAS;AACzC,gBAAA,iCAAiC,EAAE,SAAS;AAC5C,gBAAA,yBAAyB,EAAE,qBAAqB;AAChD,gBAAA,4BAA4B,EAAE,sBAAsB;AACpD,gBAAA,+BAA+B,EAAE,yBAAyB;AAC1D,gBAAA,0BAA0B,EAAE,yBAAyB;AACrD,gBAAA,6BAA6B,EAAE,4BAA4B;AAC3D,gBAAA,mBAAmB,EAAE,yBAAyB;AAC9C,gBAAA,8BAA8B,EAAE,4BAA4B;AAC7D,aAAA,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;KACJ;AAEM,IAAA,SAAA,IAAA,CAAA,mBAAmB,GAAG,mBAAmB,CAAC,mBAAmB,CAAC,EAAA;AACrE,IAAA,OAAO,iCAAiC,GAAA;AACtC,QAAA,OAAO,mBAAmB,CAAC,MAAM,CAAC,OAAO,CAAC,MAAK;AAC7C,YAAA,MAAM,YAAY,GAAG,CAAC,OAAkB,KAAI;AAC1C,gBAAA,QAAQ,OAAO,CAAC,UAAU;AACxB,oBAAA,KAAK,QAAQ,EAAE,OAAO,OAAO,CAAC;AAC9B,oBAAA,KAAK,OAAO,CAAC;AACb,oBAAA,KAAK,QAAQ,CAAC;AACd,oBAAA,KAAK,OAAO,CAAC;AACb,oBAAA,KAAK,QAAQ,EAAE,OAAO,MAAM,CAAC;iBAC9B;AACH,aAAC,CAAA;AACD,YAAA,OAAO,CAAC,MAAM,EAAE,OAAO,MAAM;AAC3B,gBAAA,GAAG,MAAM;AACT,gBAAA,cAAc,EAAE,YAAY,CAAC,OAAO,CAAC;AACtC,aAAA,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;KACJ;AAOD,IAAA,WAAA,GAAA;AALS,QAAA,IAAA,CAAA,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;AAE7C,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;AACjC,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAC;QAGlD,MAAM,CAAC,MAAK;AACV,YAAA,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;gBACtC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC,EAAE;oBAChE,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;iBACxD;aACF;AACD,YAAA,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC;AACjE,YAAA,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAC/D,YAAA,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;AAC3D,YAAA,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AACrC,SAAC,CAAC,CAAC;KACJ;8GAxHU,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,cADN,MAAM,EAAA,CAAA,CAAA,EAAA;;2FACnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAD/B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;;MA6HrB,sBAAsB,CAAA;AACxB,IAAA,GAAG,CAAsB;AAGlC,IAAA,WAAA,CAAoB,mBAAwC,EAAA;QAAxC,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB,CAAqB;AAHnD,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;AACzB,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;QAGxC,MAAM,CAAC,MAAK;YACV,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC,EAAE;AACpF,gBAAA,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;aACtD;AACH,SAAC,CAAC,CAAC;KACJ;8GAVU,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBADlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAA;;MAe7C,iBAAiB,CAAA;AAD9B,IAAA,WAAA,GAAA;AAEU,QAAA,IAAA,CAAA,UAAU,GAAG,mBAAmB,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;AACjD,QAAA,IAAA,CAAA,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAC5C,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;AAU1C,KAAA;IARA,WAAW,GAAA;AACV,QAAA,IAAI,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC;AAAE,YAAA,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;AACvD,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAC3B,MAAM,CAAC,UAAU,IAAI,UAAU,CAAC,oBAAoB,CAAC,KAAM,SAAS,CAAC,EACrE,KAAK,CAAC,GAAG,CAAC,EACV,GAAG,CAAC,MAAM,IAAI,CAAC,CACf,CAAC;KACF;8GAZW,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cADL,MAAM,EAAA,CAAA,CAAA,EAAA;;2FAClB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B,UAAU;mBAAC,EAAC,UAAU,EAAE,MAAM,EAAC,CAAA;;;SC7IhB,mBAAmB,GAAA;IACjC,OAAO;AACL,QAAA;AACE,YAAA,OAAO,EAAE,uBAAuB;YAChC,UAAU,EAAE,MAAM,MAAM,MAAM,CAAC,mBAAmB,CAAC;AACnD,YAAA,KAAK,EAAE,IAAI;AACZ,SAAA;QACD,sBAAsB,CAAC,EAAE,CAAC;QAC1B,mBAAmB,CAAC,mBAAmB,EAAE;KAC1C,CAAA;AACH;;ACdA;;AAEG;;;;"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import * as i1 from '@angular/common';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import * as i0 from '@angular/core';
|
|
4
|
+
import { inject, Component, ChangeDetectionStrategy } from '@angular/core';
|
|
5
|
+
import { MAT_BOTTOM_SHEET_DATA, MatBottomSheetRef } from '@angular/material/bottom-sheet';
|
|
6
|
+
import * as i2 from '@angular/material/list';
|
|
7
|
+
import { MatListModule } from '@angular/material/list';
|
|
8
|
+
import { NgAtomicComponent } from '@ng-atomic/core';
|
|
9
|
+
|
|
10
|
+
// import { IconAtom } from '@ng-atomic/components/atoms/icon';
|
|
11
|
+
class ActionsSheet extends NgAtomicComponent {
|
|
12
|
+
constructor() {
|
|
13
|
+
super(...arguments);
|
|
14
|
+
this.actions = inject(MAT_BOTTOM_SHEET_DATA);
|
|
15
|
+
this.sheetRef = inject((MatBottomSheetRef));
|
|
16
|
+
}
|
|
17
|
+
onItemClick(action) {
|
|
18
|
+
this.dispatch(action, 'root');
|
|
19
|
+
this.sheetRef.dismiss(action);
|
|
20
|
+
}
|
|
21
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: ActionsSheet, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
22
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.2", type: ActionsSheet, isStandalone: true, selector: "sheets-actions", usesInheritance: true, ngImport: i0, template: `
|
|
23
|
+
<mat-action-list>
|
|
24
|
+
<button mat-list-item *ngFor="let action of actions" (click)="onItemClick(action)">
|
|
25
|
+
<!-- <atoms-icon matListItemIcon [name]="action.icon" [color]="action.color"></atoms-icon> -->
|
|
26
|
+
<div matListItemTitle [style.color]="action.color">{{ action.name }}</div>
|
|
27
|
+
</button>
|
|
28
|
+
</mat-action-list>
|
|
29
|
+
`, isInline: true, styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i2.MatActionList, selector: "mat-action-list", exportAs: ["matActionList"] }, { kind: "component", type: i2.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i2.MatListItemTitle, selector: "[matListItemTitle]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
30
|
+
}
|
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: ActionsSheet, decorators: [{
|
|
32
|
+
type: Component,
|
|
33
|
+
args: [{ selector: 'sheets-actions', standalone: true, imports: [
|
|
34
|
+
CommonModule,
|
|
35
|
+
MatListModule,
|
|
36
|
+
// IconAtom,
|
|
37
|
+
], template: `
|
|
38
|
+
<mat-action-list>
|
|
39
|
+
<button mat-list-item *ngFor="let action of actions" (click)="onItemClick(action)">
|
|
40
|
+
<!-- <atoms-icon matListItemIcon [name]="action.icon" [color]="action.color"></atoms-icon> -->
|
|
41
|
+
<div matListItemTitle [style.color]="action.color">{{ action.name }}</div>
|
|
42
|
+
</button>
|
|
43
|
+
</mat-action-list>
|
|
44
|
+
`, changeDetection: ChangeDetectionStrategy.OnPush }]
|
|
45
|
+
}] });
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Generated bundle index. Do not edit.
|
|
49
|
+
*/
|
|
50
|
+
|
|
51
|
+
export { ActionsSheet };
|
|
52
|
+
//# sourceMappingURL=ng-atomic-common-services-sheets-actions.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ng-atomic-common-services-sheets-actions.mjs","sources":["../../../../../packages/@ng-atomic/common/src/lib/services/sheets/actions/actions.sheet.ts","../../../../../packages/@ng-atomic/common/src/lib/services/sheets/actions/ng-atomic-common-services-sheets-actions.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { MatBottomSheetRef, MAT_BOTTOM_SHEET_DATA } from '@angular/material/bottom-sheet';\nimport { MatListModule } from '@angular/material/list';\nimport { Action, NgAtomicComponent } from '@ng-atomic/core';\n// import { IconAtom } from '@ng-atomic/components/atoms/icon';\n\n@Component({\n selector: 'sheets-actions',\n standalone: true,\n imports: [\n CommonModule,\n MatListModule,\n // IconAtom,\n ],\n template: `\n <mat-action-list>\n <button mat-list-item *ngFor=\"let action of actions\" (click)=\"onItemClick(action)\">\n <!-- <atoms-icon matListItemIcon [name]=\"action.icon\" [color]=\"action.color\"></atoms-icon> -->\n <div matListItemTitle [style.color]=\"action.color\">{{ action.name }}</div>\n </button>\n </mat-action-list>\n `,\n styleUrls: ['./actions.sheet.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ActionsSheet extends NgAtomicComponent {\n protected actions = inject<Action[]>(MAT_BOTTOM_SHEET_DATA);\n private sheetRef = inject(MatBottomSheetRef<ActionsSheet>);\n\n protected onItemClick(action: Action): void {\n this.dispatch(action, 'root');\n this.sheetRef.dismiss(action);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;AAKA;AAqBM,MAAO,YAAa,SAAQ,iBAAiB,CAAA;AAnBnD,IAAA,WAAA,GAAA;;AAoBY,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAW,qBAAqB,CAAC,CAAC;AACpD,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,EAAC,iBAA+B,EAAC,CAAC;AAM5D,KAAA;AAJW,IAAA,WAAW,CAAC,MAAc,EAAA;AAClC,QAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC9B,QAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;KAC/B;8GAPU,YAAY,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAY,EAXb,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;GAOT,EAXC,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,2JACZ,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,WAAA,EAAA,QAAA,EAAA,wDAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FAcJ,YAAY,EAAA,UAAA,EAAA,CAAA;kBAnBxB,SAAS;+BACE,gBAAgB,EAAA,UAAA,EACd,IAAI,EACP,OAAA,EAAA;wBACP,YAAY;wBACZ,aAAa;;qBAEd,EACS,QAAA,EAAA,CAAA;;;;;;;GAOT,EAEgB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,CAAA;;;ACxBjD;;AAEG;;;;"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { Injectable, NgModule } from '@angular/core';
|
|
3
|
+
import * as i1 from '@angular/material/bottom-sheet';
|
|
4
|
+
import { MatBottomSheetModule } from '@angular/material/bottom-sheet';
|
|
5
|
+
|
|
6
|
+
class SheetService {
|
|
7
|
+
constructor(bottomSheet) {
|
|
8
|
+
this.bottomSheet = bottomSheet;
|
|
9
|
+
}
|
|
10
|
+
async openActions(actions) {
|
|
11
|
+
return import('@ng-atomic/common/services/sheets/actions').then(({ ActionsSheet }) => {
|
|
12
|
+
return this.bottomSheet.open(ActionsSheet, { data: actions });
|
|
13
|
+
}).then((ref) => {
|
|
14
|
+
return ref.afterDismissed().toPromise();
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: SheetService, deps: [{ token: i1.MatBottomSheet }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
18
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: SheetService }); }
|
|
19
|
+
}
|
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: SheetService, decorators: [{
|
|
21
|
+
type: Injectable
|
|
22
|
+
}], ctorParameters: () => [{ type: i1.MatBottomSheet }] });
|
|
23
|
+
|
|
24
|
+
class NgAtomicSheetsModule {
|
|
25
|
+
static forRoot() {
|
|
26
|
+
return {
|
|
27
|
+
ngModule: NgAtomicSheetsModule,
|
|
28
|
+
providers: [],
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: NgAtomicSheetsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
32
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.2", ngImport: i0, type: NgAtomicSheetsModule, imports: [MatBottomSheetModule] }); }
|
|
33
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: NgAtomicSheetsModule, providers: [SheetService], imports: [MatBottomSheetModule] }); }
|
|
34
|
+
}
|
|
35
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: NgAtomicSheetsModule, decorators: [{
|
|
36
|
+
type: NgModule,
|
|
37
|
+
args: [{
|
|
38
|
+
imports: [
|
|
39
|
+
MatBottomSheetModule
|
|
40
|
+
],
|
|
41
|
+
providers: [SheetService]
|
|
42
|
+
}]
|
|
43
|
+
}] });
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Generated bundle index. Do not edit.
|
|
47
|
+
*/
|
|
48
|
+
|
|
49
|
+
export { NgAtomicSheetsModule, SheetService };
|
|
50
|
+
//# sourceMappingURL=ng-atomic-common-services-sheets.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ng-atomic-common-services-sheets.mjs","sources":["../../../../../packages/@ng-atomic/common/src/lib/services/sheets/sheets.service.ts","../../../../../packages/@ng-atomic/common/src/lib/services/sheets/sheets.module.ts","../../../../../packages/@ng-atomic/common/src/lib/services/sheets/ng-atomic-common-services-sheets.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { MatBottomSheet, MatBottomSheetRef } from '@angular/material/bottom-sheet';\nimport { Action } from '@ng-atomic/core';\n\n@Injectable()\nexport class SheetService {\n\n constructor(private bottomSheet: MatBottomSheet) { }\n\n async openActions(actions: Action[]): Promise<Action | null> {\n return import('@ng-atomic/common/services/sheets/actions').then(({ActionsSheet}) => {\n return this.bottomSheet.open(ActionsSheet, {data: actions});\n }).then((ref: MatBottomSheetRef) => {\n return ref.afterDismissed().toPromise();\n });\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { MatBottomSheetModule } from '@angular/material/bottom-sheet';\nimport { SheetService } from \"./sheets.service\";\n\n@NgModule({\n imports: [\n MatBottomSheetModule\n ],\n providers: [SheetService]\n})\nexport class NgAtomicSheetsModule {\n static forRoot() {\n return {\n ngModule: NgAtomicSheetsModule,\n providers: [\n\n ],\n };\n }\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;MAKa,YAAY,CAAA;AAEvB,IAAA,WAAA,CAAoB,WAA2B,EAAA;QAA3B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAgB;KAAK;IAEpD,MAAM,WAAW,CAAC,OAAiB,EAAA;AACjC,QAAA,OAAO,OAAO,2CAA2C,CAAC,CAAC,IAAI,CAAC,CAAC,EAAC,YAAY,EAAC,KAAI;AACjF,YAAA,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,EAAE,EAAC,IAAI,EAAE,OAAO,EAAC,CAAC,CAAC;AAC9D,SAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAsB,KAAI;AACjC,YAAA,OAAO,GAAG,CAAC,cAAc,EAAE,CAAC,SAAS,EAAE,CAAC;AAC1C,SAAC,CAAC,CAAC;KACJ;8GAVU,YAAY,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHAAZ,YAAY,EAAA,CAAA,CAAA,EAAA;;2FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBADxB,UAAU;;;MCME,oBAAoB,CAAA;AAC/B,IAAA,OAAO,OAAO,GAAA;QACZ,OAAO;AACL,YAAA,QAAQ,EAAE,oBAAoB;AAC9B,YAAA,SAAS,EAAE,EAEV;SACF,CAAC;KACH;8GARU,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,YAJ7B,oBAAoB,CAAA,EAAA,CAAA,CAAA,EAAA;AAIX,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,EAFpB,SAAA,EAAA,CAAC,YAAY,CAAC,YAFvB,oBAAoB,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAIX,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBANhC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,oBAAoB;AACrB,qBAAA;oBACD,SAAS,EAAE,CAAC,YAAY,CAAC;AAC1B,iBAAA,CAAA;;;ACTD;;AAEG;;;;"}
|
|
@@ -1,9 +1,39 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { signal,
|
|
2
|
+
import { Injectable, signal, inject } from '@angular/core';
|
|
3
|
+
import { Router } from '@angular/router';
|
|
4
|
+
import { merge } from 'lodash-es';
|
|
3
5
|
|
|
6
|
+
class SideAppRouter extends Router {
|
|
7
|
+
setSideApp(sideApp) {
|
|
8
|
+
this.sideApp = sideApp;
|
|
9
|
+
}
|
|
10
|
+
navigate(commands, extras) {
|
|
11
|
+
const _commands = extras?.relativeTo ? commands : ['', { outlets: { 'side': commands } }];
|
|
12
|
+
return super.navigate(_commands, merge({
|
|
13
|
+
replaceUrl: true,
|
|
14
|
+
// skipLocationChange: true,
|
|
15
|
+
}, extras)).then((res) => {
|
|
16
|
+
if (extras?.expanded === true) {
|
|
17
|
+
this.sideApp.expand();
|
|
18
|
+
}
|
|
19
|
+
else if (extras?.expanded === false) {
|
|
20
|
+
this.sideApp.collapse();
|
|
21
|
+
}
|
|
22
|
+
return res;
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: SideAppRouter, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
26
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: SideAppRouter, providedIn: 'root' }); }
|
|
27
|
+
}
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: SideAppRouter, decorators: [{
|
|
29
|
+
type: Injectable,
|
|
30
|
+
args: [{ providedIn: 'root' }]
|
|
31
|
+
}] });
|
|
4
32
|
class SideAppService {
|
|
5
33
|
constructor() {
|
|
6
34
|
this.opened = signal(false);
|
|
35
|
+
this.router = inject(SideAppRouter);
|
|
36
|
+
this.router.setSideApp(this);
|
|
7
37
|
}
|
|
8
38
|
toggle() {
|
|
9
39
|
this.opened.set(!this.opened());
|
|
@@ -22,11 +52,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImpor
|
|
|
22
52
|
args: [{
|
|
23
53
|
providedIn: 'root'
|
|
24
54
|
}]
|
|
25
|
-
}] });
|
|
55
|
+
}], ctorParameters: () => [] });
|
|
26
56
|
|
|
27
57
|
/**
|
|
28
58
|
* Generated bundle index. Do not edit.
|
|
29
59
|
*/
|
|
30
60
|
|
|
31
|
-
export { SideAppService };
|
|
61
|
+
export { SideAppRouter, SideAppService };
|
|
32
62
|
//# sourceMappingURL=ng-atomic-common-services-side-app.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-atomic-common-services-side-app.mjs","sources":["../../../../../packages/@ng-atomic/common/src/lib/services/side-app/side-app.service.ts","../../../../../packages/@ng-atomic/common/src/lib/services/side-app/ng-atomic-common-services-side-app.ts"],"sourcesContent":["import { Injectable, signal } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SideAppService {\n readonly opened = signal(false);\n\n toggle() {\n this.opened.set(!this.opened());\n }\n\n collapse() {\n this.opened.set(false);\n }\n\n expand() {\n this.opened.set(true);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ng-atomic-common-services-side-app.mjs","sources":["../../../../../packages/@ng-atomic/common/src/lib/services/side-app/side-app.service.ts","../../../../../packages/@ng-atomic/common/src/lib/services/side-app/ng-atomic-common-services-side-app.ts"],"sourcesContent":["import { inject, Injectable, signal } from '@angular/core';\nimport { NavigationExtras, Router } from '@angular/router';\nimport { merge } from 'lodash-es';\n\n@Injectable({providedIn: 'root'})\nexport class SideAppRouter extends Router {\n protected sideApp: SideAppService;\n\n setSideApp(sideApp: SideAppService) {\n this.sideApp = sideApp;\n }\n\n navigate(commands: any[], extras?: NavigationExtras & {expanded?: boolean}): Promise<boolean> {\n const _commands = extras?.relativeTo ? commands : ['', {outlets: {'side': commands}}];\n return super.navigate(_commands, merge({\n replaceUrl: true,\n // skipLocationChange: true,\n }, extras)).then((res) => {\n if (extras?.expanded === true) {\n this.sideApp.expand();\n } else if (extras?.expanded === false) {\n this.sideApp.collapse();\n }\n return res;\n });\n }\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SideAppService {\n readonly opened = signal(false);\n readonly router = inject(SideAppRouter);\n\n constructor() {\n this.router.setSideApp(this);\n }\n\n toggle() {\n this.opened.set(!this.opened());\n }\n\n collapse() {\n this.opened.set(false);\n }\n\n expand() {\n this.opened.set(true);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAKM,MAAO,aAAc,SAAQ,MAAM,CAAA;AAGvC,IAAA,UAAU,CAAC,OAAuB,EAAA;AAChC,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;KACxB;IAED,QAAQ,CAAC,QAAe,EAAE,MAAgD,EAAA;QACxE,MAAM,SAAS,GAAG,MAAM,EAAE,UAAU,GAAG,QAAQ,GAAG,CAAC,EAAE,EAAE,EAAC,OAAO,EAAE,EAAC,MAAM,EAAE,QAAQ,EAAC,EAAC,CAAC,CAAC;AACtF,QAAA,OAAO,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC;AACrC,YAAA,UAAU,EAAE,IAAI;;SAEjB,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,KAAI;AACvB,YAAA,IAAI,MAAM,EAAE,QAAQ,KAAK,IAAI,EAAE;AAC7B,gBAAA,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;aACvB;AAAM,iBAAA,IAAI,MAAM,EAAE,QAAQ,KAAK,KAAK,EAAE;AACrC,gBAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;aACzB;AACD,YAAA,OAAO,GAAG,CAAC;AACb,SAAC,CAAC,CAAC;KACJ;8GApBU,aAAa,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAb,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cADD,MAAM,EAAA,CAAA,CAAA,EAAA;;2FAClB,aAAa,EAAA,UAAA,EAAA,CAAA;kBADzB,UAAU;mBAAC,EAAC,UAAU,EAAE,MAAM,EAAC,CAAA;;MA2BnB,cAAc,CAAA;AAIzB,IAAA,WAAA,GAAA;AAHS,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;AAGtC,QAAA,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;KAC9B;IAED,MAAM,GAAA;QACJ,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;KACjC;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;KACxB;IAED,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;KACvB;8GAlBU,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAd,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,cAFb,MAAM,EAAA,CAAA,CAAA,EAAA;;2FAEP,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;AC9BD;;AAEG;;;;"}
|