@ng-atomic/common 19.37.0 → 19.38.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.
@@ -1 +1 @@
1
- {"version":3,"file":"ng-atomic-common-services-spreadsheet.mjs","sources":["../../../../../packages/@ng-atomic/common/src/lib/services/spreadsheet/features/data.service.ts","../../../../../packages/@ng-atomic/common/src/lib/services/spreadsheet/features/grid.service.ts","../../../../../packages/@ng-atomic/common/src/lib/services/spreadsheet/features/navigation.service.ts","../../../../../packages/@ng-atomic/common/src/lib/services/spreadsheet/features/selection.service.ts","../../../../../packages/@ng-atomic/common/src/lib/services/spreadsheet/features/clipboard.service.ts","../../../../../packages/@ng-atomic/common/src/lib/services/spreadsheet/features/protection.service.ts","../../../../../packages/@ng-atomic/common/src/lib/services/spreadsheet/features/editor.service.ts","../../../../../packages/@ng-atomic/common/src/lib/services/spreadsheet/features/autofill.service.ts","../../../../../packages/@ng-atomic/common/src/lib/services/spreadsheet/spreadsheet.service.ts","../../../../../packages/@ng-atomic/common/src/lib/services/spreadsheet/directives/grid-cell.directive.ts","../../../../../packages/@ng-atomic/common/src/lib/services/spreadsheet/directives/grid-table-autofill.directive.ts","../../../../../packages/@ng-atomic/common/src/lib/services/spreadsheet/directives/grid-cell-autofill.directive.ts","../../../../../packages/@ng-atomic/common/src/lib/services/spreadsheet/index.ts","../../../../../packages/@ng-atomic/common/src/lib/services/spreadsheet/ng-atomic-common-services-spreadsheet.ts"],"sourcesContent":["import { Injectable, signal } from \"@angular/core\";\n\n\n@Injectable()\nexport class SpreadSheetDataService {\n readonly displayedColumns = signal<string[]>([]);\n readonly items = signal<any[]>([]);\n}\n","import { computed, inject, Injectable } from '@angular/core';\nimport { CellContext, Position } from '../models/cell.model';\nimport { SpreadSheetDataService } from './data.service';\n\n@Injectable()\nexport class GridService {\n protected readonly contextMap = new Map<string, CellContext>();\n protected readonly data = inject(SpreadSheetDataService);\n\n readonly maxCol = computed(() => this.data.displayedColumns().length - 1);\n readonly maxRow = computed(() => this.data.items().length);\n\n setContext(context: CellContext): void {\n this.contextMap.set(this.buildKey(context.position), context);\n }\n\n getContext(position: Position): CellContext | null {\n return this.contextMap.get(this.buildKey(position)) ?? null;\n }\n\n protected buildKey(position: Position): string {\n return `(${position.row}, ${position.col})`;\n }\n}","import { inject, Injectable } from '@angular/core';\nimport { Position } from '../models/cell.model';\nimport { GridService } from './grid.service';\n\n@Injectable()\nexport class NavigationService {\n private gridService = inject(GridService)\n\n moveToNextCell({row, col}: Position): Position {\n if (col < this.gridService.maxCol()) {\n return { row, col: col + 1 };\n } else if (row < this.gridService.maxRow()) {\n return { row: row + 1, col: 0 };\n }\n return { row, col };\n }\n\n moveToPreviousCell({row, col}: Position): Position {\n if (col > 0) {\n return { row, col: col - 1 };\n } else if (row > 0) {\n return { row: row - 1, col: this.gridService.maxCol() };\n }\n return { row, col };\n }\n\n moveToNextRow({row, col}: Position): Position {\n if (row < this.gridService.maxRow()) {\n return { row: row + 1, col };\n }\n return { row, col };\n }\n\n moveToPreviousRow({row, col}: Position): Position {\n if (row > 0) {\n return { row: row - 1, col };\n }\n return { row, col };\n }\n\n moveRight(position: Position): Position {\n const {row, col} = position;\n if (col < this.gridService.maxCol()) {\n return { row, col: col + 1 };\n }\n return { row, col };\n }\n\n moveLeft({row, col}: Position): Position {\n if (col > 0) {\n return { row, col: col - 1 };\n }\n return { row, col };\n }\n\n moveUp({row, col}: Position): Position {\n if (row > 0) {\n return { row: row - 1, col };\n }\n return { row, col };\n }\n\n moveDown({row, col}: Position): Position {\n if (row < this.gridService.maxRow()) {\n return { row: row + 1, col };\n }\n return { row, col };\n }\n}","import { computed, effect, inject, Injectable, signal } from '@angular/core';\nimport { Selection, Position } from '../models/cell.model';\nimport { GridService } from './grid.service';\nimport { isEqual } from 'lodash-es';\nimport { SpreadSheetDataService } from './data.service';\n\n@Injectable()\nexport class SelectionService {\n protected readonly data = inject(SpreadSheetDataService);\n private readonly selection = signal<Selection>({ start: { row: 1, col: 0}, end: null });\n private readonly selectionStart = computed(() => this.selection().start, { equal: isEqual });\n private readonly isMouseDown = signal(false);\n private readonly grid = inject(GridService);\n private readonly cellElMap = new Map<string, HTMLTableCellElement>();\n\n constructor() {\n effect(() => {\n const position = this.selectionStart();\n if (position) this.focus(position);\n });\n }\n\n isSelected(position: Position): boolean {\n // selectionの範囲に含まれているかどうかを返す\n const selection = this.selection();\n if (!selection) return false;\n\n const { start, end } = selection;\n const minRow = Math.min(start.row, end?.row ?? start.row);\n const maxRow = Math.max(start.row, end?.row ?? start.row);\n const minCol = Math.min(start.col, end?.col ?? start.col);\n const maxCol = Math.max(start.col, end?.col ?? start.col);\n const { row, col } = position;\n return row >= minRow && row <= maxRow && col >= minCol && col <= maxCol;\n }\n\n isCursorPosition(position: Position): boolean {\n return isEqual(this.selection().start, position);\n }\n\n handleMouseDown(position: Position, event?: MouseEvent): void {\n this.isMouseDown.set(true);\n if (!event?.shiftKey) {\n this.startSelection(position);\n }\n }\n\n handleMouseUp(): void {\n this.isMouseDown.set(false);\n }\n\n handleMouseEnter(position: Position): void {\n if (this.isMouseDown()) {\n this.updateSelection(position);\n }\n }\n\n handleClick(position: Position, event?: MouseEvent): void {\n if (!this.isMouseDown()) {\n if (event?.shiftKey) {\n this.updateSelectionEnd(position);\n } else {\n this.startSelection(position);\n }\n }\n }\n\n clearSelection(): void {\n this.selection.update((selection) => ({...selection, start: selection.start, end: null}));\n }\n\n setStartPosition(position: Position): void {\n this.selection.update((selection) => ({...selection, start: position, end: null}));\n }\n\n getSelection(): Selection | null {\n return this.selection();\n }\n\n getSelectionEndOrStart(): Position {\n return (this.selection()?.end || this.selection()?.start) as Position;\n }\n\n updateSelectionEnd(position: Position): void {\n this.selection.update((selection) => ({...selection, end: position}));\n }\n\n private startSelection(position: Position): void {\n this.selection.set({ start: position, end: null });\n }\n\n private updateSelection(position: Position): void {\n if (this.selection()) {\n this.selection.update((selection) => ({...selection, end: position}));\n }\n }\n\n clearSelectedRange(selection: { start: { row: number; col: number }; end: { row: number; col: number } | null }): void {\n\n }\n\n setCell(position: Position, el: HTMLTableCellElement): void {\n this.cellElMap.set(`${this.buildKey(position)}`, el);\n }\n\n getCell(position: Position): HTMLTableCellElement | null {\n return this.cellElMap.get(this.buildKey(position)) ?? null;\n }\n\n focus(position: Position): void {\n setTimeout(() => {\n const el = this.getCell(position);\n if (el && el !== document.activeElement) {\n el.focus();\n }\n });\n }\n\n protected buildKey(position: Position): string {\n return `(${position.row}, ${position.col})`;\n }\n}","import { inject, Injectable } from '@angular/core';\nimport { Clipboard } from '@angular/cdk/clipboard';\nimport { SnackBarService } from '@ng-atomic/common/services/snack-bar';\nimport { injectDataAccessor } from '@ng-atomic/common/pipes/data-accessor';\nimport { EXPRESSION_TRANSFORMER } from '@ng-atomic/common/utils';\nimport { LanguageService } from '@ng-atomic/common/services/language';\nimport papaparse from 'papaparse';\nimport { Cell } from '../models';\nimport { SelectionService } from './selection.service';\nimport { SpreadSheetDataService } from './data.service';\n\n@Injectable()\nexport class ClipboardService {\n private clipboard = inject(Clipboard);\n private snackBar = inject(SnackBarService);\n protected data = inject(SpreadSheetDataService);\n readonly dataAccessor = injectDataAccessor();\n readonly expression = inject(EXPRESSION_TRANSFORMER);\n readonly language = inject(LanguageService);\n\n constructor(\n private selectionService: SelectionService,\n ) { }\n\n private buildGridData(range: {minRow: number; maxRow: number; minCol: number; maxCol: number}): Cell[][] {\n const header = this.data.displayedColumns().map(column => ({\n dataValue: this.language.transform(column),\n expressionValue: this.language.transform(column),\n isHeader: true\n }));\n const rows = this.data.items().map(item => this.data.displayedColumns().map(column => ({\n dataValue: this.dataAccessor(item, column),\n expressionValue: this.expression(this.dataAccessor(item, column), {item, name: column}),\n })));\n const fullData = [header, ...rows];\n return fullData.slice(range.minRow, range.maxRow + 1).map(row => row.slice(range.minCol, range.maxCol + 1));\n }\n\n async copy(): Promise<void> {\n const selection = this.selectionService.getSelection();\n if (!selection) return;\n let { start, end } = selection;\n end = end ?? start;\n const minRow = Math.min(start.row, end.row);\n const maxRow = Math.max(start.row, end.row);\n const minCol = Math.min(start.col, end.col);\n const maxCol = Math.max(start.col, end.col);\n const selectedData = this.buildGridData({minRow, maxRow, minCol, maxCol});\n const tsv = papaparse.unparse(selectedData.map(row => row.map(cell => cell.dataValue)),\n { delimiter: \"\\t\", newline: \"\\n\", header: false });\n this.copyText(tsv);\n }\n\n setData(items: any[], displayedColumns: string[]): void {\n this.data.displayedColumns.set(displayedColumns);\n this.data.items.set(items);\n }\n\n protected copyText(text: string) {\n this.clipboard.copy(text);\n this.snackBar.open('クリップボードにコピーしました。');\n }\n\n async paste(targetRow: number, targetCol: number): Promise<void> {\n }\n}","import { inject, Injectable, InjectionToken } from \"@angular/core\";\n\ninterface CellContext<T> {\n item: T;\n name: string;\n position: {\n row: number;\n col: number;\n }\n}\n\nexport type CellProtector = (value: any, context: CellContext<any>) => boolean;\nexport const COLUMN_PROTECTOR = new InjectionToken<CellProtector[]>('COLUMN_PROTECTOR', {\n providedIn: 'root',\n factory: () => [],\n});\nexport function provideCellProtector(useFactory: () => CellProtector) {\n return { provide: COLUMN_PROTECTOR, useFactory, multi: true };\n}\n\n@Injectable()\nexport class ProtectionService {\n readonly protectors = inject(COLUMN_PROTECTOR, {optional: true});\n\n isEditable(value: any, context: CellContext<any>): boolean {\n if (!this.protectors) return true;\n return this.protectors.every((protector) => protector(value, context));\n }\n}\n","import { inject, Injectable, signal } from '@angular/core';\nimport { EditingStateManager } from '@ng-atomic/common/services/editing';\nimport { GridService } from './grid.service';\nimport { SelectionService } from './selection.service';\nimport { ProtectionService } from './protection.service';\nimport { Position } from '../models/cell.model';\nimport { SpreadSheetDataService } from './data.service';\n\n@Injectable()\nexport class EditorService {\n protected readonly data = inject(SpreadSheetDataService);\n private grid = inject(GridService);\n private selection = inject(SelectionService);\n private protection = inject(ProtectionService);\n private editingStateManager = inject(EditingStateManager);\n readonly editinngCell = signal<{ row: number, col: number } | null>(null);\n protected readonly inputMap = new Map<string, HTMLInputElement>();\n\n isEditing(position: Position): boolean {\n return this.editinngCell()?.row === position.row && this.editinngCell()?.col === position.col;\n }\n\n startEditing(position: Position): void {\n const context = this.grid.getContext(position);\n console.debug('context:', context);\n if (!this.protection.isEditable(null, context!)) {\n return;\n }\n this.selection.clearSelection();\n this.editinngCell.set(position);\n \n // Notify EditingStateManager about editing start\n const columnId = this.data.displayedColumns()[position.col];\n this.editingStateManager.startEditing(position.row, columnId);\n \n this.focus(position);\n }\n\n stopEditing(): void {\n const editingCell = this.editinngCell();\n if (editingCell) {\n // Notify EditingStateManager about editing stop\n const columnId = this.data.displayedColumns()[editingCell.col];\n this.editingStateManager.stopEditing(editingCell.row, columnId);\n }\n this.editinngCell.set(null);\n }\n\n focus(position: Position): void {\n setTimeout(() => {\n const input = this.getInput(position);\n if (input && input !== document.activeElement) {\n input.focus();\n input.select();\n }\n });\n }\n\n getEditingCell(): Position | null {\n for (let i = 0; i < this.data.items().length; i++) {\n for (let j = 0; j < this.data.displayedColumns().length; j++) {\n if (this.isEditing({row: i, col: j})) {\n return { row: i, col: j };\n }\n }\n }\n return null;\n }\n\n setInput(input: HTMLInputElement, position: Position): void {\n this.inputMap.set(`${this.buildKey(position)}`, input);\n }\n\n getInput(position: Position): HTMLInputElement | null {\n return this.inputMap.get(this.buildKey(position)) ?? null;\n }\n\n protected buildKey(position: Position): string {\n return `(${position.row}, ${position.col})`;\n }\n}","import { Injectable, signal } from '@angular/core';\nimport { Position } from '../models';\n\nexport interface Range {\n start: Position;\n end: Position;\n}\n\n@Injectable()\nexport class AutoFillService {\n private autofillMode = signal(false);\n private sourcePosition = signal<Position | null>(null);\n private targetRange = signal<Range | null>(null);\n private previewElements = new Set<HTMLElement>();\n \n readonly isAutofillMode = this.autofillMode.asReadonly();\n readonly getSourcePosition = this.sourcePosition.asReadonly();\n readonly getTargetRange = this.targetRange.asReadonly();\n \n startAutofill(position: Position): void {\n this.autofillMode.set(true);\n this.sourcePosition.set(position);\n this.targetRange.set({ start: position, end: position });\n }\n \n updateAutofillRange(endPosition: Position): void {\n const sourcePos = this.sourcePosition();\n if (sourcePos) {\n this.targetRange.set({ start: sourcePos, end: endPosition });\n this.updatePreview();\n }\n }\n \n \n cancelAutofill(): void {\n this.resetAutofill();\n }\n \n \n private updatePreview(): void {\n // 既存のプレビューをクリア\n this.clearPreview();\n \n const range = this.targetRange();\n if (!range) return;\n \n // 影響を受けるセルにプレビュークラスを追加\n for (let row = range.start.row + 1; row <= range.end.row; row++) {\n const position = { row, col: range.start.col };\n const cellElement = this.getCellElement(position);\n if (cellElement) {\n cellElement.classList.add('autofill-preview');\n this.previewElements.add(cellElement);\n }\n }\n }\n \n private clearPreview(): void {\n this.previewElements.forEach(element => {\n element.classList.remove('autofill-preview');\n });\n this.previewElements.clear();\n }\n \n private getCellElement(position: Position): HTMLElement | null {\n return document.querySelector(\n `[data-row=\"${position.row}\"][data-col=\"${position.col}\"]`\n ) as HTMLElement;\n }\n \n \n private resetAutofill(): void {\n this.clearPreview();\n this.autofillMode.set(false);\n this.sourcePosition.set(null);\n this.targetRange.set(null);\n }\n}","import { inject, Injectable, Provider } from '@angular/core';\nimport { Position } from './models/cell.model';\nimport { GridService } from './features/grid.service';\nimport { NavigationService } from './features/navigation.service';\nimport { SelectionService } from './features/selection.service';\nimport { ClipboardService } from './features/clipboard.service';\nimport { EditorService } from './features/editor.service';\nimport { ProtectionService } from './features/protection.service';\nimport { SpreadSheetDataService } from './features/data.service';\nimport { AutoFillService } from './features/autofill.service';\n\n@Injectable()\nexport class SpreadSheetService {\n readonly config = { paste: false };\n readonly grid = inject(GridService);\n // readonly data = inject(SpreadSheetDataService);\n readonly navigation = inject(NavigationService);\n readonly selection = inject(SelectionService);\n readonly clipboard = inject(ClipboardService);\n readonly editor = inject(EditorService);\n readonly protection = inject(ProtectionService);\n readonly autofill = inject(AutoFillService);\n\n handleKeyDown(event: KeyboardEvent): void {\n if (this.editor.editinngCell()) {\n this.handleKeyDownOnEditing(event);\n } else {\n this.handleKeyDownOnSelecting(event);\n }\n }\n\n protected handleKeyDownOnEditing(event: KeyboardEvent): void {\n const cell = this.editor.editinngCell();\n \n // stopPropagation()が呼ばれている場合は処理しない\n // IME入力中やユーザーの意図的な入力中断の場合にValueCellAtomから制御される\n if (event.cancelBubble) {\n return;\n }\n \n if (event.key === 'Tab') {\n event.preventDefault();\n if (event.shiftKey) {\n this.move(cell!, 'left', 'select');\n } else {\n this.move(cell!, 'right', 'select');\n }\n } else if (event.key === 'Enter') {\n event.preventDefault();\n if (event.shiftKey) {\n this.move(cell!, 'top', 'select');\n } else {\n this.move(cell!, 'bottom', 'select');\n }\n }\n }\n\n protected handleKeyDownOnSelecting(event: KeyboardEvent): void {\n if (event.key === 'Tab') {\n const selectedCell = this.selection.getSelection()!.start;\n event.preventDefault();\n event.stopPropagation();\n if (event.shiftKey) {\n this.move(selectedCell, 'left', 'select');\n } else {\n this.move(selectedCell, 'right', 'select');\n }\n return;\n } else if (event.key === 'Enter') {\n const selectedCell = this.selection.getSelection()!.start;\n if (selectedCell) {\n this.editor.startEditing(selectedCell);\n event.preventDefault();\n }\n } else if (event.ctrlKey || event.metaKey) {\n if (event.key === 'c') {\n this.clipboard.copy();\n event.preventDefault();\n } else if (event.key === 'v') {\n if (!this.config.paste) return;\n const target = this.selection.getSelection()!.start;\n if (target) {\n this.clipboard.paste(target.row, target.col);\n }\n event.preventDefault();\n }\n return;\n } else if (event.key === 'Delete' || event.key === 'Backspace') {\n const selection = this.selection.getSelection();\n if (selection) {\n this.selection.clearSelectedRange(selection);\n event.preventDefault();\n return;\n }\n } else {\n const selection = this.selection.getSelection()!.start;\n let newPosition: Position | undefined;\n if (event.shiftKey) {\n const selectionEnd = this.selection.getSelectionEndOrStart();\n switch (event.key) {\n case 'ArrowRight':\n newPosition = this.navigation.moveRight(selectionEnd);\n break;\n case 'ArrowLeft':\n newPosition = this.navigation.moveLeft(selectionEnd);\n break;\n case 'ArrowUp':\n newPosition = this.navigation.moveUp(selectionEnd);\n break;\n case 'ArrowDown':\n newPosition = this.navigation.moveDown(selectionEnd);\n break;\n default:\n return;\n }\n if (newPosition) {\n event.preventDefault();\n this.selection.updateSelectionEnd(newPosition);\n }\n } else {\n switch (event.key) {\n case 'ArrowRight':\n newPosition = this.navigation.moveRight(selection);\n break;\n case 'ArrowLeft':\n newPosition = this.navigation.moveLeft(selection);\n break;\n case 'ArrowUp':\n newPosition = this.navigation.moveUp(selection);\n break;\n case 'ArrowDown':\n newPosition = this.navigation.moveDown(selection);\n break;\n default:\n return;\n }\n if (newPosition) {\n event.preventDefault();\n this.selection.clearSelection();\n this.selection.handleClick(newPosition);\n }\n }\n }\n }\n\n protected move(_position: Position, dest: 'top' | 'bottom' | 'left' | 'right', mode: 'edit' | 'select') {\n this.editor.stopEditing();\n let position: Position = _position;\n if (dest === 'top') {\n position = this.navigation.moveToPreviousRow(_position);\n } else if (dest === 'bottom') {\n position = this.navigation.moveToNextRow(_position);\n } else if (dest === 'left') {\n position = this.navigation.moveToPreviousCell(_position);\n } else if (dest === 'right') {\n position = this.navigation.moveToNextCell(_position);\n }\n\n this.selection.setStartPosition(position);\n\n if (mode === 'edit') {\n this.editor.startEditing(position);\n }\n }\n}\n\nexport function provideSpreadSheetService(): Provider[] {\n return [\n ClipboardService,\n SpreadSheetDataService,\n EditorService,\n SpreadSheetService,\n GridService,\n NavigationService,\n SelectionService,\n ProtectionService,\n AutoFillService\n ];\n}\n","import { computed, Directive, effect, ElementRef, inject, input, signal, AfterViewInit } from \"@angular/core\";\nimport { SpreadSheetService } from \"../spreadsheet.service\";\nimport { CellContext } from \"../models/cell.model\";\n\n@Directive({\n standalone: true,\n selector: '[ssCell]',\n host: {\n '[class.selected]': 'ss.selection.isSelected(position())',\n '[class.editing]': 'ss.editor.isEditing(position())',\n '(mousedown)': 'ss.selection.handleMouseDown(position(), $event)',\n '(mouseup)': 'ss.selection.handleMouseUp()',\n '(mouseenter)': 'ss.selection.handleMouseEnter(position())',\n '(click)': 'ss.selection.handleClick(position(), $event)',\n '(dblclick)': 'onDbClick()',\n '[attr.data-row]': 'position().row',\n '[attr.data-col]': 'position().col',\n }\n})\nexport class SpreadSheetCell implements AfterViewInit {\n protected ss = inject(SpreadSheetService);\n readonly el = inject<ElementRef<HTMLTableCellElement>>(ElementRef);\n\n readonly position = input<{row: number, col: number}>({row: 0, col: 0}, {alias: 'ssCell'});\n readonly editable = input<boolean>(false, {alias: 'ssCellEditable'});\n readonly context = input<CellContext | null>(null, {alias: 'ssCellContext'});\n readonly isSelected = computed(() => this.ss.selection.isSelected(this.position()));\n readonly isEditing = computed(() => this.ss.editor.isEditing(this.position()));\n readonly frameEl = signal<HTMLDivElement | null>(null);\n\n constructor() {\n effect(() => {\n if (!this.context()) return;\n this.ss.grid.setContext(this.context()!);\n });\n\n effect(() => {\n const isCursor = this.ss.selection.isCursorPosition(this.position());\n let frame = this.frameEl();\n\n if (isCursor) {\n if (!frame) {\n frame = this.buildOutlineFrame();\n this.el.nativeElement.appendChild(frame);\n this.frameEl.set(frame);\n }\n } else {\n frame?.remove();\n this.frameEl.set(null);\n }\n });\n }\n\n onDbClick(): void {\n if (!this.editable()) return;\n this.ss.editor.startEditing(this.position());\n }\n\n ngAfterViewInit(): void {\n this.ss.selection.setCell(this.position(), this.el.nativeElement);\n if (this.isSelected() && !this.isEditing()) {\n this.ss.selection.focus(this.position());\n }\n }\n\n protected buildOutlineFrame(): HTMLDivElement {\n const frame = document.createElement('div');\n frame.classList.add('selection-frame');\n frame.style.position = 'absolute';\n frame.style.top = '0';\n frame.style.left = '0';\n frame.style.width = '100%';\n frame.style.height = '100%';\n frame.style.border = '2px solid #2196f3';\n frame.style.borderRadius = '4px';\n frame.style.pointerEvents = 'none';\n frame.style.boxSizing = 'border-box';\n return frame;\n }\n\n protected createLabelElement(options: {\n label: string\n color: string\n }) {\n const el = document.createElement('span');\n el.textContent = options.label;\n el.style.backgroundColor = `${options.color}`;\n el.style.color = '#fff';\n el.style.padding = '2px 4px';\n el.style.position = 'absolute';\n el.style.fontSize = '10px';\n el.style.top = '0';\n el.style.left = '0';\n el.style.zIndex = '9999';\n el.style.lineHeight = '1.5em';\n el.style.whiteSpace = 'nowrap';\n this.el.nativeElement.appendChild(el);\n }\n}\n\n\n@Directive({\n standalone: true,\n selector: '[ssCellInput]',\n host: {\n '(blur)': 'stopEditing()',\n }\n})\nexport class SpreadSheetCellInput implements AfterViewInit {\n protected ss = inject(SpreadSheetService);\n readonly position = input<{row: number, col: number}>({row: 0, col: 0}, {alias: 'ssCellInput'});\n readonly el = inject<ElementRef<HTMLInputElement>>(ElementRef);\n readonly isSelected = computed(() => this.ss.selection.isSelected(this.position()));\n readonly isEditing = computed(() => this.ss.editor.isEditing(this.position()));\n\n ngAfterViewInit(): void {\n this.ss.editor.setInput(this.el.nativeElement, this.position());\n if (this.isSelected() && this.isEditing()) {\n this.ss.editor.focus(this.position());\n }\n }\n\n protected stopEditing(): void {\n this.ss.editor.stopEditing();\n }\n}\n","import { Component, Directive, inject, OnDestroy, output, ViewContainerRef, ComponentRef, ElementRef, Renderer2, HostListener } from '@angular/core';\nimport { SpreadSheetService } from '../spreadsheet.service';\n\ntype Position = { row: number; col: number };\ntype Range = { start: Position; end: Position };\n\nexport interface AutofillContext {\n sourceContext: any;\n targetContexts: Array<{ position: Position; context: any }>;\n}\n\n@Component({\n selector: 'autofill-handle',\n standalone: true,\n template: '',\n styles: [`\n :host {\n position: absolute;\n width: 8px;\n height: 8px;\n background-color: #2196F3;\n border: 2px solid #ffffff;\n border-radius: 50%;\n cursor: crosshair;\n z-index: 10000;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);\n transition: background-color 0.2s, opacity 0.2s;\n opacity: 0;\n pointer-events: none;\n \n &:hover {\n background-color: #1976D2;\n }\n \n &.visible {\n opacity: 1;\n pointer-events: auto;\n }\n }\n `]\n})\nclass AutofillHandleComponent {\n readonly elementRef = inject(ElementRef<HTMLElement>);\n private renderer = inject(Renderer2);\n \n handleMouseDown = output<MouseEvent>();\n \n @HostListener('mousedown', ['$event'])\n onMouseDown(e: MouseEvent): void {\n e.preventDefault();\n e.stopPropagation();\n this.handleMouseDown.emit(e);\n }\n\n show(rect: DOMRect, containerRect?: DOMRect) {\n const el = this.elementRef.nativeElement;\n // ハンドルをセルの右下角に配置\n const handleSize = 14; // 8px + 2px*2 (border)\n \n if (containerRect) {\n // コンテナからの相対位置を計算\n this.renderer.setStyle(el, 'left', `${rect.right - containerRect.left - handleSize / 2}px`);\n this.renderer.setStyle(el, 'top', `${rect.bottom - containerRect.top - handleSize / 2}px`);\n } else {\n // position: fixedの場合(フォールバック)\n this.renderer.setStyle(el, 'left', `${rect.right - handleSize}px`);\n this.renderer.setStyle(el, 'top', `${rect.bottom - handleSize}px`);\n }\n \n this.renderer.addClass(el, 'visible');\n }\n \n hide() {\n this.renderer.removeClass(this.elementRef.nativeElement, 'visible');\n }\n}\n\n/**\n * テーブル全体のオートフィル機能を管理するディレクティブ\n * セルディレクティブから直接呼び出される\n */\n@Directive({\n standalone: true,\n selector: '[gridDataTableAutofill]'\n})\nexport class GridDataTableAutofill implements OnDestroy {\n private ss = inject(SpreadSheetService);\n private viewContainerRef = inject(ViewContainerRef);\n private renderer = inject(Renderer2);\n private autofillStartPosition: Position | null = null;\n private lastAutofillContexts: AutofillContext | null = null;\n private cleanupFunctions: (() => void)[] = [];\n private handleComponent: ComponentRef<AutofillHandleComponent> | null = null;\n private currentCell: HTMLElement | null = null;\n \n // オートフィル完了イベント\n readonly autofillComplete = output<{\n sourcePosition: Position;\n targetRange: Range;\n contexts: AutofillContext;\n }>();\n\n private currentPosition: Position | null = null;\n\n constructor() {\n // ハンドルコンポーネントを作成\n this.handleComponent = this.viewContainerRef.createComponent(AutofillHandleComponent);\n \n // ハンドルのmousedownイベントを設定\n this.handleComponent.instance.handleMouseDown.subscribe(() => {\n if (this.currentPosition) {\n this.startAutofill(this.currentPosition);\n }\n });\n }\n\n showHandle(cell: HTMLElement, position: Position): void {\n this.currentCell = cell;\n this.currentPosition = position;\n \n // ハンドルを適切な親要素に配置(初回のみ)\n let scrollContainer: HTMLElement | null = null;\n if (!this.handleComponent?.location.nativeElement.parentElement) {\n // スクロールビューポートか、テーブルコンテナを探す\n scrollContainer = (cell.closest('cdk-virtual-scroll-viewport') ||\n cell.closest('.mat-table-container') ||\n cell.closest('table')?.parentElement) as HTMLElement | null;\n \n if (scrollContainer) {\n this.renderer.appendChild(scrollContainer, this.handleComponent!.location.nativeElement);\n } else {\n // フォールバック: document.bodyに追加(position: fixedモード)\n this.renderer.appendChild(document.body, this.handleComponent!.location.nativeElement);\n this.renderer.setStyle(this.handleComponent!.location.nativeElement, 'position', 'fixed');\n }\n } else {\n scrollContainer = this.handleComponent!.location.nativeElement.parentElement as HTMLElement;\n }\n \n const cellRect = cell.getBoundingClientRect();\n const containerRect = scrollContainer?.getBoundingClientRect();\n \n this.handleComponent?.instance.show(cellRect, containerRect);\n \n // スクロールイベントのリスナーを設定\n this.setupScrollListener();\n }\n\n hideHandle(): void {\n this.currentCell = null;\n this.currentPosition = null;\n this.handleComponent?.instance.hide();\n }\n\n onAutofillStart(position: Position): void {\n this.startAutofill(position);\n }\n \n private setupScrollListener(): void {\n if (this.cleanupFunctions.some(fn => fn.name === 'scrollCleanup')) {\n return; // 既にリスナーが設定されている\n }\n \n const scrollHandler = () => {\n if (this.currentCell && this.handleComponent) {\n const cellRect = this.currentCell.getBoundingClientRect();\n const containerElement = this.handleComponent.location.nativeElement.parentElement;\n const containerRect = containerElement?.getBoundingClientRect();\n this.handleComponent.instance.show(cellRect, containerRect);\n }\n };\n \n // スクロール可能な親要素を見つける\n const scrollContainer = this.currentCell?.closest('cdk-virtual-scroll-viewport') || \n this.currentCell?.closest('.mat-table-container');\n \n if (scrollContainer) {\n scrollContainer.addEventListener('scroll', scrollHandler, { passive: true });\n const cleanup = () => scrollContainer.removeEventListener('scroll', scrollHandler);\n Object.defineProperty(cleanup, 'name', { value: 'scrollCleanup' });\n this.cleanupFunctions.push(cleanup);\n }\n \n // ウィンドウスクロールも監視\n window.addEventListener('scroll', scrollHandler, { passive: true });\n const windowCleanup = () => window.removeEventListener('scroll', scrollHandler);\n Object.defineProperty(windowCleanup, 'name', { value: 'scrollCleanup' });\n this.cleanupFunctions.push(windowCleanup);\n }\n \n // セルディレクティブから呼び出されるメソッド\n private startAutofill(position: Position): void {\n this.autofillStartPosition = position;\n this.ss.autofill.startAutofill(position);\n \n // 既存のリスナーをクリーンアップ\n this.cleanup();\n \n // マウスイベントの設定\n const onMouseMove = this.onMouseMove.bind(this);\n const onMouseUp = this.onMouseUp.bind(this);\n \n document.addEventListener('mousemove', onMouseMove);\n document.addEventListener('mouseup', onMouseUp);\n \n this.cleanupFunctions.push(() => {\n document.removeEventListener('mousemove', onMouseMove);\n document.removeEventListener('mouseup', onMouseUp);\n });\n }\n\n private onMouseMove(event: MouseEvent): void {\n if (!this.autofillStartPosition) return;\n \n // ドラッグ中のプレビュー処理\n const element = document.elementFromPoint(event.clientX, event.clientY);\n const cell = element?.closest('td[mat-cell]');\n if (cell) {\n const targetRow = parseInt(cell.getAttribute('data-row') || '0');\n const targetCol = parseInt(cell.getAttribute('data-col') || '0');\n \n this.ss.autofill.updateAutofillRange({ row: targetRow, col: targetCol });\n }\n }\n\n private onMouseUp(): void {\n const result = this.completeAutofill();\n if (result) {\n this.autofillComplete.emit(result);\n }\n \n this.autofillStartPosition = null;\n this.cleanup();\n }\n\n private completeAutofill(): { sourcePosition: Position; targetRange: Range; contexts: AutofillContext } | null {\n const sourcePosition = this.ss.autofill.getSourcePosition();\n const targetRange = this.ss.autofill.getTargetRange();\n \n if (!sourcePosition || !targetRange) {\n return null;\n }\n\n // GridServiceから実際のコンテキストを収集\n const contexts: Array<{ position: Position; context: any }> = [];\n const { start, end } = targetRange;\n \n // ソースコンテキストを取得\n const sourceContext = this.ss.grid.getContext(sourcePosition);\n if (!sourceContext) {\n console.warn('Source context not found');\n this.ss.autofill.cancelAutofill();\n return null;\n }\n \n // 影響を受けるセルのコンテキストを収集(表示されているセルのみ)\n for (let row = start.row + 1; row <= end.row; row++) {\n const targetContext = this.ss.grid.getContext({ row, col: start.col });\n if (targetContext) {\n contexts.push({ position: { row, col: start.col }, context: targetContext });\n }\n }\n \n // コンテキスト情報を保存\n this.lastAutofillContexts = { sourceContext, targetContexts: contexts };\n \n // オートフィルモードをリセット\n this.ss.autofill.cancelAutofill();\n \n if (contexts.length > 0) {\n return {\n sourcePosition,\n targetRange,\n contexts: this.lastAutofillContexts\n };\n }\n \n return null;\n }\n\n getLastAutofillContexts(): AutofillContext | null {\n return this.lastAutofillContexts;\n }\n\n private cleanup(): void {\n this.cleanupFunctions.forEach(fn => fn());\n this.cleanupFunctions = [];\n }\n \n ngOnDestroy(): void {\n this.cleanup();\n if (this.handleComponent) {\n this.handleComponent.destroy();\n }\n }\n}","import { Directive, effect, ElementRef, inject, input, computed } from \"@angular/core\";\nimport { SpreadSheetService } from \"../spreadsheet.service\";\nimport { GridDataTableAutofill } from \"./grid-table-autofill.directive\";\n\n@Directive({ standalone: true, selector: '[gridDataCellAutofill]' })\nexport class SpreadSheetCellAutofill {\n protected ss = inject(SpreadSheetService);\n readonly el = inject<ElementRef<HTMLTableCellElement>>(ElementRef);\n readonly table = inject(GridDataTableAutofill);\n \n readonly position = input<{row: number, col: number}>({row: 0, col: 0}, {alias: 'gridDataCellAutofill'});\n readonly enabled = input<boolean>(true, {alias: 'gridDataCellAutofillEnabled'});\n \n readonly shouldShow = computed(() => this.enabled() && \n this.ss.selection.isCursorPosition(this.position()) && \n !this.ss.editor.isEditing(this.position()) &&\n !this.ss.autofill.isAutofillMode());\n\n constructor() {\n // requestAnimationFrameを使用して、DOMの更新後に実行\n effect(() => {\n if (this.shouldShow()) {\n requestAnimationFrame(() => {\n this.table.showHandle(this.el.nativeElement, this.position());\n });\n } else if (!this.shouldShow() && this.ss.selection.isCursorPosition(this.position())) {\n // 現在のセルがカーソル位置だが表示条件を満たさない場合のみ非表示\n this.table.hideHandle();\n }\n });\n }\n}","export * from './directives';\nexport * from './features';\nexport * from './models';\nexport * from './spreadsheet.service';\n// Components are imported directly by directives to avoid circular dependencies\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.SelectionService"],"mappings":"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"}
1
+ {"version":3,"file":"ng-atomic-common-services-spreadsheet.mjs","sources":["../../../../../packages/@ng-atomic/common/src/lib/services/spreadsheet/features/data.service.ts","../../../../../packages/@ng-atomic/common/src/lib/services/spreadsheet/features/grid.service.ts","../../../../../packages/@ng-atomic/common/src/lib/services/spreadsheet/features/navigation.service.ts","../../../../../packages/@ng-atomic/common/src/lib/services/spreadsheet/features/selection.service.ts","../../../../../packages/@ng-atomic/common/src/lib/services/spreadsheet/features/clipboard.service.ts","../../../../../packages/@ng-atomic/common/src/lib/services/spreadsheet/features/protection.service.ts","../../../../../packages/@ng-atomic/common/src/lib/services/spreadsheet/features/editor.service.ts","../../../../../packages/@ng-atomic/common/src/lib/services/spreadsheet/features/autofill.service.ts","../../../../../packages/@ng-atomic/common/src/lib/services/spreadsheet/spreadsheet.service.ts","../../../../../packages/@ng-atomic/common/src/lib/services/spreadsheet/directives/grid-cell.directive.ts","../../../../../packages/@ng-atomic/common/src/lib/services/spreadsheet/directives/grid-table-autofill.directive.ts","../../../../../packages/@ng-atomic/common/src/lib/services/spreadsheet/directives/grid-cell-autofill.directive.ts","../../../../../packages/@ng-atomic/common/src/lib/services/spreadsheet/index.ts","../../../../../packages/@ng-atomic/common/src/lib/services/spreadsheet/ng-atomic-common-services-spreadsheet.ts"],"sourcesContent":["import { Injectable, signal } from \"@angular/core\";\n\n\n@Injectable()\nexport class SpreadSheetDataService {\n readonly displayedColumns = signal<string[]>([]);\n readonly items = signal<any[]>([]);\n}\n","import { computed, inject, Injectable } from '@angular/core';\nimport { CellContext, Position } from '../models/cell.model';\nimport { SpreadSheetDataService } from './data.service';\n\n@Injectable()\nexport class GridService {\n protected readonly contextMap = new Map<string, CellContext>();\n protected readonly data = inject(SpreadSheetDataService);\n\n readonly maxCol = computed(() => this.data.displayedColumns().length - 1);\n readonly maxRow = computed(() => this.data.items().length);\n\n setContext(context: CellContext): void {\n this.contextMap.set(this.buildKey(context.position), context);\n }\n\n getContext(position: Position): CellContext | null {\n return this.contextMap.get(this.buildKey(position)) ?? null;\n }\n\n protected buildKey(position: Position): string {\n return `(${position.row}, ${position.col})`;\n }\n}","import { inject, Injectable } from '@angular/core';\nimport { Position } from '../models/cell.model';\nimport { GridService } from './grid.service';\n\n@Injectable()\nexport class NavigationService {\n private gridService = inject(GridService)\n\n moveToNextCell({row, col}: Position): Position {\n if (col < this.gridService.maxCol()) {\n return { row, col: col + 1 };\n } else if (row < this.gridService.maxRow()) {\n return { row: row + 1, col: 0 };\n }\n return { row, col };\n }\n\n moveToPreviousCell({row, col}: Position): Position {\n if (col > 0) {\n return { row, col: col - 1 };\n } else if (row > 0) {\n return { row: row - 1, col: this.gridService.maxCol() };\n }\n return { row, col };\n }\n\n moveToNextRow({row, col}: Position): Position {\n if (row < this.gridService.maxRow()) {\n return { row: row + 1, col };\n }\n return { row, col };\n }\n\n moveToPreviousRow({row, col}: Position): Position {\n if (row > 0) {\n return { row: row - 1, col };\n }\n return { row, col };\n }\n\n moveRight(position: Position): Position {\n const {row, col} = position;\n if (col < this.gridService.maxCol()) {\n return { row, col: col + 1 };\n }\n return { row, col };\n }\n\n moveLeft({row, col}: Position): Position {\n if (col > 0) {\n return { row, col: col - 1 };\n }\n return { row, col };\n }\n\n moveUp({row, col}: Position): Position {\n if (row > 0) {\n return { row: row - 1, col };\n }\n return { row, col };\n }\n\n moveDown({row, col}: Position): Position {\n if (row < this.gridService.maxRow()) {\n return { row: row + 1, col };\n }\n return { row, col };\n }\n}","import { computed, effect, inject, Injectable, signal } from '@angular/core';\nimport { Selection, Position } from '../models/cell.model';\nimport { GridService } from './grid.service';\nimport { isEqual } from 'lodash-es';\nimport { SpreadSheetDataService } from './data.service';\n\n@Injectable()\nexport class SelectionService {\n protected readonly data = inject(SpreadSheetDataService);\n private readonly selection = signal<Selection>({ start: { row: 1, col: 0}, end: null! });\n private readonly selectionStart = computed(() => this.selection().start, { equal: isEqual });\n private readonly isMouseDown = signal(false);\n private readonly grid = inject(GridService);\n private readonly cellElMap = new Map<string, HTMLTableCellElement>();\n\n constructor() {\n effect(() => {\n const position = this.selectionStart();\n if (position) this.focus(position);\n });\n }\n\n isSelected(position: Position): boolean {\n // selectionの範囲に含まれているかどうかを返す\n const selection = this.selection();\n if (!selection) return false;\n\n const { start, end } = selection;\n const minRow = Math.min(start.row, end?.row ?? start.row);\n const maxRow = Math.max(start.row, end?.row ?? start.row);\n const minCol = Math.min(start.col, end?.col ?? start.col);\n const maxCol = Math.max(start.col, end?.col ?? start.col);\n const { row, col } = position;\n return row >= minRow && row <= maxRow && col >= minCol && col <= maxCol;\n }\n\n isCursorPosition(position: Position): boolean {\n return isEqual(this.selection().start, position);\n }\n\n handleMouseDown(position: Position, event?: MouseEvent): void {\n this.isMouseDown.set(true);\n if (!event?.shiftKey) {\n this.startSelection(position);\n }\n }\n\n handleMouseUp(): void {\n this.isMouseDown.set(false);\n }\n\n handleMouseEnter(position: Position): void {\n if (this.isMouseDown()) {\n this.updateSelection(position);\n }\n }\n\n handleClick(position: Position, event?: MouseEvent): void {\n if (!this.isMouseDown()) {\n if (event?.shiftKey) {\n this.updateSelectionEnd(position);\n } else {\n this.startSelection(position);\n }\n }\n }\n\n clearSelection(): void {\n this.selection.update((selection) => ({...selection, start: selection.start, end: null!}));\n }\n\n setStartPosition(position: Position): void {\n this.selection.update((selection) => ({...selection, start: position, end: null!}));\n }\n\n getSelection(): Selection | null {\n return this.selection();\n }\n\n getSelectionEndOrStart(): Position {\n return (this.selection()?.end || this.selection()?.start) as Position;\n }\n\n updateSelectionEnd(position: Position): void {\n this.selection.update((selection) => ({...selection, end: position}));\n }\n\n private startSelection(position: Position): void {\n this.selection.set({ start: position, end: null! });\n }\n\n private updateSelection(position: Position): void {\n if (this.selection()) {\n this.selection.update((selection) => ({...selection, end: position}));\n }\n }\n\n clearSelectedRange(selection: { start: { row: number; col: number }; end: { row: number; col: number } | null }): void {\n\n }\n\n setCell(position: Position, el: HTMLTableCellElement): void {\n this.cellElMap.set(`${this.buildKey(position)}`, el);\n }\n\n getCell(position: Position): HTMLTableCellElement | null {\n return this.cellElMap.get(this.buildKey(position)) ?? null;\n }\n\n focus(position: Position): void {\n setTimeout(() => {\n const el = this.getCell(position);\n if (el && el !== document.activeElement) {\n el.focus();\n }\n });\n }\n\n protected buildKey(position: Position): string {\n return `(${position.row}, ${position.col})`;\n }\n}","import { inject, Injectable } from '@angular/core';\nimport { Clipboard } from '@angular/cdk/clipboard';\nimport { SnackBarService } from '@ng-atomic/common/services/snack-bar';\nimport { injectDataAccessor } from '@ng-atomic/common/pipes/data-accessor';\nimport { EXPRESSION_TRANSFORMER } from '@ng-atomic/common/utils';\nimport { LanguageService } from '@ng-atomic/common/services/language';\nimport papaparse from 'papaparse';\nimport { Cell } from '../models';\nimport { SelectionService } from './selection.service';\nimport { SpreadSheetDataService } from './data.service';\n\n@Injectable()\nexport class ClipboardService {\n private clipboard = inject(Clipboard);\n private snackBar = inject(SnackBarService);\n protected data = inject(SpreadSheetDataService);\n readonly dataAccessor = injectDataAccessor();\n readonly expression = inject(EXPRESSION_TRANSFORMER);\n readonly language = inject(LanguageService);\n\n constructor(\n private selectionService: SelectionService,\n ) { }\n\n private buildGridData(range: {minRow: number; maxRow: number; minCol: number; maxCol: number}): Cell[][] {\n const header = this.data.displayedColumns().map(column => ({\n dataValue: this.language.transform(column),\n expressionValue: this.language.transform(column),\n isHeader: true\n }));\n const rows = this.data.items().map(item => this.data.displayedColumns().map(column => ({\n dataValue: this.dataAccessor(item, column),\n expressionValue: this.expression(this.dataAccessor(item, column), {item, name: column}),\n })));\n const fullData = [header, ...rows];\n return fullData.slice(range.minRow, range.maxRow + 1).map(row => row.slice(range.minCol, range.maxCol + 1));\n }\n\n async copy(): Promise<void> {\n const selection = this.selectionService.getSelection();\n if (!selection) return;\n let { start, end } = selection;\n end = end ?? start;\n const minRow = Math.min(start.row, end.row);\n const maxRow = Math.max(start.row, end.row);\n const minCol = Math.min(start.col, end.col);\n const maxCol = Math.max(start.col, end.col);\n const selectedData = this.buildGridData({minRow, maxRow, minCol, maxCol});\n const tsv = papaparse.unparse(selectedData.map(row => row.map(cell => cell.dataValue)),\n { delimiter: \"\\t\", newline: \"\\n\", header: false });\n this.copyText(tsv);\n }\n\n setData(items: any[], displayedColumns: string[]): void {\n this.data.displayedColumns.set(displayedColumns);\n this.data.items.set(items);\n }\n\n protected copyText(text: string) {\n this.clipboard.copy(text);\n this.snackBar.open('クリップボードにコピーしました。');\n }\n\n async paste(targetRow: number, targetCol: number): Promise<void> {\n }\n}","import { inject, Injectable, InjectionToken } from \"@angular/core\";\n\ninterface CellContext<T> {\n item: T;\n name: string;\n position: {\n row: number;\n col: number;\n }\n}\n\nexport type CellProtector = (value: any, context: CellContext<any>) => boolean;\nexport const COLUMN_PROTECTOR = new InjectionToken<CellProtector[]>('COLUMN_PROTECTOR', {\n providedIn: 'root',\n factory: () => [],\n});\nexport function provideCellProtector(useFactory: () => CellProtector) {\n return { provide: COLUMN_PROTECTOR, useFactory, multi: true };\n}\n\n@Injectable()\nexport class ProtectionService {\n readonly protectors = inject(COLUMN_PROTECTOR, {optional: true});\n\n isEditable(value: any, context: CellContext<any>): boolean {\n if (!this.protectors) return true;\n return this.protectors.every((protector) => protector(value, context));\n }\n}\n","import { inject, Injectable, signal } from '@angular/core';\nimport { EditingStateManager } from '@ng-atomic/common/services/editing';\nimport { GridService } from './grid.service';\nimport { SelectionService } from './selection.service';\nimport { ProtectionService } from './protection.service';\nimport { Position } from '../models/cell.model';\nimport { SpreadSheetDataService } from './data.service';\n\n@Injectable()\nexport class EditorService {\n protected readonly data = inject(SpreadSheetDataService);\n private grid = inject(GridService);\n private selection = inject(SelectionService);\n private protection = inject(ProtectionService);\n private editingStateManager = inject(EditingStateManager);\n readonly editinngCell = signal<{ row: number, col: number } | null>(null);\n protected readonly inputMap = new Map<string, HTMLInputElement>();\n\n isEditing(position: Position): boolean {\n return this.editinngCell()?.row === position.row && this.editinngCell()?.col === position.col;\n }\n\n startEditing(position: Position): void {\n const context = this.grid.getContext(position);\n console.debug('context:', context);\n if (!this.protection.isEditable(null, context!)) {\n return;\n }\n this.selection.clearSelection();\n this.editinngCell.set(position);\n \n // Notify EditingStateManager about editing start\n const columnId = this.data.displayedColumns()[position.col];\n this.editingStateManager.startEditing(position.row, columnId);\n \n this.focus(position);\n }\n\n stopEditing(): void {\n const editingCell = this.editinngCell();\n if (editingCell) {\n // Notify EditingStateManager about editing stop\n const columnId = this.data.displayedColumns()[editingCell.col];\n this.editingStateManager.stopEditing(editingCell.row, columnId);\n }\n this.editinngCell.set(null);\n }\n\n focus(position: Position): void {\n setTimeout(() => {\n const input = this.getInput(position);\n if (input && input !== document.activeElement) {\n input.focus();\n input.select();\n }\n });\n }\n\n getEditingCell(): Position | null {\n for (let i = 0; i < this.data.items().length; i++) {\n for (let j = 0; j < this.data.displayedColumns().length; j++) {\n if (this.isEditing({row: i, col: j})) {\n return { row: i, col: j };\n }\n }\n }\n return null;\n }\n\n setInput(input: HTMLInputElement, position: Position): void {\n this.inputMap.set(`${this.buildKey(position)}`, input);\n }\n\n getInput(position: Position): HTMLInputElement | null {\n return this.inputMap.get(this.buildKey(position)) ?? null;\n }\n\n protected buildKey(position: Position): string {\n return `(${position.row}, ${position.col})`;\n }\n}","import { Injectable, signal } from '@angular/core';\nimport { Position } from '../models';\n\nexport interface Range {\n start: Position;\n end: Position;\n}\n\n@Injectable()\nexport class AutoFillService {\n private autofillMode = signal(false);\n private sourcePosition = signal<Position | null>(null);\n private targetRange = signal<Range | null>(null);\n private previewElements = new Set<HTMLElement>();\n \n readonly isAutofillMode = this.autofillMode.asReadonly();\n readonly getSourcePosition = this.sourcePosition.asReadonly();\n readonly getTargetRange = this.targetRange.asReadonly();\n \n startAutofill(position: Position): void {\n this.autofillMode.set(true);\n this.sourcePosition.set(position);\n this.targetRange.set({ start: position, end: position });\n }\n \n updateAutofillRange(endPosition: Position): void {\n const sourcePos = this.sourcePosition();\n if (sourcePos) {\n this.targetRange.set({ start: sourcePos, end: endPosition });\n this.updatePreview();\n }\n }\n \n \n cancelAutofill(): void {\n this.resetAutofill();\n }\n \n \n private updatePreview(): void {\n // 既存のプレビューをクリア\n this.clearPreview();\n \n const range = this.targetRange();\n if (!range) return;\n \n // 影響を受けるセルにプレビュークラスを追加\n for (let row = range.start.row + 1; row <= range.end.row; row++) {\n const position = { row, col: range.start.col };\n const cellElement = this.getCellElement(position);\n if (cellElement) {\n cellElement.classList.add('autofill-preview');\n this.previewElements.add(cellElement);\n }\n }\n }\n \n private clearPreview(): void {\n this.previewElements.forEach(element => {\n element.classList.remove('autofill-preview');\n });\n this.previewElements.clear();\n }\n \n private getCellElement(position: Position): HTMLElement | null {\n return document.querySelector(\n `[data-row=\"${position.row}\"][data-col=\"${position.col}\"]`\n ) as HTMLElement;\n }\n \n \n private resetAutofill(): void {\n this.clearPreview();\n this.autofillMode.set(false);\n this.sourcePosition.set(null);\n this.targetRange.set(null);\n }\n}","import { inject, Injectable, Provider } from '@angular/core';\nimport { Position } from './models/cell.model';\nimport { GridService } from './features/grid.service';\nimport { NavigationService } from './features/navigation.service';\nimport { SelectionService } from './features/selection.service';\nimport { ClipboardService } from './features/clipboard.service';\nimport { EditorService } from './features/editor.service';\nimport { ProtectionService } from './features/protection.service';\nimport { SpreadSheetDataService } from './features/data.service';\nimport { AutoFillService } from './features/autofill.service';\n\n@Injectable()\nexport class SpreadSheetService {\n readonly config = { paste: false };\n readonly grid = inject(GridService);\n // readonly data = inject(SpreadSheetDataService);\n readonly navigation = inject(NavigationService);\n readonly selection = inject(SelectionService);\n readonly clipboard = inject(ClipboardService);\n readonly editor = inject(EditorService);\n readonly protection = inject(ProtectionService);\n readonly autofill = inject(AutoFillService);\n\n handleKeyDown(event: KeyboardEvent): void {\n if (this.editor.editinngCell()) {\n this.handleKeyDownOnEditing(event);\n } else {\n this.handleKeyDownOnSelecting(event);\n }\n }\n\n protected handleKeyDownOnEditing(event: KeyboardEvent): void {\n const cell = this.editor.editinngCell();\n \n // stopPropagation()が呼ばれている場合は処理しない\n // IME入力中やユーザーの意図的な入力中断の場合にValueCellAtomから制御される\n if (event.cancelBubble) {\n return;\n }\n \n if (event.key === 'Tab') {\n event.preventDefault();\n if (event.shiftKey) {\n this.move(cell!, 'left', 'select');\n } else {\n this.move(cell!, 'right', 'select');\n }\n } else if (event.key === 'Enter') {\n event.preventDefault();\n if (event.shiftKey) {\n this.move(cell!, 'top', 'select');\n } else {\n this.move(cell!, 'bottom', 'select');\n }\n }\n }\n\n protected handleKeyDownOnSelecting(event: KeyboardEvent): void {\n if (event.key === 'Tab') {\n const selectedCell = this.selection.getSelection()!.start;\n event.preventDefault();\n event.stopPropagation();\n if (event.shiftKey) {\n this.move(selectedCell, 'left', 'select');\n } else {\n this.move(selectedCell, 'right', 'select');\n }\n return;\n } else if (event.key === 'Enter') {\n const selectedCell = this.selection.getSelection()!.start;\n if (selectedCell) {\n this.editor.startEditing(selectedCell);\n event.preventDefault();\n }\n } else if (event.ctrlKey || event.metaKey) {\n if (event.key === 'c') {\n this.clipboard.copy();\n event.preventDefault();\n } else if (event.key === 'v') {\n if (!this.config.paste) return;\n const target = this.selection.getSelection()!.start;\n if (target) {\n this.clipboard.paste(target.row, target.col);\n }\n event.preventDefault();\n }\n return;\n } else if (event.key === 'Delete' || event.key === 'Backspace') {\n const selection = this.selection.getSelection();\n if (selection) {\n this.selection.clearSelectedRange(selection);\n event.preventDefault();\n return;\n }\n } else {\n const selection = this.selection.getSelection()!.start;\n let newPosition: Position | undefined;\n if (event.shiftKey) {\n const selectionEnd = this.selection.getSelectionEndOrStart();\n switch (event.key) {\n case 'ArrowRight':\n newPosition = this.navigation.moveRight(selectionEnd);\n break;\n case 'ArrowLeft':\n newPosition = this.navigation.moveLeft(selectionEnd);\n break;\n case 'ArrowUp':\n newPosition = this.navigation.moveUp(selectionEnd);\n break;\n case 'ArrowDown':\n newPosition = this.navigation.moveDown(selectionEnd);\n break;\n default:\n return;\n }\n if (newPosition) {\n event.preventDefault();\n this.selection.updateSelectionEnd(newPosition);\n }\n } else {\n switch (event.key) {\n case 'ArrowRight':\n newPosition = this.navigation.moveRight(selection);\n break;\n case 'ArrowLeft':\n newPosition = this.navigation.moveLeft(selection);\n break;\n case 'ArrowUp':\n newPosition = this.navigation.moveUp(selection);\n break;\n case 'ArrowDown':\n newPosition = this.navigation.moveDown(selection);\n break;\n default:\n return;\n }\n if (newPosition) {\n event.preventDefault();\n this.selection.clearSelection();\n this.selection.handleClick(newPosition);\n }\n }\n }\n }\n\n protected move(_position: Position, dest: 'top' | 'bottom' | 'left' | 'right', mode: 'edit' | 'select') {\n this.editor.stopEditing();\n let position: Position = _position;\n if (dest === 'top') {\n position = this.navigation.moveToPreviousRow(_position);\n } else if (dest === 'bottom') {\n position = this.navigation.moveToNextRow(_position);\n } else if (dest === 'left') {\n position = this.navigation.moveToPreviousCell(_position);\n } else if (dest === 'right') {\n position = this.navigation.moveToNextCell(_position);\n }\n\n this.selection.setStartPosition(position);\n\n if (mode === 'edit') {\n this.editor.startEditing(position);\n }\n }\n}\n\nexport function provideSpreadSheetService(): Provider[] {\n return [\n ClipboardService,\n SpreadSheetDataService,\n EditorService,\n SpreadSheetService,\n GridService,\n NavigationService,\n SelectionService,\n ProtectionService,\n AutoFillService\n ];\n}\n","import { computed, Directive, effect, ElementRef, inject, input, signal, AfterViewInit } from \"@angular/core\";\nimport { SpreadSheetService } from \"../spreadsheet.service\";\nimport { CellContext } from \"../models/cell.model\";\n\n@Directive({\n standalone: true,\n selector: '[ssCell]',\n host: {\n '[class.selected]': 'ss.selection.isSelected(position())',\n '[class.editing]': 'ss.editor.isEditing(position())',\n '(mousedown)': 'ss.selection.handleMouseDown(position(), $event)',\n '(mouseup)': 'ss.selection.handleMouseUp()',\n '(mouseenter)': 'ss.selection.handleMouseEnter(position())',\n '(click)': 'ss.selection.handleClick(position(), $event)',\n '(dblclick)': 'onDbClick()',\n '[attr.data-row]': 'position().row',\n '[attr.data-col]': 'position().col',\n }\n})\nexport class SpreadSheetCell implements AfterViewInit {\n protected ss = inject(SpreadSheetService);\n readonly el = inject<ElementRef<HTMLTableCellElement>>(ElementRef);\n\n readonly position = input<{row: number, col: number}>({row: 0, col: 0}, {alias: 'ssCell'});\n readonly editable = input<boolean>(false, {alias: 'ssCellEditable'});\n readonly context = input<CellContext | null>(null, {alias: 'ssCellContext'});\n readonly isSelected = computed(() => this.ss.selection.isSelected(this.position()));\n readonly isEditing = computed(() => this.ss.editor.isEditing(this.position()));\n readonly frameEl = signal<HTMLDivElement | null>(null);\n\n constructor() {\n effect(() => {\n if (!this.context()) return;\n this.ss.grid.setContext(this.context()!);\n });\n\n effect(() => {\n const isCursor = this.ss.selection.isCursorPosition(this.position());\n let frame = this.frameEl();\n\n if (isCursor) {\n if (!frame) {\n frame = this.buildOutlineFrame();\n this.el.nativeElement.appendChild(frame);\n this.frameEl.set(frame);\n }\n } else {\n frame?.remove();\n this.frameEl.set(null);\n }\n });\n }\n\n onDbClick(): void {\n if (!this.editable()) return;\n this.ss.editor.startEditing(this.position());\n }\n\n ngAfterViewInit(): void {\n this.ss.selection.setCell(this.position(), this.el.nativeElement);\n if (this.isSelected() && !this.isEditing()) {\n this.ss.selection.focus(this.position());\n }\n }\n\n protected buildOutlineFrame(): HTMLDivElement {\n const frame = document.createElement('div');\n frame.classList.add('selection-frame');\n frame.style.position = 'absolute';\n frame.style.top = '0';\n frame.style.left = '0';\n frame.style.width = '100%';\n frame.style.height = '100%';\n frame.style.border = '2px solid #2196f3';\n frame.style.borderRadius = '4px';\n frame.style.pointerEvents = 'none';\n frame.style.boxSizing = 'border-box';\n return frame;\n }\n\n protected createLabelElement(options: {\n label: string\n color: string\n }) {\n const el = document.createElement('span');\n el.textContent = options.label;\n el.style.backgroundColor = `${options.color}`;\n el.style.color = '#fff';\n el.style.padding = '2px 4px';\n el.style.position = 'absolute';\n el.style.fontSize = '10px';\n el.style.top = '0';\n el.style.left = '0';\n el.style.zIndex = '9999';\n el.style.lineHeight = '1.5em';\n el.style.whiteSpace = 'nowrap';\n this.el.nativeElement.appendChild(el);\n }\n}\n\n\n@Directive({\n standalone: true,\n selector: '[ssCellInput]',\n host: {\n '(blur)': 'stopEditing()',\n }\n})\nexport class SpreadSheetCellInput implements AfterViewInit {\n protected ss = inject(SpreadSheetService);\n readonly position = input<{row: number, col: number}>({row: 0, col: 0}, {alias: 'ssCellInput'});\n readonly el = inject<ElementRef<HTMLInputElement>>(ElementRef);\n readonly isSelected = computed(() => this.ss.selection.isSelected(this.position()));\n readonly isEditing = computed(() => this.ss.editor.isEditing(this.position()));\n\n ngAfterViewInit(): void {\n this.ss.editor.setInput(this.el.nativeElement, this.position());\n if (this.isSelected() && this.isEditing()) {\n this.ss.editor.focus(this.position());\n }\n }\n\n protected stopEditing(): void {\n this.ss.editor.stopEditing();\n }\n}\n","import { Component, Directive, inject, OnDestroy, output, ViewContainerRef, ComponentRef, ElementRef, Renderer2, HostListener } from '@angular/core';\nimport { SpreadSheetService } from '../spreadsheet.service';\n\ntype Position = { row: number; col: number };\ntype Range = { start: Position; end: Position };\n\nexport interface AutofillContext {\n sourceContext: any;\n targetContexts: Array<{ position: Position; context: any }>;\n}\n\n@Component({\n selector: 'autofill-handle',\n standalone: true,\n template: '',\n styles: [`\n :host {\n position: absolute;\n width: 8px;\n height: 8px;\n background-color: #2196F3;\n border: 2px solid #ffffff;\n border-radius: 50%;\n cursor: crosshair;\n z-index: 10000;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);\n transition: background-color 0.2s, opacity 0.2s;\n opacity: 0;\n pointer-events: none;\n \n &:hover {\n background-color: #1976D2;\n }\n \n &.visible {\n opacity: 1;\n pointer-events: auto;\n }\n }\n `]\n})\nclass AutofillHandleComponent {\n readonly elementRef = inject(ElementRef<HTMLElement>);\n private renderer = inject(Renderer2);\n \n handleMouseDown = output<MouseEvent>();\n \n @HostListener('mousedown', ['$event'])\n onMouseDown(e: MouseEvent): void {\n e.preventDefault();\n e.stopPropagation();\n this.handleMouseDown.emit(e);\n }\n\n show(rect: DOMRect, containerRect?: DOMRect) {\n const el = this.elementRef.nativeElement;\n // ハンドルをセルの右下角に配置\n const handleSize = 14; // 8px + 2px*2 (border)\n \n if (containerRect) {\n // コンテナからの相対位置を計算\n this.renderer.setStyle(el, 'left', `${rect.right - containerRect.left - handleSize / 2}px`);\n this.renderer.setStyle(el, 'top', `${rect.bottom - containerRect.top - handleSize / 2}px`);\n } else {\n // position: fixedの場合(フォールバック)\n this.renderer.setStyle(el, 'left', `${rect.right - handleSize}px`);\n this.renderer.setStyle(el, 'top', `${rect.bottom - handleSize}px`);\n }\n \n this.renderer.addClass(el, 'visible');\n }\n \n hide() {\n this.renderer.removeClass(this.elementRef.nativeElement, 'visible');\n }\n}\n\n/**\n * テーブル全体のオートフィル機能を管理するディレクティブ\n * セルディレクティブから直接呼び出される\n */\n@Directive({\n standalone: true,\n selector: '[gridDataTableAutofill]'\n})\nexport class GridDataTableAutofill implements OnDestroy {\n private ss = inject(SpreadSheetService);\n private viewContainerRef = inject(ViewContainerRef);\n private renderer = inject(Renderer2);\n private autofillStartPosition: Position | null = null;\n private lastAutofillContexts: AutofillContext | null = null;\n private cleanupFunctions: (() => void)[] = [];\n private handleComponent: ComponentRef<AutofillHandleComponent> | null = null;\n private currentCell: HTMLElement | null = null;\n \n // オートフィル完了イベント\n readonly autofillComplete = output<{\n sourcePosition: Position;\n targetRange: Range;\n contexts: AutofillContext;\n }>();\n\n private currentPosition: Position | null = null;\n\n constructor() {\n // ハンドルコンポーネントを作成\n this.handleComponent = this.viewContainerRef.createComponent(AutofillHandleComponent);\n \n // ハンドルのmousedownイベントを設定\n this.handleComponent.instance.handleMouseDown.subscribe(() => {\n if (this.currentPosition) {\n this.startAutofill(this.currentPosition);\n }\n });\n }\n\n showHandle(cell: HTMLElement, position: Position): void {\n this.currentCell = cell;\n this.currentPosition = position;\n \n // ハンドルを適切な親要素に配置(初回のみ)\n let scrollContainer: HTMLElement | null = null;\n if (!this.handleComponent?.location.nativeElement.parentElement) {\n // スクロールビューポートか、テーブルコンテナを探す\n scrollContainer = (cell.closest('cdk-virtual-scroll-viewport') ||\n cell.closest('.mat-table-container') ||\n cell.closest('table')?.parentElement) as HTMLElement | null;\n \n if (scrollContainer) {\n this.renderer.appendChild(scrollContainer, this.handleComponent!.location.nativeElement);\n } else {\n // フォールバック: document.bodyに追加(position: fixedモード)\n this.renderer.appendChild(document.body, this.handleComponent!.location.nativeElement);\n this.renderer.setStyle(this.handleComponent!.location.nativeElement, 'position', 'fixed');\n }\n } else {\n scrollContainer = this.handleComponent!.location.nativeElement.parentElement as HTMLElement;\n }\n \n const cellRect = cell.getBoundingClientRect();\n const containerRect = scrollContainer?.getBoundingClientRect();\n \n this.handleComponent?.instance.show(cellRect, containerRect);\n \n // スクロールイベントのリスナーを設定\n this.setupScrollListener();\n }\n\n hideHandle(): void {\n this.currentCell = null;\n this.currentPosition = null;\n this.handleComponent?.instance.hide();\n }\n\n onAutofillStart(position: Position): void {\n this.startAutofill(position);\n }\n \n private setupScrollListener(): void {\n if (this.cleanupFunctions.some(fn => fn.name === 'scrollCleanup')) {\n return; // 既にリスナーが設定されている\n }\n \n const scrollHandler = () => {\n if (this.currentCell && this.handleComponent) {\n const cellRect = this.currentCell.getBoundingClientRect();\n const containerElement = this.handleComponent.location.nativeElement.parentElement;\n const containerRect = containerElement?.getBoundingClientRect();\n this.handleComponent.instance.show(cellRect, containerRect);\n }\n };\n \n // スクロール可能な親要素を見つける\n const scrollContainer = this.currentCell?.closest('cdk-virtual-scroll-viewport') || \n this.currentCell?.closest('.mat-table-container');\n \n if (scrollContainer) {\n scrollContainer.addEventListener('scroll', scrollHandler, { passive: true });\n const cleanup = () => scrollContainer.removeEventListener('scroll', scrollHandler);\n Object.defineProperty(cleanup, 'name', { value: 'scrollCleanup' });\n this.cleanupFunctions.push(cleanup);\n }\n \n // ウィンドウスクロールも監視\n window.addEventListener('scroll', scrollHandler, { passive: true });\n const windowCleanup = () => window.removeEventListener('scroll', scrollHandler);\n Object.defineProperty(windowCleanup, 'name', { value: 'scrollCleanup' });\n this.cleanupFunctions.push(windowCleanup);\n }\n \n // セルディレクティブから呼び出されるメソッド\n private startAutofill(position: Position): void {\n this.autofillStartPosition = position;\n this.ss.autofill.startAutofill(position);\n \n // 既存のリスナーをクリーンアップ\n this.cleanup();\n \n // マウスイベントの設定\n const onMouseMove = this.onMouseMove.bind(this);\n const onMouseUp = this.onMouseUp.bind(this);\n \n document.addEventListener('mousemove', onMouseMove);\n document.addEventListener('mouseup', onMouseUp);\n \n this.cleanupFunctions.push(() => {\n document.removeEventListener('mousemove', onMouseMove);\n document.removeEventListener('mouseup', onMouseUp);\n });\n }\n\n private onMouseMove(event: MouseEvent): void {\n if (!this.autofillStartPosition) return;\n \n // ドラッグ中のプレビュー処理\n const element = document.elementFromPoint(event.clientX, event.clientY);\n const cell = element?.closest('td[mat-cell]');\n if (cell) {\n const targetRow = parseInt(cell.getAttribute('data-row') || '0');\n const targetCol = parseInt(cell.getAttribute('data-col') || '0');\n \n this.ss.autofill.updateAutofillRange({ row: targetRow, col: targetCol });\n }\n }\n\n private onMouseUp(): void {\n const result = this.completeAutofill();\n if (result) {\n this.autofillComplete.emit(result);\n }\n \n this.autofillStartPosition = null;\n this.cleanup();\n }\n\n private completeAutofill(): { sourcePosition: Position; targetRange: Range; contexts: AutofillContext } | null {\n const sourcePosition = this.ss.autofill.getSourcePosition();\n const targetRange = this.ss.autofill.getTargetRange();\n \n if (!sourcePosition || !targetRange) {\n return null;\n }\n\n // GridServiceから実際のコンテキストを収集\n const contexts: Array<{ position: Position; context: any }> = [];\n const { start, end } = targetRange;\n \n // ソースコンテキストを取得\n const sourceContext = this.ss.grid.getContext(sourcePosition);\n if (!sourceContext) {\n console.warn('Source context not found');\n this.ss.autofill.cancelAutofill();\n return null;\n }\n \n // 影響を受けるセルのコンテキストを収集(表示されているセルのみ)\n for (let row = start.row + 1; row <= end.row; row++) {\n const targetContext = this.ss.grid.getContext({ row, col: start.col });\n if (targetContext) {\n contexts.push({ position: { row, col: start.col }, context: targetContext });\n }\n }\n \n // コンテキスト情報を保存\n this.lastAutofillContexts = { sourceContext, targetContexts: contexts };\n \n // オートフィルモードをリセット\n this.ss.autofill.cancelAutofill();\n \n if (contexts.length > 0) {\n return {\n sourcePosition,\n targetRange,\n contexts: this.lastAutofillContexts\n };\n }\n \n return null;\n }\n\n getLastAutofillContexts(): AutofillContext | null {\n return this.lastAutofillContexts;\n }\n\n private cleanup(): void {\n this.cleanupFunctions.forEach(fn => fn());\n this.cleanupFunctions = [];\n }\n \n ngOnDestroy(): void {\n this.cleanup();\n if (this.handleComponent) {\n this.handleComponent.destroy();\n }\n }\n}","import { Directive, effect, ElementRef, inject, input, computed } from \"@angular/core\";\nimport { SpreadSheetService } from \"../spreadsheet.service\";\nimport { GridDataTableAutofill } from \"./grid-table-autofill.directive\";\n\n@Directive({ standalone: true, selector: '[gridDataCellAutofill]' })\nexport class SpreadSheetCellAutofill {\n protected ss = inject(SpreadSheetService);\n readonly el = inject<ElementRef<HTMLTableCellElement>>(ElementRef);\n readonly table = inject(GridDataTableAutofill);\n \n readonly position = input<{row: number, col: number}>({row: 0, col: 0}, {alias: 'gridDataCellAutofill'});\n readonly enabled = input<boolean>(true, {alias: 'gridDataCellAutofillEnabled'});\n \n readonly shouldShow = computed(() => this.enabled() && \n this.ss.selection.isCursorPosition(this.position()) && \n !this.ss.editor.isEditing(this.position()) &&\n !this.ss.autofill.isAutofillMode());\n\n constructor() {\n // requestAnimationFrameを使用して、DOMの更新後に実行\n effect(() => {\n if (this.shouldShow()) {\n requestAnimationFrame(() => {\n this.table.showHandle(this.el.nativeElement, this.position());\n });\n } else if (!this.shouldShow() && this.ss.selection.isCursorPosition(this.position())) {\n // 現在のセルがカーソル位置だが表示条件を満たさない場合のみ非表示\n this.table.hideHandle();\n }\n });\n }\n}","export * from './directives';\nexport * from './features';\nexport * from './models';\nexport * from './spreadsheet.service';\n// Components are imported directly by directives to avoid circular dependencies\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.SelectionService"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ng-atomic-common-utils.mjs","sources":["../../../../../packages/@ng-atomic/common/src/lib/utils/comma/comma.ts","../../../../../packages/@ng-atomic/common/src/lib/utils/compare-by-id/compare-by-id.ts","../../../../../packages/@ng-atomic/common/src/lib/utils/date-utils/date-utils.ts","../../../../../packages/@ng-atomic/common/src/lib/utils/diff/diff.ts","../../../../../packages/@ng-atomic/common/src/lib/utils/form/form.ts","../../../../../packages/@ng-atomic/common/src/lib/utils/get/get.ts","../../../../../packages/@ng-atomic/common/src/lib/utils/inject/route-params.ts","../../../../../packages/@ng-atomic/common/src/lib/utils/inject/route-query.ts","../../../../../packages/@ng-atomic/common/src/lib/utils/inject/route-navigation.ts","../../../../../packages/@ng-atomic/common/src/lib/utils/inject/route-data.ts","../../../../../packages/@ng-atomic/common/src/lib/utils/inject/resolver.ts","../../../../../packages/@ng-atomic/common/src/lib/utils/inject/inject.ts","../../../../../packages/@ng-atomic/common/src/lib/utils/mat-dayjs-date/dayjs-date.adapter.ts","../../../../../packages/@ng-atomic/common/src/lib/utils/mat-dayjs-date/dayjs-date.formats.ts","../../../../../packages/@ng-atomic/common/src/lib/utils/mat-dayjs-date/dayjs-jp-providers.ts","../../../../../packages/@ng-atomic/common/src/lib/utils/mat-dayjs-date/dayjs-date.module.ts","../../../../../packages/@ng-atomic/common/src/lib/utils/page/page.ts","../../../../../packages/@ng-atomic/common/src/lib/utils/router/router.ts","../../../../../packages/@ng-atomic/common/src/lib/utils/expression/expression.transformer.ts","../../../../../packages/@ng-atomic/common/src/lib/utils/to-object/to-object.ts","../../../../../packages/@ng-atomic/common/src/lib/utils/time.ts","../../../../../packages/@ng-atomic/common/src/lib/utils/index.ts","../../../../../packages/@ng-atomic/common/src/lib/utils/ng-atomic-common-utils.ts"],"sourcesContent":["export const comma = (n: number | null): string => n === null ? '0' : n.toLocaleString();\nexport const commaStr = (n: number, unit = '円') => n < 0 ? `-${comma(abs(n))}${unit}` : `${comma(n)}${unit}`;\nexport const abs = (n: number) => Math.abs(n);","export type HasId = { id: string };\nexport function compareByIdFactory(key: string) {\n return (a: any, b: any) => parseInt(a?.[key], 10) - parseInt(b?.[key], 10);\n}\nexport const compareById = compareByIdFactory('id');\n","import dayjs from 'dayjs';\n\nexport const removeComma = (str: string) => str.replace(/\\,/g, '');\n\nexport const DATE_FORMAT = 'YYYY-MM-DDTHH:mm:ss';\nconst DATE_REGEX = /^[0-9]{4}\\/(0[1-9]|1[0-2])\\/(0[1-9]|[12][0-9]|3[01])$/;\nconst DATETIME_REGEX = /^\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\+([+-][0-2]\\d:[0-5]\\d)$/;\nexport const isDateStr = (str: string | null): str is string => !!str && !!str.match(DATE_REGEX);\nexport const isDateTimeStr = (str: string | null): str is string => !!str && !!str.match(DATE_REGEX);\n\nconst ISO_REGEX = /\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+([+-][0-2]\\d:[0-5]\\d|Z)/;\nexport const isIsoString = (str: string | null): str is string => !!str && !!str.match(ISO_REGEX);\n\n\nexport interface Timestamp {\n toDate: () => Date;\n}\n\nexport function timestampToDayjs(timestamp: Timestamp | null): dayjs.Dayjs | null {\n return timestamp ? dayjs(timestamp.toDate()) : null;\n}","import { SelectionModel } from \"@angular/cdk/collections\";\n\nexport function diff<T = any>(initial: SelectionModel<T>, current: SelectionModel<T>): {\n selectedIds: T[],\n unselectedIds: T[],\n} {\n return {\n selectedIds: current.selected.filter((id: T) => !initial.isSelected(id)),\n unselectedIds: initial.selected.filter((id: T) => !current.isSelected(id)),\n }\n}\n","import { Signal } from \"@angular/core\";\nimport { toSignal } from \"@angular/core/rxjs-interop\";\nimport { AbstractControl } from \"@angular/forms\";\nimport { Observable, distinctUntilChanged, map, merge, of, startWith } from \"rxjs\";\nimport { computedAsync } from \"ngxtension/computed-async\";\nimport { computeFake } from \"@ng-atomic/core\";\n\nexport function getValue$<T>(control: AbstractControl<T>): Observable<T> {\n return merge(of(control.value), control.valueChanges).pipe(\n distinctUntilChanged((pre, cur) => JSON.stringify(pre) === JSON.stringify(cur)),\n );\n}\n\nexport function getValue<T>(control: AbstractControl<T>): Signal<T> {\n return toSignal(getValue$(control)) as Signal<T>;\n}\n\nexport function getRawValue$<T>(control: AbstractControl<T>): Observable<T> {\n return merge(of(control.getRawValue()), control.valueChanges.pipe(map(() => control.getRawValue())));\n}\n\nexport function getRawValue<T>(control: AbstractControl<T>): Signal<T> {\n return toSignal(getRawValue$(control)) as Signal<T>;\n}\n\nexport function computedRawValue<T>(controlFactory: () => AbstractControl<T>): Signal<T> {\n return computedAsync(() => controlFactory().valueChanges.pipe(\n startWith(null),\n map(() => controlFactory().getRawValue()),\n ), { initialValue: computeFake(controlFactory()).getRawValue() });\n}\n\nexport function getInvalid$<T>(control: AbstractControl<T>): Observable<boolean> {\n return control.statusChanges.pipe(\n startWith(null),\n map(() => control.invalid),\n );\n}\n\nexport function getInvalid<T>(form: AbstractControl<T>): Signal<boolean> {\n return toSignal(getInvalid$(form)) as Signal<boolean>;\n}\n\n","import { get as _get } from 'lodash-es';\n\n// ネストされたオブジェクトのキーの組み合わせを生成する型ヘルパー\nexport type PathKeys<T> = T extends object ? {\n [K in keyof T]-?: K extends string | number ?\n T[K] extends object ? [K] | [K, ...PathKeys<T[K]>] : [K]\n : never\n}[keyof T] : [];\n\n// ネストされたパスに対応する型を抽出するための型ヘルパー\nexport type NestedGetType<T, P extends any[]> = \n P extends [infer F, ...infer R]\n ? F extends keyof T\n ? NestedGetType<T[F], R>\n : never\n : T;\n\n/** @deprecated use lodash-es */\nexport function get<T, P extends PathKeys<T>>(obj: T, path: P): NestedGetType<T, P> {\n return _get(obj, path as any);\n}","import { Signal, inject } from \"@angular/core\";\nimport { takeUntilDestroyed, toSignal } from \"@angular/core/rxjs-interop\";\nimport { ActivatedRoute, ParamMap, Params } from \"@angular/router\";\nimport { Observable, OperatorFunction, combineLatest, map, of, shareReplay } from \"rxjs\";\nimport { unflatten } from 'flat';\n\nexport function injectRouterParam$(key: string): Observable<string> {\n return inject(ActivatedRoute).paramMap.pipe(\n map((params) => params.get(key)) as OperatorFunction<ParamMap, string>,\n shareReplay(1),\n takeUntilDestroyed(),\n );\n}\n\n/** @deprecated */\nexport function injectRouterParam(key: string): Signal<string> {\n return toSignal(injectRouterParam$(key)) as Signal<string>;\n}\n\nexport function injectRouteParams$({\n merge = true,\n route = inject(ActivatedRoute),\n}: {\n merge?: boolean,\n route?: ActivatedRoute,\n} = {}): Observable<Params> {\n const parentParams = (merge && route.parent) ? injectRouteParams$({merge, route: route.parent}) : of(new Map<string, string>());\n return combineLatest({\n parentParams,\n params: route.params\n }).pipe(\n map(({parentParams, params}) => ({\n ...parentParams,\n ...params,\n })),\n shareReplay(1),\n takeUntilDestroyed(),\n )\n}\n\nexport function injectUnflattenRouteParams$({\n merge = true,\n route = inject(ActivatedRoute),\n}: {\n merge?: boolean,\n route?: ActivatedRoute,\n} = {}) {\n return injectRouteParams$({merge, route}).pipe(\n map((params) => (unflatten(params) as any)),\n );\n}\n\nexport function injectUnflattenRouteParam$<T = any>(key?: string): Observable<T> {\n return injectUnflattenRouteParams$().pipe(\n map((params) => key ? params[key]: params),\n );\n}\n\nexport function injectUnflattenRouteParam<T = any>(key?: string): Signal<T> {\n return toSignal(injectUnflattenRouteParam$(key)) as Signal<T>;\n}\n\nexport function injectUnflattenRouteParams({\n merge = true,\n}: {\n merge?: boolean,\n} = {}): Signal<any> {\n return toSignal(injectUnflattenRouteParams$({merge}), {initialValue: {}});\n}\n\nexport function injectRouteParamMap$({\n merge = true,\n}: {\n merge?: boolean,\n} = {}) {\n return injectRouteParams$({merge}).pipe(\n map((params) => new Map(Object.entries(params)) as never as ParamMap),\n );\n}\n\nexport function injectRouteParamMap({\n merge = true,\n}: {\n merge?: boolean,\n} = {}): Signal<ParamMap> {\n return toSignal(injectRouteParamMap$({merge})) as Signal<ParamMap>;\n}\n\nexport function injectRouteParams({\n merge = true,\n}: {\n merge?: boolean,\n} = {}): Signal<Record<string, string>> {\n return toSignal(injectRouteParams$({merge})) as Signal<Record<string, string>>;\n}\n\nexport function injectRouteParam$(key: string, {\n merge = true,\n}: {\n merge?: boolean,\n} = {}): Observable<string> {\n return injectRouteParamMap$({merge}).pipe(\n map((params) => params.get(key)) as OperatorFunction<ParamMap, string>,\n takeUntilDestroyed(),\n );\n}\n\nexport function injectRouteParam(key: string, injector?: import(\"@angular/core\").Injector): Signal<string> {\n return toSignal(injectRouteParam$(key), {injector}) as Signal<string>;\n}\n\nexport function injectRouteSkip$(): Observable<boolean> {\n return injectRouteParam$('skip', {merge: false}).pipe(\n map((skip) => skip === 'true'),\n shareReplay(1),\n takeUntilDestroyed(),\n )\n}\n\nexport function injectRouteSkip(): Signal<boolean> {\n return toSignal(injectRouteSkip$()) as Signal<boolean>;\n}\n","import { Signal, inject } from \"@angular/core\";\nimport { takeUntilDestroyed, toSignal } from \"@angular/core/rxjs-interop\";\nimport { ActivatedRoute } from \"@angular/router\";\nimport { Observable, map, shareReplay } from \"rxjs\";\n\nexport function injectRouteQueryParam$<T extends string = string>(key: string): Observable<T> {\n return inject(ActivatedRoute).queryParamMap.pipe(\n map((params) => params.get(key) as T),\n shareReplay(1),\n takeUntilDestroyed(),\n );\n}\n\nexport function injectRouteQueryParam(key: string): Signal<string> {\n return toSignal(injectRouteQueryParam$(key)) as Signal<string>;\n}\n\nexport function injectRouterQueryParam$<T extends string = string>(key: string): Observable<T> {\n return inject(ActivatedRoute).queryParamMap.pipe(\n map((params) => params.get(key) as T),\n shareReplay(1),\n takeUntilDestroyed(),\n );\n}\n\nexport function injectRouterQueryParam<T extends string = string>(key: string): Signal<T> {\n return toSignal(injectRouterQueryParam$(key)) as Signal<T>;\n}\n","import { Signal, computed, inject } from \"@angular/core\";\nimport { takeUntilDestroyed, toSignal } from \"@angular/core/rxjs-interop\";\nimport { ActivatedRoute, NavigationEnd, NavigationExtras, Router } from \"@angular/router\";\nimport { Observable, filter, map, of, shareReplay, startWith, switchMap } from \"rxjs\";\n\nexport function injectRouteNavigated$() {\n const router = inject(Router);\n const route = inject(ActivatedRoute);\n return router.events.pipe(\n filter(event => event instanceof NavigationEnd),\n map(() => route),\n );\n}\n\nexport function injectRouteNavigated() {\n return toSignal(injectRouteNavigated$());\n}\n\nexport function injectPrimaryPaths$() {\n return injectRouteNavigated$().pipe(\n map(route => {\n const paths: (string | null)[] = [];\n let current: ActivatedRoute | null = route.root;\n while (current) {\n paths.push(current?.routeConfig?.path ?? null);\n current = current.firstChild;\n }\n return paths.filter(Boolean);\n }),\n shareReplay(1),\n takeUntilDestroyed(),\n );\n}\n\nexport function injectPrimaryPaths() {\n return toSignal(injectPrimaryPaths$());\n}\n\nexport function injectChildRouteParam$(key: string): Observable<string> {\n return injectRouteNavigated$().pipe(\n switchMap((route) => route?.firstChild ? route.firstChild.paramMap : of(new Map<string, string>())),\n map((params) => params.get(key) as string),\n shareReplay(1),\n takeUntilDestroyed(),\n );\n}\n\nexport function injectChildRouteParam(key: string): Signal<string> {\n return toSignal(injectChildRouteParam$(key)) as Signal<string>;\n}\n\nexport function injectChildRoute$() {\n return injectRouteNavigated$().pipe(\n map((route) => (route?.firstChild?.firstChild ?? null) as ActivatedRoute),\n shareReplay(1),\n takeUntilDestroyed(),\n );\n}\n\nexport function injectChildRoute(): Signal<ActivatedRoute> {\n return toSignal(injectChildRoute$()) as Signal<ActivatedRoute>;\n}\n\nexport function injectHasNext$() {\n const router = inject(Router);\n const route = inject(ActivatedRoute);\n return router.events.pipe(\n startWith(null),\n map(() => !!route?.firstChild?.firstChild),\n shareReplay(1),\n takeUntilDestroyed(),\n );\n}\n\nexport function injectHasNext() {\n return toSignal(injectHasNext$());\n}\n\nexport function injectNavigationExtras(): Signal<NavigationExtras> {\n const relativeTo = inject(ActivatedRoute);\n const hasNext = injectHasNext();\n return computed(() => ({ relativeTo, replaceUrl: hasNext() }));\n}\n","import { Injector, Signal, computed, inject } from \"@angular/core\";\nimport { toSignal } from \"@angular/core/rxjs-interop\";\nimport { ActivatedRoute } from \"@angular/router\";\nimport { Observable, map } from \"rxjs\";\nimport { get } from \"lodash-es\";\n\nexport function injectRouteData$<T>(path: string): Observable<T> {\n return inject(ActivatedRoute).data.pipe(map(data => get(data, path) as T));\n}\n\nexport function injectRouteData<T>(key: string): Signal<T> {\n return toSignal(injectRouteData$<T>(key)) as Signal<T>;\n}\n\nexport function injectRouteDataSnapshot<T>(key: string): Signal<T> {\n const route = inject(ActivatedRoute);\n return computed(() => route.snapshot.data[key] as T);\n}\n\nexport function injectActivatedComponents(injector: Injector = inject(Injector)): any[] {\n const components = [];\n let route = injector.get(ActivatedRoute, {optional: true}) ?? null;\n while(route) {\n if (route.component) components.push(route.component);\n route = route.parent;\n }\n return components;\n}\n","import { Injectable } from \"@angular/core\";\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\nimport { Observable, combineLatest, map, of, shareReplay } from \"rxjs\";\nimport { BaseResolver, Type } from \"@nx-ddd/common/domain\";\n\nexport interface Resolver<T> {\n resolve(entry: T): T;\n resolveMany(entities: T[]): T[];\n}\n\nexport function provideResolver(\n Entity: Type<{id: string}>,\n ResolverType: new (params: Record<string, Observable<any>>) => Resolver<any>,\n) {\n return {\n provide: Entity,\n deps: [],\n multi: true,\n };\n}\n\n@Injectable({providedIn: 'root'})\nexport class ResolverManager {\n protected map = new Map<string, Resolver<any>>();\n\n get(Entity: Type<{id: string}>) {\n if (!this.map.has(Entity.name)) {\n // placeholder for future implementation\n }\n return this.map.get(Entity.name);\n }\n}\n\nexport function injectResolver$<T>(\n ResolverType: Type<BaseResolver<T>>,\n params: Record<string, Observable<any>>,\n): Observable<BaseResolver<T>> {\n const params$ = Object.keys(params).length > 0 ? combineLatest(params) : of({});\n return params$.pipe(\n map((params) => new ResolverType(params)),\n shareReplay(1),\n takeUntilDestroyed(),\n );\n}\n\nexport function getResolver<T>(\n ResolverType: new (params: Record<string, any>) => Resolver<T>,\n params: Record<string, any>,\n): Resolver<T> {\n return new ResolverType(params);\n}\n","/**\n * Angular injection utilities for routing and resolvers\n *\n * Re-exports all utilities from split files for backward compatibility\n */\n\n// Route parameter utilities\nexport {\n injectRouterParam$,\n injectRouterParam,\n injectRouteParams$,\n injectRouteParams,\n injectRouteParamMap$,\n injectRouteParamMap,\n injectRouteParam$,\n injectRouteParam,\n injectRouteSkip$,\n injectRouteSkip,\n injectUnflattenRouteParams$,\n injectUnflattenRouteParams,\n injectUnflattenRouteParam$,\n injectUnflattenRouteParam,\n} from './route-params';\n\n// Query parameter utilities\nexport {\n injectRouteQueryParam$,\n injectRouteQueryParam,\n injectRouterQueryParam$,\n injectRouterQueryParam,\n} from './route-query';\n\n// Navigation utilities\nexport {\n injectRouteNavigated$,\n injectRouteNavigated,\n injectPrimaryPaths$,\n injectPrimaryPaths,\n injectChildRouteParam$,\n injectChildRouteParam,\n injectChildRoute$,\n injectChildRoute,\n injectHasNext$,\n injectHasNext,\n injectNavigationExtras,\n} from './route-navigation';\n\n// Route data utilities\nexport {\n injectRouteData$,\n injectRouteData,\n injectRouteDataSnapshot,\n injectActivatedComponents,\n} from './route-data';\n\n// Resolver utilities\nexport {\n Resolver,\n provideResolver,\n ResolverManager,\n injectResolver$,\n getResolver,\n} from './resolver';\n","\nimport { Optional, Inject, InjectionToken } from '@angular/core';\nimport { DateAdapter, MAT_DATE_LOCALE } from '@angular/material/core';\nimport dayjs from 'dayjs';\nimport { Dayjs } from 'dayjs';\nimport utc from 'dayjs/plugin/utc';\nimport localeData from 'dayjs/plugin/localeData';\nimport LocalizedFormat from 'dayjs/plugin/localizedFormat';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\n\n\nexport interface DayJsDateAdapterOptions {\n /**\n * Turns the use of utc dates on or off.\n * Changing this will change how Angular Material components like DatePicker output dates.\n * {@default false}\n */\n useUtc?: boolean;\n}\n\n/** InjectionToken for Dayjs date adapter to configure options. */\nexport const MAT_DAYJS_DATE_ADAPTER_OPTIONS = new InjectionToken<DayJsDateAdapterOptions>(\n 'MAT_DAYJS_DATE_ADAPTER_OPTIONS', {\n providedIn: 'root',\n factory: MAT_DAYJS_DATE_ADAPTER_OPTIONS_FACTORY\n});\n\nexport function MAT_DAYJS_DATE_ADAPTER_OPTIONS_FACTORY(): DayJsDateAdapterOptions {\n return {\n useUtc: false\n };\n}\n\n/** Creates an array and fills it with values. */\nfunction range<T>(length: number, valueFunction: (index: number) => T): T[] {\n const valuesArray = Array(length);\n for (let i = 0; i < length; i++) {\n valuesArray[i] = valueFunction(i);\n }\n return valuesArray;\n}\n\n/** Adapts Dayjs Dates for use with Angular Material. */\nexport class DayjsDateAdapter extends DateAdapter<Dayjs> {\n private localeData!: {\n firstDayOfWeek: number,\n longMonths: string[],\n shortMonths: string[],\n dates: string[],\n longDaysOfWeek: string[],\n shortDaysOfWeek: string[],\n narrowDaysOfWeek: string[]\n };\n\n constructor(\n @Optional() @Inject(MAT_DATE_LOCALE) public dateLocale: string,\n @Optional() @Inject(MAT_DAYJS_DATE_ADAPTER_OPTIONS) private options?: DayJsDateAdapterOptions\n ) {\n super();\n this.initializeParser(dateLocale);\n }\n\n // TODO: Implement\n override setLocale(locale: string) {\n super.setLocale(locale);\n\n const dayJsLocaleData = this.dayJs().localeData();\n this.localeData = {\n firstDayOfWeek: dayJsLocaleData.firstDayOfWeek(),\n longMonths: dayJsLocaleData.months(),\n shortMonths: dayJsLocaleData.monthsShort(),\n dates: range(31, (i) => this.createDate(2017, 0, i + 1).format('D')),\n longDaysOfWeek: range(7, (i) => this.dayJs().set('day', i).format('dddd')),\n shortDaysOfWeek: dayJsLocaleData.weekdaysShort(),\n narrowDaysOfWeek: dayJsLocaleData.weekdaysMin(),\n };\n }\n\n getYear(date: Dayjs): number {\n return this.dayJs(date).year();\n }\n\n getMonth(date: Dayjs): number {\n return this.dayJs(date).month();\n }\n\n getDate(date: Dayjs): number {\n return this.dayJs(date).date();\n }\n\n getDayOfWeek(date: Dayjs): number {\n return this.dayJs(date).day();\n }\n\n getMonthNames(style: 'long' | 'short' | 'narrow'): string[] {\n return style === 'long' ? this.localeData.longMonths : this.localeData.shortMonths;\n }\n\n getDateNames(): string[] {\n return this.localeData.dates;\n }\n\n getDayOfWeekNames(style: 'long' | 'short' | 'narrow'): string[] {\n if (style === 'long') {\n return this.localeData.longDaysOfWeek;\n }\n if (style === 'short') {\n return this.localeData.shortDaysOfWeek;\n }\n return this.localeData.narrowDaysOfWeek;\n }\n\n getYearName(date: Dayjs): string {\n return this.dayJs(date).format('YYYY');\n }\n\n getFirstDayOfWeek(): number {\n return this.localeData.firstDayOfWeek;\n }\n\n getNumDaysInMonth(date: Dayjs): number {\n return this.dayJs(date).daysInMonth();\n }\n\n clone(date: Dayjs): Dayjs {\n return date.clone();\n }\n\n createDate(year: number, month: number, date: number): Dayjs {\n const returnDayjs = this.dayJs()\n .set('year', year)\n .set('month', month)\n .set('date', date);\n return returnDayjs;\n }\n\n today(): Dayjs {\n return this.dayJs();\n }\n\n parse(value: any, parseFormat: string): Dayjs | null {\n if (value && typeof value === 'string') {\n return this.dayJs(value, dayjs().localeData().longDateFormat(parseFormat), this.locale);\n }\n return value ? this.dayJs(value).locale(this.locale) : null;\n }\n\n format(date: Dayjs, displayFormat: string): string {\n if (!this.isValid(date)) {\n throw Error('DayjsDateAdapter: Cannot format invalid date.');\n }\n return date.locale(this.locale).format(displayFormat);\n }\n\n addCalendarYears(date: Dayjs, years: number): Dayjs {\n return date.add(years, 'year');\n }\n\n addCalendarMonths(date: Dayjs, months: number): Dayjs {\n return date.add(months, 'month');\n }\n\n addCalendarDays(date: Dayjs, days: number): Dayjs {\n return date.add(days, 'day');\n }\n\n toIso8601(date: Dayjs): string {\n return date.toISOString();\n }\n\n /**\n * Attempts to deserialize a value to a valid date object. This is different from parsing in that\n * deserialize should only accept non-ambiguous, locale-independent formats (e.g. a ISO 8601\n * string). The default implementation does not allow any deserialization, it simply checks that\n * the given value is already a valid date object or null. The `<mat-datepicker>` will call this\n * method on all of it's `@Input()` properties that accept dates. It is therefore possible to\n * support passing values from your backend directly to these properties by overriding this method\n * to also deserialize the format used by your backend.\n * @param value The value to be deserialized into a date object.\n * @returns The deserialized date object, either a valid date, null if the value can be\n * deserialized into a null date (e.g. the empty string), or an invalid date.\n */\n override deserialize(value: any): Dayjs | null {\n let date;\n if (value instanceof Date) {\n date = this.dayJs(value);\n } else if (this.isDateInstance(value)) {\n // NOTE: assumes that cloning also sets the correct locale.\n return this.clone(value);\n }\n if (typeof value === 'string') {\n if (!value) {\n return null;\n }\n date = this.dayJs(value).toISOString();\n }\n if (date && this.isValid(date as Dayjs)) {\n return this.dayJs(date); // NOTE: Is this necessary since Dayjs is immutable and Moment was not?\n }\n return super.deserialize(value);\n }\n\n isDateInstance(obj: any): boolean {\n return dayjs.isDayjs(obj);\n }\n\n isValid(date: Dayjs): boolean {\n return this.dayJs(date).isValid();\n }\n\n invalid(): Dayjs {\n return this.dayJs(null);\n }\n\n private dayJs(input?: any, format?: string, locale?: string): Dayjs {\n if (!this.shouldUseUtc) {\n return dayjs(input, { format, locale }, locale);\n }\n return dayjs(input, { format, locale, utc: this.shouldUseUtc }, locale).utc();\n }\n\n private get shouldUseUtc(): boolean {\n const { useUtc }: DayJsDateAdapterOptions = this.options || {};\n return !!useUtc;\n }\n\n private initializeParser(dateLocale: string) {\n if (this.shouldUseUtc) {\n dayjs.extend(utc);\n }\n\n dayjs.extend(LocalizedFormat);\n dayjs.extend(customParseFormat);\n dayjs.extend(localeData);\n\n this.setLocale(dateLocale);\n }\n}","import { MatDateFormats } from '@angular/material/core';\n\n/**\n * Custom Date-Formats and Adapter (using https://github.com/iamkun/dayjs)\n */\nexport const MAT_DAYJS_DATE_FORMATS: MatDateFormats = {\n parse: {\n dateInput: 'MM/DD/YYYY',\n },\n display: {\n dateInput: 'MM/DD/YYYY',\n monthYearLabel: 'MMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY',\n }\n};","import { MatDateFormats, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\nimport dayjs from 'dayjs';\nimport 'dayjs/locale/ja'\ndayjs.locale('ja');\n\nexport const MAT_DAYJS_DATE_FORMATS_FOR_JP: MatDateFormats = {\n parse: {\n dateInput: 'YYYY/MM/DD',\n },\n display: {\n dateInput: 'YYYY/MM/DD',\n monthYearLabel: 'MMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY',\n }\n};\n\nexport const MAT_DAYJS_JP_PROVIDERS = [\n { provide: MAT_DATE_LOCALE, useValue: 'ja' },\n { provide: MAT_DATE_FORMATS, useValue: MAT_DAYJS_DATE_FORMATS_FOR_JP },\n];\n","import { NgModule, Provider } from '@angular/core';\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\nimport { DayjsDateAdapter, MAT_DAYJS_DATE_ADAPTER_OPTIONS } from './dayjs-date.adapter';\nimport { MAT_DAYJS_DATE_FORMATS } from './dayjs-date.formats';\n\n@NgModule({\n providers: [\n provideDayjsDateAdapter(),\n ],\n})\nexport class DayjsDateModule { }\n\nexport function provideDayjsDateAdapter(): Provider[] {\n return [\n {\n provide: DateAdapter,\n useClass: DayjsDateAdapter,\n deps: [\n MAT_DATE_LOCALE, \n MAT_DAYJS_DATE_ADAPTER_OPTIONS,\n ]\n },\n {\n provide: MAT_DATE_FORMATS,\n useValue: MAT_DAYJS_DATE_FORMATS,\n }, \n ]\n}\n","import { PageEvent } from '@angular/material/paginator';\n\nexport interface Page extends PageEvent {\n sortKey: string;\n sortOrder: 'asc' | 'desc';\n}\n\nexport class Page {\n static from(event: Partial<Page> = {}): Page {\n return Object.assign(new Page(), {\n pageSize: 50,\n pageIndex: 0,\n length: 100,\n ...event\n });\n }\n\n get start(): number {\n return this.pageIndex * this.pageSize;\n }\n\n get end(): number {\n return Math.min((this.pageIndex + 1) * this.pageSize, this.length);\n }\n\n patch(obj: Partial<Page>): Page {\n return Page.from({...this, ...obj});\n }\n}\n","import { ActivatedRouteSnapshot, RouterStateSnapshot, Routes } from \"@angular/router\";\n\nexport function walkActivatedRouteSnapshot(\n snapshot: ActivatedRouteSnapshot,\n callback: (snapshot: ActivatedRouteSnapshot) => boolean,\n target: 'children' | 'parent' = 'children',\n): void {\n if(callback(snapshot)) return;\n if (target === 'children') {\n snapshot.children.forEach(child => walkActivatedRouteSnapshot(child, callback, target));\n }\n}\n\n\nexport function skippedResolver(outlet = 'primary') {\n\tlet skipped: boolean | undefined;\n\n\treturn (route: ActivatedRouteSnapshot, snapshot: RouterStateSnapshot) => {\n\t\tconst routes: ActivatedRouteSnapshot[] = [];\n\t\twalkActivatedRouteSnapshot(snapshot.root, snapshot => {\n\t\t\tif (snapshot.outlet === outlet) {\n\t\t\t\troutes.push(snapshot);\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\treturn true;\n\t\t});\n\n\t\tif (route === routes.at(-1)) {\n\t\t\treturn skipped = false;\n\t\t}\n\n\t\treturn skipped ??= route !== routes.at(-1);\n\t}\n}\n\nfunction resolveModule(m: any) {\n if (m.default) {\n return m.default;\n }\n return m;\n}\n\nexport function wrapRoutes(routes: Routes): Routes {\n return (routes ?? []).map(route => {\n if (route.loadChildren) {\n return {\n ...route,\n loadChildren: () => (route.loadChildren!() as Promise<Routes>).then(routes => {\n\t\t\t\t\treturn wrapRoutes(resolveModule(routes))\n\t\t\t\t}),\n resolve: {\n ...(route?.resolve || {}),\n skipped: skippedResolver(),\n }\n };\n }\n return {\n ...route,\n resolve: {\n ...(route?.resolve || {}),\n skipped: skippedResolver(),\n },\n };\n });\n}","import { inject, InjectionToken } from '@angular/core';\nimport dayjs from 'dayjs';\nimport { comma } from '../comma';\n\nexport const yenTransform = (value: number, _unit = ''): string => {\n return `${comma(value)} ${_unit}`;\n}\n\nexport type ExpressionTransformer = (value: string | number | dayjs.Dayjs | any, context?: any) => string;\nexport const defaultExpressionTransformer: ExpressionTransformer = input => {\n if (dayjs.isDayjs(input)) {\n return input.format('YY/MM/DD');\n } else if (Array.isArray(input)) {\n return `${input.length}個のアイテム`;\n } else if (typeof input === 'object') {\n return JSON.stringify(input);\n } else if (typeof input === 'string') {\n return input;\n } else if (typeof input === 'number') {\n return yenTransform(input);\n } else {\n return input;\n }\n}\n\nexport const EXPRESSION_TRANSFORMER = new InjectionToken<ExpressionTransformer>('[@ng-atomic/common] Expression Transformer', {\n providedIn: 'root',\n factory: () => defaultExpressionTransformer,\n});\n\nexport function provideExpressionTransformer(useFactory: () => ExpressionTransformer) {\n return { provide: EXPRESSION_TRANSFORMER, useFactory };\n}\n\nexport function injectParentExpressionTransformer() {\n return inject(EXPRESSION_TRANSFORMER, {skipSelf: true, optional: true}) ?? defaultExpressionTransformer\n}\n\nexport const smartExpTransformer: ExpressionTransformer = defaultExpressionTransformer;\n","const getAllProps = (obj: object, keys: string[] = Object.keys(obj)): string[] => {\n const proto = Object.getPrototypeOf(obj);\n keys = Object.getOwnPropertyNames(proto)\n .filter(v => v !== '__proto__')\n .filter(v => Object.getOwnPropertyDescriptor(proto, v)?.get instanceof Function)\n .concat(keys);\n\n return proto.constructor.name === 'Object' ? keys : getAllProps(proto, keys);\n}\n\nexport const toObject = (obj: object): object => getAllProps(obj).reduce((p, k) => ({...p, [k]: (obj as Record<string, unknown>)[k]}), {});\n","// 秒数をhh:mm:ssの形にフォーマットする\nexport function formatSeconds(seconds: number): string {\n const h = `${Math.floor(seconds / 3600)}`.padStart(2, '0');\n const m = `${Math.floor(seconds % 3600 / 60)}`.padStart(2, '0');\n const s = `${Math.floor(seconds % 3600 % 60)}`.padStart(2, '0');\n return `${h}:${m}:${s}`;\n}","export * from './comma';\nexport * from './compare-by-id';\nexport * from './date-utils';\nexport * from './diff';\nexport * from './form';\nexport * from './get';\nexport * from './inject';\nexport * from './mat-dayjs-date';\nexport * from './page';\nexport * from './router';\nexport * from './expression';\nexport * from './to-object';\n\nexport * from './time';\n// export * from './define-element';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["_get","get"],"mappings":"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"}
1
+ {"version":3,"file":"ng-atomic-common-utils.mjs","sources":["../../../../../packages/@ng-atomic/common/src/lib/utils/comma/comma.ts","../../../../../packages/@ng-atomic/common/src/lib/utils/compare-by-id/compare-by-id.ts","../../../../../packages/@ng-atomic/common/src/lib/utils/date-utils/date-utils.ts","../../../../../packages/@ng-atomic/common/src/lib/utils/diff/diff.ts","../../../../../packages/@ng-atomic/common/src/lib/utils/form/form.ts","../../../../../packages/@ng-atomic/common/src/lib/utils/get/get.ts","../../../../../packages/@ng-atomic/common/src/lib/utils/inject/route-params.ts","../../../../../packages/@ng-atomic/common/src/lib/utils/inject/route-query.ts","../../../../../packages/@ng-atomic/common/src/lib/utils/inject/route-navigation.ts","../../../../../packages/@ng-atomic/common/src/lib/utils/inject/route-data.ts","../../../../../packages/@ng-atomic/common/src/lib/utils/inject/resolver.ts","../../../../../packages/@ng-atomic/common/src/lib/utils/inject/inject.ts","../../../../../packages/@ng-atomic/common/src/lib/utils/mat-dayjs-date/dayjs-date.adapter.ts","../../../../../packages/@ng-atomic/common/src/lib/utils/mat-dayjs-date/dayjs-date.formats.ts","../../../../../packages/@ng-atomic/common/src/lib/utils/mat-dayjs-date/dayjs-jp-providers.ts","../../../../../packages/@ng-atomic/common/src/lib/utils/mat-dayjs-date/dayjs-date.module.ts","../../../../../packages/@ng-atomic/common/src/lib/utils/page/page.ts","../../../../../packages/@ng-atomic/common/src/lib/utils/router/router.ts","../../../../../packages/@ng-atomic/common/src/lib/utils/expression/expression.transformer.ts","../../../../../packages/@ng-atomic/common/src/lib/utils/to-object/to-object.ts","../../../../../packages/@ng-atomic/common/src/lib/utils/time.ts","../../../../../packages/@ng-atomic/common/src/lib/utils/index.ts","../../../../../packages/@ng-atomic/common/src/lib/utils/ng-atomic-common-utils.ts"],"sourcesContent":["export const comma = (n: number | null): string => n === null ? '0' : n.toLocaleString();\nexport const commaStr = (n: number, unit = '円') => n < 0 ? `-${comma(abs(n))}${unit}` : `${comma(n)}${unit}`;\nexport const abs = (n: number) => Math.abs(n);","export type HasId = { id: string };\nexport function compareByIdFactory(key: string) {\n return (a: any, b: any) => parseInt(a?.[key], 10) - parseInt(b?.[key], 10);\n}\nexport const compareById = compareByIdFactory('id');\n","import dayjs from 'dayjs';\n\nexport const removeComma = (str: string) => str.replace(/\\,/g, '');\n\nexport const DATE_FORMAT = 'YYYY-MM-DDTHH:mm:ss';\nconst DATE_REGEX = /^[0-9]{4}\\/(0[1-9]|1[0-2])\\/(0[1-9]|[12][0-9]|3[01])$/;\nconst DATETIME_REGEX = /^\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\+([+-][0-2]\\d:[0-5]\\d)$/;\nexport const isDateStr = (str: string | null): str is string => !!str && !!str.match(DATE_REGEX);\nexport const isDateTimeStr = (str: string | null): str is string => !!str && !!str.match(DATE_REGEX);\n\nconst ISO_REGEX = /\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+([+-][0-2]\\d:[0-5]\\d|Z)/;\nexport const isIsoString = (str: string | null): str is string => !!str && !!str.match(ISO_REGEX);\n\n\nexport interface Timestamp {\n toDate: () => Date;\n}\n\nexport function timestampToDayjs(timestamp: Timestamp | null): dayjs.Dayjs | null {\n return timestamp ? dayjs(timestamp.toDate()) : null;\n}","import { SelectionModel } from \"@angular/cdk/collections\";\n\nexport function diff<T = any>(initial: SelectionModel<T>, current: SelectionModel<T>): {\n selectedIds: T[],\n unselectedIds: T[],\n} {\n return {\n selectedIds: current.selected.filter((id: T) => !initial.isSelected(id)),\n unselectedIds: initial.selected.filter((id: T) => !current.isSelected(id)),\n }\n}\n","import { Signal } from \"@angular/core\";\nimport { toSignal } from \"@angular/core/rxjs-interop\";\nimport { AbstractControl } from \"@angular/forms\";\nimport { Observable, distinctUntilChanged, map, merge, of, startWith } from \"rxjs\";\nimport { computedAsync } from \"ngxtension/computed-async\";\nimport { computeFake } from \"@ng-atomic/core\";\n\nexport function getValue$<T>(control: AbstractControl<T>): Observable<T> {\n return merge(of(control.value), control.valueChanges).pipe(\n distinctUntilChanged((pre, cur) => JSON.stringify(pre) === JSON.stringify(cur)),\n );\n}\n\nexport function getValue<T>(control: AbstractControl<T>): Signal<T> {\n return toSignal(getValue$(control)) as Signal<T>;\n}\n\nexport function getRawValue$<T>(control: AbstractControl<T>): Observable<T> {\n return merge(of(control.getRawValue()), control.valueChanges.pipe(map(() => control.getRawValue())));\n}\n\nexport function getRawValue<T>(control: AbstractControl<T>): Signal<T> {\n return toSignal(getRawValue$(control)) as Signal<T>;\n}\n\nexport function computedRawValue<T>(controlFactory: () => AbstractControl<T>): Signal<T> {\n return computedAsync(() => controlFactory().valueChanges.pipe(\n startWith(null),\n map(() => controlFactory().getRawValue()),\n ), { initialValue: computeFake(controlFactory()).getRawValue() });\n}\n\nexport function getInvalid$<T>(control: AbstractControl<T>): Observable<boolean> {\n return control.statusChanges.pipe(\n startWith(null),\n map(() => control.invalid),\n );\n}\n\nexport function getInvalid<T>(form: AbstractControl<T>): Signal<boolean> {\n return toSignal(getInvalid$(form)) as Signal<boolean>;\n}\n\n","import { get as _get } from 'lodash-es';\n\n// ネストされたオブジェクトのキーの組み合わせを生成する型ヘルパー\nexport type PathKeys<T> = T extends object ? {\n [K in keyof T]-?: K extends string | number ?\n T[K] extends object ? [K] | [K, ...PathKeys<T[K]>] : [K]\n : never\n}[keyof T] : [];\n\n// ネストされたパスに対応する型を抽出するための型ヘルパー\nexport type NestedGetType<T, P extends any[]> = \n P extends [infer F, ...infer R]\n ? F extends keyof T\n ? NestedGetType<T[F], R>\n : never\n : T;\n\n/** @deprecated use lodash-es */\nexport function get<T, P extends PathKeys<T>>(obj: T, path: P): NestedGetType<T, P> {\n return _get(obj, path as any);\n}","import { Signal, inject } from \"@angular/core\";\nimport { takeUntilDestroyed, toSignal } from \"@angular/core/rxjs-interop\";\nimport { ActivatedRoute, ParamMap, Params } from \"@angular/router\";\nimport { Observable, OperatorFunction, combineLatest, map, of, shareReplay } from \"rxjs\";\nimport { unflatten } from 'flat';\n\nexport function injectRouterParam$(key: string): Observable<string> {\n return inject(ActivatedRoute).paramMap.pipe(\n map((params) => params.get(key)) as OperatorFunction<ParamMap, string>,\n shareReplay(1),\n takeUntilDestroyed(),\n );\n}\n\n/** @deprecated */\nexport function injectRouterParam(key: string): Signal<string> {\n return toSignal(injectRouterParam$(key)) as Signal<string>;\n}\n\nexport function injectRouteParams$({\n merge = true,\n route = inject(ActivatedRoute),\n}: {\n merge?: boolean,\n route?: ActivatedRoute,\n} = {}): Observable<Params> {\n const parentParams = (merge && route.parent) ? injectRouteParams$({merge, route: route.parent}) : of(new Map<string, string>());\n return combineLatest({\n parentParams,\n params: route.params\n }).pipe(\n map(({parentParams, params}) => ({\n ...parentParams,\n ...params,\n })),\n shareReplay(1),\n takeUntilDestroyed(),\n )\n}\n\nexport function injectUnflattenRouteParams$({\n merge = true,\n route = inject(ActivatedRoute),\n}: {\n merge?: boolean,\n route?: ActivatedRoute,\n} = {}) {\n return injectRouteParams$({merge, route}).pipe(\n map((params) => (unflatten(params) as any)),\n );\n}\n\nexport function injectUnflattenRouteParam$<T = any>(key?: string): Observable<T> {\n return injectUnflattenRouteParams$().pipe(\n map((params) => key ? params[key]: params),\n );\n}\n\nexport function injectUnflattenRouteParam<T = any>(key?: string): Signal<T> {\n return toSignal(injectUnflattenRouteParam$(key)) as Signal<T>;\n}\n\nexport function injectUnflattenRouteParams({\n merge = true,\n}: {\n merge?: boolean,\n} = {}): Signal<any> {\n return toSignal(injectUnflattenRouteParams$({merge}), {initialValue: {}});\n}\n\nexport function injectRouteParamMap$({\n merge = true,\n}: {\n merge?: boolean,\n} = {}) {\n return injectRouteParams$({merge}).pipe(\n map((params) => new Map(Object.entries(params)) as never as ParamMap),\n );\n}\n\nexport function injectRouteParamMap({\n merge = true,\n}: {\n merge?: boolean,\n} = {}): Signal<ParamMap> {\n return toSignal(injectRouteParamMap$({merge})) as Signal<ParamMap>;\n}\n\nexport function injectRouteParams({\n merge = true,\n}: {\n merge?: boolean,\n} = {}): Signal<Record<string, string>> {\n return toSignal(injectRouteParams$({merge})) as Signal<Record<string, string>>;\n}\n\nexport function injectRouteParam$(key: string, {\n merge = true,\n}: {\n merge?: boolean,\n} = {}): Observable<string> {\n return injectRouteParamMap$({merge}).pipe(\n map((params) => params.get(key)) as OperatorFunction<ParamMap, string>,\n takeUntilDestroyed(),\n );\n}\n\nexport function injectRouteParam(key: string, injector?: import(\"@angular/core\").Injector): Signal<string> {\n return toSignal(injectRouteParam$(key), {injector}) as Signal<string>;\n}\n\nexport function injectRouteSkip$(): Observable<boolean> {\n return injectRouteParam$('skip', {merge: false}).pipe(\n map((skip) => skip === 'true'),\n shareReplay(1),\n takeUntilDestroyed(),\n )\n}\n\nexport function injectRouteSkip(): Signal<boolean> {\n return toSignal(injectRouteSkip$()) as Signal<boolean>;\n}\n","import { Signal, inject } from \"@angular/core\";\nimport { takeUntilDestroyed, toSignal } from \"@angular/core/rxjs-interop\";\nimport { ActivatedRoute } from \"@angular/router\";\nimport { Observable, map, shareReplay } from \"rxjs\";\n\nexport function injectRouteQueryParam$<T extends string = string>(key: string): Observable<T> {\n return inject(ActivatedRoute).queryParamMap.pipe(\n map((params) => params.get(key) as T),\n shareReplay(1),\n takeUntilDestroyed(),\n );\n}\n\nexport function injectRouteQueryParam(key: string): Signal<string> {\n return toSignal(injectRouteQueryParam$(key)) as Signal<string>;\n}\n\nexport function injectRouterQueryParam$<T extends string = string>(key: string): Observable<T> {\n return inject(ActivatedRoute).queryParamMap.pipe(\n map((params) => params.get(key) as T),\n shareReplay(1),\n takeUntilDestroyed(),\n );\n}\n\nexport function injectRouterQueryParam<T extends string = string>(key: string): Signal<T> {\n return toSignal(injectRouterQueryParam$(key)) as Signal<T>;\n}\n","import { Signal, computed, inject } from \"@angular/core\";\nimport { takeUntilDestroyed, toSignal } from \"@angular/core/rxjs-interop\";\nimport { ActivatedRoute, NavigationEnd, NavigationExtras, Router } from \"@angular/router\";\nimport { Observable, filter, map, of, shareReplay, startWith, switchMap } from \"rxjs\";\n\nexport function injectRouteNavigated$() {\n const router = inject(Router);\n const route = inject(ActivatedRoute);\n return router.events.pipe(\n filter(event => event instanceof NavigationEnd),\n map(() => route),\n );\n}\n\nexport function injectRouteNavigated() {\n return toSignal(injectRouteNavigated$());\n}\n\nexport function injectPrimaryPaths$() {\n return injectRouteNavigated$().pipe(\n map(route => {\n const paths: (string | null)[] = [];\n let current: ActivatedRoute | null = route.root;\n while (current) {\n paths.push(current?.routeConfig?.path ?? null);\n current = current.firstChild;\n }\n return paths.filter(Boolean);\n }),\n shareReplay(1),\n takeUntilDestroyed(),\n );\n}\n\nexport function injectPrimaryPaths() {\n return toSignal(injectPrimaryPaths$());\n}\n\nexport function injectChildRouteParam$(key: string): Observable<string> {\n return injectRouteNavigated$().pipe(\n switchMap((route) => route?.firstChild ? route.firstChild.paramMap : of(new Map<string, string>())),\n map((params) => params.get(key) as string),\n shareReplay(1),\n takeUntilDestroyed(),\n );\n}\n\nexport function injectChildRouteParam(key: string): Signal<string> {\n return toSignal(injectChildRouteParam$(key)) as Signal<string>;\n}\n\nexport function injectChildRoute$() {\n return injectRouteNavigated$().pipe(\n map((route) => (route?.firstChild?.firstChild ?? null) as ActivatedRoute),\n shareReplay(1),\n takeUntilDestroyed(),\n );\n}\n\nexport function injectChildRoute(): Signal<ActivatedRoute> {\n return toSignal(injectChildRoute$()) as Signal<ActivatedRoute>;\n}\n\nexport function injectHasNext$() {\n const router = inject(Router);\n const route = inject(ActivatedRoute);\n return router.events.pipe(\n startWith(null),\n map(() => !!route?.firstChild?.firstChild),\n shareReplay(1),\n takeUntilDestroyed(),\n );\n}\n\nexport function injectHasNext() {\n return toSignal(injectHasNext$());\n}\n\nexport function injectNavigationExtras(): Signal<NavigationExtras> {\n const relativeTo = inject(ActivatedRoute);\n const hasNext = injectHasNext();\n return computed(() => ({ relativeTo, replaceUrl: hasNext() }));\n}\n","import { Injector, Signal, computed, inject } from \"@angular/core\";\nimport { toSignal } from \"@angular/core/rxjs-interop\";\nimport { ActivatedRoute } from \"@angular/router\";\nimport { Observable, map } from \"rxjs\";\nimport { get } from \"lodash-es\";\n\nexport function injectRouteData$<T>(path: string): Observable<T> {\n return inject(ActivatedRoute).data.pipe(map(data => get(data, path) as T));\n}\n\nexport function injectRouteData<T>(key: string): Signal<T> {\n return toSignal(injectRouteData$<T>(key)) as Signal<T>;\n}\n\nexport function injectRouteDataSnapshot<T>(key: string): Signal<T> {\n const route = inject(ActivatedRoute);\n return computed(() => route.snapshot.data[key] as T);\n}\n\nexport function injectActivatedComponents(injector: Injector = inject(Injector)): any[] {\n const components = [];\n let route = injector.get(ActivatedRoute, {optional: true}) ?? null;\n while(route) {\n if (route.component) components.push(route.component);\n route = route.parent;\n }\n return components;\n}\n","import { Injectable } from \"@angular/core\";\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\nimport { Observable, combineLatest, map, of, shareReplay } from \"rxjs\";\nimport { BaseResolver, Type } from \"@nx-ddd/common/domain\";\n\nexport interface Resolver<T> {\n resolve(entry: T): T;\n resolveMany(entities: T[]): T[];\n}\n\nexport function provideResolver(\n Entity: Type<{id: string}>,\n ResolverType: new (params: Record<string, Observable<any>>) => Resolver<any>,\n) {\n return {\n provide: Entity,\n deps: [],\n multi: true,\n };\n}\n\n@Injectable({providedIn: 'root'})\nexport class ResolverManager {\n protected map = new Map<string, Resolver<any>>();\n\n get(Entity: Type<{id: string}>) {\n if (!this.map.has(Entity.name)) {\n // placeholder for future implementation\n }\n return this.map.get(Entity.name);\n }\n}\n\nexport function injectResolver$<T>(\n ResolverType: Type<BaseResolver<T>>,\n params: Record<string, Observable<any>>,\n): Observable<BaseResolver<T>> {\n const params$ = Object.keys(params).length > 0 ? combineLatest(params) : of({});\n return params$.pipe(\n map((params) => new ResolverType(params)),\n shareReplay(1),\n takeUntilDestroyed(),\n );\n}\n\nexport function getResolver<T>(\n ResolverType: new (params: Record<string, any>) => Resolver<T>,\n params: Record<string, any>,\n): Resolver<T> {\n return new ResolverType(params);\n}\n","/**\n * Angular injection utilities for routing and resolvers\n *\n * Re-exports all utilities from split files for backward compatibility\n */\n\n// Route parameter utilities\nexport {\n injectRouterParam$,\n injectRouterParam,\n injectRouteParams$,\n injectRouteParams,\n injectRouteParamMap$,\n injectRouteParamMap,\n injectRouteParam$,\n injectRouteParam,\n injectRouteSkip$,\n injectRouteSkip,\n injectUnflattenRouteParams$,\n injectUnflattenRouteParams,\n injectUnflattenRouteParam$,\n injectUnflattenRouteParam,\n} from './route-params';\n\n// Query parameter utilities\nexport {\n injectRouteQueryParam$,\n injectRouteQueryParam,\n injectRouterQueryParam$,\n injectRouterQueryParam,\n} from './route-query';\n\n// Navigation utilities\nexport {\n injectRouteNavigated$,\n injectRouteNavigated,\n injectPrimaryPaths$,\n injectPrimaryPaths,\n injectChildRouteParam$,\n injectChildRouteParam,\n injectChildRoute$,\n injectChildRoute,\n injectHasNext$,\n injectHasNext,\n injectNavigationExtras,\n} from './route-navigation';\n\n// Route data utilities\nexport {\n injectRouteData$,\n injectRouteData,\n injectRouteDataSnapshot,\n injectActivatedComponents,\n} from './route-data';\n\n// Resolver utilities\nexport {\n Resolver,\n provideResolver,\n ResolverManager,\n injectResolver$,\n getResolver,\n} from './resolver';\n","\nimport { Optional, Inject, InjectionToken } from '@angular/core';\nimport { DateAdapter, MAT_DATE_LOCALE } from '@angular/material/core';\nimport dayjs from 'dayjs';\nimport { Dayjs } from 'dayjs';\nimport utc from 'dayjs/plugin/utc';\nimport localeData from 'dayjs/plugin/localeData';\nimport LocalizedFormat from 'dayjs/plugin/localizedFormat';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\n\n\nexport interface DayJsDateAdapterOptions {\n /**\n * Turns the use of utc dates on or off.\n * Changing this will change how Angular Material components like DatePicker output dates.\n * {@default false}\n */\n useUtc?: boolean;\n}\n\n/** InjectionToken for Dayjs date adapter to configure options. */\nexport const MAT_DAYJS_DATE_ADAPTER_OPTIONS = new InjectionToken<DayJsDateAdapterOptions>(\n 'MAT_DAYJS_DATE_ADAPTER_OPTIONS', {\n providedIn: 'root',\n factory: MAT_DAYJS_DATE_ADAPTER_OPTIONS_FACTORY\n});\n\nexport function MAT_DAYJS_DATE_ADAPTER_OPTIONS_FACTORY(): DayJsDateAdapterOptions {\n return {\n useUtc: false\n };\n}\n\n/** Creates an array and fills it with values. */\nfunction range<T>(length: number, valueFunction: (index: number) => T): T[] {\n const valuesArray = Array(length);\n for (let i = 0; i < length; i++) {\n valuesArray[i] = valueFunction(i);\n }\n return valuesArray;\n}\n\n/** Adapts Dayjs Dates for use with Angular Material. */\nexport class DayjsDateAdapter extends DateAdapter<Dayjs> {\n private localeData!: {\n firstDayOfWeek: number,\n longMonths: string[],\n shortMonths: string[],\n dates: string[],\n longDaysOfWeek: string[],\n shortDaysOfWeek: string[],\n narrowDaysOfWeek: string[]\n };\n\n constructor(\n @Optional() @Inject(MAT_DATE_LOCALE) public dateLocale: string,\n @Optional() @Inject(MAT_DAYJS_DATE_ADAPTER_OPTIONS) private options?: DayJsDateAdapterOptions\n ) {\n super();\n this.initializeParser(dateLocale);\n }\n\n // TODO: Implement\n override setLocale(locale: string) {\n super.setLocale(locale);\n\n const dayJsLocaleData = this.dayJs().localeData();\n this.localeData = {\n firstDayOfWeek: dayJsLocaleData.firstDayOfWeek(),\n longMonths: dayJsLocaleData.months(),\n shortMonths: dayJsLocaleData.monthsShort(),\n dates: range(31, (i) => this.createDate(2017, 0, i + 1).format('D')),\n longDaysOfWeek: range(7, (i) => this.dayJs().set('day', i).format('dddd')),\n shortDaysOfWeek: dayJsLocaleData.weekdaysShort(),\n narrowDaysOfWeek: dayJsLocaleData.weekdaysMin(),\n };\n }\n\n getYear(date: Dayjs): number {\n return this.dayJs(date).year();\n }\n\n getMonth(date: Dayjs): number {\n return this.dayJs(date).month();\n }\n\n getDate(date: Dayjs): number {\n return this.dayJs(date).date();\n }\n\n getDayOfWeek(date: Dayjs): number {\n return this.dayJs(date).day();\n }\n\n getMonthNames(style: 'long' | 'short' | 'narrow'): string[] {\n return style === 'long' ? this.localeData.longMonths : this.localeData.shortMonths;\n }\n\n getDateNames(): string[] {\n return this.localeData.dates;\n }\n\n getDayOfWeekNames(style: 'long' | 'short' | 'narrow'): string[] {\n if (style === 'long') {\n return this.localeData.longDaysOfWeek;\n }\n if (style === 'short') {\n return this.localeData.shortDaysOfWeek;\n }\n return this.localeData.narrowDaysOfWeek;\n }\n\n getYearName(date: Dayjs): string {\n return this.dayJs(date).format('YYYY');\n }\n\n getFirstDayOfWeek(): number {\n return this.localeData.firstDayOfWeek;\n }\n\n getNumDaysInMonth(date: Dayjs): number {\n return this.dayJs(date).daysInMonth();\n }\n\n clone(date: Dayjs): Dayjs {\n return date.clone();\n }\n\n createDate(year: number, month: number, date: number): Dayjs {\n const returnDayjs = this.dayJs()\n .set('year', year)\n .set('month', month)\n .set('date', date);\n return returnDayjs;\n }\n\n today(): Dayjs {\n return this.dayJs();\n }\n\n parse(value: any, parseFormat: string): Dayjs | null {\n if (value && typeof value === 'string') {\n return this.dayJs(value, dayjs().localeData().longDateFormat(parseFormat), this.locale);\n }\n return value ? this.dayJs(value).locale(this.locale) : null;\n }\n\n format(date: Dayjs, displayFormat: string): string {\n if (!this.isValid(date)) {\n throw Error('DayjsDateAdapter: Cannot format invalid date.');\n }\n return date.locale(this.locale).format(displayFormat);\n }\n\n addCalendarYears(date: Dayjs, years: number): Dayjs {\n return date.add(years, 'year');\n }\n\n addCalendarMonths(date: Dayjs, months: number): Dayjs {\n return date.add(months, 'month');\n }\n\n addCalendarDays(date: Dayjs, days: number): Dayjs {\n return date.add(days, 'day');\n }\n\n toIso8601(date: Dayjs): string {\n return date.toISOString();\n }\n\n /**\n * Attempts to deserialize a value to a valid date object. This is different from parsing in that\n * deserialize should only accept non-ambiguous, locale-independent formats (e.g. a ISO 8601\n * string). The default implementation does not allow any deserialization, it simply checks that\n * the given value is already a valid date object or null. The `<mat-datepicker>` will call this\n * method on all of it's `@Input()` properties that accept dates. It is therefore possible to\n * support passing values from your backend directly to these properties by overriding this method\n * to also deserialize the format used by your backend.\n * @param value The value to be deserialized into a date object.\n * @returns The deserialized date object, either a valid date, null if the value can be\n * deserialized into a null date (e.g. the empty string), or an invalid date.\n */\n override deserialize(value: any): Dayjs | null {\n let date;\n if (value instanceof Date) {\n date = this.dayJs(value);\n } else if (this.isDateInstance(value)) {\n // NOTE: assumes that cloning also sets the correct locale.\n return this.clone(value);\n }\n if (typeof value === 'string') {\n if (!value) {\n return null;\n }\n date = this.dayJs(value).toISOString();\n }\n if (date && this.isValid(date as Dayjs)) {\n return this.dayJs(date); // NOTE: Is this necessary since Dayjs is immutable and Moment was not?\n }\n return super.deserialize(value);\n }\n\n isDateInstance(obj: any): boolean {\n return dayjs.isDayjs(obj);\n }\n\n isValid(date: Dayjs): boolean {\n return this.dayJs(date).isValid();\n }\n\n invalid(): Dayjs {\n return this.dayJs(null);\n }\n\n private dayJs(input?: any, format?: string, locale?: string): Dayjs {\n if (!this.shouldUseUtc) {\n return dayjs(input, { format, locale }, locale);\n }\n return dayjs(input, { format, locale, utc: this.shouldUseUtc }, locale).utc();\n }\n\n private get shouldUseUtc(): boolean {\n const { useUtc }: DayJsDateAdapterOptions = this.options || {};\n return !!useUtc;\n }\n\n private initializeParser(dateLocale: string) {\n if (this.shouldUseUtc) {\n dayjs.extend(utc);\n }\n\n dayjs.extend(LocalizedFormat);\n dayjs.extend(customParseFormat);\n dayjs.extend(localeData);\n\n this.setLocale(dateLocale);\n }\n}","import { MatDateFormats } from '@angular/material/core';\n\n/**\n * Custom Date-Formats and Adapter (using https://github.com/iamkun/dayjs)\n */\nexport const MAT_DAYJS_DATE_FORMATS: MatDateFormats = {\n parse: {\n dateInput: 'MM/DD/YYYY',\n },\n display: {\n dateInput: 'MM/DD/YYYY',\n monthYearLabel: 'MMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY',\n }\n};","import { MatDateFormats, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\nimport dayjs from 'dayjs';\nimport 'dayjs/locale/ja'\ndayjs.locale('ja');\n\nexport const MAT_DAYJS_DATE_FORMATS_FOR_JP: MatDateFormats = {\n parse: {\n dateInput: 'YYYY/MM/DD',\n },\n display: {\n dateInput: 'YYYY/MM/DD',\n monthYearLabel: 'MMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY',\n }\n};\n\nexport const MAT_DAYJS_JP_PROVIDERS = [\n { provide: MAT_DATE_LOCALE, useValue: 'ja' },\n { provide: MAT_DATE_FORMATS, useValue: MAT_DAYJS_DATE_FORMATS_FOR_JP },\n];\n","import { NgModule, Provider } from '@angular/core';\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\nimport { DayjsDateAdapter, MAT_DAYJS_DATE_ADAPTER_OPTIONS } from './dayjs-date.adapter';\nimport { MAT_DAYJS_DATE_FORMATS } from './dayjs-date.formats';\n\n@NgModule({\n providers: [\n provideDayjsDateAdapter(),\n ],\n})\nexport class DayjsDateModule { }\n\nexport function provideDayjsDateAdapter(): Provider[] {\n return [\n {\n provide: DateAdapter,\n useClass: DayjsDateAdapter,\n deps: [\n MAT_DATE_LOCALE, \n MAT_DAYJS_DATE_ADAPTER_OPTIONS,\n ]\n },\n {\n provide: MAT_DATE_FORMATS,\n useValue: MAT_DAYJS_DATE_FORMATS,\n }, \n ]\n}\n","import { PageEvent } from '@angular/material/paginator';\n\nexport interface Page extends PageEvent {\n sortKey: string;\n sortOrder: 'asc' | 'desc';\n}\n\nexport class Page {\n static from(event: Partial<Page> = {}): Page {\n return Object.assign(new Page(), {\n pageSize: 50,\n pageIndex: 0,\n length: 100,\n ...event\n });\n }\n\n get start(): number {\n return this.pageIndex * this.pageSize;\n }\n\n get end(): number {\n return Math.min((this.pageIndex + 1) * this.pageSize, this.length);\n }\n\n patch(obj: Partial<Page>): Page {\n return Page.from({...this, ...obj});\n }\n}\n","import { ActivatedRouteSnapshot, RouterStateSnapshot, Routes } from \"@angular/router\";\n\nexport function walkActivatedRouteSnapshot(\n snapshot: ActivatedRouteSnapshot,\n callback: (snapshot: ActivatedRouteSnapshot) => boolean,\n target: 'children' | 'parent' = 'children',\n): void {\n if(callback(snapshot)) return;\n if (target === 'children') {\n snapshot.children.forEach(child => walkActivatedRouteSnapshot(child, callback, target));\n }\n}\n\n\nexport function skippedResolver(outlet = 'primary') {\n\tlet skipped: boolean | undefined;\n\n\treturn (route: ActivatedRouteSnapshot, snapshot: RouterStateSnapshot) => {\n\t\tconst routes: ActivatedRouteSnapshot[] = [];\n\t\twalkActivatedRouteSnapshot(snapshot.root, snapshot => {\n\t\t\tif (snapshot.outlet === outlet) {\n\t\t\t\troutes.push(snapshot);\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\treturn true;\n\t\t});\n\n\t\tif (route === (routes as any).at(-1)) {\n\t\t\treturn skipped = false;\n\t\t}\n\n\t\treturn skipped ??= route !== (routes as any).at(-1);\n\t}\n}\n\nfunction resolveModule(m: any) {\n if (m.default) {\n return m.default;\n }\n return m;\n}\n\nexport function wrapRoutes(routes: Routes): Routes {\n return (routes ?? []).map(route => {\n if (route.loadChildren) {\n return {\n ...route,\n loadChildren: () => (route.loadChildren!() as Promise<Routes>).then(routes => {\n\t\t\t\t\treturn wrapRoutes(resolveModule(routes))\n\t\t\t\t}),\n resolve: {\n ...(route?.resolve || {}),\n skipped: skippedResolver(),\n }\n };\n }\n return {\n ...route,\n resolve: {\n ...(route?.resolve || {}),\n skipped: skippedResolver(),\n },\n };\n });\n}","import { inject, InjectionToken } from '@angular/core';\nimport dayjs from 'dayjs';\nimport { comma } from '../comma';\n\nexport const yenTransform = (value: number, _unit = ''): string => {\n return `${comma(value)} ${_unit}`;\n}\n\nexport type ExpressionTransformer = (value: string | number | dayjs.Dayjs | any, context?: any) => string;\nexport const defaultExpressionTransformer: ExpressionTransformer = input => {\n if (dayjs.isDayjs(input)) {\n return input.format('YY/MM/DD');\n } else if (Array.isArray(input)) {\n return `${input.length}個のアイテム`;\n } else if (typeof input === 'object') {\n return JSON.stringify(input);\n } else if (typeof input === 'string') {\n return input;\n } else if (typeof input === 'number') {\n return yenTransform(input);\n } else {\n return input;\n }\n}\n\nexport const EXPRESSION_TRANSFORMER = new InjectionToken<ExpressionTransformer>('[@ng-atomic/common] Expression Transformer', {\n providedIn: 'root',\n factory: () => defaultExpressionTransformer,\n});\n\nexport function provideExpressionTransformer(useFactory: () => ExpressionTransformer) {\n return { provide: EXPRESSION_TRANSFORMER, useFactory };\n}\n\nexport function injectParentExpressionTransformer() {\n return inject(EXPRESSION_TRANSFORMER, {skipSelf: true, optional: true}) ?? defaultExpressionTransformer\n}\n\nexport const smartExpTransformer: ExpressionTransformer = defaultExpressionTransformer;\n","const getAllProps = (obj: object, keys: string[] = Object.keys(obj)): string[] => {\n const proto = Object.getPrototypeOf(obj);\n keys = Object.getOwnPropertyNames(proto)\n .filter(v => v !== '__proto__')\n .filter(v => Object.getOwnPropertyDescriptor(proto, v)?.get instanceof Function)\n .concat(keys);\n\n return proto.constructor.name === 'Object' ? keys : getAllProps(proto, keys);\n}\n\nexport const toObject = (obj: object): object => getAllProps(obj).reduce((p, k) => ({...p, [k]: (obj as Record<string, unknown>)[k]}), {});\n","// 秒数をhh:mm:ssの形にフォーマットする\nexport function formatSeconds(seconds: number): string {\n const h = `${Math.floor(seconds / 3600)}`.padStart(2, '0');\n const m = `${Math.floor(seconds % 3600 / 60)}`.padStart(2, '0');\n const s = `${Math.floor(seconds % 3600 % 60)}`.padStart(2, '0');\n return `${h}:${m}:${s}`;\n}","export * from './comma';\nexport * from './compare-by-id';\nexport * from './date-utils';\nexport * from './diff';\nexport * from './form';\nexport * from './get';\nexport * from './inject';\nexport * from './mat-dayjs-date';\nexport * from './page';\nexport * from './router';\nexport * from './expression';\nexport * from './to-object';\n\nexport * from './time';\n// export * from './define-element';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["_get","get"],"mappings":"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"}
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "@ng-atomic/common",
3
- "version": "19.37.0",
3
+ "version": "19.38.0",
4
4
  "license": "MIT",
5
5
  "peerDependencies": {
6
- "@nx-ddd/core": "19.37.0",
7
- "@nx-ddd/common": "19.37.0"
6
+ "@nx-ddd/core": "19.38.0",
7
+ "@nx-ddd/common": "19.38.0"
8
8
  },
9
9
  "dependencies": {
10
10
  "tslib": "^2.3.0"