import type { Meta, StoryObj } from '@storybook/angular';
import { FormBuilder } from '@angular/forms';

import { configProps, stateListData, stateProps } from './mock';

import { PegaDxilMyIconButtonUrlComponent } from './pega-dxil-my-icon-button-url.component';

window.PCore.getDataApiUtils = (): any => {
  return {
    getData: () => {
      return Promise.resolve(stateListData);
    }
  };
};

const meta: Meta<PegaDxilMyIconButtonUrlComponent> = {
  title: 'PegaDxilMyIconButtonUrl',
  component: PegaDxilMyIconButtonUrlComponent,
  excludeStories: /.*Data$/,
  render: (args) => ({
      props: {
        ...args,
        pConn$: {
          resolveConfigProps: props => props,
          getConfigProps: () => {
            return configProps;
          },
          getValue: value => {
            return value;
          },
          getContextName: () => {
            return 'app/primary_1';
          },
          getStateProps: () => {
            return stateProps;
          },
          getLocalizedValue: value => {
            return value;
          }
        } as any,
        formGroup$: new FormBuilder().group({})
      }
  })
};

export default meta;
type Story = StoryObj<PegaDxilMyIconButtonUrlComponent>;

export const PegaDxilMyIconButtonUrl: Story = {
  args: {}
};
