{"version":3,"file":"xxmachina-components-organisms-event-input-section.mjs","sources":["../../../../../packages/@xxmachina/components/src/lib/organisms/event-input-section/event-input-section.organism.ts","../../../../../packages/@xxmachina/components/src/lib/organisms/event-input-section/xxmachina-components-organisms-event-input-section.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, Input, computed, inject, signal, OnInit } from '@angular/core';\n\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\nimport { DateInputFieldMolecule } from '@ng-atomic/components/molecules/date-input-field';\nimport { TextInputFieldMolecule } from '@ng-atomic/components/molecules/text-input-field';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { NgAtomicComponent } from '@ng-atomic/core';\nimport { DayjsDateModule, getValue$ } from '@ng-atomic/common/utils';\nimport { MAT_DATE_FORMATS } from '@angular/material/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { SmartMenuButtonAtom } from '@ng-atomic/components/atoms/menu-button';\nimport { SelectInputFieldMolecule } from '@ng-atomic/components/molecules/select-input-field';\nimport dayjs from 'dayjs';\n\nenum ActionId {\n  FIX_BUTTON_CLICK = '[@xxmachina/scheduler] Fix Button Click',\n  DELETE_BUTTON_CLICK = '[@xxmachina/scheduler] Delete Button Click',\n}\n\nconst MAT_DAYJS_DATE_FORMATS = {\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\n@Component({\n  selector: 'organisms-event-input-section',\n  standalone: true,\n  imports: [\n    DateInputFieldMolecule,\n    TextInputFieldMolecule,\n    SelectInputFieldMolecule,\n    MatButtonModule,\n    MatIconModule,\n    DayjsDateModule,\n    SmartMenuButtonAtom\n],\n  template: `\n    <div>\n      <molecules-date-input-field\n        [label]=\"'候補日'\"\n        [control]=\"form.get(['date'])\"\n        [toggle]=\"false\"\n      />\n      <molecules-select-input-field\n        [label]=\"'開始時間'\"\n        [control]=\"form.get(['startAt'])\"\n        [options]=\"options()\"\n      />\n      <molecules-select-input-field\n        [label]=\"'終了時間'\"\n        [control]=\"form.get(['endAt'])\"\n        [options]=\"options()\"\n      />\n    </div>\n    <atoms-menu-button [actions]=\"fixActions\" (action)=\"dispatch($event)\"/>\n    <atoms-menu-button [actions]=\"actions\" (action)=\"dispatch($event)\"/>\n\n  `,\n  styleUrls: ['./event-input-section.organism.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [{ provide: MAT_DATE_FORMATS, useValue: MAT_DAYJS_DATE_FORMATS }],\n\n})\nexport class EventInputSectionOrganism extends NgAtomicComponent implements OnInit {\n  static readonly ActionId = ActionId;\n  protected form = inject(FormBuilder).group({\n    date: [dayjs(), Validators.required],\n    startAt: ['00:00'],\n    endAt: ['01:00'],\n  });\n\n  fixActions = [\n    { id: ActionId.FIX_BUTTON_CLICK, name: '決定', icon: 'check' },\n  ];\n\n  actions = [\n    { id: ActionId.DELETE_BUTTON_CLICK, name: '削除', icon: 'delete' },\n  ];\n\n  @Input() label = '';\n\n  @Input()\n  control = new FormGroup<{startAt: FormControl<dayjs.Dayjs>, endAt: FormControl<dayjs.Dayjs>}>({\n    startAt: new FormControl(dayjs(), Validators.required) as FormControl<dayjs.Dayjs>,\n    endAt: new FormControl(dayjs(), Validators.required) as FormControl<dayjs.Dayjs>,\n  });\n\n  readonly startValue = toSignal(getValue$(this.control.get(['startAt'])!));\n\n  // 時間を15分刻みでHH:mmの配列にする\n  protected startAutoComplete = signal([...Array(24 * 4).keys()].map((i) => {\n    const hour = Math.floor(i / 4);\n    const minute = (i % 4) * 15;\n    return `${hour.toString().padStart(2, '0')}:${minute.toString().padStart(2, '0')}`;\n  }));\n\n  protected options = computed(() => {\n    return this.startAutoComplete().map((value) => ({value, name: value}));\n  });\n\n  protected endAutoComplete = signal([...Array(24 * 4).keys()].map((i) => {\n    const hour = Math.floor(i / 4);\n    const minute = (i % 4) * 15;\n    return `${hour.toString().padStart(2, '0')}:${minute.toString().padStart(2, '0')}`;\n  }));\n\n  ngOnInit(): void {\n    this.form.patchValue({\n      date: this.control.get(['startAt'])!.value,\n      startAt: this.control.get(['startAt'])!.value.format('HH:mm'),\n      endAt: this.control.get(['endAt'])!.value.format('HH:mm'),\n    })\n    this.form.valueChanges.subscribe(({date, startAt, endAt}) => {\n      this.control.patchValue({\n        startAt: dayjs(`${date!.format('YYYY-MM-DD')}T${startAt}:00`),\n        endAt: dayjs(`${date!.format('YYYY-MM-DD')}T${endAt}:00`),\n      });\n    });\n  }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}