<commit_before>import React from 'react';
import { get } from 'lodash';

import { IExecution, IExecutionStage } from 'core/domain';
import { Application } from 'core/application/application.model';
import { ConfirmationModalService } from 'core/confirmationModal';
import { ReactInjector } from 'core/reactShims';
import { timePickerTime } from 'core/utils/timeFormatters';
import { SystemTimezone } from 'core/utils/SystemTimezone';
import { DAYS_OF_WEEK } from './daysOfWeek';

export interface IExecutionWindowActionsProps {
  execution: IExecution;
  stage: IExecutionStage;
  application: Application;
}

export interface IExecutionWindowActionsState {
  dayText: string;
}

export interface IExecutionWindowAllowlistEntry {
  startHour: number;
  startMin: number;
  endHour: number;
  endMin: number;
}

export const DEFAULT_SKIP_WINDOW_TEXT =
  'The pipeline will proceed immediately, continuing to the next step in the stage.';

export class ExecutionWindowActions extends React.Component<
  IExecutionWindowActionsProps,
  IExecutionWindowActionsState
> {
  constructor(props: IExecutionWindowActionsProps) {
    super(props);
    const days = props.stage.context.restrictedExecutionWindow.days;
    let dayText = 'Everyday';<commit_msg>fix(core/pipeline): Handle null restrictionExecutionWindow (#8707)<commit_after>import React from 'react';
import { get } from 'lodash';

import { IExecution, IExecutionStage } from 'core/domain';
import { Application } from 'core/application/application.model';
import { ConfirmationModalService } from 'core/confirmationModal';
import { ReactInjector } from 'core/reactShims';
import { timePickerTime } from 'core/utils/timeFormatters';
import { SystemTimezone } from 'core/utils/SystemTimezone';
import { DAYS_OF_WEEK } from './daysOfWeek';

export interface IExecutionWindowActionsProps {
  execution: IExecution;
  stage: IExecutionStage;
  application: Application;
}

export interface IExecutionWindowActionsState {
  dayText: string;
}

export interface IExecutionWindowAllowlistEntry {
  startHour: number;
  startMin: number;
  endHour: number;
  endMin: number;
}

export const DEFAULT_SKIP_WINDOW_TEXT =
  'The pipeline will proceed immediately, continuing to the next step in the stage.';

export class ExecutionWindowActions extends React.Component<
  IExecutionWindowActionsProps,
  IExecutionWindowActionsState
> {
  constructor(props: IExecutionWindowActionsProps) {
    super(props);
    const days = props.stage.context.restrictedExecutionWindow?.days;
    let dayText = 'Everyday';
{'fraction_non_alphanumeric': 0.08869701726844584, 'fraction_numerical': 0.0015698587127158557, 'mean_word_length': 5.926630434782608, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3638838', 'n_tokens_mistral': 716, 'n_tokens_neox': 704, 'n_words': 191}