@ng-atomic/common 19.51.0 → 19.80.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.
Files changed (72) hide show
  1. package/fesm2022/ng-atomic-common-directives-active-control.mjs +51 -60
  2. package/fesm2022/ng-atomic-common-directives-active-control.mjs.map +1 -1
  3. package/fesm2022/ng-atomic-common-directives-ios-safari-scroll-buggyfill.mjs +0 -3
  4. package/fesm2022/ng-atomic-common-directives-ios-safari-scroll-buggyfill.mjs.map +1 -1
  5. package/fesm2022/ng-atomic-common-directives-prevent-browser-zoom.mjs +0 -3
  6. package/fesm2022/ng-atomic-common-directives-prevent-browser-zoom.mjs.map +1 -1
  7. package/fesm2022/ng-atomic-common-interceptors-authorization.mjs +0 -1
  8. package/fesm2022/ng-atomic-common-interceptors-authorization.mjs.map +1 -1
  9. package/fesm2022/ng-atomic-common-pipes-columns.mjs +0 -1
  10. package/fesm2022/ng-atomic-common-pipes-columns.mjs.map +1 -1
  11. package/fesm2022/ng-atomic-common-pipes-domain.mjs +0 -9
  12. package/fesm2022/ng-atomic-common-pipes-domain.mjs.map +1 -1
  13. package/fesm2022/ng-atomic-common-pipes-smart-field.mjs +0 -3
  14. package/fesm2022/ng-atomic-common-pipes-smart-field.mjs.map +1 -1
  15. package/fesm2022/ng-atomic-common-services-app.mjs +1 -3
  16. package/fesm2022/ng-atomic-common-services-app.mjs.map +1 -1
  17. package/fesm2022/ng-atomic-common-services-auth.mjs +14 -25
  18. package/fesm2022/ng-atomic-common-services-auth.mjs.map +1 -1
  19. package/fesm2022/ng-atomic-common-services-editing.mjs +0 -16
  20. package/fesm2022/ng-atomic-common-services-editing.mjs.map +1 -1
  21. package/fesm2022/ng-atomic-common-services-form-_index.mjs.map +1 -1
  22. package/fesm2022/ng-atomic-common-services-form-json-schema.mjs +1 -25
  23. package/fesm2022/ng-atomic-common-services-form-json-schema.mjs.map +1 -1
  24. package/fesm2022/ng-atomic-common-services-form.mjs +0 -5
  25. package/fesm2022/ng-atomic-common-services-form.mjs.map +1 -1
  26. package/fesm2022/ng-atomic-common-services-query-resolver.mjs +0 -2
  27. package/fesm2022/ng-atomic-common-services-query-resolver.mjs.map +1 -1
  28. package/fesm2022/ng-atomic-common-services-sheets-actions.mjs +0 -1
  29. package/fesm2022/ng-atomic-common-services-sheets-actions.mjs.map +1 -1
  30. package/fesm2022/ng-atomic-common-services-side-app.mjs +0 -1
  31. package/fesm2022/ng-atomic-common-services-side-app.mjs.map +1 -1
  32. package/fesm2022/ng-atomic-common-services-side-nav-mode.mjs +0 -1
  33. package/fesm2022/ng-atomic-common-services-side-nav-mode.mjs.map +1 -1
  34. package/fesm2022/ng-atomic-common-services-spreadsheet.mjs +2 -39
  35. package/fesm2022/ng-atomic-common-services-spreadsheet.mjs.map +1 -1
  36. package/fesm2022/ng-atomic-common-services-ui.mjs +0 -2
  37. package/fesm2022/ng-atomic-common-services-ui.mjs.map +1 -1
  38. package/fesm2022/ng-atomic-common-stores-entities.mjs +0 -18
  39. package/fesm2022/ng-atomic-common-stores-entities.mjs.map +1 -1
  40. package/fesm2022/ng-atomic-common-utils.mjs +2 -34
  41. package/fesm2022/ng-atomic-common-utils.mjs.map +1 -1
  42. package/fesm2022/ng-atomic-common.mjs +56 -121
  43. package/fesm2022/ng-atomic-common.mjs.map +1 -1
  44. package/package.json +3 -3
  45. package/types/ng-atomic-common-directives-active-control.d.ts +2 -27
  46. package/types/ng-atomic-common-directives-active-control.d.ts.map +1 -1
  47. package/types/ng-atomic-common-directives-prevent-browser-zoom.d.ts +0 -3
  48. package/types/ng-atomic-common-directives-prevent-browser-zoom.d.ts.map +1 -1
  49. package/types/ng-atomic-common-interceptors-authorization.d.ts +0 -1
  50. package/types/ng-atomic-common-interceptors-authorization.d.ts.map +1 -1
  51. package/types/ng-atomic-common-pipes-columns.d.ts +0 -1
  52. package/types/ng-atomic-common-pipes-columns.d.ts.map +1 -1
  53. package/types/ng-atomic-common-pipes-domain.d.ts +0 -9
  54. package/types/ng-atomic-common-pipes-domain.d.ts.map +1 -1
  55. package/types/ng-atomic-common-pipes-smart-field.d.ts +0 -3
  56. package/types/ng-atomic-common-pipes-smart-field.d.ts.map +1 -1
  57. package/types/ng-atomic-common-services-auth.d.ts +4 -2
  58. package/types/ng-atomic-common-services-auth.d.ts.map +1 -1
  59. package/types/ng-atomic-common-services-editing.d.ts +0 -16
  60. package/types/ng-atomic-common-services-editing.d.ts.map +1 -1
  61. package/types/ng-atomic-common-services-form.d.ts +0 -5
  62. package/types/ng-atomic-common-services-form.d.ts.map +1 -1
  63. package/types/ng-atomic-common-services-side-nav-mode.d.ts +0 -1
  64. package/types/ng-atomic-common-services-side-nav-mode.d.ts.map +1 -1
  65. package/types/ng-atomic-common-services-spreadsheet.d.ts +0 -4
  66. package/types/ng-atomic-common-services-spreadsheet.d.ts.map +1 -1
  67. package/types/ng-atomic-common-stores-entities.d.ts +0 -3
  68. package/types/ng-atomic-common-stores-entities.d.ts.map +1 -1
  69. package/types/ng-atomic-common-utils.d.ts +0 -24
  70. package/types/ng-atomic-common-utils.d.ts.map +1 -1
  71. package/types/ng-atomic-common.d.ts +2 -77
  72. package/types/ng-atomic-common.d.ts.map +1 -1
