@ng-atomic/common 19.35.0 → 19.36.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/fesm2022/ng-atomic-common-directives-active-control.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-directives-molecules-column.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-interceptors-authorization.mjs +3 -1
- package/fesm2022/ng-atomic-common-interceptors-authorization.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-interceptors-throttle.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-pipes-domain.mjs +2 -2
- package/fesm2022/ng-atomic-common-pipes-domain.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-pipes-pagination.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-pipes-sort-by.mjs +2 -2
- package/fesm2022/ng-atomic-common-pipes-sort-by.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-services-auth.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-services-breakpoint.mjs +3 -2
- package/fesm2022/ng-atomic-common-services-breakpoint.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-services-fab.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-services-form-columns.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-services-form-json-schema.mjs +1 -1
- package/fesm2022/ng-atomic-common-services-form-json-schema.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-services-form-sort.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-services-form.mjs +1 -1
- package/fesm2022/ng-atomic-common-services-form.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-services-root-property.mjs +10 -7
- package/fesm2022/ng-atomic-common-services-root-property.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-services-side-app.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-services-spreadsheet.mjs +4 -4
- package/fesm2022/ng-atomic-common-services-spreadsheet.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-services-ui.mjs +5 -4
- package/fesm2022/ng-atomic-common-services-ui.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-stores-entities.mjs +3 -1
- package/fesm2022/ng-atomic-common-stores-entities.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-stores-selection.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-stores-sort.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-utils.mjs +5 -5
- package/fesm2022/ng-atomic-common-utils.mjs.map +1 -1
- package/fesm2022/ng-atomic-common.mjs.map +1 -1
- package/package.json +3 -3
- package/types/ng-atomic-common-directives-active-control.d.ts +2 -2
- package/types/ng-atomic-common-directives-molecules-column.d.ts +7 -7
- package/types/ng-atomic-common-interceptors-authorization.d.ts.map +1 -1
- package/types/ng-atomic-common-interceptors-throttle.d.ts +1 -1
- package/types/ng-atomic-common-interceptors-throttle.d.ts.map +1 -1
- package/types/ng-atomic-common-pipes-data-accessor.d.ts +1 -1
- package/types/ng-atomic-common-pipes-index-length.d.ts +1 -1
- package/types/ng-atomic-common-pipes-index.d.ts +1 -1
- package/types/ng-atomic-common-pipes-pagination.d.ts +1 -1
- package/types/ng-atomic-common-pipes-pagination.d.ts.map +1 -1
- package/types/ng-atomic-common-pipes-sort-by.d.ts +1 -1
- package/types/ng-atomic-common-pipes-sort-by.d.ts.map +1 -1
- package/types/ng-atomic-common-services-auth.d.ts +4 -4
- package/types/ng-atomic-common-services-breakpoint.d.ts +1 -1
- package/types/ng-atomic-common-services-breakpoint.d.ts.map +1 -1
- package/types/ng-atomic-common-services-fab.d.ts +1 -1
- package/types/ng-atomic-common-services-form-_index.d.ts +12 -12
- package/types/ng-atomic-common-services-form-json-schema.d.ts +1 -1
- package/types/ng-atomic-common-services-form-json-schema.d.ts.map +1 -1
- package/types/ng-atomic-common-services-form-pagination.d.ts +3 -3
- package/types/ng-atomic-common-services-form-sort.d.ts +3 -3
- package/types/ng-atomic-common-services-form-sort.d.ts.map +1 -1
- package/types/ng-atomic-common-services-language.d.ts +1 -1
- package/types/ng-atomic-common-services-root-property.d.ts +5 -65
- package/types/ng-atomic-common-services-root-property.d.ts.map +1 -1
- package/types/ng-atomic-common-services-spreadsheet.d.ts +8 -8
- package/types/ng-atomic-common-services-spreadsheet.d.ts.map +1 -1
- package/types/ng-atomic-common-services-ui.d.ts +6 -6
- package/types/ng-atomic-common-stores-entities.d.ts +5 -5
- package/types/ng-atomic-common-stores-entities.d.ts.map +1 -1
- package/types/ng-atomic-common-utils.d.ts +8 -8
- package/types/ng-atomic-common.d.ts +3 -3
|
@@ -1 +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> = {}): JSONSchema7 {\n return _targetConstructorToSchema(target, {\n ...options,\n additionalConverters,\n classTransformerMetadataStorage: defaultMetadataStorage,\n }) as JSONSchema7;\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\";\nimport { FormFieldMap } from \"@ng-atomic/common/pipes/smart-field\";\n\nexport class JsonSchemaFormUtils {\n static removeObjectPercent<T extends object>(value: T): any {\n return Object.entries(value).reduce((acc, [key, value]) => {\n if (typeof value === 'string' && value.startsWith('%') && value.endsWith('%')) {\n acc[key] = value.slice(1, -1);\n } else if (typeof value === 'string' && value.startsWith('%')) {\n acc[key] = value.slice(1);\n } else if (typeof value === 'string' && value.endsWith('%')) {\n acc[key] = value.slice(0, -1);\n } else {\n acc[key] = value;\n }\n return acc;\n }, {});\n }\n\n static buildFormGroupByJsonSchema(schema: JsonSchema, {\n fb = inject(FormBuilder).nonNullable,\n value = {},\n }: {\n fb?: FormBuilder | NonNullableFormBuilder,\n value?: object,\n } = {}): FormGroup {\n console.debug('[buildFormGroupByJsonSchema] schema:', schema);\n\n // oneOf/discriminatedUnionを解決\n const resolvedSchema = this.resolveOneOf(schema);\n\n if (!resolvedSchema || !resolvedSchema?.properties) {\n return fb.group({});\n }\n const group: any = {};\n\n for (const key in resolvedSchema.properties) {\n const property = resolvedSchema.properties[key];\n const validators = [];\n\n if (resolvedSchema.required && resolvedSchema.required.includes(key) && !property.nullable) {\n validators.push(Validators.required);\n }\n\n // allOfを解決\n const resolvedProperty = this.resolveAllOf(property);\n\n group[key] = this.buildFormByJsonSchemaProperty(resolvedProperty, {fb, value: value?.[key], validators});\n // MEMO(@NozomuMiyamoto): オブジェクト型Arrayなら追加用のダミーコントロールを追加する\n if (resolvedProperty.type === 'array') {\n const itemType = resolvedProperty.items?.type;\n if (itemType !== 'string' && itemType !== 'number' && itemType !== 'boolean') {\n // オブジェクト型配列の場合のみ __add_action を追加\n group[`${key}__add_action`] = fb.control(resolvedProperty);\n }\n }\n }\n return fb.group(group);\n }\n \n static 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\n // items.typeがプリミティブ型(string, number, boolean)の場合は空の配列\n const itemType = schema.items.type;\n if (itemType === 'string' || itemType === 'number' || itemType === 'boolean') {\n // 既存値があればそれを使用、なければ空配列\n const arrayValue = Array.isArray(value) ? value.map(v => fb.control(v)) : [];\n return fb.array(arrayValue);\n }\n\n // オブジェクト型の場合は従来通り(ダミーフォームグループを1つ追加)\n const formArray = fb.array([\n this.buildFormGroupByJsonSchema(schema.items, {fb}),\n ]);\n return formArray;\n }\n \n static resolveAllOf(property: JsonSchema): JsonSchema {\n // allOfがある場合、スキーマをマージ\n if (property.allOf && Array.isArray(property.allOf)) {\n const merged: any = { ...property };\n delete merged.allOf;\n\n // allOf内の各スキーマをマージ\n for (const schema of property.allOf) {\n if (schema.properties) {\n merged.properties = { ...merged.properties, ...schema.properties };\n }\n if (schema.required) {\n merged.required = [...(merged.required || []), ...schema.required];\n }\n // typeが未設定の場合は設定\n if (!merged.type && schema.type) {\n merged.type = schema.type;\n }\n }\n\n return merged;\n }\n return property;\n }\n\n static resolveOneOf(property: JsonSchema): JsonSchema {\n // oneOfがある場合、全スキーマのプロパティをマージ(discriminated union対応)\n if (property.oneOf && Array.isArray(property.oneOf)) {\n console.debug('[resolveOneOf] oneOf detected, merging schemas...');\n const merged: any = { ...property };\n delete merged.oneOf;\n merged.type = 'object';\n merged.properties = {};\n merged.required = [];\n\n // oneOf内の各スキーマからプロパティを収集\n for (const schema of property.oneOf) {\n if (schema.properties) {\n // 全プロパティをマージ(discriminatorフィールドを含む)\n for (const key in schema.properties) {\n const sourceProp = schema.properties[key];\n\n if (!merged.properties[key]) {\n // 新しいプロパティはそのまま追加\n merged.properties[key] = sourceProp;\n } else {\n // 既存のプロパティがある場合、ネストされたオブジェクトならマージ\n const existingProp = merged.properties[key];\n\n if (sourceProp.type === 'object' && existingProp.type === 'object') {\n // オブジェクト型の場合、propertiesをマージ\n if (sourceProp.properties && existingProp.properties) {\n merged.properties[key] = {\n ...existingProp,\n properties: {\n ...existingProp.properties,\n ...sourceProp.properties\n }\n };\n }\n }\n // enumフィールドの場合は最初のものを維持\n }\n }\n }\n if (schema.required) {\n // 共通のrequiredフィールドのみマージ\n for (const req of schema.required) {\n if (!merged.required.includes(req)) {\n merged.required.push(req);\n }\n }\n }\n }\n\n console.debug('[resolveOneOf] Merged properties:', Object.keys(merged.properties));\n return merged;\n }\n return property;\n }\n \n static 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 switch (property.type) {\n case 'string': switch (property.format) {\n case 'date':\n case 'date-time':\n return fb.control(value ?? property.default ?? null, { nonNullable: !property.nullable, validators });\n case 'binary':\n return fb.control(value ?? property.default ?? null, { nonNullable: !property.nullable, validators });\n case 'email':\n return fb.control(value ?? property.default ?? '', {\n nonNullable: !property.nullable,\n validators: [...validators, Validators.email],\n });\n default:\n return fb.control(value ?? property.default ?? '', { nonNullable: !property.nullable, validators });\n }\n case 'boolean':\n return fb.control(value ?? property.default ?? false, {nonNullable: !property.nullable, validators});\n case 'integer':\n return fb.control(value ?? property.default ?? 0, {nonNullable: !property.nullable, validators});\n case 'number':\n return fb.control(value ?? property.default ?? 0, {nonNullable: !property.nullable, validators});\n case 'object':\n return this.buildFormGroupByJsonSchema(property, {fb, value});\n case 'array': {\n // プリミティブ型配列の場合は FormControl で配列値を保持\n const itemType = property.items?.type;\n if (itemType === 'string' || itemType === 'number' || itemType === 'boolean') {\n return fb.control(value ?? property.default ?? [], { nonNullable: !property.nullable, validators });\n }\n // オブジェクト型配列の場合は FormArray\n return this.buildFormArrayByJsonSchema(property, {fb, value: value as any[]});\n }\n default:\n // allOfがある場合の処理\n const resolved = this.resolveAllOf(property);\n if (resolved !== property) {\n return this.buildFormByJsonSchemaProperty(resolved, {fb, value, validators});\n }\n return null;\n }\n }\n \n\n static 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: this.buildFormGroupByJsonSchema(schema, {fb, value}),\n fieldMap: this.buildFormFieldMapByJsonSchema(schema, {merge: fieldMap}),\n };\n }\n\n static buildFormFieldByProperty(property: JsonSchema['properties']) {\n switch (property.type) {\n case 'string': {\n if (property.enum) {\n return { type: 'select', options: property.enum.map((v: string) => ({ value: v, name: v })) };\n } else if (['date-time', 'date'].includes(property.format)) {\n return { type: 'date' };\n } else if (property.format === 'binary') {\n return { type: 'file' };\n } else {\n return { type: 'text' };\n }\n }\n case 'boolean': return { type: 'select', options: [{ value: true, name: 'はい' }, { value: false, name: 'いいえ' }] };\n case 'integer': return { type: 'number' };\n case 'number': return { type: 'number' };\n default: return { type: property.type };\n }\n }\n\n static buildFormFieldMapByJsonSchema(\n schema: JsonSchema,\n options: {\n merge?: { [key: string]: any },\n } = {},\n ): any {\n // oneOf/discriminatedUnionを解決\n const resolvedSchema = this.resolveOneOf(schema);\n\n if (!resolvedSchema || !resolvedSchema.properties) {\n return {\n id: { type: 'hidden' },\n };\n }\n const fieldMap: any = {};\n\n for (const key in resolvedSchema.properties) {\n const property = resolvedSchema.properties[key];\n // allOfを解決\n const resolvedProperty = this.resolveAllOf(property);\n switch (resolvedProperty.type) {\n case 'object': {\n const childFieldMap = this.buildFormFieldMapByJsonSchema(resolvedProperty, options);\n for (const childKey in childFieldMap) {\n fieldMap[`${key}.${childKey}`] = childFieldMap[childKey];\n }\n break;\n }\n case 'array': {\n const childFieldMap = this.buildFormFieldMapByJsonSchema(resolvedProperty.items, options);\n for (const childKey in childFieldMap) {\n // TODO: 正規表現でパスマッチを判定できるようにする。\n fieldMap[`${key}.\\\\d+.${childKey}`] = childFieldMap[childKey];\n }\n break;\n }\n default: {\n fieldMap[key] = this.buildFormFieldByProperty(resolvedProperty);\n }\n }\n }\n \n console.debug('[buildFormFieldMapByJsonSchema] fieldMap:', fieldMap);\n console.debug('[buildFormFieldMapByJsonSchema] options.merge:', options.merge);\n \n return {...fieldMap, ...options.merge};\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 JsonSchemaFormUtils.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 = JsonSchemaFormUtils.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?: FormFieldMap,\n} = {}): { form: FormGroup, fieldMap: FormFieldMap } {\n const schema = targetConstructorToSchema(klass);\n return {\n form: JsonSchemaFormUtils.buildFormGroupByJsonSchema(schema, {fb, value}),\n fieldMap: JsonSchemaFormUtils.buildFormFieldMapByJsonSchema(schema, {merge: fieldMap}),\n };\n}\n\n\n@Injectable({ providedIn: 'root' })\nexport class JsonSchemaFormService {\n private fb = inject(FormBuilder);\n\n build(schema: JsonSchema, {\n fb = this.fb,\n value = {},\n }: {\n fb?: FormBuilder | NonNullableFormBuilder,\n value?: object,\n } = {}): FormGroup {\n return JsonSchemaFormUtils.buildFormGroupByJsonSchema(schema, {fb, value});\n }\n\n buildFieldMap(\n schema: JsonSchema,\n options: {\n merge?: { [key: string]: any },\n } = {},\n ): any {\n return JsonSchemaFormUtils.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
|
+
{"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> = {}): JSONSchema7 {\n return _targetConstructorToSchema(target, {\n ...options,\n additionalConverters,\n classTransformerMetadataStorage: defaultMetadataStorage,\n }) as JSONSchema7;\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\";\nimport { FormFieldMap } from \"@ng-atomic/common/pipes/smart-field\";\n\nexport class JsonSchemaFormUtils {\n static removeObjectPercent<T extends object>(value: T): any {\n return Object.entries(value).reduce<Record<string, unknown>>((acc, [key, value]) => {\n if (typeof value === 'string' && value.startsWith('%') && value.endsWith('%')) {\n acc[key] = value.slice(1, -1);\n } else if (typeof value === 'string' && value.startsWith('%')) {\n acc[key] = value.slice(1);\n } else if (typeof value === 'string' && value.endsWith('%')) {\n acc[key] = value.slice(0, -1);\n } else {\n acc[key] = value;\n }\n return acc;\n }, {});\n }\n\n static buildFormGroupByJsonSchema(schema: JsonSchema, {\n fb = inject(FormBuilder).nonNullable,\n value = {},\n }: {\n fb?: FormBuilder | NonNullableFormBuilder,\n value?: object,\n } = {}): FormGroup {\n console.debug('[buildFormGroupByJsonSchema] schema:', schema);\n\n // oneOf/discriminatedUnionを解決\n const resolvedSchema = this.resolveOneOf(schema);\n\n if (!resolvedSchema || !resolvedSchema?.properties) {\n return fb.group({});\n }\n const group: any = {};\n\n for (const key in resolvedSchema.properties) {\n const property = resolvedSchema.properties[key];\n const validators = [];\n\n if (resolvedSchema.required && resolvedSchema.required.includes(key) && !property.nullable) {\n validators.push(Validators.required);\n }\n\n // allOfを解決\n const resolvedProperty = this.resolveAllOf(property);\n\n group[key] = this.buildFormByJsonSchemaProperty(resolvedProperty, {fb, value: (value as Record<string, unknown>)?.[key] as object, validators});\n // MEMO(@NozomuMiyamoto): オブジェクト型Arrayなら追加用のダミーコントロールを追加する\n if (resolvedProperty.type === 'array') {\n const itemType = resolvedProperty.items?.type;\n if (itemType !== 'string' && itemType !== 'number' && itemType !== 'boolean') {\n // オブジェクト型配列の場合のみ __add_action を追加\n group[`${key}__add_action`] = fb.control(resolvedProperty);\n }\n }\n }\n return fb.group(group);\n }\n \n static 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\n // items.typeがプリミティブ型(string, number, boolean)の場合は空の配列\n const itemType = schema.items.type;\n if (itemType === 'string' || itemType === 'number' || itemType === 'boolean') {\n // 既存値があればそれを使用、なければ空配列\n const arrayValue = Array.isArray(value) ? value.map(v => fb.control(v)) : [];\n return fb.array(arrayValue);\n }\n\n // オブジェクト型の場合は従来通り(ダミーフォームグループを1つ追加)\n const formArray = fb.array([\n this.buildFormGroupByJsonSchema(schema.items, {fb}),\n ]);\n return formArray;\n }\n \n static resolveAllOf(property: JsonSchema): JsonSchema {\n // allOfがある場合、スキーマをマージ\n if (property.allOf && Array.isArray(property.allOf)) {\n const merged: any = { ...property };\n delete merged.allOf;\n\n // allOf内の各スキーマをマージ\n for (const schema of property.allOf) {\n if (schema.properties) {\n merged.properties = { ...merged.properties, ...schema.properties };\n }\n if (schema.required) {\n merged.required = [...(merged.required || []), ...schema.required];\n }\n // typeが未設定の場合は設定\n if (!merged.type && schema.type) {\n merged.type = schema.type;\n }\n }\n\n return merged;\n }\n return property;\n }\n\n static resolveOneOf(property: JsonSchema): JsonSchema {\n // oneOfがある場合、全スキーマのプロパティをマージ(discriminated union対応)\n if (property.oneOf && Array.isArray(property.oneOf)) {\n console.debug('[resolveOneOf] oneOf detected, merging schemas...');\n const merged: any = { ...property };\n delete merged.oneOf;\n merged.type = 'object';\n merged.properties = {};\n merged.required = [];\n\n // oneOf内の各スキーマからプロパティを収集\n for (const schema of property.oneOf) {\n if (schema.properties) {\n // 全プロパティをマージ(discriminatorフィールドを含む)\n for (const key in schema.properties) {\n const sourceProp = schema.properties[key];\n\n if (!merged.properties[key]) {\n // 新しいプロパティはそのまま追加\n merged.properties[key] = sourceProp;\n } else {\n // 既存のプロパティがある場合、ネストされたオブジェクトならマージ\n const existingProp = merged.properties[key];\n\n if (sourceProp.type === 'object' && existingProp.type === 'object') {\n // オブジェクト型の場合、propertiesをマージ\n if (sourceProp.properties && existingProp.properties) {\n merged.properties[key] = {\n ...existingProp,\n properties: {\n ...existingProp.properties,\n ...sourceProp.properties\n }\n };\n }\n }\n // enumフィールドの場合は最初のものを維持\n }\n }\n }\n if (schema.required) {\n // 共通のrequiredフィールドのみマージ\n for (const req of schema.required) {\n if (!merged.required.includes(req)) {\n merged.required.push(req);\n }\n }\n }\n }\n\n console.debug('[resolveOneOf] Merged properties:', Object.keys(merged.properties));\n return merged;\n }\n return property;\n }\n \n static buildFormByJsonSchemaProperty(property: JsonSchema, {\n fb = inject(FormBuilder).nonNullable,\n value = null as object | object[] | null,\n validators = [],\n }: {\n fb?: FormBuilder | NonNullableFormBuilder,\n value?: object | object[] | null,\n validators?: any[],\n } = {}): any {\n switch (property.type) {\n case 'string': switch (property.format) {\n case 'date':\n case 'date-time':\n return fb.control(value ?? property.default ?? null, { nonNullable: !property.nullable, validators });\n case 'binary':\n return fb.control(value ?? property.default ?? null, { nonNullable: !property.nullable, validators });\n case 'email':\n return fb.control(value ?? property.default ?? '', {\n nonNullable: !property.nullable,\n validators: [...validators, Validators.email],\n });\n default:\n return fb.control(value ?? property.default ?? '', { nonNullable: !property.nullable, validators });\n }\n case 'boolean':\n return fb.control(value ?? property.default ?? false, {nonNullable: !property.nullable, validators});\n case 'integer':\n return fb.control(value ?? property.default ?? 0, {nonNullable: !property.nullable, validators});\n case 'number':\n return fb.control(value ?? property.default ?? 0, {nonNullable: !property.nullable, validators});\n case 'object':\n return this.buildFormGroupByJsonSchema(property, {fb, value: value as object});\n case 'array': {\n // プリミティブ型配列の場合は FormControl で配列値を保持\n const itemType = property.items?.type;\n if (itemType === 'string' || itemType === 'number' || itemType === 'boolean') {\n return fb.control(value ?? property.default ?? [], { nonNullable: !property.nullable, validators });\n }\n // オブジェクト型配列の場合は FormArray\n return this.buildFormArrayByJsonSchema(property, {fb, value: value as any[]});\n }\n default:\n // allOfがある場合の処理\n const resolved = this.resolveAllOf(property);\n if (resolved !== property) {\n return this.buildFormByJsonSchemaProperty(resolved, {fb, value, validators});\n }\n return null;\n }\n }\n \n\n static 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: this.buildFormGroupByJsonSchema(schema, {fb, value}),\n fieldMap: this.buildFormFieldMapByJsonSchema(schema, {merge: fieldMap}),\n };\n }\n\n static buildFormFieldByProperty(property: JsonSchema['properties']) {\n switch (property.type) {\n case 'string': {\n if (property.enum) {\n return { type: 'select', options: property.enum.map((v: string) => ({ value: v, name: v })) };\n } else if (['date-time', 'date'].includes(property.format)) {\n return { type: 'date' };\n } else if (property.format === 'binary') {\n return { type: 'file' };\n } else {\n return { type: 'text' };\n }\n }\n case 'boolean': return { type: 'select', options: [{ value: true, name: 'はい' }, { value: false, name: 'いいえ' }] };\n case 'integer': return { type: 'number' };\n case 'number': return { type: 'number' };\n default: return { type: property.type };\n }\n }\n\n static buildFormFieldMapByJsonSchema(\n schema: JsonSchema,\n options: {\n merge?: { [key: string]: any },\n } = {},\n ): any {\n // oneOf/discriminatedUnionを解決\n const resolvedSchema = this.resolveOneOf(schema);\n\n if (!resolvedSchema || !resolvedSchema.properties) {\n return {\n id: { type: 'hidden' },\n };\n }\n const fieldMap: any = {};\n\n for (const key in resolvedSchema.properties) {\n const property = resolvedSchema.properties[key];\n // allOfを解決\n const resolvedProperty = this.resolveAllOf(property);\n switch (resolvedProperty.type) {\n case 'object': {\n const childFieldMap = this.buildFormFieldMapByJsonSchema(resolvedProperty, options);\n for (const childKey in childFieldMap) {\n fieldMap[`${key}.${childKey}`] = childFieldMap[childKey];\n }\n break;\n }\n case 'array': {\n const childFieldMap = this.buildFormFieldMapByJsonSchema(resolvedProperty.items, options);\n for (const childKey in childFieldMap) {\n // TODO: 正規表現でパスマッチを判定できるようにする。\n fieldMap[`${key}.\\\\d+.${childKey}`] = childFieldMap[childKey];\n }\n break;\n }\n default: {\n fieldMap[key] = this.buildFormFieldByProperty(resolvedProperty);\n }\n }\n }\n \n console.debug('[buildFormFieldMapByJsonSchema] fieldMap:', fieldMap);\n console.debug('[buildFormFieldMapByJsonSchema] options.merge:', options.merge);\n \n return {...fieldMap, ...options.merge};\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 JsonSchemaFormUtils.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 = JsonSchemaFormUtils.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?: FormFieldMap,\n} = {}): { form: FormGroup, fieldMap: FormFieldMap } {\n const schema = targetConstructorToSchema(klass);\n return {\n form: JsonSchemaFormUtils.buildFormGroupByJsonSchema(schema, {fb, value}),\n fieldMap: JsonSchemaFormUtils.buildFormFieldMapByJsonSchema(schema, {merge: fieldMap}),\n };\n}\n\n\n@Injectable({ providedIn: 'root' })\nexport class JsonSchemaFormService {\n private fb = inject(FormBuilder);\n\n build(schema: JsonSchema, {\n fb = this.fb,\n value = {},\n }: {\n fb?: FormBuilder | NonNullableFormBuilder,\n value?: object,\n } = {}): FormGroup {\n return JsonSchemaFormUtils.buildFormGroupByJsonSchema(schema, {fb, value});\n }\n\n buildFieldMap(\n schema: JsonSchema,\n options: {\n merge?: { [key: string]: any },\n } = {},\n ): any {\n return JsonSchemaFormUtils.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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-atomic-common-services-form-sort.mjs","sources":["../../../../../packages/@ng-atomic/common/src/lib/services/form/sort/sort.service.ts","../../../../../packages/@ng-atomic/common/src/lib/services/form/sort/ng-atomic-common-services-form-sort.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\n\nexport interface SortFormValue {\n key?: string,\n order?: 'asc' | 'desc',\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SortService {\n\n constructor(private fb: FormBuilder) { }\n\n build({key= null, order = 'asc'}: Partial<SortFormValue> = {}) {\n return this.fb.group({\n key: [key],\n order: [order as 'asc' | 'desc'],\n });\n }\n\n toggle(form: ReturnType<typeof this.build>, name: string) {\n if (form.get('key')
|
|
1
|
+
{"version":3,"file":"ng-atomic-common-services-form-sort.mjs","sources":["../../../../../packages/@ng-atomic/common/src/lib/services/form/sort/sort.service.ts","../../../../../packages/@ng-atomic/common/src/lib/services/form/sort/ng-atomic-common-services-form-sort.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\n\nexport interface SortFormValue {\n key?: string | null,\n order?: 'asc' | 'desc',\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SortService {\n\n constructor(private fb: FormBuilder) { }\n\n build({key= null as string | null, order = 'asc'}: Partial<SortFormValue> = {}) {\n return this.fb.group({\n key: [key],\n order: [order as 'asc' | 'desc'],\n });\n }\n\n toggle(form: ReturnType<typeof this.build>, name: string) {\n if (form.get('key')!.value === name) {\n form.get('order')!.setValue(form.get('order')!.value === 'asc' ? 'desc' : 'asc');\n } else {\n form.get('order')!.setValue('asc');\n form.get('key')!.setValue(name);\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;MAWa,WAAW,CAAA;AAEtB,IAAA,WAAA,CAAoB,EAAe,EAAA;QAAf,IAAA,CAAA,EAAE,GAAF,EAAE;IAAiB;IAEvC,KAAK,CAAC,EAAC,GAAG,GAAE,IAAqB,EAAE,KAAK,GAAG,KAAK,EAAA,GAA4B,EAAE,EAAA;AAC5E,QAAA,OAAO,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YACnB,GAAG,EAAE,CAAC,GAAG,CAAC;YACV,KAAK,EAAE,CAAC,KAAuB,CAAC;AACjC,SAAA,CAAC;IACJ;IAEA,MAAM,CAAC,IAAmC,EAAE,IAAY,EAAA;QACtD,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC,KAAK,KAAK,IAAI,EAAE;YACnC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC,KAAK,KAAK,KAAK,GAAG,MAAM,GAAG,KAAK,CAAC;QAClF;aAAO;YACL,IAAI,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;YAClC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;QACjC;IACF;8GAlBW,WAAW,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAX,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,WAAW,cAFV,MAAM,EAAA,CAAA,CAAA;;2FAEP,WAAW,EAAA,UAAA,EAAA,CAAA;kBAHvB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;ACVD;;AAEG;;;;"}
|
|
@@ -46,7 +46,7 @@ function getFormSignal(form, path = []) {
|
|
|
46
46
|
if (path.length === 0)
|
|
47
47
|
return _form;
|
|
48
48
|
return _form?.get(path);
|
|
49
|
-
}
|
|
49
|
+
});
|
|
50
50
|
const value = derivedAsync(() => {
|
|
51
51
|
const _control = control();
|
|
52
52
|
if (!_control)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-atomic-common-services-form.mjs","sources":["../../../../../packages/@ng-atomic/common/src/lib/services/form/form.service.ts","../../../../../packages/@ng-atomic/common/src/lib/services/form/utils.ts","../../../../../packages/@ng-atomic/common/src/lib/services/form/ng-atomic-common-services-form.ts"],"sourcesContent":["import { toObject, isIsoString } from '@ng-atomic/common/utils';\nimport dayjs from 'dayjs';\nimport { unflatten, flatten } from 'flat';\nimport { omit, pick } from 'lodash-es';\n\nconst isNumeric = (v: string): boolean => !isNaN(Number(v));\n\nconst parseQueryString = (v: string, key: string): any => key.match(/id$/i) \n ? v\n : typeof v === 'string' && isIsoString(v) \n ? dayjs(v) \n : v === ''\n ? v\n : isNumeric(v)\n ? Number(v)\n : v;\n\nexport class BaseFormService {\n static fromQueryParams<T>(obj: T): object {\n return Object.entries((unflatten(obj) as any)?.form ?? {}).reduce((m, [k, v]
|
|
1
|
+
{"version":3,"file":"ng-atomic-common-services-form.mjs","sources":["../../../../../packages/@ng-atomic/common/src/lib/services/form/form.service.ts","../../../../../packages/@ng-atomic/common/src/lib/services/form/utils.ts","../../../../../packages/@ng-atomic/common/src/lib/services/form/ng-atomic-common-services-form.ts"],"sourcesContent":["import { toObject, isIsoString } from '@ng-atomic/common/utils';\nimport dayjs from 'dayjs';\nimport { unflatten, flatten } from 'flat';\nimport { omit, pick } from 'lodash-es';\n\nconst isNumeric = (v: string): boolean => !isNaN(Number(v));\n\nconst parseQueryString = (v: string, key: string): any => key.match(/id$/i) \n ? v\n : typeof v === 'string' && isIsoString(v) \n ? dayjs(v) \n : v === ''\n ? v\n : isNumeric(v)\n ? Number(v)\n : v;\n\nexport class BaseFormService {\n static fromQueryParams<T>(obj: T): object {\n return Object.entries((unflatten(obj) as any)?.form ?? {}).reduce<Record<string, unknown>>((m, [k, v]) => ({\n ...m, [k]: parseQueryString(v as string, k),\n }), {});\n }\n\n static toQueryParams<T>(obj: object): T { \n return flatten({form: Object.entries(obj).reduce((m, [k, v]) => ({\n ...m, [k]: dayjs.isDayjs(v) ? v.isValid() ? v.toISOString() : null : v,\n }), {})});\n }\n\n static dayjsKeys(object: object): string[] {\n return Object.entries(object).filter(([_, v]) => dayjs.isDayjs(v)).map(([k]) => k);\n }\n\n static toValue(object: object): object {\n const keys = this.dayjsKeys(object);\n return {...flatten(omit(toObject(object), keys)), ...pick(toObject(object), keys)};\n }\n\n static fromValue(value: object): object {\n const keys = this.dayjsKeys(value);\n return {...unflatten(omit(value, keys)), ...pick(value, keys)};\n }\n}","import { computed, Signal } from \"@angular/core\";\nimport { AbstractControl } from \"@angular/forms\";\nimport { FormField, FormFieldMap } from \"@ng-atomic/common/pipes/smart-field\";\nimport { getRawValue$ } from \"@ng-atomic/common/utils\";\nimport { computeFake } from \"@ng-atomic/core\";\nimport { derivedAsync } from \"ngxtension/derived-async\";\n\nexport function getFormSignal<T>(form: Signal<AbstractControl<T>>, path: string[] = []): { control: Signal<AbstractControl<T>>, value: Signal<T> } {\n const control = computed(() => {\n const _form = computeFake(form());\n if (path.length === 0) return _form;\n return _form?.get(path) as AbstractControl<T>;\n }) as Signal<AbstractControl<T>>;\n const value = derivedAsync(() => {\n const _control = control();\n if (!_control) return null;\n return getRawValue$(control());\n }) as Signal<T>;\n return { control, value };\n}\n\nexport type SetupFormControl<T, K extends (FormField | FormFieldMap)> = (form: Signal<AbstractControl>, path?: string[]) => {\n control: Signal<AbstractControl<T>>,\n value: Signal<T>,\n field: Signal<K>\n};\n\nexport function createSetupFormControl<T, K extends (FormField | FormFieldMap)>(\n setupFn: (prams: {control: Signal<AbstractControl<T>>, value: Signal<T>}) => Signal<K>,\n): SetupFormControl<T, K> {\n return (form, path) => {\n const { control, value } = getFormSignal(form, path);\n return { control, value, field: setupFn({ control, value }) };\n };\n}\n\n/**\n * 指定されたフィールドをdisableにする\n * @param control フォームコントロールのSignal\n * @param fields disableにするフィールドのパス配列\n */\nexport function disableControls(control: AbstractControl, fields: string[]): void {\n fields.forEach(field => {\n control.get([field])?.disable();\n });\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ import { makeConfig } from '@ng-atomic/common/services/ui';
|
|
|
7
7
|
import { of, filter, delay, map } from 'rxjs';
|
|
8
8
|
|
|
9
9
|
class RootPropertyService {
|
|
10
|
-
static { this.Config = makeConfig(() => {
|
|
10
|
+
static { this.Config = makeConfig((() => {
|
|
11
11
|
return (context) => {
|
|
12
12
|
switch (context.breakpoint) {
|
|
13
13
|
case 'xSmall': return {
|
|
@@ -64,8 +64,9 @@ class RootPropertyService {
|
|
|
64
64
|
'--page-height-lv1': '100vh',
|
|
65
65
|
};
|
|
66
66
|
}
|
|
67
|
+
return {};
|
|
67
68
|
};
|
|
68
|
-
}, ['root', 'properties']); }
|
|
69
|
+
}), ['root', 'properties']); }
|
|
69
70
|
static provideColorSchemaA() {
|
|
70
71
|
return RootPropertyService.Config.provide(() => {
|
|
71
72
|
return (config) => ({
|
|
@@ -91,7 +92,7 @@ class RootPropertyService {
|
|
|
91
92
|
}
|
|
92
93
|
static { this.provideColorSchema1 = RootPropertyService.provideColorSchemaA; }
|
|
93
94
|
static provideMenuWidthForIconButtonMenu() {
|
|
94
|
-
return RootPropertyService.Config.provide(() => {
|
|
95
|
+
return RootPropertyService.Config.provide((() => {
|
|
95
96
|
const getMenuWidth = (context) => {
|
|
96
97
|
switch (context.breakpoint) {
|
|
97
98
|
case 'xSmall': return '220px';
|
|
@@ -100,12 +101,13 @@ class RootPropertyService {
|
|
|
100
101
|
case 'large':
|
|
101
102
|
case 'xLarge': return '64px';
|
|
102
103
|
}
|
|
104
|
+
return '64px';
|
|
103
105
|
};
|
|
104
106
|
return (config, context) => ({
|
|
105
107
|
...config,
|
|
106
108
|
'--menu-width': getMenuWidth(context),
|
|
107
109
|
});
|
|
108
|
-
});
|
|
110
|
+
}));
|
|
109
111
|
}
|
|
110
112
|
constructor() {
|
|
111
113
|
this.config = RootPropertyService.Config.inject();
|
|
@@ -117,9 +119,10 @@ class RootPropertyService {
|
|
|
117
119
|
document.documentElement.style.setProperty(key, value);
|
|
118
120
|
}
|
|
119
121
|
}
|
|
120
|
-
this.
|
|
121
|
-
this.matCssVar.
|
|
122
|
-
this.matCssVar.
|
|
122
|
+
const cfg = this.config();
|
|
123
|
+
this.matCssVar.setPrimaryColor(cfg['--primary-color']);
|
|
124
|
+
this.matCssVar.setAccentColor(cfg['--accent-color']);
|
|
125
|
+
this.matCssVar.setWarnColor(cfg['--warn-color']);
|
|
123
126
|
this.matCssVar.setDarkTheme(false);
|
|
124
127
|
});
|
|
125
128
|
}
|
|
@@ -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 '--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 { inject, provideEnvironmentInitializer } from \"@angular/core\";\nimport { provideMaterialCssVars } from \"angular-material-css-vars\";\nimport { RootPropertyService } from \"./root-property.service\";\n\nexport function provideRootProperty() {\n return [\n provideEnvironmentInitializer(() => {\n const initializerFn = (() => () => inject(RootPropertyService))();\n return initializerFn();\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;AACD,gBAAA,KAAK,OAAO;gBACZ,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;gBACD,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;gBACD,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;;AAEL,QAAA,CAAC;IACH,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;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;AACJ,QAAA,CAAC,CAAC;IACJ;AAEO,IAAA,SAAA,IAAA,CAAA,mBAAmB,GAAG,mBAAmB,CAAC,mBAAmB,CAAC;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;AAC7B,oBAAA,KAAK,OAAO;AACZ,oBAAA,KAAK,QAAQ;AACb,oBAAA,KAAK,OAAO;AACZ,oBAAA,KAAK,QAAQ,EAAE,OAAO,MAAM;;AAEhC,YAAA,CAAC;AACD,YAAA,OAAO,CAAC,MAAM,EAAE,OAAO,MAAM;AAC3B,gBAAA,GAAG,MAAM;AACT,gBAAA,cAAc,EAAE,YAAY,CAAC,OAAO,CAAC;AACtC,aAAA,CAAC;AACJ,QAAA,CAAC,CAAC;IACJ;AAOA,IAAA,WAAA,GAAA;AALS,QAAA,IAAA,CAAA,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC,MAAM,EAAE;AAE5C,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC;AAChC,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,sBAAsB,CAAC;QAGjD,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;gBACxD;YACF;AACA,YAAA,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,iBAAiB,CAAC,CAAC;AAChE,YAAA,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,gBAAgB,CAAC,CAAC;AAC9D,YAAA,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,cAAc,CAAC,CAAC;AAC1D,YAAA,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC;AACpC,QAAA,CAAC,CAAC;IACJ;8GAxHW,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;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;;2FACnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAD/B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;MA6HrB,sBAAsB,CAAA;AACxB,IAAA,GAAG;AAGZ,IAAA,WAAA,CAAoB,mBAAwC,EAAA;QAAxC,IAAA,CAAA,mBAAmB,GAAnB,mBAAmB;AAH9B,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC;AACxB,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC;QAGvC,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;YACtD;AACF,QAAA,CAAC,CAAC;IACJ;8GAVW,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBADlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,eAAe,EAAE;;MAe7C,iBAAiB,CAAA;AAD9B,IAAA,WAAA,GAAA;AAEU,QAAA,IAAA,CAAA,UAAU,GAAG,mBAAmB,CAAC,MAAM,CAAC,MAAM,EAAE;AAChD,QAAA,IAAA,CAAA,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC;AAC3C,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC;AAUzC,IAAA;IARA,WAAW,GAAA;AACV,QAAA,IAAI,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC;AAAE,YAAA,OAAO,EAAE,CAAC,IAAI,CAAC;AACtD,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;IACF;8GAZY,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;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;;2FAClB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B,UAAU;mBAAC,EAAC,UAAU,EAAE,MAAM,EAAC;;;SC7IhB,mBAAmB,GAAA;IACjC,OAAO;QACL,6BAA6B,CAAC,MAAK;AACjC,YAAA,MAAM,aAAa,GAAG,CAAC,MAAM,MAAM,MAAM,CAAC,mBAAmB,CAAC,GAAG;YACjE,OAAO,aAAa,EAAE;AACxB,QAAA,CAAC,CAAC;QACF,sBAAsB,CAAC,EAAE,CAAC;QAC1B,mBAAmB,CAAC,mBAAmB,EAAE;KAC1C;AACH;;ACbA;;AAEG;;;;"}
|
|
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, DefaultReducerFactory } 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<Record<string, string>>((() => {\n return (context: UIContext) => {\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 return {};\n };\n }) as DefaultReducerFactory<Record<string, string>>, ['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): string => {\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 return '64px';\n }\n return (config: Record<string, string>, context: UIContext) => ({\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 as string);\n }\n }\n const cfg = this.config() as Record<string, string>;\n this.matCssVar.setPrimaryColor(cfg['--primary-color']);\n this.matCssVar.setAccentColor(cfg['--accent-color']);\n this.matCssVar.setWarnColor(cfg['--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 as string);\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 as unknown as boolean);\n\t\treturn this.properties$.pipe(\n\t\t\tfilter(properties => (properties as Record<string, string>)['--background-color'] === '#f0f0f0'),\n\t\t\tdelay(500),\n\t\t\tmap(() => true),\n\t\t);\n\t}\n}\n","import { inject, provideEnvironmentInitializer } from \"@angular/core\";\nimport { provideMaterialCssVars } from \"angular-material-css-vars\";\nimport { RootPropertyService } from \"./root-property.service\";\n\nexport function provideRootProperty() {\n return [\n provideEnvironmentInitializer(() => {\n const initializerFn = (() => () => inject(RootPropertyService))();\n return initializerFn();\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 +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 { 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
|
|
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;IACxB;IAEA,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;AACrF,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;YACvB;AAAO,iBAAA,IAAI,MAAM,EAAE,QAAQ,KAAK,KAAK,EAAE;AACrC,gBAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;YACzB;AACA,YAAA,OAAO,GAAG;AACZ,QAAA,CAAC,CAAC;IACJ;8GApBW,aAAa,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;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;;2FAClB,aAAa,EAAA,UAAA,EAAA,CAAA;kBADzB,UAAU;mBAAC,EAAC,UAAU,EAAE,MAAM,EAAC;;MA2BnB,cAAc,CAAA;AAIzB,IAAA,WAAA,GAAA;AAHS,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,KAAK,kDAAC;AACtB,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC;AAGrC,QAAA,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;IAC9B;IAEA,MAAM,GAAA;QACJ,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;IACjC;IAEA,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;IACxB;IAEA,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;IACvB;8GAlBW,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;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;;2FAEP,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;AC9BD;;AAEG;;;;"}
|
|
@@ -174,7 +174,7 @@ class SelectionService {
|
|
|
174
174
|
return this.selection();
|
|
175
175
|
}
|
|
176
176
|
getSelectionEndOrStart() {
|
|
177
|
-
return this.selection()?.end || this.selection()?.start;
|
|
177
|
+
return (this.selection()?.end || this.selection()?.start);
|
|
178
178
|
}
|
|
179
179
|
updateSelectionEnd(position) {
|
|
180
180
|
this.selection.update((selection) => ({ ...selection, end: position }));
|
|
@@ -566,7 +566,7 @@ class SpreadSheetService {
|
|
|
566
566
|
}
|
|
567
567
|
move(_position, dest, mode) {
|
|
568
568
|
this.editor.stopEditing();
|
|
569
|
-
let position;
|
|
569
|
+
let position = _position;
|
|
570
570
|
if (dest === 'top') {
|
|
571
571
|
position = this.navigation.moveToPreviousRow(_position);
|
|
572
572
|
}
|
|
@@ -800,9 +800,9 @@ class GridDataTableAutofill {
|
|
|
800
800
|
let scrollContainer = null;
|
|
801
801
|
if (!this.handleComponent?.location.nativeElement.parentElement) {
|
|
802
802
|
// スクロールビューポートか、テーブルコンテナを探す
|
|
803
|
-
scrollContainer = cell.closest('cdk-virtual-scroll-viewport') ||
|
|
803
|
+
scrollContainer = (cell.closest('cdk-virtual-scroll-viewport') ||
|
|
804
804
|
cell.closest('.mat-table-container') ||
|
|
805
|
-
cell.closest('table')?.parentElement;
|
|
805
|
+
cell.closest('table')?.parentElement);
|
|
806
806
|
if (scrollContainer) {
|
|
807
807
|
this.renderer.appendChild(scrollContainer, this.handleComponent.location.nativeElement);
|
|
808
808
|
}
|