@@ -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<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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"}
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\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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"}
@@ -73,7 +73,6 @@ function eq(value, query) {
73
73
  return typeof value === 'string' ? value === query : false;
74
74
  }
75
75
  function gt(value, query) {
76
- // const value = dayjs.isDayjs(v) ? v : this.transformer(v, k);
77
76
  return typeof value === 'string'
78
77
  ? parseFloat(value) > parseFloat(query)
79
78
  : typeof value === 'number'
@@ -83,7 +82,6 @@ function gt(value, query) {
83
82
  : false;
84
83
  }
85
84
  function lt(value, query) {
86
- // const value = dayjs.isDayjs(v) ? v : this.transformer(v, k);
87
85
  return typeof value === 'string'
88
86
  ? parseFloat(value) < parseFloat(query)
89
87
  : typeof value === 'number'
@@ -1 +1 @@
1
- {"version":3,"file":"ng-atomic-common-services-query-resolver.mjs","sources":["../../../../../packages/@ng-atomic/common/src/lib/services/query-resolver/query-resolver.service.ts","../../../../../packages/@ng-atomic/common/src/lib/services/query-resolver/ng-atomic-common-services-query-resolver.ts"],"sourcesContent":["import { Injectable, inject } from \"@angular/core\";\nimport { DOMAIN_LANG_MAP } from \"@ng-atomic/common/services/language\";\nimport { defaultExpressionTransformer, EXPRESSION_TRANSFORMER, toObject } from '@ng-atomic/common/utils';\nimport { flattenExcludeDayjs as flatten } from '@nx-ddd/core';\nimport dayjs from 'dayjs';\nimport { DATA_ACCESSOR, defaultDataAccessor } from \"@ng-atomic/common/pipes/data-accessor\";\n\ninterface Query {\n key: string;\n operator: ':' | '>' | '<' | '=';\n value: string;\n not: boolean;\n}\n\n@Injectable({ providedIn: 'any' })\nexport class QueryParserService {\n parse(query: string): Query[] {\n return query.split(' ').filter(q => q.length).map(str => {\n const not = str.startsWith('-');\n if (not) str = str.slice(1);\n\n for (const operator of ['=', '>', '<', ':'] as const) {\n if (str.includes(operator)) {\n const [key, value] = str.split(operator);\n return { key, operator, value, not };\n }\n }\n return { key: '*', operator: ':', value: str, not };\n });\n }\n}\n\n@Injectable({ providedIn: 'any' })\nexport class QueryResolverService<T extends object> {\n protected parser = inject(QueryParserService);\n protected dataAccessor = inject(DATA_ACCESSOR, {optional: true}) ?? defaultDataAccessor;\n protected transformer = inject(EXPRESSION_TRANSFORMER, {optional: true}) ?? defaultExpressionTransformer;\n protected map = inject(DOMAIN_LANG_MAP, {optional: true}) ?? {};\n protected reversedMap = Object.entries(this.map).reduce((p, [k, v]) => ({...p, [v]: k}), {} as Record<string, string>);\n\n resolve(items: T[], queryStr = ''): T[] {\n return this.parser.parse(queryStr).reduce((_items, query) => this.executeQuery(_items, query), items);\n }\n\n protected executeQuery(items: T[], query: Query): T[] {\n if (query.key === '*' && query.operator === ':')\n return items.filter(item => this.operateByAllKey(item, in_, query));\n switch (query.operator) {\n case ':': return items.filter(item => this.operateByKey(item, in_, query));\n case '=': return items.filter(item => this.operateByKey(item, eq, query));\n case '>': return items.filter(item => this.operateByKey(item, gt, query));\n case '<': return items.filter(item => this.operateByKey(item, lt, query));\n }\n }\n\n protected operateByKey(item: T, operator: QueryOperator, {key, value, not}: Query): boolean {\n let itemValue: any;\n itemValue = this.dataAccessor(item, key);\n itemValue = this.transformer(itemValue, key);\n return not ? !operator(itemValue, value) : operator(itemValue, value);\n }\n\n protected operateByAllKey(item: T, operator: QueryOperator, query: Query) {\n const flattenObj = flatten(toObject(item));\n return Object.keys(flattenObj).some((key) => this.operateByKey(item, operator, {...query, key}));\n }\n}\n\ntype QueryOperator = (_value: any, query: string) => boolean;\n\nfunction in_(value: any, query: string): boolean {\n return typeof value === 'string' ? value?.includes(query) : false;\n}\n\nfunction eq(value: any, query: string): boolean {\n return typeof value === 'string' ? value === query : false;\n}\n\nfunction gt(value: any, query: string): boolean {\n // const value = dayjs.isDayjs(v) ? v : this.transformer(v, k);\n return typeof value === 'string' \n ? parseFloat(value) > parseFloat(query) \n : typeof value === 'number'\n ? value > parseFloat(query)\n : dayjs.isDayjs(value)\n ? dayjs(query).isBefore(value)\n : false;\n}\n\nfunction lt(value: any, query: string): boolean {\n // const value = dayjs.isDayjs(v) ? v : this.transformer(v, k);\n return typeof value === 'string' \n ? parseFloat(value) < parseFloat(query) \n : typeof value === 'number'\n ? value < parseFloat(query)\n : dayjs.isDayjs(value)\n ? dayjs(query).isAfter(value)\n : false;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["flatten"],"mappings":"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"}
1
+ {"version":3,"file":"ng-atomic-common-services-query-resolver.mjs","sources":["../../../../../packages/@ng-atomic/common/src/lib/services/query-resolver/query-resolver.service.ts","../../../../../packages/@ng-atomic/common/src/lib/services/query-resolver/ng-atomic-common-services-query-resolver.ts"],"sourcesContent":["import { Injectable, inject } from \"@angular/core\";\nimport { DOMAIN_LANG_MAP } from \"@ng-atomic/common/services/language\";\nimport { defaultExpressionTransformer, EXPRESSION_TRANSFORMER, toObject } from '@ng-atomic/common/utils';\nimport { flattenExcludeDayjs as flatten } from '@nx-ddd/core';\nimport dayjs from 'dayjs';\nimport { DATA_ACCESSOR, defaultDataAccessor } from \"@ng-atomic/common/pipes/data-accessor\";\n\ninterface Query {\n key: string;\n operator: ':' | '>' | '<' | '=';\n value: string;\n not: boolean;\n}\n\n@Injectable({ providedIn: 'any' })\nexport class QueryParserService {\n parse(query: string): Query[] {\n return query.split(' ').filter(q => q.length).map(str => {\n const not = str.startsWith('-');\n if (not) str = str.slice(1);\n\n for (const operator of ['=', '>', '<', ':'] as const) {\n if (str.includes(operator)) {\n const [key, value] = str.split(operator);\n return { key, operator, value, not };\n }\n }\n return { key: '*', operator: ':', value: str, not };\n });\n }\n}\n\n@Injectable({ providedIn: 'any' })\nexport class QueryResolverService<T extends object> {\n protected parser = inject(QueryParserService);\n protected dataAccessor = inject(DATA_ACCESSOR, {optional: true}) ?? defaultDataAccessor;\n protected transformer = inject(EXPRESSION_TRANSFORMER, {optional: true}) ?? defaultExpressionTransformer;\n protected map = inject(DOMAIN_LANG_MAP, {optional: true}) ?? {};\n protected reversedMap = Object.entries(this.map).reduce((p, [k, v]) => ({...p, [v]: k}), {} as Record<string, string>);\n\n resolve(items: T[], queryStr = ''): T[] {\n return this.parser.parse(queryStr).reduce((_items, query) => this.executeQuery(_items, query), items);\n }\n\n protected executeQuery(items: T[], query: Query): T[] {\n if (query.key === '*' && query.operator === ':')\n return items.filter(item => this.operateByAllKey(item, in_, query));\n switch (query.operator) {\n case ':': return items.filter(item => this.operateByKey(item, in_, query));\n case '=': return items.filter(item => this.operateByKey(item, eq, query));\n case '>': return items.filter(item => this.operateByKey(item, gt, query));\n case '<': return items.filter(item => this.operateByKey(item, lt, query));\n }\n }\n\n protected operateByKey(item: T, operator: QueryOperator, {key, value, not}: Query): boolean {\n let itemValue: any;\n itemValue = this.dataAccessor(item, key);\n itemValue = this.transformer(itemValue, key);\n return not ? !operator(itemValue, value) : operator(itemValue, value);\n }\n\n protected operateByAllKey(item: T, operator: QueryOperator, query: Query) {\n const flattenObj = flatten(toObject(item));\n return Object.keys(flattenObj).some((key) => this.operateByKey(item, operator, {...query, key}));\n }\n}\n\ntype QueryOperator = (_value: any, query: string) => boolean;\n\nfunction in_(value: any, query: string): boolean {\n return typeof value === 'string' ? value?.includes(query) : false;\n}\n\nfunction eq(value: any, query: string): boolean {\n return typeof value === 'string' ? value === query : false;\n}\n\nfunction gt(value: any, query: string): boolean {\n \n return typeof value === 'string' \n ? parseFloat(value) > parseFloat(query) \n : typeof value === 'number'\n ? value > parseFloat(query)\n : dayjs.isDayjs(value)\n ? dayjs(query).isBefore(value)\n : false;\n}\n\nfunction lt(value: any, query: string): boolean {\n \n return typeof value === 'string' \n ? parseFloat(value) < parseFloat(query) \n : typeof value === 'number'\n ? value < parseFloat(query)\n : dayjs.isDayjs(value)\n ? dayjs(query).isAfter(value)\n : false;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["flatten"],"mappings":"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"}
@@ -5,7 +5,6 @@ import * as i1 from '@angular/material/list';
5
5
  import { MatListModule } from '@angular/material/list';
6
6
  import { NgAtomicComponent } from '@ng-atomic/core';
7
7
 
8
- // import { IconAtom } from '@ng-atomic/components/atoms/icon';
9
8
  class ActionsSheet extends NgAtomicComponent {
10
9
  constructor() {
11
10
  super(...arguments);
@@ -1 +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":["\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 imports: [\n MatListModule\n],\n template: `\n <mat-action-list>\n @for (action of actions; track action) {\n <button mat-list-item (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 }\n </mat-action-list>\n `,\n styles: [`\n mat-action-list {\n padding: 0;\n }\n `],\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;AAwBM,MAAO,YAAa,SAAQ,iBAAiB,CAAA;AAtBnD,IAAA,WAAA,GAAA;;AAuBY,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAW,qBAAqB,CAAC;AACnD,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,EAAC,iBAA+B,EAAC;AAM3D,IAAA;AAJW,IAAA,WAAW,CAAC,MAAc,EAAA;AAClC,QAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;AAC7B,QAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC;IAC/B;8GAPW,YAAY,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAY,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAjBX;;;;;;;;;AAST,IAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,8BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAXD,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;;2FAmBJ,YAAY,EAAA,UAAA,EAAA,CAAA;kBAtBxB,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,EAAA,OAAA,EACjB;wBACT;qBACH,EAAA,QAAA,EACa;;;;;;;;;KAST,EAAA,eAAA,EAMgB,uBAAuB,CAAC,MAAM,EAAA,MAAA,EAAA,CAAA,8BAAA,CAAA,EAAA;;;AC3BnD;;AAEG;;;;"}
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":["\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\n\n@Component({\n selector: 'sheets-actions',\n imports: [\n MatListModule\n],\n template: `\n <mat-action-list>\n @for (action of actions; track action) {\n <button mat-list-item (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 }\n </mat-action-list>\n `,\n styles: [`\n mat-action-list {\n padding: 0;\n }\n `],\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":";;;;;;;AA6BM,MAAO,YAAa,SAAQ,iBAAiB,CAAA;AAtBnD,IAAA,WAAA,GAAA;;AAuBY,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAW,qBAAqB,CAAC;AACnD,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,EAAC,iBAA+B,EAAC;AAM3D,IAAA;AAJW,IAAA,WAAW,CAAC,MAAc,EAAA;AAClC,QAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;AAC7B,QAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC;IAC/B;8GAPW,YAAY,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAY,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAjBX;;;;;;;;;AAST,IAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,8BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAXD,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;;2FAmBJ,YAAY,EAAA,UAAA,EAAA,CAAA;kBAtBxB,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,EAAA,OAAA,EACjB;wBACT;qBACH,EAAA,QAAA,EACa;;;;;;;;;KAST,EAAA,eAAA,EAMgB,uBAAuB,CAAC,MAAM,EAAA,MAAA,EAAA,CAAA,8BAAA,CAAA,EAAA;;;AC3BnD;;AAEG;;;;"}
@@ -11,7 +11,6 @@ class SideAppRouter extends Router {
11
11
  const _commands = extras?.relativeTo ? commands : ['', { outlets: { 'side': commands } }];
12
12
  return super.navigate(_commands, merge({
13
13
  replaceUrl: true,
14
- // skipLocationChange: true,
15
14
  }, extras)).then((res) => {
16
15
  if (extras?.expanded === true) {
17
16
  this.sideApp.expand();
@@ -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!: 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;;;;"}
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 \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;;;;"}
@@ -5,7 +5,6 @@ class SideNavModeService {
5
5
  constructor() {
6
6
  this.sideNavMode = signal('collapsed', ...(ngDevMode ? [{ debugName: "sideNavMode" }] : []));
7
7
  }
8
- /** @deprecated use toggle() instead */
9
8
  toggleSideNav() {
10
9
  this.sideNavMode.set(this.sideNavMode() === 'expanded' ? 'collapsed' : 'expanded');
11
10
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ng-atomic-common-services-side-nav-mode.mjs","sources":["../../../../../packages/@ng-atomic/common/src/lib/services/side-nav-mode/side-nav-mode.service.ts","../../../../../packages/@ng-atomic/common/src/lib/services/side-nav-mode/ng-atomic-common-services-side-nav-mode.ts"],"sourcesContent":["import { Injectable, signal } from '@angular/core';\n\nexport type SideNavMode = 'expanded' | 'collapsed';\n\n@Injectable({ providedIn: 'root' })\nexport class SideNavModeService {\n readonly sideNavMode = signal<SideNavMode>('collapsed');\n\n /** @deprecated use toggle() instead */\n toggleSideNav() {\n this.sideNavMode.set(this.sideNavMode() === 'expanded' ? 'collapsed' : 'expanded');\n }\n\n toggle() {\n this.sideNavMode.set(this.sideNavMode() === 'expanded' ? 'collapsed' : 'expanded');\n }\n\n collapse() {\n this.sideNavMode.set('collapsed');\n }\n\n expand() {\n this.sideNavMode.set('expanded');\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MAKa,kBAAkB,CAAA;AAD/B,IAAA,WAAA,GAAA;AAEW,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAc,WAAW,uDAAC;AAkBxD,IAAA;;IAfC,aAAa,GAAA;QACX,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,UAAU,GAAG,WAAW,GAAG,UAAU,CAAC;IACpF;IAEA,MAAM,GAAA;QACJ,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,UAAU,GAAG,WAAW,GAAG,UAAU,CAAC;IACpF;IAEA,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC;IACnC;IAEA,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC;IAClC;8GAlBW,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;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,cADL,MAAM,EAAA,CAAA,CAAA;;2FACnB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAD9B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;ACJlC;;AAEG;;;;"}
1
+ {"version":3,"file":"ng-atomic-common-services-side-nav-mode.mjs","sources":["../../../../../packages/@ng-atomic/common/src/lib/services/side-nav-mode/side-nav-mode.service.ts","../../../../../packages/@ng-atomic/common/src/lib/services/side-nav-mode/ng-atomic-common-services-side-nav-mode.ts"],"sourcesContent":["import { Injectable, signal } from '@angular/core';\n\nexport type SideNavMode = 'expanded' | 'collapsed';\n\n@Injectable({ providedIn: 'root' })\nexport class SideNavModeService {\n readonly sideNavMode = signal<SideNavMode>('collapsed');\n\n \n toggleSideNav() {\n this.sideNavMode.set(this.sideNavMode() === 'expanded' ? 'collapsed' : 'expanded');\n }\n\n toggle() {\n this.sideNavMode.set(this.sideNavMode() === 'expanded' ? 'collapsed' : 'expanded');\n }\n\n collapse() {\n this.sideNavMode.set('collapsed');\n }\n\n expand() {\n this.sideNavMode.set('expanded');\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MAKa,kBAAkB,CAAA;AAD/B,IAAA,WAAA,GAAA;AAEW,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAc,WAAW,uDAAC;AAkBxD,IAAA;IAfC,aAAa,GAAA;QACX,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,UAAU,GAAG,WAAW,GAAG,UAAU,CAAC;IACpF;IAEA,MAAM,GAAA;QACJ,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,UAAU,GAAG,WAAW,GAAG,UAAU,CAAC;IACpF;IAEA,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC;IACnC;IAEA,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC;IAClC;8GAlBW,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;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,cADL,MAAM,EAAA,CAAA,CAAA;;2FACnB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAD9B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;ACJlC;;AAEG;;;;"}
@@ -125,7 +125,6 @@ class SelectionService {
125
125
  });
126
126
  }
127
127
  isSelected(position) {
128
- // selectionの範囲に含まれているかどうかを返す
129
128
  const selection = this.selection();
130
129
  if (!selection)
131
130
  return false;
@@ -311,7 +310,6 @@ class EditorService {
311
310
  }
312
311
  this.selection.clearSelection();
313
312
  this.editinngCell.set(position);
314
- // Notify EditingStateManager about editing start
315
313
  const columnId = this.data.displayedColumns()[position.col];
316
314
  this.editingStateManager.startEditing(position.row, columnId);
317
315
  this.focus(position);
@@ -319,7 +317,6 @@ class EditorService {
319
317
  stopEditing() {
320
318
  const editingCell = this.editinngCell();
321
319
  if (editingCell) {
322
- // Notify EditingStateManager about editing stop
323
320
  const columnId = this.data.displayedColumns()[editingCell.col];
324
321
  this.editingStateManager.stopEditing(editingCell.row, columnId);
325
322
  }
@@ -386,12 +383,10 @@ class AutoFillService {
386
383
  this.resetAutofill();
387
384
  }
388
385
  updatePreview() {
389
- // 既存のプレビューをクリア
390
386
  this.clearPreview();
391
387
  const range = this.targetRange();
392
388
  if (!range)
393
389
  return;
394
- // 影響を受けるセルにプレビュークラスを追加
395
390
  for (let row = range.start.row + 1; row <= range.end.row; row++) {
396
391
  const position = { row, col: range.start.col };
397
392
  const cellElement = this.getCellElement(position);
@@ -427,7 +422,6 @@ class SpreadSheetService {
427
422
  constructor() {
428
423
  this.config = { paste: false };
429
424
  this.grid = inject(GridService);
430
- // readonly data = inject(SpreadSheetDataService);
431
425
  this.navigation = inject(NavigationService);
432
426
  this.selection = inject(SelectionService);
433
427
  this.clipboard = inject(ClipboardService);
@@ -445,8 +439,6 @@ class SpreadSheetService {
445
439
  }
446
440
  handleKeyDownOnEditing(event) {
447
441
  const cell = this.editor.editinngCell();
448
- // stopPropagation()が呼ばれている場合は処理しない
449
- // IME入力中やユーザーの意図的な入力中断の場合にValueCellAtomから制御される
450
442
  if (event.cancelBubble) {
451
443
  return;
452
444
  }
@@ -740,15 +732,12 @@ class AutofillHandleComponent {
740
732
  }
741
733
  show(rect, containerRect) {
742
734
  const el = this.elementRef.nativeElement;
743
- // ハンドルをセルの右下角に配置
744
- const handleSize = 14; // 8px + 2px*2 (border)
735
+ const handleSize = 14;
745
736
  if (containerRect) {
746
- // コンテナからの相対位置を計算
747
737
  this.renderer.setStyle(el, 'left', `${rect.right - containerRect.left - handleSize / 2}px`);
748
738
  this.renderer.setStyle(el, 'top', `${rect.bottom - containerRect.top - handleSize / 2}px`);
749
739
  }
750
740
  else {
751
- // position: fixedの場合(フォールバック)
752
741
  this.renderer.setStyle(el, 'left', `${rect.right - handleSize}px`);
753
742
  this.renderer.setStyle(el, 'top', `${rect.bottom - handleSize}px`);
754
743
  }
@@ -767,10 +756,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
767
756
  type: HostListener,
768
757
  args: ['mousedown', ['$event']]
769
758
  }] } });
770
- /**
771
- * テーブル全体のオートフィル機能を管理するディレクティブ
772
- * セルディレクティブから直接呼び出される
773
- */
774
759
  class GridDataTableAutofill {
775
760
  constructor() {
776
761
  this.ss = inject(SpreadSheetService);
@@ -781,12 +766,9 @@ class GridDataTableAutofill {
781
766
  this.cleanupFunctions = [];
782
767
  this.handleComponent = null;
783
768
  this.currentCell = null;
784
- // オートフィル完了イベント
785
769
  this.autofillComplete = output();
786
770
  this.currentPosition = null;
787
- // ハンドルコンポーネントを作成
788
771
  this.handleComponent = this.viewContainerRef.createComponent(AutofillHandleComponent);
789
- // ハンドルのmousedownイベントを設定
790
772
  this.handleComponent.instance.handleMouseDown.subscribe(() => {
791
773
  if (this.currentPosition) {
792
774
  this.startAutofill(this.currentPosition);
@@ -796,10 +778,8 @@ class GridDataTableAutofill {
796
778
  showHandle(cell, position) {
797
779
  this.currentCell = cell;
798
780
  this.currentPosition = position;
799
- // ハンドルを適切な親要素に配置(初回のみ)
800
781
  let scrollContainer = null;
801
782
  if (!this.handleComponent?.location.nativeElement.parentElement) {
802
- // スクロールビューポートか、テーブルコンテナを探す
803
783
  scrollContainer = (cell.closest('cdk-virtual-scroll-viewport') ||
804
784
  cell.closest('.mat-table-container') ||
805
785
  cell.closest('table')?.parentElement);
@@ -807,7 +787,6 @@ class GridDataTableAutofill {
807
787
  this.renderer.appendChild(scrollContainer, this.handleComponent.location.nativeElement);
808
788
  }
809
789
  else {
810
- // フォールバック: document.bodyに追加(position: fixedモード)
811
790
  this.renderer.appendChild(document.body, this.handleComponent.location.nativeElement);
812
791
  this.renderer.setStyle(this.handleComponent.location.nativeElement, 'position', 'fixed');
813
792
  }
@@ -818,7 +797,6 @@ class GridDataTableAutofill {
818
797
  const cellRect = cell.getBoundingClientRect();
819
798
  const containerRect = scrollContainer?.getBoundingClientRect();
820
799
  this.handleComponent?.instance.show(cellRect, containerRect);
821
- // スクロールイベントのリスナーを設定
822
800
  this.setupScrollListener();
823
801
  }
824
802
  hideHandle() {
@@ -831,7 +809,7 @@ class GridDataTableAutofill {
831
809
  }
832
810
  setupScrollListener() {
833
811
  if (this.cleanupFunctions.some(fn => fn.name === 'scrollCleanup')) {
834
- return; // 既にリスナーが設定されている
812
+ return;
835
813
  }
836
814
  const scrollHandler = () => {
837
815
  if (this.currentCell && this.handleComponent) {
@@ -841,7 +819,6 @@ class GridDataTableAutofill {
841
819
  this.handleComponent.instance.show(cellRect, containerRect);
842
820
  }
843
821
  };
844
- // スクロール可能な親要素を見つける
845
822
  const scrollContainer = this.currentCell?.closest('cdk-virtual-scroll-viewport') ||
846
823
  this.currentCell?.closest('.mat-table-container');
847
824
  if (scrollContainer) {
@@ -850,19 +827,15 @@ class GridDataTableAutofill {
850
827
  Object.defineProperty(cleanup, 'name', { value: 'scrollCleanup' });
851
828
  this.cleanupFunctions.push(cleanup);
852
829
  }
853
- // ウィンドウスクロールも監視
854
830
  window.addEventListener('scroll', scrollHandler, { passive: true });
855
831
  const windowCleanup = () => window.removeEventListener('scroll', scrollHandler);
856
832
  Object.defineProperty(windowCleanup, 'name', { value: 'scrollCleanup' });
857
833
  this.cleanupFunctions.push(windowCleanup);
858
834
  }
859
- // セルディレクティブから呼び出されるメソッド
860
835
  startAutofill(position) {
861
836
  this.autofillStartPosition = position;
862
837
  this.ss.autofill.startAutofill(position);
863
- // 既存のリスナーをクリーンアップ
864
838
  this.cleanup();
865
- // マウスイベントの設定
866
839
  const onMouseMove = this.onMouseMove.bind(this);
867
840
  const onMouseUp = this.onMouseUp.bind(this);
868
841
  document.addEventListener('mousemove', onMouseMove);
@@ -875,7 +848,6 @@ class GridDataTableAutofill {
875
848
  onMouseMove(event) {
876
849
  if (!this.autofillStartPosition)
877
850
  return;
878
- // ドラッグ中のプレビュー処理
879
851
  const element = document.elementFromPoint(event.clientX, event.clientY);
880
852
  const cell = element?.closest('td[mat-cell]');
881
853
  if (cell) {
@@ -898,26 +870,21 @@ class GridDataTableAutofill {
898
870
  if (!sourcePosition || !targetRange) {
899
871
  return null;
900
872
  }
901
- // GridServiceから実際のコンテキストを収集
902
873
  const contexts = [];
903
874
  const { start, end } = targetRange;
904
- // ソースコンテキストを取得
905
875
  const sourceContext = this.ss.grid.getContext(sourcePosition);
906
876
  if (!sourceContext) {
907
877
  console.warn('Source context not found');
908
878
  this.ss.autofill.cancelAutofill();
909
879
  return null;
910
880
  }
911
- // 影響を受けるセルのコンテキストを収集(表示されているセルのみ)
912
881
  for (let row = start.row + 1; row <= end.row; row++) {
913
882
  const targetContext = this.ss.grid.getContext({ row, col: start.col });
914
883
  if (targetContext) {
915
884
  contexts.push({ position: { row, col: start.col }, context: targetContext });
916
885
  }
917
886
  }
918
- // コンテキスト情報を保存
919
887
  this.lastAutofillContexts = { sourceContext, targetContexts: contexts };
920
- // オートフィルモードをリセット
921
888
  this.ss.autofill.cancelAutofill();
922
889
  if (contexts.length > 0) {
923
890
  return {
@@ -963,7 +930,6 @@ class SpreadSheetCellAutofill {
963
930
  this.ss.selection.isCursorPosition(this.position()) &&
964
931
  !this.ss.editor.isEditing(this.position()) &&
965
932
  !this.ss.autofill.isAutofillMode(), ...(ngDevMode ? [{ debugName: "shouldShow" }] : []));
966
- // requestAnimationFrameを使用して、DOMの更新後に実行
967
933
  effect(() => {
968
934
  if (this.shouldShow()) {
969
935
  requestAnimationFrame(() => {
@@ -971,7 +937,6 @@ class SpreadSheetCellAutofill {
971
937
  });
972
938
  }
973
939
  else if (!this.shouldShow() && this.ss.selection.isCursorPosition(this.position())) {
974
- // 現在のセルがカーソル位置だが表示条件を満たさない場合のみ非表示
975
940
  this.table.hideHandle();
976
941
  }
977
942
  });
@@ -984,8 +949,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
984
949
  args: [{ standalone: true, selector: '[gridDataCellAutofill]' }]
985
950
  }], ctorParameters: () => [], propDecorators: { position: [{ type: i0.Input, args: [{ isSignal: true, alias: "gridDataCellAutofill", required: false }] }], enabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "gridDataCellAutofillEnabled", required: false }] }] } });
986
951
 
987
- // Components are imported directly by directives to avoid circular dependencies
988
-
989
952
  /**
990
953
  * Generated bundle index. Do not edit.
991
954
  */