{"version":3,"file":"rg-software-angular-archwizard.mjs","sources":["../../../src/lib/directives/wizard-step-symbol.directive.ts","../../../src/lib/directives/wizard-step-title.directive.ts","../../../src/lib/util/wizard-step.interface.ts","../../../src/lib/util/wizard-completion-step.interface.ts","../../../src/lib/components/wizard-completion-step.component.ts","../../../src/lib/components/wizard-completion-step.component.html","../../../src/lib/util/wizard.interface.ts","../../../src/lib/util/step-id.interface.ts","../../../src/lib/util/step-index.interface.ts","../../../src/lib/util/step-offset.interface.ts","../../../src/lib/directives/go-to-step.directive.ts","../../../src/lib/components/wizard-navigation-bar.component.ts","../../../src/lib/components/wizard-navigation-bar.component.html","../../../src/lib/components/wizard-step.component.ts","../../../src/lib/components/wizard-step.component.html","../../../src/lib/util/moving-direction.enum.ts","../../../src/lib/navigation/base-navigation-mode.interface.ts","../../../src/lib/navigation/configurable-navigation-mode.ts","../../../src/lib/components/wizard.component.ts","../../../src/lib/components/wizard.component.html","../../../src/lib/directives/enable-back-links.directive.ts","../../../src/lib/directives/next-step.directive.ts","../../../src/lib/directives/optional-step.directive.ts","../../../src/lib/directives/previous-step.directive.ts","../../../src/lib/directives/reset-wizard.directive.ts","../../../src/lib/directives/selected-step.directive.ts","../../../src/lib/directives/wizard-completion-step.directive.ts","../../../src/lib/directives/wizard-step.directive.ts","../../../src/lib/directives/navigation-mode.directive.ts","../../../src/lib/directives/completed-step.directive.ts","../../../src/lib/archwizard.module.ts","../../../src/index.ts","../../../src/rg-software-angular-archwizard.ts"],"sourcesContent":["import {Directive, TemplateRef} from '@angular/core';\n\n/**\n * The `awWizardStepSymbol` directive can be used as an alternative to the `navigationSymbol` input of a [[WizardStep]]\n * to define the step symbol inside the navigation bar.  This way step symbol may contain arbitrary content.\n *\n * ### Syntax\n *\n * ```html\n * <ng-template awWizardStepSymbol>\n *     ...\n * </ng-template>\n * ```\n */\n@Directive({\n  selector: 'ng-template[awStepSymbol], ng-template[awWizardStepSymbol]'\n})\nexport class WizardStepSymbolDirective {\n  /**\n   * Constructor\n   *\n   * @param templateRef A reference to the content of the `ng-template` that contains this [[WizardStepSymbolDirective]]\n   */\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  constructor(public templateRef: TemplateRef<any>) {\n  }\n}\n","import {Directive, TemplateRef} from '@angular/core';\n\n/**\n * The `awWizardStepTitle` directive can be used as an alternative to the `stepTitle` input of a [[WizardStep]]\n * to define the content of a step title inside the navigation bar.\n * This step title can be freely created and can contain more than only plain text\n *\n * ### Syntax\n *\n * ```html\n * <ng-template awWizardStepTitle>\n *     ...\n * </ng-template>\n * ```\n *\n * @author Marc Arndt\n */\n@Directive({\n  selector: 'ng-template[awStepTitle], ng-template[awWizardStepTitle]'\n})\nexport class WizardStepTitleDirective {\n  /**\n   * Constructor\n   *\n   * @param templateRef A reference to the content of the `ng-template` that contains this [[WizardStepTitleDirective]]\n   */\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  constructor(public templateRef: TemplateRef<any>) {\n  }\n}\n","import { ContentChild, EventEmitter, HostBinding, Input, Output, Directive } from '@angular/core';\nimport {WizardStepSymbolDirective} from '../directives/wizard-step-symbol.directive';\nimport {WizardStepTitleDirective} from '../directives/wizard-step-title.directive';\nimport {MovingDirection} from './moving-direction.enum';\nimport {NavigationSymbol} from './navigation-symbol.interface';\n\n/**\n * Basic functionality every type of wizard step needs to provide\n *\n * @author Marc Arndt\n */\n@Directive()\n/* tslint:disable-next-line directive-class-suffix */\nexport abstract class WizardStep {\n  /**\n   * A step title property, which contains the visible header title of the step.\n   * This title is then shown inside the navigation bar.\n   * Compared to `stepTitle` this property can contain any html content and not only plain text\n   */\n  @ContentChild(WizardStepTitleDirective)\n  public stepTitleTemplate: WizardStepTitleDirective;\n\n  /**\n   * A step symbol property that, if defined, overrides `navigationSymbol`.\n   * Allows to display arbitrary content as a step symbol instead of plain text.\n   */\n  @ContentChild(WizardStepSymbolDirective)\n  public stepSymbolTemplate: WizardStepSymbolDirective;\n\n  /**\n   * A step id, unique to the step\n   */\n  @Input()\n  public stepId: string;\n\n  /**\n   * A step title property, which contains the visible header title of the step.\n   * This title is only shown inside the navigation bar, if `stepTitleTemplate` is not defined or null.\n   */\n  @Input()\n  public stepTitle: string;\n\n  /**\n   * A symbol property, which contains an optional symbol for the step inside the navigation bar.\n   * Takes effect when `stepSymbolTemplate` is not defined or null.\n   */\n  @Input()\n  public navigationSymbol: NavigationSymbol = {symbol: ''};\n\n  /**\n   * A boolean describing if the wizard step is currently selected\n   */\n  public selected = false;\n\n  /**\n   * A boolean describing if the wizard step has been completed\n   */\n  public completed = false;\n\n  /**\n   * A boolean describing if the wizard step is shown as completed when the wizard is presented to the user\n   *\n   * Users will typically use `CompletedStepDirective` to set this flag\n   */\n  public initiallyCompleted = false;\n\n  /**\n   * A boolean describing if the wizard step is being edited after being competed\n   *\n   * This flag can only be true when `selected` is true.\n   */\n  public editing = false;\n\n  /**\n   * A boolean describing, if the wizard step should be selected by default, i.e. after the wizard has been initialized as the initial step\n   */\n  public defaultSelected = false;\n\n  /**\n   * A boolean describing if the wizard step is an optional step\n   */\n  public optional = false;\n\n  /**\n   * A function or boolean deciding, if this step can be entered\n   */\n  @Input()\n  public canEnter: ((direction: MovingDirection) => boolean) | ((direction: MovingDirection) => Promise<boolean>) | boolean = true;\n\n  /**\n   * A function or boolean deciding, if this step can be exited\n   */\n  @Input()\n  public canExit: ((direction: MovingDirection) => boolean) | ((direction: MovingDirection) => Promise<boolean>) | boolean = true;\n\n  /**\n   * This [[EventEmitter]] is called when the step is entered.\n   * The bound method should be used to do initialization work.\n   */\n  @Output()\n  public stepEnter: EventEmitter<MovingDirection> = new EventEmitter<MovingDirection>();\n\n  /**\n   * This [[EventEmitter]] is called when the step is exited.\n   * The bound method can be used to do cleanup work.\n   */\n  @Output()\n  public stepExit: EventEmitter<MovingDirection> = new EventEmitter<MovingDirection>();\n\n  /**\n   * Returns true if this wizard step should be visible to the user.\n   * If the step should be visible to the user false is returned, otherwise true\n   */\n  @HostBinding('hidden')\n  public get hidden(): boolean {\n    return !this.selected;\n  }\n\n  /**\n   * This method returns true, if this wizard step can be transitioned with a given direction.\n   * Transitioned in this case means either entered or exited, depending on the given `condition` parameter.\n   *\n   * @param condition A condition variable, deciding if the step can be transitioned\n   * @param direction The direction in which this step should be transitioned\n   * @returns A [[Promise]] containing `true`, if this step can transitioned in the given direction\n   * @throws An `Error` is thrown if `condition` is neither a function nor a boolean\n   */\n  private static canTransitionStep(condition: ((direction: MovingDirection) => boolean) |\n                                     ((direction: MovingDirection) => Promise<boolean>) |\n                                     boolean,\n                                   direction: MovingDirection): Promise<boolean> {\n    if (typeof(condition) === typeof(true)) {\n      return Promise.resolve(condition as boolean);\n    } else if (condition instanceof Function) {\n      return Promise.resolve(condition(direction));\n    } else {\n      return Promise.reject(new Error(`Input value '${condition}' is neither a boolean nor a function`));\n    }\n  }\n\n  /**\n   * A function called when the step is entered\n   *\n   * @param direction The direction in which the step is entered\n   */\n  public enter(direction: MovingDirection): void {\n    this.stepEnter.emit(direction);\n  }\n\n  /**\n   * A function called when the step is exited\n   *\n   * @param direction The direction in which the step is exited\n   */\n  public exit(direction: MovingDirection) {\n    this.stepExit.emit(direction);\n  }\n\n  /**\n   * This method returns true, if this wizard step can be entered from the given direction.\n   * Because this method depends on the value `canEnter`, it will throw an error, if `canEnter` is neither a boolean\n   * nor a function.\n   *\n   * @param direction The direction in which this step should be entered\n   * @returns A [[Promise]] containing `true`, if the step can be entered in the given direction, false otherwise\n   * @throws An `Error` is thrown if `anEnter` is neither a function nor a boolean\n   */\n  public canEnterStep(direction: MovingDirection): Promise<boolean> {\n    return WizardStep.canTransitionStep(this.canEnter, direction);\n  }\n\n  /**\n   * This method returns true, if this wizard step can be exited into given direction.\n   * Because this method depends on the value `canExit`, it will throw an error, if `canExit` is neither a boolean\n   * nor a function.\n   *\n   * @param direction The direction in which this step should be left\n   * @returns A [[Promise]] containing `true`, if the step can be exited in the given direction, false otherwise\n   * @throws An `Error` is thrown if `canExit` is neither a function nor a boolean\n   */\n  public canExitStep(direction: MovingDirection): Promise<boolean> {\n    return WizardStep.canTransitionStep(this.canExit, direction);\n  }\n}\n","import {EventEmitter, Directive} from '@angular/core';\nimport {WizardStep} from './wizard-step.interface';\nimport {MovingDirection} from './moving-direction.enum';\n\n/**\n * Basic functionality every wizard completion step needs to provide\n *\n * @author Marc Arndt\n */\n@Directive()\n/* tslint:disable-next-line directive-class-suffix */\nexport abstract class WizardCompletionStep extends WizardStep {\n  /**\n   * @inheritDoc\n   */\n  public stepExit = new EventEmitter<MovingDirection>();\n\n  /**\n   * @inheritDoc\n   */\n  public canExit: ((direction: MovingDirection) => boolean) | boolean = false;\n\n  /**\n   * @inheritDoc\n   */\n  public enter(direction: MovingDirection): void {\n    this.completed = true;\n    this.stepEnter.emit(direction);\n  }\n\n  /**\n   * @inheritDoc\n   */\n  public exit(direction: MovingDirection): void {\n    // set this completion step as incomplete (unless it happens to be initiallyCompleted)\n    this.completed = this.initiallyCompleted;\n    this.stepExit.emit(direction);\n  }\n}\n","import {Component, forwardRef} from '@angular/core';\nimport {WizardCompletionStep} from '../util/wizard-completion-step.interface';\nimport {WizardStep} from '../util/wizard-step.interface';\n\n/**\n * The `aw-wizard-completion-step` component can be used to define a completion/success step at the end of your wizard\n * After a `aw-wizard-completion-step` has been entered, it has the characteristic that the user is blocked from\n * leaving it again to a previous step.\n * In addition entering a `aw-wizard-completion-step` automatically sets the `aw-wizard` and all steps inside the `aw-wizard`\n * as completed.\n *\n * ### Syntax\n *\n * ```html\n * <aw-wizard-completion-step [stepTitle]=\"title of the wizard step\"\n *    [navigationSymbol]=\"{ symbol: 'navigation symbol', fontFamily: 'navigation symbol font family' }\"\n *    (stepEnter)=\"event emitter to be called when the wizard step is entered\"\n *    (stepExit)=\"event emitter to be called when the wizard step is exited\">\n *    ...\n * </aw-wizard-completion-step>\n * ```\n *\n * ### Example\n *\n * ```html\n * <aw-wizard-completion-step stepTitle=\"Step 1\" [navigationSymbol]=\"{ symbol: '1' }\">\n *    ...\n * </aw-wizard-completion-step>\n * ```\n *\n * With a navigation symbol from the `font-awesome` font:\n *\n * ```html\n * <aw-wizard-completion-step stepTitle=\"Step 1\" [navigationSymbol]=\"{ symbol: '&#xf1ba;', fontFamily: 'FontAwesome' }\">\n *    ...\n * </aw-wizard-completion-step>\n * ```\n *\n * @author Marc Arndt\n */\n@Component({\n  selector: 'aw-wizard-completion-step',\n  templateUrl: 'wizard-completion-step.component.html',\n  providers: [\n    {provide: WizardStep, useExisting: forwardRef(() => WizardCompletionStepComponent)},\n    {provide: WizardCompletionStep, useExisting: forwardRef(() => WizardCompletionStepComponent)}\n  ]\n})\nexport class WizardCompletionStepComponent extends WizardCompletionStep {\n}\n","<ng-content></ng-content>\n","import { EventEmitter, Injectable } from '@angular/core';\nimport { WizardStep } from './wizard-step.interface';\n\n@Injectable()\nexport abstract class WizardBase {\n  public abstract navBarDirection: string;\n  public abstract get wizardSteps(): WizardStep[];\n  public abstract disableNavigationBar: boolean;\n  public abstract get completed(): boolean;\n  public abstract isNavigable(destinationIndex: number): boolean;\n  public abstract getIndexOfStepWithId(stepId: string): number;\n  public abstract getIndexOfStep(step: WizardStep): number;\n  public abstract goToStep(destinationIndex: number, preFinalize?: EventEmitter<void>, postFinalize?: EventEmitter<void>): void;\n}\n","import {WizardStep} from './wizard-step.interface';\nimport {StepIndex} from \"./step-index.interface\";\nimport {StepOffset} from \"./step-offset.interface\";\n\n/**\n * An unique identifier of a wizard step\n *\n * @author Marc Arndt\n */\nexport interface StepId {\n  /**\n   * The id of the destination step\n   */\n  stepId: string;\n}\n\n/**\n * Checks whether the given `value` implements the interface [[StepId]].\n *\n * @param value The value to be checked\n * @returns True if the given value implements [[StepId]] and false otherwise\n */\nexport function isStepId(value: WizardStep | StepId | StepIndex | StepOffset): value is StepId {\n  return Object.prototype.hasOwnProperty.call(value, 'stepId') && !(value instanceof WizardStep);\n}\n","/**\n * An index of a wizard step.\n * This index is the index of the step inside the wizard.\n * The index is always zero based, i.e. the step with index 0 is the first step of the wizard\n *\n * @author Marc Arndt\n */\nimport {StepOffset} from \"./step-offset.interface\";\nimport {StepId} from \"./step-id.interface\";\nimport {WizardStep} from \"./wizard-step.interface\";\n\nexport interface StepIndex {\n  /**\n   * The index of the destination step\n   */\n  stepIndex: number;\n}\n\n/**\n * Checks whether the given `value` implements the interface [[StepIndex]].\n *\n * @param value The value to be checked\n * @returns True if the given value implements [[StepIndex]] and false otherwise\n */\nexport function isStepIndex(value: WizardStep | StepId | StepIndex | StepOffset): value is StepIndex {\n  return Object.prototype.hasOwnProperty.call(value, 'stepIndex');\n}\n","/**\n * An offset between two steps.\n * This offset can be either positive or negative.\n * A positive offset means, that the offset step is after the other step, while a negative offset means,\n * that the offset step is ahead of the other step.\n *\n * @author Marc Arndt\n */\nexport interface StepOffset {\n  /**\n   * The offset to the destination step\n   */\n  stepOffset: number;\n}\n\n/**\n * Checks whether the given `value` implements the interface [[StepOffset]].\n *\n * @param value The value to be checked\n * @returns True if the given value implements [[StepOffset]] and false otherwise\n */\nexport function isStepOffset(value: {stepOffset: number}): value is StepOffset {\n  return Object.prototype.hasOwnProperty.call(value, 'stepOffset');\n}\n","import { Directive, EventEmitter, HostListener, Input, Optional, Output } from '@angular/core';\nimport { isStepId, StepId } from '../util/step-id.interface';\nimport { isStepIndex, StepIndex } from '../util/step-index.interface';\nimport { isStepOffset, StepOffset } from '../util/step-offset.interface';\nimport { WizardStep } from '../util/wizard-step.interface';\nimport { WizardBase } from '../util/wizard.interface';\n\n\n/**\n * The `awGoToStep` directive can be used to navigate to a given step.\n * This step can be defined in one of multiple formats\n *\n * ### Syntax\n *\n * With absolute step index:\n *\n * ```html\n * <button [awGoToStep]=\"{ stepIndex: absolute step index }\" (finalize)=\"finalize method\">...</button>\n * ```\n *\n * With unique step id:\n *\n * ```html\n * <button [awGoToStep]=\"{ stepId: 'step id of destination step' }\" (finalize)=\"finalize method\">...</button>\n * ```\n *\n * With a wizard step object:\n *\n * ```html\n * <button [awGoToStep]=\"wizard step object\" (finalize)=\"finalize method\">...</button>\n * ```\n *\n * With an offset to the defining step:\n *\n * ```html\n * <button [awGoToStep]=\"{ stepOffset: offset }\" (finalize)=\"finalize method\">...</button>\n * ```\n *\n * @author Marc Arndt\n */\n@Directive({\n  selector: '[awGoToStep]'\n})\nexport class GoToStepDirective {\n  /**\n   * This [[EventEmitter]] is called directly before the current step is exited during a transition through a component with this directive.\n   */\n  @Output()\n  public preFinalize: EventEmitter<void> = new EventEmitter();\n\n  /**\n   * This [[EventEmitter]] is called directly after the current step is exited during a transition through a component with this directive.\n   */\n  @Output()\n  public postFinalize: EventEmitter<void> = new EventEmitter();\n\n  /**\n   * The destination step, to which the wizard should navigate, after the component, having this directive has been activated.\n   * This destination step can be given either as a [[WizardStep]] containing the step directly,\n   * a [[StepOffset]] between the current step and the `wizardStep`, in which this directive has been used,\n   * or a step index as a number or string\n   */\n  // tslint:disable-next-line:no-input-rename\n  @Input('awGoToStep')\n  public targetStep: WizardStep | StepOffset | StepIndex | StepId;\n\n  /**\n   * Constructor\n   *\n   * @param wizard The wizard component\n   * @param wizardStep The wizard step, which contains this [[GoToStepDirective]]\n   */\n  constructor(private wizard: WizardBase, @Optional() private wizardStep: WizardStep) {\n  }\n\n  /**\n   * A convenience field for `preFinalize`\n   */\n  public get finalize(): EventEmitter<void> {\n    return this.preFinalize;\n  }\n\n  /**\n   * A convenience name for `preFinalize`\n   *\n   * @param emitter The [[EventEmitter]] to be set\n   */\n  @Output()\n  public set finalize(emitter: EventEmitter<void>) {\n    /* istanbul ignore next */\n    this.preFinalize = emitter;\n  }\n\n  /**\n   * Returns the destination step of this directive as an absolute step index inside the wizard\n   *\n   * @returns The index of the destination step\n   * @throws If `targetStep` is of an unknown type an `Error` is thrown\n   */\n  public get destinationStep(): number {\n    let destinationStep: number;\n\n    if (isStepIndex(this.targetStep)) {\n      destinationStep = this.targetStep.stepIndex;\n    } else if (isStepId(this.targetStep)) {\n      destinationStep = this.wizard.getIndexOfStepWithId(this.targetStep.stepId);\n    } else if (isStepOffset(this.targetStep) && this.wizardStep !== null) {\n      destinationStep = this.wizard.getIndexOfStep(this.wizardStep) + this.targetStep.stepOffset;\n    } else if (this.targetStep instanceof WizardStep) {\n      destinationStep = this.wizard.getIndexOfStep(this.targetStep);\n    } else {\n      throw new Error(`Input 'targetStep' is neither a WizardStep, StepOffset, StepIndex or StepId`);\n    }\n\n    return destinationStep;\n  }\n\n  /**\n   * Listener method for `click` events on the component with this directive.\n   * After this method is called the wizard will try to transition to the `destinationStep`\n   */\n  @HostListener('click')\n  public onClick(): void {\n    this.wizard.goToStep(this.destinationStep, this.preFinalize, this.postFinalize);\n  }\n}\n","import { Component } from '@angular/core';\nimport { WizardCompletionStep } from '../util/wizard-completion-step.interface';\nimport { WizardStep } from '../util/wizard-step.interface';\nimport { WizardBase } from '../util/wizard.interface';\n\n/**\n * The `aw-wizard-navigation-bar` component contains the navigation bar inside a [[WizardComponent]].\n * To correctly display the navigation bar, it's required to set the right css classes for the navigation bar,\n * otherwise it will look like a normal `ul` component.\n *\n * ### Syntax\n *\n * ```html\n * <aw-wizard-navigation-bar></aw-wizard-navigation-bar>\n * ```\n *\n * @author Marc Arndt\n */\n@Component({\n  selector: 'aw-wizard-navigation-bar',\n  templateUrl: 'wizard-navigation-bar.component.html',\n})\nexport class WizardNavigationBarComponent {\n  /**\n   * Constructor\n   *\n   * @param wizard The state the wizard currently resides in\n   */\n  constructor(public wizard: WizardBase) {\n  }\n\n  /**\n   * Returns all [[WizardStep]]s contained in the wizard\n   *\n   * @returns An array containing all [[WizardStep]]s\n   */\n  get wizardSteps(): Array<WizardStep> {\n    switch (this.wizard.navBarDirection) {\n      case 'right-to-left':\n        return this.wizard.wizardSteps.slice().reverse();\n      case 'left-to-right':\n      default:\n        return this.wizard.wizardSteps;\n    }\n  }\n\n  /**\n   * Returns the number of wizard steps, that need to be displaced in the navigation bar\n   *\n   * @returns The number of wizard steps to be displayed\n   */\n  get numberOfWizardSteps(): number {\n    return this.wizard.wizardSteps.length;\n  }\n\n  /**\n   * Checks, whether a [[WizardStep]] can be marked as `current` in the navigation bar\n   *\n   * @param wizardStep The wizard step to be checked\n   * @returns True if the step can be marked as `current`\n   */\n  public isCurrent(wizardStep: WizardStep): boolean {\n    return wizardStep.selected;\n  }\n\n  /**\n   * Checks, whether a [[WizardStep]] can be marked as `editing` in the navigation bar\n   *\n   * @param wizardStep The wizard step to be checked\n   * @returns True if the step can be marked as `editing`\n   */\n  public isEditing(wizardStep: WizardStep): boolean {\n    return wizardStep.editing;\n  }\n\n  /**\n   * Checks, whether a [[WizardStep]] can be marked as `done` in the navigation bar\n   *\n   * @param wizardStep The wizard step to be checked\n   * @returns True if the step can be marked as `done`\n   */\n  public isDone(wizardStep: WizardStep): boolean {\n    return wizardStep.completed;\n  }\n\n  /**\n   * Checks, whether a [[WizardStep]] can be marked as `optional` in the navigation bar\n   *\n   * @param wizardStep The wizard step to be checked\n   * @returns True if the step can be marked as `optional`\n   */\n  public isOptional(wizardStep: WizardStep): boolean {\n    return wizardStep.optional;\n  }\n\n  /**\n   * Checks, whether a [[WizardStep]] can be marked as `completed` in the navigation bar.\n   *\n   * The `completed` class is only applied to completion steps.\n   *\n   * @param wizardStep The wizard step to be checked\n   * @returns True if the step can be marked as `completed`\n   */\n  public isCompleted(wizardStep: WizardStep): boolean {\n    return wizardStep instanceof WizardCompletionStep && this.wizard.completed;\n  }\n\n  /**\n   * Checks, whether a [[WizardStep]] can be marked as `navigable` in the navigation bar.\n   * A wizard step can be navigated to if:\n   * - the step is currently not selected\n   * - the navigation bar isn't disabled\n   * - the navigation mode allows navigation to the step\n   *\n   * @param wizardStep The wizard step to be checked\n   * @returns True if the step can be marked as navigable\n   */\n  public isNavigable(wizardStep: WizardStep): boolean {\n    return !wizardStep.selected && !this.wizard.disableNavigationBar &&\n      this.wizard.isNavigable(this.wizard.getIndexOfStep(wizardStep));\n  }\n}\n","<ul class=\"steps-indicator steps-{{numberOfWizardSteps}}\">\n  <li [attr.id]=\"step.stepId\" *ngFor=\"let step of wizardSteps\" [ngClass]=\"{\n        'current': isCurrent(step),\n        'editing': isEditing(step),\n        'done': isDone(step),\n        'optional': isOptional(step),\n        'completed': isCompleted(step),\n        'navigable': isNavigable(step)\n  }\">\n    <a [awGoToStep]=\"step\">\n      <div class=\"label\">\n        <ng-container *ngIf=\"step.stepTitleTemplate\" [ngTemplateOutlet]=\"step.stepTitleTemplate.templateRef\"\n          [ngTemplateOutletContext]=\"{wizardStep: step}\"></ng-container>\n        <ng-container *ngIf=\"!step.stepTitleTemplate\">{{step.stepTitle}}</ng-container>\n      </div>\n      <div class=\"step-indicator\"\n        [ngStyle]=\"{ 'font-family': step.stepSymbolTemplate ? '' : step.navigationSymbol.fontFamily }\">\n        <ng-container *ngIf=\"step.stepSymbolTemplate\" [ngTemplateOutlet]=\"step.stepSymbolTemplate.templateRef\"\n          [ngTemplateOutletContext]=\"{wizardStep: step}\"></ng-container>\n        <ng-container *ngIf=\"!step.stepSymbolTemplate\">{{step.navigationSymbol.symbol}}</ng-container>\n      </div>\n    </a>\n  </li>\n</ul>\n","import {Component, forwardRef} from '@angular/core';\nimport {WizardStep} from '../util/wizard-step.interface';\n\n/**\n * The `aw-wizard-step` component is used to define a normal step inside a wizard.\n *\n * ### Syntax\n *\n * With `stepTitle` and `navigationSymbol` inputs:\n *\n * ```html\n * <aw-wizard-step [stepTitle]=\"step title\" [navigationSymbol]=\"{ symbol: 'symbol', fontFamily: 'font-family' }\"\n *    [canExit]=\"deciding function\" (stepEnter)=\"enter function\" (stepExit)=\"exit function\">\n *    ...\n * </aw-wizard-step>\n * ```\n *\n * With `awWizardStepTitle` and `awWizardStepSymbol` directives:\n *\n * ```html\n * <aw-wizard-step\"\n *    [canExit]=\"deciding function\" (stepEnter)=\"enter function\" (stepExit)=\"exit function\">\n *    <ng-template awWizardStepTitle>\n *        step title\n *    </ng-template>\n *    <ng-template awWizardStepSymbol>\n *        symbol\n *    </ng-template>\n *    ...\n * </aw-wizard-step>\n * ```\n *\n * ### Example\n *\n * With `stepTitle` and `navigationSymbol` inputs:\n *\n * ```html\n * <aw-wizard-step stepTitle=\"Address information\" [navigationSymbol]=\"{ symbol: '&#xf1ba;', fontFamily: 'FontAwesome' }\">\n *    ...\n * </aw-wizard-step>\n * ```\n *\n * With `awWizardStepTitle` and `awWizardStepSymbol` directives:\n *\n * ```html\n * <aw-wizard-step>\n *    <ng-template awWizardStepTitle>\n *        Address information\n *    </ng-template>\n *    <ng-template awWizardStepSymbol>\n *        <i class=\"fa fa-taxi\"></i>\n *    </ng-template>\n * </aw-wizard-step>\n * ```\n *\n * @author Marc Arndt\n */\n@Component({\n  selector: 'aw-wizard-step',\n  templateUrl: 'wizard-step.component.html',\n  providers: [\n    {provide: WizardStep, useExisting: forwardRef(() => WizardStepComponent)}\n  ]\n})\nexport class WizardStepComponent extends WizardStep {\n}\n","<ng-content></ng-content>\n","/**\n * The direction in which a step transition was made\n *\n * @author Marc Arndt\n */\n\n/**\n * This enum contains the different possible moving directions in which a wizard can be traversed\n *\n * @author Marc Arndt\n */\nexport enum MovingDirection {\n  /**\n   * A forward step transition\n   */\n  Forwards,\n  /**\n   * A backward step transition\n   */\n  Backwards,\n  /**\n   * No step transition was done\n   */\n  Stay\n}\n","import {EventEmitter} from '@angular/core';\nimport {MovingDirection} from '../util/moving-direction.enum';\nimport {NavigationMode} from './navigation-mode.interface';\nimport {WizardComponent} from '../components/wizard.component';\n\n/**\n * Base implementation of [[NavigationMode]]\n *\n * Note: Built-in [[NavigationMode]] classes should be stateless, allowing the library user to easily create\n * an instance of a particular [[NavigationMode]] class and pass it to `<aw-wizard [navigationMode]=\"...\">`.\n *\n * @author Marc Arndt\n */\nexport abstract class BaseNavigationMode implements NavigationMode {\n\n  /**\n   * Checks, whether a wizard step, as defined by the given destination index, can be transitioned to.\n   *\n   * This method controls navigation by [[goToStep]], [[goToPreviousStep]], and [[goToNextStep]] directives.\n   * Navigation by navigation bar is governed by [[isNavigable]].\n   *\n   * In this implementation, a destination wizard step can be entered if:\n   * - it exists\n   * - the current step can be exited in the direction of the destination step\n   * - the destination step can be entered in the direction from the current step\n   *\n   * Subclasses can impose additional restrictions, see [[canTransitionToStep]].\n   *\n   * @param wizard The wizard component to operate on\n   * @param destinationIndex The index of the destination step\n   * @returns A [[Promise]] containing `true`, if the destination step can be transitioned to and `false` otherwise\n   */\n  public canGoToStep(wizard: WizardComponent, destinationIndex: number): Promise<boolean> {\n    const hasStep = wizard.hasStep(destinationIndex);\n\n    const movingDirection = wizard.getMovingDirection(destinationIndex);\n\n    const canExitCurrentStep = (previous: boolean) => {\n      return previous && wizard.currentStep.canExitStep(movingDirection);\n    };\n\n    const canEnterDestinationStep = (previous: boolean) => {\n      return previous && wizard.getStepAtIndex(destinationIndex).canEnterStep(movingDirection);\n    };\n\n    const canTransitionToStep = (previous: boolean) => {\n      return previous && this.canTransitionToStep(wizard, destinationIndex);\n    };\n\n    return Promise.resolve(hasStep)\n      .then(canTransitionToStep)\n      // Apply user-defined checks at the end.  They can involve user interaction\n      // which is better to be avoided if navigation mode does not actually allow the transition\n      // (`canTransitionToStep` returns `false`).\n      .then(canExitCurrentStep)\n      .then(canEnterDestinationStep);\n  }\n\n  /**\n   * Imposes additional restrictions for `canGoToStep` in current navigation mode.\n   *\n   * The base implementation allows transition iff the given step is navigable from the navigation bar (see `isNavigable`).\n   * However, in some navigation modes `canTransitionToStep` can be more relaxed to allow navigation to certain steps\n   * by previous/next buttons, but not using the navigation bar.\n   *\n   * @param wizard The wizard component to operate on\n   * @param destinationIndex The index of the destination step\n   * @returns `true`, if the destination step can be transitioned to and `false` otherwise\n   */\n  protected canTransitionToStep(wizard: WizardComponent, destinationIndex: number): boolean {\n    return this.isNavigable(wizard, destinationIndex);\n  }\n\n  /**\n   * Tries to transition to the wizard step, as denoted by the given destination index.\n   *\n   * When entering the destination step, the following actions are done:\n   * - the old current step is set as completed\n   * - the old current step is set as unselected\n   * - the old current step is exited\n   * - the destination step is set as selected\n   * - the destination step is entered\n   *\n   * When the destination step couldn't be entered, the following actions are done:\n   * - the current step is exited and entered in the direction `MovingDirection.Stay`\n   *\n   * @param wizard The wizard component to operate on\n   * @param destinationIndex The index of the destination wizard step, which should be entered\n   * @param preFinalize An event emitter, to be called before the step has been transitioned\n   * @param postFinalize An event emitter, to be called after the step has been transitioned\n   */\n  public goToStep(\n    wizard: WizardComponent,\n    destinationIndex: number,\n    preFinalize?: EventEmitter<void>,\n    postFinalize?: EventEmitter<void>): void {\n\n    this.canGoToStep(wizard, destinationIndex).then(navigationAllowed => {\n      if (navigationAllowed) {\n        // the current step can be exited in the given direction\n        const movingDirection: MovingDirection = wizard.getMovingDirection(destinationIndex);\n\n        /* istanbul ignore if */\n        if (preFinalize) {\n          preFinalize.emit();\n        }\n\n        // leave current step\n        wizard.currentStep.completed = true;\n        wizard.currentStep.exit(movingDirection);\n        wizard.currentStep.editing = false;\n        wizard.currentStep.selected = false;\n\n        this.transition(wizard, destinationIndex);\n\n        // remember if the next step is already completed before entering it to properly set `editing` flag\n        const wasCompleted = wizard.completed || wizard.currentStep.completed;\n\n        // go to next step\n        wizard.currentStep.enter(movingDirection);\n        wizard.currentStep.selected = true;\n        if (wasCompleted) {\n          wizard.currentStep.editing = true;\n        }\n\n        /* istanbul ignore if */\n        if (postFinalize) {\n          postFinalize.emit();\n        }\n      } else {\n        // if the current step can't be left, reenter the current step\n        wizard.currentStep.exit(MovingDirection.Stay);\n        wizard.currentStep.enter(MovingDirection.Stay);\n      }\n    });\n  }\n\n  /**\n   * Transitions the wizard to the given step index.\n   *\n   * Can perform additional actions in particular navigation mode implementations.\n   *\n   * @param wizard The wizard component to operate on\n   * @param destinationIndex The index of the destination wizard step\n   */\n  protected transition(wizard: WizardComponent, destinationIndex: number): void {\n    wizard.currentStepIndex = destinationIndex;\n  }\n\n  /**\n   * @inheritDoc\n   */\n  public abstract isNavigable(WizardComponent: WizardComponent, destinationIndex: number): boolean;\n\n  /**\n   * Resets the state of this wizard.\n   *\n   * A reset transitions the wizard automatically to the first step and sets all steps as incomplete.\n   * In addition the whole wizard is set as incomplete.\n   *\n   * @param wizard The wizard component to operate on\n   */\n  public reset(wizard: WizardComponent): void {\n    this.ensureCanReset(wizard);\n\n    // reset the step internal state\n    wizard.wizardSteps.forEach(step => {\n      step.completed = step.initiallyCompleted;\n      step.selected = false;\n      step.editing = false;\n    });\n\n    // set the first step as the current step\n    wizard.currentStepIndex = wizard.defaultStepIndex;\n    wizard.currentStep.selected = true;\n    wizard.currentStep.enter(MovingDirection.Forwards);\n  }\n\n  /**\n   * Checks if wizard configuration allows to perform reset.\n   *\n   * A check failure is indicated by throwing an `Error` with the message discribing the discovered misconfiguration issue.\n   *\n   * Can include additional checks in particular navigation mode implementations.\n   *\n   * @param wizard The wizard component to operate on\n   * @throws An `Error` is thrown, if a micconfiguration issue is discovered.\n   */\n  protected ensureCanReset(wizard: WizardComponent): void {\n    // the wizard doesn't contain a step with the default step index\n    if (!wizard.hasStep(wizard.defaultStepIndex)) {\n      throw new Error(`The wizard doesn't contain a step with index ${wizard.defaultStepIndex}`);\n    }\n  }\n}\n","import {BaseNavigationMode} from './base-navigation-mode.interface';\nimport {WizardComponent} from '../components/wizard.component';\nimport {WizardCompletionStep} from '../util/wizard-completion-step.interface';\n\n/**\n * The default navigation mode used by [[WizardComponent]] and [[NavigationModeDirective]].\n *\n * It is parameterized with two navigation policies passed to constructor:\n *\n * - [[navigateBackward]] policy controls whether wizard steps before the current step are navigable:\n *\n *   - `\"deny\"` -- the steps are not navigable\n *   - `\"allow\"` -- the steps are navigable\n *   - If the corresponding constructor argument is omitted or is `null` or `undefined`,\n *     then the default value is applied which is `\"deny\"`\n *\n * - [[navigateForward]] policy controls whether wizard steps after the current step are navigable:\n *\n *   - `\"deny\"` -- the steps are not navigable\n *   - `\"allow\"` -- the steps are navigable\n *   - `\"visited\"` -- a step is navigable iff it was already visited before\n *   - If the corresponding constructor argument is omitted or is `null` or `undefined`,\n *     then the default value is applied which is `\"allow\"`\n */\nexport class ConfigurableNavigationMode extends BaseNavigationMode {\n\n  /**\n   * Constructor\n   *\n   * @param navigateBackward Controls whether wizard steps before the current step are navigable\n   * @param navigateForward Controls whether wizard steps before the current step are navigable\n   */\n  constructor(\n    private navigateBackward: 'allow'|'deny'|null = null,\n    private navigateForward: 'allow'|'deny'|'visited'|null = null,\n  ) {\n    super();\n    this.navigateBackward = this.navigateBackward || 'allow';\n    this.navigateForward = this.navigateForward || 'deny';\n  }\n\n  /**\n   * @inheritDoc\n   */\n  protected canTransitionToStep(wizard: WizardComponent, destinationIndex: number): boolean {\n    // if the destination step can be navigated to using the navigation bar,\n    // it should be accessible with [goToStep] as well\n    if (this.isNavigable(wizard, destinationIndex)) {\n      return true;\n    }\n\n    // navigation with [goToStep] is permitted if all previous steps\n    // to the destination step have been completed or are optional\n    return wizard.wizardSteps\n        .filter((step, index) => index < destinationIndex && index !== wizard.currentStepIndex)\n        .every(step => step.completed || step.optional);\n  }\n\n  /**\n   * @inheritDoc\n   */\n  protected transition(wizard: WizardComponent, destinationIndex: number): void {\n    if (this.navigateForward === 'deny') {\n      // set all steps after the destination step to incomplete\n      wizard.wizardSteps\n        .filter((step, index) => wizard.currentStepIndex > destinationIndex && index > destinationIndex)\n        .forEach(step => step.completed = false);\n    }\n\n    super.transition(wizard, destinationIndex);\n  }\n\n  /**\n   * @inheritDoc\n   */\n  public isNavigable(wizard: WizardComponent, destinationIndex: number): boolean {\n    // Check if the destination step can be navigated to\n    const destinationStep = wizard.getStepAtIndex(destinationIndex);\n    if (destinationStep instanceof WizardCompletionStep) {\n      // A completion step can only be entered, if all previous steps have been completed, are optional, or selected\n      const previousStepsCompleted = wizard.wizardSteps\n        .filter((step, index) => index < destinationIndex)\n        .every(step => step.completed || step.optional || step.selected);\n      if (!previousStepsCompleted) {\n        return false;\n      }\n    }\n\n    // Apply navigation pocicies\n    if (destinationIndex < wizard.currentStepIndex) {\n      // If the destination step is before current, apply the `navigateBackward` policy\n      switch (this.navigateBackward) {\n        case 'allow': return true;\n        case 'deny': return false;\n        default:\n          throw new Error(`Invalid value for navigateBackward: ${this.navigateBackward}`);\n      }\n    } else if (destinationIndex > wizard.currentStepIndex) {\n      // If the destination step is after current, apply the `navigateForward` policy\n      switch (this.navigateForward) {\n        case 'allow': return true;\n        case 'deny': return false;\n        case 'visited': return destinationStep.completed;\n        default:\n          throw new Error(`Invalid value for navigateForward: ${this.navigateForward}`);\n      }\n    } else {\n      // Re-entering the current step is not allowed\n      return false;\n    }\n  }\n\n  /**\n   * @inheritDoc\n   */\n  protected ensureCanReset(wizard: WizardComponent): void {\n    super.ensureCanReset(wizard);\n\n    // the default step is a completion step and the wizard contains more than one step\n    const defaultWizardStep = wizard.getStepAtIndex(wizard.defaultStepIndex);\n    const defaultCompletionStep = defaultWizardStep instanceof WizardCompletionStep;\n    if (defaultCompletionStep && wizard.wizardSteps.length !== 1) {\n      throw new Error(`The default step index ${wizard.defaultStepIndex} references a completion step`);\n    }\n  }\n}\n","import {\n  AfterContentInit,\n  Component,\n  ContentChildren,\n  HostBinding,\n  Input,\n  QueryList,\n  EventEmitter\n} from '@angular/core';\nimport {NavigationMode} from '../navigation/navigation-mode.interface';\nimport {WizardStep} from '../util/wizard-step.interface';\nimport {MovingDirection} from '../util/moving-direction.enum';\nimport {ConfigurableNavigationMode} from '../navigation/configurable-navigation-mode';\nimport { WizardBase } from '../util/wizard.interface';\n\n/**\n * The `aw-wizard` component defines the root component of a wizard.\n * Through the setting of input parameters for the `aw-wizard` component it's possible to change the location and size\n * of its navigation bar.\n *\n * ### Syntax\n * ```html\n * <aw-wizard [navBarLocation]=\"location of navigation bar\" [navBarLayout]=\"layout of navigation bar\">\n *     ...\n * </aw-wizard>\n * ```\n *\n * ### Example\n *\n * Without completion step:\n *\n * ```html\n * <aw-wizard navBarLocation=\"top\" navBarLayout=\"small\">\n *     <aw-wizard-step>...</aw-wizard-step>\n *     <aw-wizard-step>...</aw-wizard-step>\n * </aw-wizard>\n * ```\n *\n * With completion step:\n *\n * ```html\n * <aw-wizard navBarLocation=\"top\" navBarLayout=\"small\">\n *     <aw-wizard-step>...</aw-wizard-step>\n *     <aw-wizard-step>...</aw-wizard-step>\n *     <aw-wizard-completion-step>...</aw-wizard-completion-step>\n * </aw-wizard>\n * ```\n *\n * @author Marc Arndt\n */\n@Component({\n  selector: 'aw-wizard',\n  templateUrl: 'wizard.component.html',\n  providers: [\n    { provide: WizardBase, useExisting: WizardComponent }\n  ]\n})\nexport class WizardComponent implements WizardBase, AfterContentInit {\n  /**\n   * A QueryList containing all [[WizardStep]]s inside this wizard\n   */\n  @ContentChildren(WizardStep, { descendants: true })\n  public wizardStepsQueryList: QueryList<WizardStep>;\n\n  /**\n   * The location of the navigation bar inside the wizard.\n   * This location can be either top, bottom, left or right\n   */\n  @Input()\n  public navBarLocation = 'top';\n\n  /**\n   * The layout of the navigation bar inside the wizard.\n   * The layout can be either small, large-filled, large-empty or large-symbols\n   */\n  @Input()\n  public navBarLayout = 'small';\n\n  /**\n   * The direction in which the steps inside the navigation bar should be shown.\n   * The direction can be either `left-to-right` or `right-to-left`\n   */\n  @Input()\n  public navBarDirection = 'left-to-right';\n\n  /**\n   * The initially selected step, represented by its index\n   * Beware: This initial default is only used if no wizard step has been enhanced with the `selected` directive\n   */\n  @Input()\n  public get defaultStepIndex(): number {\n    // This value can be either:\n    // - the index of a wizard step with a `selected` directive, or\n    // - the default step index, set in the [[WizardComponent]]\n\n    const foundDefaultStep = this.wizardSteps.find(step => step.defaultSelected);\n\n    if (foundDefaultStep) {\n      return this.getIndexOfStep(foundDefaultStep);\n    } else {\n      return this._defaultStepIndex;\n    }\n  }\n  public set defaultStepIndex(defaultStepIndex: number) {\n    this._defaultStepIndex = defaultStepIndex;\n  }\n  private _defaultStepIndex = 0;\n\n  /**\n   * True, if the navigation bar shouldn't be used for navigating\n   */\n  @Input()\n  public disableNavigationBar = false;\n\n  /**\n   * The navigation mode used to navigate inside the wizard\n   *\n   * For outside access, use the [[navigation]] getter.\n   */\n  private _navigation: NavigationMode = new ConfigurableNavigationMode();\n\n  /**\n   * An array representation of all wizard steps belonging to this model\n   *\n   * For outside access, use the [[wizardSteps]] getter.\n   */\n  private _wizardSteps: WizardStep[] = [];\n\n  /**\n   * The index of the currently visible and selected step inside the wizardSteps QueryList.\n   * If this wizard contains no steps, currentStepIndex is -1\n   *\n   * Note: Do not modify this field directly.  Instead, use navigation methods:\n   * [[goToStep]], [[goToPreviousStep]], [[goToNextStep]].\n   */\n  public currentStepIndex = -1;\n\n  /**\n   * Constructor\n   */\n  constructor() {\n  }\n\n  /**\n   * Returns true if this wizard uses a horizontal orientation.\n   * The wizard uses a horizontal orientation, iff the navigation bar is shown at the top or bottom of this wizard\n   *\n   * @returns True if this wizard uses a horizontal orientation\n   */\n  @HostBinding('class.horizontal')\n  public get horizontalOrientation(): boolean {\n    return this.navBarLocation === 'top' || this.navBarLocation === 'bottom';\n  }\n\n  /**\n   * Returns true if this wizard uses a vertical orientation.\n   * The wizard uses a vertical orientation, iff the navigation bar is shown at the left or right of this wizard\n   *\n   * @returns True if this wizard uses a vertical orientation\n   */\n  @HostBinding('class.vertical')\n  public get verticalOrientation(): boolean {\n    return this.navBarLocation === 'left' || this.navBarLocation === 'right';\n  }\n\n  /**\n   * Initialization work\n   */\n  public ngAfterContentInit(): void {\n    // add a subscriber to the wizard steps QueryList to listen to changes in the DOM\n    this.wizardStepsQueryList.changes.subscribe(changedWizardSteps => {\n      this.updateWizardSteps(changedWizardSteps.toArray());\n    });\n\n    // initialize the model\n    this.updateWizardSteps(this.wizardStepsQueryList.toArray());\n\n    // finally reset the whole wizard component\n    setTimeout(() => this.reset());\n  }\n\n  /**\n   * The WizardStep object belonging to the currently visible and selected step.\n   * The currentStep is always the currently selected wizard step.\n   * The currentStep can be either completed, if it was visited earlier,\n   * or not completed, if it is visited for the first time or its state is currently out of date.\n   *\n   * If this wizard contains no steps, currentStep is null\n   */\n  public get currentStep(): WizardStep {\n    if (this.hasStep(this.currentStepIndex)) {\n      return this.wizardSteps[this.currentStepIndex];\n    } else {\n      return null;\n    }\n  }\n\n  /**\n   * The completeness of the wizard.\n   * If the wizard has been completed, i.e. all steps are either completed or optional, this value is true, otherwise it is false\n   */\n  public get completed(): boolean {\n    return this.wizardSteps.every(step => step.completed || step.optional);\n  }\n\n  /**\n   * An array representation of all wizard steps belonging to this model\n   */\n  public get wizardSteps(): WizardStep[] {\n    return this._wizardSteps;\n  }\n\n  /**\n   * Updates the wizard steps to the new array\n   *\n   * @param wizardSteps The updated wizard steps\n   */\n  private updateWizardSteps(wizardSteps: WizardStep[]): void {\n    // the wizard is currently not in the initialization phase\n    if (this.wizardSteps.length > 0 && this.currentStepIndex > -1) {\n      this.currentStepIndex = wizardSteps.indexOf(this.wizardSteps[this.currentStepIndex]);\n    }\n\n    this._wizardSteps = wizardSteps;\n  }\n\n  /**\n   * The navigation mode used to navigate inside the wizard\n   */\n  public get navigation(): NavigationMode {\n    return this._navigation;\n  }\n\n  /**\n   * Updates the navigation mode for this wizard component\n   *\n   * @param navigation The updated navigation mode\n   */\n  public set navigation(navigation: NavigationMode) {\n    this._navigation = navigation;\n  }\n\n  /**\n   * Checks if a given index `stepIndex` is inside the range of possible wizard steps inside this wizard\n   *\n   * @param stepIndex The to be checked index of a step inside this wizard\n   * @returns True if the given `stepIndex` is contained inside this wizard, false otherwise\n   */\n  public hasStep(stepIndex: number): boolean {\n    return this.wizardSteps.length > 0 && 0 <= stepIndex && stepIndex < this.wizardSteps.length;\n  }\n\n  /**\n   * Checks if this wizard has a previous step, compared to the current step\n   *\n   * @returns True if this wizard has a previous step before the current step\n   */\n  public hasPreviousStep(): boolean {\n    return this.hasStep(this.currentStepIndex - 1);\n  }\n\n  /**\n   * Checks if this wizard has a next step, compared to the current step\n   *\n   * @returns True if this wizard has a next step after the current step\n   */\n  public hasNextStep(): boolean {\n    return this.hasStep(this.currentStepIndex + 1);\n  }\n\n  /**\n   * Checks if this wizard is currently inside its last step\n   *\n   * @returns True if the wizard is currently inside its last step\n   */\n  public isLastStep(): boolean {\n    return this.wizardSteps.length > 0 && this.currentStepIndex === this.wizardSteps.length - 1;\n  }\n\n  /**\n   * Finds the [[WizardStep]] at the given index `stepIndex`.\n   * If no [[WizardStep]] exists at the given index an Error is thrown\n   *\n   * @param stepIndex The given index\n   * @returns The found [[WizardStep]] at the given index `stepIndex`\n   * @throws An `Error` is thrown, if the given index `stepIndex` doesn't exist\n   */\n  public getStepAtIndex(stepIndex: number): WizardStep {\n    if (!this.hasStep(stepIndex)) {\n      throw new Error(`Expected a known step, but got stepIndex: ${stepIndex}.`);\n    }\n\n    return this.wizardSteps[stepIndex];\n  }\n\n  /**\n   * Finds the index of the step with the given `stepId`.\n   * If no step with the given `stepId` exists, `-1` is returned\n   *\n   * @param stepId The given step id\n   * @returns The found index of a step with the given step id, or `-1` if no step with the given id is included in the wizard\n   */\n  public getIndexOfStepWithId(stepId: string): number {\n    return this.wizardSteps.findIndex(step => step.stepId === stepId);\n  }\n\n  /**\n   * Finds the index of the given [[WizardStep]] `step`.\n   * If the given [[WizardStep]] is not contained inside this wizard, `-1` is returned\n   *\n   * @param step The given [[WizardStep]]\n   * @returns The found index of `step` or `-1` if the step is not included in the wizard\n   */\n  public getIndexOfStep(step: WizardStep): number {\n    return this.wizardSteps.indexOf(step);\n  }\n\n  /**\n   * Calculates the correct [[MovingDirection]] value for a given `destinationStep` compared to the `currentStepIndex`.\n   *\n   * @param destinationStep The given destination step\n   * @returns The calculated [[MovingDirection]]\n   */\n  public getMovingDirection(destinationStep: number): MovingDirection {\n    let movingDirection: MovingDirection;\n\n    if (destinationStep > this.currentStepIndex) {\n      movingDirection = MovingDirection.Forwards;\n    } else if (destinationStep < this.currentStepIndex) {\n      movingDirection = MovingDirection.Backwards;\n    } else {\n      movingDirection = MovingDirection.Stay;\n    }\n\n    return movingDirection;\n  }\n\n  /**\n   * Checks, whether a wizard step, as defined by the given destination index, can be transitioned to.\n   *\n   * This method controls navigation by [[goToStep]], [[goToPreviousStep]], and [[goToNextStep]] directives.\n   * Navigation by navigation bar is governed by [[isNavigable]].\n   *\n   * @param destinationIndex The index of the destination step\n   * @returns A [[Promise]] containing `true`, if the destination step can be transitioned to and false otherwise\n   */\n  public canGoToStep(destinationIndex: number): Promise<boolean> {\n    return this.navigation.canGoToStep(this, destinationIndex);\n  }\n\n  /**\n   * Tries to transition to the wizard step, as denoted by the given destination index.\n   *\n   * Note: You do not have to call [[canGoToStep]] before calling [[goToStep]].\n   * The [[canGoToStep]] method will be called automatically.\n   *\n   * @param destinationIndex The index of the destination wizard step, which should be entered\n   * @param preFinalize An event emitter, to be called before the step has been transitioned\n   * @param postFinalize An event emitter, to be called after the step has been transitioned\n   */\n  public goToStep(destinationIndex: number, preFinalize?: EventEmitter<void>, postFinalize?: EventEmitter<void>): void {\n    return this.navigation.goToStep(this, destinationIndex, preFinalize, postFinalize);\n  }\n\n  /**\n   * Tries to transition the wizard to the previous step\n   *\n   * @param preFinalize An event emitter, to be called before the step has been transitioned\n   * @param postFinalize An event emitter, to be called after the step has been transitioned\n   */\n  public goToPreviousStep(preFinalize?: EventEmitter<void>, postFinalize?: EventEmitter<void>): void {\n    return this.navigation.goToStep(this, this.currentStepIndex - 1, preFinalize, postFinalize);\n  }\n\n  /**\n   * Tries to transition the wizard to the next step\n   *\n   * @param preFinalize An event emitter, to be called before the step has been transitioned\n   * @param postFinalize An event emitter, to be called after the step has been transitioned\n   */\n  public goToNextStep(preFinalize?: EventEmitter<void>, postFinalize?: EventEmitter<void>): void {\n    return this.navigation.goToStep(this, this.currentStepIndex + 1, preFinalize, postFinalize);\n  }\n\n  /**\n   * Checks, whether the wizard step, located at the given index, can be navigated to using the navigation bar.\n   *\n   * @param destinationIndex The index of the destination step\n   * @returns True if the step can be navigated to, false otherwise\n   */\n  public isNavigable(destinationIndex: number): boolean {\n    return this.navigation.isNavigable(this, destinationIndex);\n  }\n\n  /**\n   * Resets the state of this wizard.\n   */\n  public reset(): void {\n    this.navigation.reset(this);\n  }\n}\n","<aw-wizard-navigation-bar\n  *ngIf=\"navBarLocation === 'top' || navBarLocation === 'left'\"\n  [ngClass]=\"{\n    'vertical': navBarLocation === 'left',\n    'horizontal': navBarLocation === 'top',\n    'small': navBarLayout === 'small',\n    'large-filled': navBarLayout === 'large-filled',\n    'large-filled-symbols': navBarLayout === 'large-filled-symbols',\n    'large-empty': navBarLayout === 'large-empty',\n    'large-empty-symbols': navBarLayout === 'large-empty-symbols'\n  }\">\n</aw-wizard-navigation-bar>\n\n<div [ngClass]=\"{\n  'wizard-steps': true,\n  'vertical': navBarLocation === 'left' || navBarLocation === 'right',\n  'horizontal': navBarLocation === 'top' || navBarLocation === 'bottom'\n}\">\n  <ng-content></ng-content>\n</div>\n\n<aw-wizard-navigation-bar\n  *ngIf=\"navBarLocation === 'bottom' || navBarLocation === 'right'\"\n  [ngClass]=\"{\n    'vertical': navBarLocation === 'right',\n    'horizontal': navBarLocation === 'bottom',\n    'small': navBarLayout === 'small',\n    'large-filled': navBarLayout === 'large-filled',\n    'large-filled-symbols': navBarLayout === 'large-filled-symbols',\n    'large-empty': navBarLayout === 'large-empty',\n    'large-empty-symbols': navBarLayout === 'large-empty-symbols'\n  }\">\n</aw-wizard-navigation-bar>\n","import { Directive, EventEmitter, Host, OnInit, Output } from '@angular/core';\nimport { MovingDirection } from '../util/moving-direction.enum';\nimport { WizardCompletionStep } from '../util/wizard-completion-step.interface';\n\n/**\n * The `awEnableBackLinks` directive can be used to allow the user to leave a [[WizardCompletionStep]] after is has been entered.\n *\n * ### Syntax\n *\n * ```html\n * <aw-wizard-completion-step awEnableBackLinks (stepExit)=\"exit function\">\n *     ...\n * </aw-wizard-completion-step>\n * ```\n *\n * ### Example\n *\n * ```html\n * <aw-wizard-completion-step stepTitle=\"Final step\" awEnableBackLinks>\n *     ...\n * </aw-wizard-completion-step>\n * ```\n *\n * @author Marc Arndt\n */\n@Directive({\n  selector: '[awEnableBackLinks]'\n})\nexport class EnableBackLinksDirective implements OnInit {\n  /**\n   * This EventEmitter is called when the step is exited.\n   * The bound method can be used to do cleanup work.\n   */\n  @Output()\n  public stepExit = new EventEmitter<MovingDirection>();\n\n  /**\n   * Constructor\n   *\n   * @param completionStep The wizard completion step, which should be exitable\n   */\n  constructor(@Host() private completionStep: WizardCompletionStep) {\n  }\n\n  /**\n   * Initialization work\n   */\n  public ngOnInit(): void {\n    this.completionStep.canExit = true;\n    this.completionStep.stepExit = this.stepExit;\n  }\n}\n","import {Directive, EventEmitter, HostListener, Output} from '@angular/core';\nimport {WizardComponent} from '../components/wizard.component';\n\n/**\n * The `awNextStep` directive can be used to navigate to the next step.\n *\n * ### Syntax\n *\n * ```html\n * <button awNextStep (finalize)=\"finalize method\">...</button>\n * ```\n *\n * @author Marc Arndt\n */\n@Directive({\n  selector: '[awNextStep]'\n})\nexport class NextStepDirective {\n  /**\n   * This [[EventEmitter]] is called directly before the current step is exited during a transition through a component with this directive.\n   */\n  @Output()\n  public preFinalize: EventEmitter<void> = new EventEmitter();\n\n  /**\n   * This [[EventEmitter]] is called directly after the current step is exited during a transition through a component with this directive.\n   */\n  @Output()\n  public postFinalize: EventEmitter<void> = new EventEmitter();\n\n  /**\n   * Constructor\n   *\n   * @param wizard The state of the wizard\n   */\n  constructor(private wizard: WizardComponent) {\n  }\n\n  /**\n   * A convenience field for `preFinalize`\n   */\n  public get finalize(): EventEmitter<void> {\n    return this.preFinalize;\n  }\n\n  /**\n   * A convenience name for `preFinalize`\n   *\n   * @param emitter The [[EventEmitter]] to be set\n   */\n  @Output()\n  public set finalize(emitter: EventEmitter<void>) {\n    this.preFinalize = emitter;\n  }\n\n  /**\n   * Listener method for `click` events on the component with this directive.\n   * After this method is called the wizard will try to transition to the next step\n   */\n  @HostListener('click')\n  public onClick(): void {\n    this.wizard.goToNextStep(this.preFinalize, this.postFinalize);\n  }\n}\n","import {Directive, Host, Input, OnInit} from '@angular/core';\nimport {WizardStep} from '../util/wizard-step.interface';\n\n/**\n * The `awOptionalStep` directive can be used to define an optional `wizard-step`.\n * An optional wizard step is a [[WizardStep]] that doesn't need to be completed to transition to later wizard steps.\n *\n * ### Syntax\n *\n * ```html\n * <aw-wizard-step awOptionalStep>\n *     ...\n * </aw-wizard-step>\n * ```\n *\n * ### Example\n *\n * ```html\n * <aw-wizard-step stepTitle=\"Second step\" awOptionalStep>\n *     ...\n * </aw-wizard-step>\n * ```\n *\n * @author Marc Arndt\n */\n@Directive({\n  selector: '[awOptionalStep]'\n})\nexport class OptionalStepDirective implements OnInit {\n\n  // tslint:disable-next-line:no-input-rename\n  @Input('awOptionalStep')\n  public optional = true;\n\n  /**\n   * Constructor\n   *\n   * @param wizardStep The wizard step, which contains this [[OptionalStepDirective]]\n   */\n  constructor(@Host() private wizardStep: WizardStep) {\n  }\n\n  /**\n   * Initialization work\n   */\n  public ngOnInit(): void {\n    // The input receives '' when specified in the template without a value.  In this case, apply the default value (`true`).\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    this.wizardStep.optional = this.optional || this.optional as any === '';\n  }\n}\n","import {Directive, EventEmitter, HostListener, Output} from '@angular/core';\nimport {WizardComponent} from '../components/wizard.component';\n\n/**\n * The `awPreviousStep` directive can be used to navigate to the previous step.\n * Compared to the [[NextStepDirective]] it's important to note, that this directive doesn't contain a `finalize` output method.\n *\n * ### Syntax\n *\n * ```html\n * <button awPreviousStep>...</button>\n * ```\n *\n * @author Marc Arndt\n */\n@Directive({\n  selector: '[awPreviousStep]'\n})\nexport class PreviousStepDirective {\n  /**\n   * This [[EventEmitter]] is called directly before the current step is exited during a transition through a component with this directive.\n   */\n  @Output()\n  public preFinalize: EventEmitter<void> = new EventEmitter();\n\n  /**\n   * This [[EventEmitter]] is called directly after the current step is exited during a transition through a component with this directive.\n   */\n  @Output()\n  public postFinalize: EventEmitter<void> = new EventEmitter();\n\n  /**\n   * Constructor\n   *\n   * @param wizard The state of the wizard\n   */\n  constructor(private wizard: WizardComponent) {\n  }\n\n  /**\n   * A convenience field for `preFinalize`\n   */\n  public get finalize(): EventEmitter<void> {\n    return this.preFinalize;\n  }\n\n  /**\n   * A convenience field for `preFinalize`\n   *\n   * @param emitter The [[EventEmitter]] to be set\n   */\n  @Output()\n  public set finalize(emitter: EventEmitter<void>) {\n    /* istanbul ignore next */\n    this.preFinalize = emitter;\n  }\n\n  /**\n   * Listener method for `click` events on the component with this directive.\n   * After this method is called the wizard will try to transition to the previous step\n   */\n  @HostListener('click')\n  public onClick(): void {\n    this.wizard.goToPreviousStep(this.preFinalize, this.postFinalize);\n  }\n}\n","import {Directive, EventEmitter, HostListener, Output} from '@angular/core';\nimport {WizardComponent} from '../components/wizard.component';\n\n/**\n * The `awResetWizard` directive can be used to reset the wizard to its initial state.\n * This directive accepts an output, which can be used to specify some custom cleanup work during the reset process.\n *\n * ### Syntax\n *\n * ```html\n * <button awResetWizard (finalize)=\"custom reset task\">...</button>\n * ```\n *\n * @author Marc Arndt\n */\n@Directive({\n  selector: '[awResetWizard]'\n})\nexport class ResetWizardDirective {\n  /**\n   * An [[EventEmitter]] containing some tasks to be done, directly before the wizard is being reset\n   */\n  @Output()\n  public finalize: EventEmitter<void> = new EventEmitter();\n\n  /**\n   * Constructor\n   *\n   * @param wizard The wizard component\n   */\n  constructor(private wizard: WizardComponent) {\n  }\n\n  /**\n   * Resets the wizard\n   */\n  @HostListener('click')\n  public onClick(): void {\n    // do some optional cleanup work\n    this.finalize.emit();\n    // reset the wizard to its initial state\n    this.wizard.reset();\n  }\n}\n","import {Directive, Host, OnInit} from '@angular/core';\nimport {WizardStep} from '../util/wizard-step.interface';\n\n/**\n * The `awSelectedStep` directive can be used on a [[WizardStep]] to set it as selected after the wizard initialisation or a reset.\n *\n * ### Syntax\n *\n * ```html\n * <aw-wizard-step stepTitle=\"Step title\" awSelectedStep>\n *     ...\n * </aw-wizard-step>\n * ```\n *\n * @author Marc Arndt\n */\n@Directive({\n  selector: '[awSelectedStep]'\n})\nexport class SelectedStepDirective implements OnInit {\n  /**\n   * Constructor\n   *\n   * @param wizardStep The wizard step, which should be selected by default\n   */\n  constructor(@Host() private wizardStep: WizardStep) {\n  }\n\n  /**\n   * Initialization work\n   */\n  public ngOnInit(): void {\n    this.wizardStep.defaultSelected = true;\n  }\n}\n","import {Directive, forwardRef} from '@angular/core';\nimport {WizardCompletionStep} from '../util/wizard-completion-step.interface';\nimport {WizardStep} from '../util/wizard-step.interface';\n\n/**\n * The `awWizardCompletionStep` directive can be used to define a completion/success step at the end of your wizard\n * After a [[WizardCompletionStep]] has been entered, it has the characteristic that the user is blocked from\n * leaving it again to a previous step.\n * In addition entering a [[WizardCompletionStep]] automatically sets the `wizard`, and all steps inside the `wizard`,\n * as completed.\n *\n * ### Syntax\n *\n * ```html\n * <div awWizardCompletionStep [stepTitle]=\"title of the wizard step\"\n *    [navigationSymbol]=\"{ symbol: 'navigation symbol', fontFamily: 'font-family' }\"\n *    (stepEnter)=\"event emitter to be called when the wizard step is entered\"\n *    (stepExit)=\"event emitter to be called when the wizard step is exited\">\n *    ...\n * </div>\n * ```\n *\n * ### Example\n *\n * ```html\n * <div awWizardCompletionStep stepTitle=\"Step 1\" [navigationSymbol]=\"{ symbol: '1' }\">\n *    ...\n * </div>\n * ```\n *\n * With a navigation symbol from the `font-awesome` font:\n *\n * ```html\n * <div awWizardCompletionStep stepTitle=\"Step 1\" [navigationSymbol]=\"{ symbol: '&#xf1ba;', fontFamily: 'FontAwesome' }\">\n *    ...\n * </div>\n * ```\n *\n * @author Marc Arndt\n */\n@Directive({\n  selector: '[awWizardCompletionStep]',\n  providers: [\n    {provide: WizardStep, useExisting: forwardRef(() => WizardCompletionStepDirective)},\n    {provide: WizardCompletionStep, useExisting: forwardRef(() => WizardCompletionStepDirective)}\n  ]\n})\nexport class WizardCompletionStepDirective extends WizardCompletionStep {\n}\n","import {Directive, forwardRef} from '@angular/core';\nimport {WizardStep} from '../util/wizard-step.interface';\n\n/**\n * The `awWizardStep` directive can be used to define a normal step inside a wizard.\n *\n * ### Syntax\n *\n * With `stepTitle` and `navigationSymbol` inputs:\n *\n * ```html\n * <div awWizardStep [stepTitle]=\"step title\" [navigationSymbol]=\"{ symbol: 'symbol', fontFamily: 'font-family' }\"\n *    [canExit]=\"deciding function\" (stepEnter)=\"enter function\" (stepExit)=\"exit function\">\n *    ...\n * </div>\n * ```\n *\n * With `awWizardStepTitle` and `awWizardStepSymbol` directives:\n *\n * ```html\n * <div awWizardStep [canExit]=\"deciding function\" (stepEnter)=\"enter function\" (stepExit)=\"exit function\">\n *    <ng-template awWizardStepTitle>\n *        step title\n *    </ng-template>\n *    <ng-template awWizardStepSymbol>\n *        symbol\n *    </ng-template>\n *    ...\n * </div>\n * ```\n *\n * ### Example\n *\n * With `stepTitle` and `navigationSymbol` inputs:\n *\n * ```html\n * <div awWizardStep stepTitle=\"Address information\" [navigationSymbol]=\"{ symbol: '&#xf1ba;', fontFamily: 'FontAwesome' }\">\n *    ...\n * </div>\n * ```\n *\n * With `awWizardStepTitle` and `awWizardStepSymbol` directives:\n *\n * ```html\n * <div awWizardStep>\n *    <ng-template awWizardStepTitle>\n *        Address information\n *    </ng-template>\n *    <ng-template awWizardStepSymbol>\n *        <i class=\"fa fa-taxi\"></i>\n *    </ng-template>\n * </div>\n * ```\n *\n * @author Marc Arndt\n */\n@Directive({\n  selector: '[awWizardStep]',\n  providers: [\n    {provide: WizardStep, useExisting: forwardRef(() => WizardStepDirective)}\n  ]\n})\nexport class WizardStepDirective extends WizardStep {\n}\n","import {Directive, Input, OnChanges} from '@angular/core';\n\nimport {NavigationMode} from '../navigation/navigation-mode.interface';\nimport {ConfigurableNavigationMode} from '../navigation/configurable-navigation-mode';\nimport {WizardComponent} from '../components/wizard.component';\n\n\n/**\n * The [[awNavigationMode]] directive can be used to customize wizard'd navigation mode.\n *\n * There are several usage options:\n *\n * ### Option 1. Customize the default navigation mode with [[navigateBackward]] and/or [[navigateForward]] inputs.\n *\n * ```html\n * <aw-wizard [awNavigationMode] navigateBackward=\"deny\" navigateForward=\"allow\">...</aw-wizard>\n * ```\n *\n * ### Option 2. Pass in a custom navigation mode\n *\n * ```typescript\n * import { BaseNavigationMode } from 'angular-archwizard'\n *\n * class CustomNavigationMode extends BaseNavigationMode {\n *\n *   // ...\n * }\n * ```\n *\n * ```typescript\n * @Component({\n *   // ...\n * })\n * class MyComponent {\n *\n *   navigationMode = new CustomNavigationMode();\n * }\n * ```\n *\n * ```html\n * <aw-wizard [awNavigationMode]=\"navigationMode\">...</aw-wizard>\n * ```\n *\n * ### Additional Notes\n *\n * - Specifying a custom navigation mode takes priority over [[navigateBackward]] and [[navigateForward]] inputs\n *\n * - Omitting the [[awNavigationMode]] directive or, equally, specifying just [[awNavigationMode]] without\n *   any inputs or parameters causes the wizard to use the default \"strict\" navigation mode equivalent to\n *\n * ```html\n * <aw-wizard [awNavigationMode] navigateBackward=\"deny\" navigateForward=\"allow\">...</aw-wizard>\n * ````\n */\n@Directive({\n  selector: '[awNavigationMode]',\n})\nexport class NavigationModeDirective implements OnChanges {\n\n  /**\n   * Custom navigation mode instance (optional).\n   */\n  @Input()\n  public awNavigationMode: NavigationMode|null;\n\n  /**\n   * A parameter for the default navigation mode.  Controls whether wizard steps before the current step are navigable:\n   *\n   * - `navigateBackward=\"deny\"` -- the steps are not navigable\n   * - `navigateBackward=\"allow\"` -- the steps are navigable\n   */\n  @Input()\n  public navigateBackward: 'allow'|'deny'|null;\n\n  /**\n   * A parameter for the default navigation mode.  Controls whether wizard steps after the current step are navigable:\n   *\n   * - `navigateForward=\"deny\"` -- the steps are not navigable\n   * - `navigateForward=\"allow\"` -- the steps are navigable\n   * - `navigateForward=\"visited\"` -- a step is navigable iff it was already visited before\n   */\n  @Input()\n  public navigateForward: 'allow'|'deny'|'visited'|null;\n\n  constructor(private wizard: WizardComponent) { }\n\n  public ngOnChanges(): void {\n    this.wizard.navigation = this.getNavigationMode();\n  }\n\n  private getNavigationMode(): NavigationMode {\n    if (this.awNavigationMode) {\n      return this.awNavigationMode;\n    }\n    return new ConfigurableNavigationMode(this.navigateBackward, this.navigateForward);\n  }\n\n}\n","import {Directive, Host, Input, OnInit} from '@angular/core';\nimport {WizardStep} from '../util/wizard-step.interface';\n\n/**\n * The `awCompletedStep` directive can be used to make a wizard step initially completed.\n *\n * Initially completed steps are shown as completed when the wizard is presented to the user.\n *\n * A typical use case is to make a step initially completed if it is automatically filled with some derived/predefined information.\n *\n * ### Syntax\n *\n * ```html\n * <aw-wizard-step awCompletedStep>\n *     ...\n * </aw-wizard-step>\n * ```\n *\n * An optional boolean condition can be specified:\n *\n * ```html\n * <aw-wizard-step [awCompletedStep]=\"shouldBeCompleted\">\n *     ...\n * </aw-wizard-step>\n * ```\n *\n * ### Example\n *\n * ```html\n * <aw-wizard-step stepTitle=\"First step\" [awCompletedStep]=\"firstStepPrefilled\">\n *     ...\n * </aw-wizard-step>\n * ```\n */\n@Directive({\n  selector: '[awCompletedStep]'\n})\nexport class CompletedStepDirective implements OnInit {\n\n  // tslint:disable-next-line:no-input-rename\n  @Input('awCompletedStep')\n  public initiallyCompleted = true;\n\n  /**\n   * Constructor\n   *\n   * @param wizardStep The wizard step, which contains this [[CompletedStepDirective]]\n   */\n  constructor(@Host() private wizardStep: WizardStep) {\n  }\n\n  /**\n   * Initialization work\n   */\n  public ngOnInit(): void {\n    // The input receives '' when specified in the template without a value.  In this case, apply the default value (`true`).\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    this.wizardStep.initiallyCompleted = this.initiallyCompleted || this.initiallyCompleted as any === '';\n  }\n}\n","import {CommonModule} from '@angular/common';\nimport {ModuleWithProviders, NgModule} from '@angular/core';\nimport {WizardCompletionStepComponent} from './components/wizard-completion-step.component';\nimport {WizardNavigationBarComponent} from './components/wizard-navigation-bar.component';\nimport {WizardStepComponent} from './components/wizard-step.component';\nimport {WizardComponent} from './components/wizard.component';\nimport {EnableBackLinksDirective} from './directives/enable-back-links.directive';\nimport {GoToStepDirective} from './directives/go-to-step.directive';\nimport {NextStepDirective} from './directives/next-step.directive';\nimport {OptionalStepDirective} from './directives/optional-step.directive';\nimport {PreviousStepDirective} from './directives/previous-step.directive';\nimport {ResetWizardDirective} from './directives/reset-wizard.directive';\nimport {SelectedStepDirective} from './directives/selected-step.directive';\nimport {WizardCompletionStepDirective} from './directives/wizard-completion-step.directive';\nimport {WizardStepSymbolDirective} from './directives/wizard-step-symbol.directive';\nimport {WizardStepTitleDirective} from './directives/wizard-step-title.directive';\nimport {WizardStepDirective} from './directives/wizard-step.directive';\nimport {NavigationModeDirective} from './directives/navigation-mode.directive';\nimport {CompletedStepDirective} from './directives/completed-step.directive';\n\n\n/**\n * The module defining all the content inside `angular-archwizard`\n *\n * @author Marc Arndt\n */\n@NgModule({\n  declarations: [\n    WizardComponent,\n    WizardStepComponent,\n    WizardNavigationBarComponent,\n    WizardCompletionStepComponent,\n    GoToStepDirective,\n    NextStepDirective,\n    PreviousStepDirective,\n    OptionalStepDirective,\n    WizardStepSymbolDirective,\n    WizardStepTitleDirective,\n    EnableBackLinksDirective,\n    WizardStepDirective,\n    WizardCompletionStepDirective,\n    SelectedStepDirective,\n    ResetWizardDirective,\n    NavigationModeDirective,\n    CompletedStepDirective,\n  ],\n  imports: [\n    CommonModule\n  ],\n  exports: [\n    WizardComponent,\n    WizardStepComponent,\n    WizardNavigationBarComponent,\n    WizardCompletionStepComponent,\n    GoToStepDirective,\n    NextStepDirective,\n    PreviousStepDirective,\n    OptionalStepDirective,\n    WizardStepSymbolDirective,\n    WizardStepTitleDirective,\n    EnableBackLinksDirective,\n    WizardStepDirective,\n    WizardCompletionStepDirective,\n    SelectedStepDirective,\n    ResetWizardDirective,\n    NavigationModeDirective,\n    CompletedStepDirective,\n  ]\n})\nexport class ArchwizardModule {\n  /* istanbul ignore next */\n  public static forRoot(): ModuleWithProviders<ArchwizardModule> {\n    return {\n      ngModule: ArchwizardModule,\n      providers: [\n        // Nothing here yet\n      ]\n    };\n  }\n}\n","// export the components\nexport {WizardCompletionStepComponent} from './lib/components/wizard-completion-step.component';\nexport {WizardNavigationBarComponent} from './lib/components/wizard-navigation-bar.component';\nexport {WizardStepComponent} from './lib/components/wizard-step.component';\nexport {WizardComponent} from './lib/components/wizard.component';\n\n// export the directives\nexport {EnableBackLinksDirective} from './lib/directives/enable-back-links.directive';\nexport {GoToStepDirective} from './lib/directives/go-to-step.directive';\nexport {NextStepDirective} from './lib/directives/next-step.directive';\nexport {OptionalStepDirective} from './lib/directives/optional-step.directive';\nexport {PreviousStepDirective} from './lib/directives/previous-step.directive';\nexport {ResetWizardDirective} from './lib/directives/reset-wizard.directive';\nexport {SelectedStepDirective} from './lib/directives/selected-step.directive';\nexport {WizardCompletionStepDirective} from './lib/directives/wizard-completion-step.directive';\nexport {WizardStepDirective} from './lib/directives/wizard-step.directive';\nexport {WizardStepTitleDirective} from './lib/directives/wizard-step-title.directive';\nexport {NavigationModeDirective} from './lib/directives/navigation-mode.directive';\nexport {CompletedStepDirective} from './lib/directives/completed-step.directive';\nexport {WizardStepSymbolDirective} from './lib/directives/wizard-step-symbol.directive';\n\n// export the navigation classes\nexport {NavigationMode} from './lib/navigation/navigation-mode.interface';\nexport {ConfigurableNavigationMode} from './lib/navigation/configurable-navigation-mode';\nexport {BaseNavigationMode} from './lib/navigation/base-navigation-mode.interface';\n\n// export the utility functions\nexport {MovingDirection} from './lib/util/moving-direction.enum';\nexport {NavigationSymbol} from './lib/util/navigation-symbol.interface';\nexport {StepId, isStepId} from './lib/util/step-id.interface';\nexport {StepIndex, isStepIndex} from './lib/util/step-index.interface';\nexport {StepOffset, isStepOffset} from './lib/util/step-offset.interface';\nexport {WizardCompletionStep} from './lib/util/wizard-completion-step.interface';\nexport {WizardStep} from './lib/util/wizard-step.interface';\n\n// export the module\nexport {ArchwizardModule} from './lib/archwizard.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.WizardBase","i2.WizardStep","i3.GoToStepDirective","i1","i2.WizardNavigationBarComponent","i1.WizardCompletionStep","i1.WizardComponent","i1.WizardStep"],"mappings":";;;;;AAEA;;;;;;;;;;;AAWG;MAIU,yBAAyB,CAAA;AACpC;;;;AAIG;;AAEH,IAAA,WAAA,CAAmB,WAA6B,EAAA;QAA7B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAkB;KAC/C;8GARU,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAzB,yBAAyB,EAAA,QAAA,EAAA,4DAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAHrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,4DAA4D;AACvE,iBAAA,CAAA;;;ACdD;;;;;;;;;;;;;;AAcG;MAIU,wBAAwB,CAAA;AACnC;;;;AAIG;;AAEH,IAAA,WAAA,CAAmB,WAA6B,EAAA;QAA7B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAkB;KAC/C;8GARU,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAxB,wBAAwB,EAAA,QAAA,EAAA,0DAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAHpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,0DAA0D;AACrE,iBAAA,CAAA;;;ACbD;;;;AAIG;AAEH;MACsB,UAAU,CAAA;AAFhC,IAAA,WAAA,GAAA;AA+BE;;;AAGG;AAEI,QAAA,IAAA,CAAA,gBAAgB,GAAqB,EAAC,MAAM,EAAE,EAAE,EAAC,CAAC;AAEzD;;AAEG;QACI,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAExB;;AAEG;QACI,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;AAEzB;;;;AAIG;QACI,IAAkB,CAAA,kBAAA,GAAG,KAAK,CAAC;AAElC;;;;AAIG;QACI,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;AAEvB;;AAEG;QACI,IAAe,CAAA,eAAA,GAAG,KAAK,CAAC;AAE/B;;AAEG;QACI,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAExB;;AAEG;QAEI,IAAQ,CAAA,QAAA,GAA6G,IAAI,CAAC;AAEjI;;AAEG;QAEI,IAAO,CAAA,OAAA,GAA6G,IAAI,CAAC;AAEhI;;;AAGG;AAEI,QAAA,IAAA,CAAA,SAAS,GAAkC,IAAI,YAAY,EAAmB,CAAC;AAEtF;;;AAGG;AAEI,QAAA,IAAA,CAAA,QAAQ,GAAkC,IAAI,YAAY,EAAmB,CAAC;AA4EtF,KAAA;AA1EC;;;AAGG;AACH,IAAA,IACW,MAAM,GAAA;AACf,QAAA,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;KACvB;AAED;;;;;;;;AAQG;AACK,IAAA,OAAO,iBAAiB,CAAC,SAES,EACT,SAA0B,EAAA;QACzD,IAAI,QAAO,SAAS,CAAC,KAAK,QAAO,IAAI,CAAC,EAAE;AACtC,YAAA,OAAO,OAAO,CAAC,OAAO,CAAC,SAAoB,CAAC,CAAC;AAC9C,SAAA;aAAM,IAAI,SAAS,YAAY,QAAQ,EAAE;YACxC,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;AAC9C,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,CAAA,aAAA,EAAgB,SAAS,CAAA,qCAAA,CAAuC,CAAC,CAAC,CAAC;AACpG,SAAA;KACF;AAED;;;;AAIG;AACI,IAAA,KAAK,CAAC,SAA0B,EAAA;AACrC,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KAChC;AAED;;;;AAIG;AACI,IAAA,IAAI,CAAC,SAA0B,EAAA;AACpC,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KAC/B;AAED;;;;;;;;AAQG;AACI,IAAA,YAAY,CAAC,SAA0B,EAAA;QAC5C,OAAO,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;KAC/D;AAED;;;;;;;;AAQG;AACI,IAAA,WAAW,CAAC,SAA0B,EAAA;QAC3C,OAAO,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;KAC9D;8GAzKmB,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAV,UAAU,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,QAAA,EAAA,aAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAMhB,wBAAwB,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAOxB,yBAAyB,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAbnB,UAAU,EAAA,UAAA,EAAA,CAAA;kBAF/B,SAAS;8BASD,iBAAiB,EAAA,CAAA;sBADvB,YAAY;uBAAC,wBAAwB,CAAA;gBAQ/B,kBAAkB,EAAA,CAAA;sBADxB,YAAY;uBAAC,yBAAyB,CAAA;gBAOhC,MAAM,EAAA,CAAA;sBADZ,KAAK;gBAQC,SAAS,EAAA,CAAA;sBADf,KAAK;gBAQC,gBAAgB,EAAA,CAAA;sBADtB,KAAK;gBAyCC,QAAQ,EAAA,CAAA;sBADd,KAAK;gBAOC,OAAO,EAAA,CAAA;sBADb,KAAK;gBAQC,SAAS,EAAA,CAAA;sBADf,MAAM;gBAQA,QAAQ,EAAA,CAAA;sBADd,MAAM;gBAQI,MAAM,EAAA,CAAA;sBADhB,WAAW;uBAAC,QAAQ,CAAA;;;AC7GvB;;;;AAIG;AAEH;AACM,MAAgB,oBAAqB,SAAQ,UAAU,CAAA;AAF7D,IAAA,WAAA,GAAA;;AAGE;;AAEG;AACI,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAmB,CAAC;AAEtD;;AAEG;QACI,IAAO,CAAA,OAAA,GAAwD,KAAK,CAAC;AAkB7E,KAAA;AAhBC;;AAEG;AACI,IAAA,KAAK,CAAC,SAA0B,EAAA;AACrC,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACtB,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KAChC;AAED;;AAEG;AACI,IAAA,IAAI,CAAC,SAA0B,EAAA;;AAEpC,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC;AACzC,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KAC/B;8GA1BmB,oBAAoB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAApB,oBAAoB,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAFzC,SAAS;;;ACLV;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCG;AASG,MAAO,6BAA8B,SAAQ,oBAAoB,CAAA;8GAA1D,6BAA6B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA7B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,6BAA6B,EAL7B,QAAA,EAAA,2BAAA,EAAA,SAAA,EAAA;AACT,YAAA,EAAC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,CAAC,MAAM,6BAA6B,CAAC,EAAC;AACnF,YAAA,EAAC,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,UAAU,CAAC,MAAM,6BAA6B,CAAC,EAAC;AAC9F,SAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC9CH,6BACA,EAAA,CAAA,CAAA,EAAA;;2FD+Ca,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBARzC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,2BAA2B,EAE1B,SAAA,EAAA;AACT,wBAAA,EAAC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,CAAC,MAAmC,6BAAA,CAAC,EAAC;AACnF,wBAAA,EAAC,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,UAAU,CAAC,MAAmC,6BAAA,CAAC,EAAC;AAC9F,qBAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,CAAA;;;ME1CmB,UAAU,CAAA;8GAAV,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHAAV,UAAU,EAAA,CAAA,CAAA,EAAA;;2FAAV,UAAU,EAAA,UAAA,EAAA,CAAA;kBAD/B,UAAU;;;ACaX;;;;;AAKG;AACG,SAAU,QAAQ,CAAC,KAAmD,EAAA;AAC1E,IAAA,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,YAAY,UAAU,CAAC,CAAC;AACjG;;ACNA;;;;;AAKG;AACG,SAAU,WAAW,CAAC,KAAmD,EAAA;AAC7E,IAAA,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;AAClE;;ACXA;;;;;AAKG;AACG,SAAU,YAAY,CAAC,KAA2B,EAAA;AACtD,IAAA,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;AACnE;;ACfA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BG;MAIU,iBAAiB,CAAA;AAuB5B;;;;;AAKG;IACH,WAAoB,CAAA,MAAkB,EAAsB,UAAsB,EAAA;QAA9D,IAAM,CAAA,MAAA,GAAN,MAAM,CAAY;QAAsB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;AA5BlF;;AAEG;AAEI,QAAA,IAAA,CAAA,WAAW,GAAuB,IAAI,YAAY,EAAE,CAAC;AAE5D;;AAEG;AAEI,QAAA,IAAA,CAAA,YAAY,GAAuB,IAAI,YAAY,EAAE,CAAC;KAmB5D;AAED;;AAEG;AACH,IAAA,IAAW,QAAQ,GAAA;QACjB,OAAO,IAAI,CAAC,WAAW,CAAC;KACzB;AAED;;;;AAIG;IACH,IACW,QAAQ,CAAC,OAA2B,EAAA;;AAE7C,QAAA,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;KAC5B;AAED;;;;;AAKG;AACH,IAAA,IAAW,eAAe,GAAA;AACxB,QAAA,IAAI,eAAuB,CAAC;AAE5B,QAAA,IAAI,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AAChC,YAAA,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;AAC7C,SAAA;AAAM,aAAA,IAAI,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AACpC,YAAA,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AAC5E,SAAA;AAAM,aAAA,IAAI,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,EAAE;AACpE,YAAA,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;AAC5F,SAAA;AAAM,aAAA,IAAI,IAAI,CAAC,UAAU,YAAY,UAAU,EAAE;YAChD,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAC/D,SAAA;AAAM,aAAA;AACL,YAAA,MAAM,IAAI,KAAK,CAAC,CAAA,2EAAA,CAA6E,CAAC,CAAC;AAChG,SAAA;AAED,QAAA,OAAO,eAAe,CAAC;KACxB;AAED;;;AAGG;IAEI,OAAO,GAAA;AACZ,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;KACjF;8GAjFU,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAjB,iBAAiB,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,CAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,WAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,cAAc;AACzB,iBAAA,CAAA;;0BA8B0C,QAAQ;yCAxB1C,WAAW,EAAA,CAAA;sBADjB,MAAM;gBAOA,YAAY,EAAA,CAAA;sBADlB,MAAM;gBAWA,UAAU,EAAA,CAAA;sBADhB,KAAK;uBAAC,YAAY,CAAA;gBAyBR,QAAQ,EAAA,CAAA;sBADlB,MAAM;gBAmCA,OAAO,EAAA,CAAA;sBADb,YAAY;uBAAC,OAAO,CAAA;;;ACpHvB;;;;;;;;;;;;AAYG;MAKU,4BAA4B,CAAA;AACvC;;;;AAIG;AACH,IAAA,WAAA,CAAmB,MAAkB,EAAA;QAAlB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAY;KACpC;AAED;;;;AAIG;AACH,IAAA,IAAI,WAAW,GAAA;AACb,QAAA,QAAQ,IAAI,CAAC,MAAM,CAAC,eAAe;AACjC,YAAA,KAAK,eAAe;gBAClB,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC;AACnD,YAAA,KAAK,eAAe,CAAC;AACrB,YAAA;AACE,gBAAA,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;AAClC,SAAA;KACF;AAED;;;;AAIG;AACH,IAAA,IAAI,mBAAmB,GAAA;AACrB,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC;KACvC;AAED;;;;;AAKG;AACI,IAAA,SAAS,CAAC,UAAsB,EAAA;QACrC,OAAO,UAAU,CAAC,QAAQ,CAAC;KAC5B;AAED;;;;;AAKG;AACI,IAAA,SAAS,CAAC,UAAsB,EAAA;QACrC,OAAO,UAAU,CAAC,OAAO,CAAC;KAC3B;AAED;;;;;AAKG;AACI,IAAA,MAAM,CAAC,UAAsB,EAAA;QAClC,OAAO,UAAU,CAAC,SAAS,CAAC;KAC7B;AAED;;;;;AAKG;AACI,IAAA,UAAU,CAAC,UAAsB,EAAA;QACtC,OAAO,UAAU,CAAC,QAAQ,CAAC;KAC5B;AAED;;;;;;;AAOG;AACI,IAAA,WAAW,CAAC,UAAsB,EAAA;QACvC,OAAO,UAAU,YAAY,oBAAoB,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;KAC5E;AAED;;;;;;;;;AASG;AACI,IAAA,WAAW,CAAC,UAAsB,EAAA;QACvC,OAAO,CAAC,UAAU,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,oBAAoB;AAC9D,YAAA,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC;KACnE;8GAlGU,4BAA4B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,4BAA4B,gECtBzC,gsCAwBA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,iBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,cAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDFa,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAJxC,SAAS;+BACE,0BAA0B,EAAA,QAAA,EAAA,gsCAAA,EAAA,CAAA;;;AEhBtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqDG;AAQG,MAAO,mBAAoB,SAAQ,UAAU,CAAA;8GAAtC,mBAAmB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,EAJnB,QAAA,EAAA,gBAAA,EAAA,SAAA,EAAA;AACT,YAAA,EAAC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,CAAC,MAAM,mBAAmB,CAAC,EAAC;AAC1E,SAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC9DH,6BACA,EAAA,CAAA,CAAA,EAAA;;2FD+Da,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAP/B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,EAEf,SAAA,EAAA;AACT,wBAAA,EAAC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,CAAC,MAAyB,mBAAA,CAAC,EAAC;AAC1E,qBAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,CAAA;;;AE9DH;;;;AAIG;AAEH;;;;AAIG;IACS,gBAaX;AAbD,CAAA,UAAY,eAAe,EAAA;AACzB;;AAEG;AACH,IAAA,eAAA,CAAA,eAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;AACR;;AAEG;AACH,IAAA,eAAA,CAAA,eAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS,CAAA;AACT;;AAEG;AACH,IAAA,eAAA,CAAA,eAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;AACN,CAAC,EAbW,eAAe,KAAf,eAAe,GAa1B,EAAA,CAAA,CAAA;;ACnBD;;;;;;;AAOG;MACmB,kBAAkB,CAAA;AAEtC;;;;;;;;;;;;;;;;AAgBG;IACI,WAAW,CAAC,MAAuB,EAAE,gBAAwB,EAAA;QAClE,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAEjD,MAAM,eAAe,GAAG,MAAM,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;AAEpE,QAAA,MAAM,kBAAkB,GAAG,CAAC,QAAiB,KAAI;YAC/C,OAAO,QAAQ,IAAI,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;AACrE,SAAC,CAAC;AAEF,QAAA,MAAM,uBAAuB,GAAG,CAAC,QAAiB,KAAI;AACpD,YAAA,OAAO,QAAQ,IAAI,MAAM,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;AAC3F,SAAC,CAAC;AAEF,QAAA,MAAM,mBAAmB,GAAG,CAAC,QAAiB,KAAI;YAChD,OAAO,QAAQ,IAAI,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;AACxE,SAAC,CAAC;AAEF,QAAA,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC;aAC5B,IAAI,CAAC,mBAAmB,CAAC;;;;aAIzB,IAAI,CAAC,kBAAkB,CAAC;aACxB,IAAI,CAAC,uBAAuB,CAAC,CAAC;KAClC;AAED;;;;;;;;;;AAUG;IACO,mBAAmB,CAAC,MAAuB,EAAE,gBAAwB,EAAA;QAC7E,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;KACnD;AAED;;;;;;;;;;;;;;;;;AAiBG;AACI,IAAA,QAAQ,CACb,MAAuB,EACvB,gBAAwB,EACxB,WAAgC,EAChC,YAAiC,EAAA;AAEjC,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,IAAI,CAAC,iBAAiB,IAAG;AAClE,YAAA,IAAI,iBAAiB,EAAE;;gBAErB,MAAM,eAAe,GAAoB,MAAM,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;;AAGrF,gBAAA,IAAI,WAAW,EAAE;oBACf,WAAW,CAAC,IAAI,EAAE,CAAC;AACpB,iBAAA;;AAGD,gBAAA,MAAM,CAAC,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC;AACpC,gBAAA,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AACzC,gBAAA,MAAM,CAAC,WAAW,CAAC,OAAO,GAAG,KAAK,CAAC;AACnC,gBAAA,MAAM,CAAC,WAAW,CAAC,QAAQ,GAAG,KAAK,CAAC;AAEpC,gBAAA,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;;gBAG1C,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC;;AAGtE,gBAAA,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;AAC1C,gBAAA,MAAM,CAAC,WAAW,CAAC,QAAQ,GAAG,IAAI,CAAC;AACnC,gBAAA,IAAI,YAAY,EAAE;AAChB,oBAAA,MAAM,CAAC,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC;AACnC,iBAAA;;AAGD,gBAAA,IAAI,YAAY,EAAE;oBAChB,YAAY,CAAC,IAAI,EAAE,CAAC;AACrB,iBAAA;AACF,aAAA;AAAM,iBAAA;;gBAEL,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;gBAC9C,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;AAChD,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;AAED;;;;;;;AAOG;IACO,UAAU,CAAC,MAAuB,EAAE,gBAAwB,EAAA;AACpE,QAAA,MAAM,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;KAC5C;AAOD;;;;;;;AAOG;AACI,IAAA,KAAK,CAAC,MAAuB,EAAA;AAClC,QAAA,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;;AAG5B,QAAA,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,IAAG;AAChC,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC;AACzC,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AACtB,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACvB,SAAC,CAAC,CAAC;;AAGH,QAAA,MAAM,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAClD,QAAA,MAAM,CAAC,WAAW,CAAC,QAAQ,GAAG,IAAI,CAAC;QACnC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;KACpD;AAED;;;;;;;;;AASG;AACO,IAAA,cAAc,CAAC,MAAuB,EAAA;;QAE9C,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE;YAC5C,MAAM,IAAI,KAAK,CAAC,CAAA,6CAAA,EAAgD,MAAM,CAAC,gBAAgB,CAAE,CAAA,CAAC,CAAC;AAC5F,SAAA;KACF;AACF;;AC9LD;;;;;;;;;;;;;;;;;;;AAmBG;AACG,MAAO,0BAA2B,SAAQ,kBAAkB,CAAA;AAEhE;;;;;AAKG;AACH,IAAA,WAAA,CACU,gBAAwC,GAAA,IAAI,EAC5C,eAAA,GAAiD,IAAI,EAAA;AAE7D,QAAA,KAAK,EAAE,CAAC;QAHA,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAA4B;QAC5C,IAAe,CAAA,eAAA,GAAf,eAAe,CAAsC;QAG7D,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,IAAI,OAAO,CAAC;QACzD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,IAAI,MAAM,CAAC;KACvD;AAED;;AAEG;IACO,mBAAmB,CAAC,MAAuB,EAAE,gBAAwB,EAAA;;;QAG7E,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAAE;AAC9C,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;;;QAID,OAAO,MAAM,CAAC,WAAW;AACpB,aAAA,MAAM,CAAC,CAAC,IAAI,EAAE,KAAK,KAAK,KAAK,GAAG,gBAAgB,IAAI,KAAK,KAAK,MAAM,CAAC,gBAAgB,CAAC;AACtF,aAAA,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;KACrD;AAED;;AAEG;IACO,UAAU,CAAC,MAAuB,EAAE,gBAAwB,EAAA;AACpE,QAAA,IAAI,IAAI,CAAC,eAAe,KAAK,MAAM,EAAE;;AAEnC,YAAA,MAAM,CAAC,WAAW;AACf,iBAAA,MAAM,CAAC,CAAC,IAAI,EAAE,KAAK,KAAK,MAAM,CAAC,gBAAgB,GAAG,gBAAgB,IAAI,KAAK,GAAG,gBAAgB,CAAC;iBAC/F,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC;AAC5C,SAAA;AAED,QAAA,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;KAC5C;AAED;;AAEG;IACI,WAAW,CAAC,MAAuB,EAAE,gBAAwB,EAAA;;QAElE,MAAM,eAAe,GAAG,MAAM,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;QAChE,IAAI,eAAe,YAAY,oBAAoB,EAAE;;AAEnD,YAAA,MAAM,sBAAsB,GAAG,MAAM,CAAC,WAAW;iBAC9C,MAAM,CAAC,CAAC,IAAI,EAAE,KAAK,KAAK,KAAK,GAAG,gBAAgB,CAAC;AACjD,iBAAA,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;YACnE,IAAI,CAAC,sBAAsB,EAAE;AAC3B,gBAAA,OAAO,KAAK,CAAC;AACd,aAAA;AACF,SAAA;;AAGD,QAAA,IAAI,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,EAAE;;YAE9C,QAAQ,IAAI,CAAC,gBAAgB;AAC3B,gBAAA,KAAK,OAAO,EAAE,OAAO,IAAI,CAAC;AAC1B,gBAAA,KAAK,MAAM,EAAE,OAAO,KAAK,CAAC;AAC1B,gBAAA;oBACE,MAAM,IAAI,KAAK,CAAC,CAAA,oCAAA,EAAuC,IAAI,CAAC,gBAAgB,CAAE,CAAA,CAAC,CAAC;AACnF,aAAA;AACF,SAAA;AAAM,aAAA,IAAI,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,EAAE;;YAErD,QAAQ,IAAI,CAAC,eAAe;AAC1B,gBAAA,KAAK,OAAO,EAAE,OAAO,IAAI,CAAC;AAC1B,gBAAA,KAAK,MAAM,EAAE,OAAO,KAAK,CAAC;AAC1B,gBAAA,KAAK,SAAS,EAAE,OAAO,eAAe,CAAC,SAAS,CAAC;AACjD,gBAAA;oBACE,MAAM,IAAI,KAAK,CAAC,CAAA,mCAAA,EAAsC,IAAI,CAAC,eAAe,CAAE,CAAA,CAAC,CAAC;AACjF,aAAA;AACF,SAAA;AAAM,aAAA;;AAEL,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;KACF;AAED;;AAEG;AACO,IAAA,cAAc,CAAC,MAAuB,EAAA;AAC9C,QAAA,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;;QAG7B,MAAM,iBAAiB,GAAG,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;AACzE,QAAA,MAAM,qBAAqB,GAAG,iBAAiB,YAAY,oBAAoB,CAAC;QAChF,IAAI,qBAAqB,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;YAC5D,MAAM,IAAI,KAAK,CAAC,CAAA,uBAAA,EAA0B,MAAM,CAAC,gBAAgB,CAA+B,6BAAA,CAAA,CAAC,CAAC;AACnG,SAAA;KACF;AACF;;AC9GD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCG;MAQU,eAAe,CAAA;AA4B1B;;;AAGG;AACH,IAAA,IACW,gBAAgB,GAAA;;;;AAKzB,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC;AAE7E,QAAA,IAAI,gBAAgB,EAAE;AACpB,YAAA,OAAO,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;AAC9C,SAAA;AAAM,aAAA;YACL,OAAO,IAAI,CAAC,iBAAiB,CAAC;AAC/B,SAAA;KACF;IACD,IAAW,gBAAgB,CAAC,gBAAwB,EAAA;AAClD,QAAA,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,CAAC;KAC3C;AAgCD;;AAEG;AACH,IAAA,WAAA,GAAA;AA5EA;;;AAGG;QAEI,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC;AAE9B;;;AAGG;QAEI,IAAY,CAAA,YAAA,GAAG,OAAO,CAAC;AAE9B;;;AAGG;QAEI,IAAe,CAAA,eAAA,GAAG,eAAe,CAAC;QAuBjC,IAAiB,CAAA,iBAAA,GAAG,CAAC,CAAC;AAE9B;;AAEG;QAEI,IAAoB,CAAA,oBAAA,GAAG,KAAK,CAAC;AAEpC;;;;AAIG;AACK,QAAA,IAAA,CAAA,WAAW,GAAmB,IAAI,0BAA0B,EAAE,CAAC;AAEvE;;;;AAIG;QACK,IAAY,CAAA,YAAA,GAAiB,EAAE,CAAC;AAExC;;;;;;AAMG;QACI,IAAgB,CAAA,gBAAA,GAAG,CAAC,CAAC,CAAC;KAM5B;AAED;;;;;AAKG;AACH,IAAA,IACW,qBAAqB,GAAA;QAC9B,OAAO,IAAI,CAAC,cAAc,KAAK,KAAK,IAAI,IAAI,CAAC,cAAc,KAAK,QAAQ,CAAC;KAC1E;AAED;;;;;AAKG;AACH,IAAA,IACW,mBAAmB,GAAA;QAC5B,OAAO,IAAI,CAAC,cAAc,KAAK,MAAM,IAAI,IAAI,CAAC,cAAc,KAAK,OAAO,CAAC;KAC1E;AAED;;AAEG;IACI,kBAAkB,GAAA;;QAEvB,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,SAAS,CAAC,kBAAkB,IAAG;YAC/D,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,OAAO,EAAE,CAAC,CAAC;AACvD,SAAC,CAAC,CAAC;;QAGH,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,CAAC,CAAC;;QAG5D,UAAU,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;KAChC;AAED;;;;;;;AAOG;AACH,IAAA,IAAW,WAAW,GAAA;QACpB,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE;YACvC,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AAChD,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;KACF;AAED;;;AAGG;AACH,IAAA,IAAW,SAAS,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;KACxE;AAED;;AAEG;AACH,IAAA,IAAW,WAAW,GAAA;QACpB,OAAO,IAAI,CAAC,YAAY,CAAC;KAC1B;AAED;;;;AAIG;AACK,IAAA,iBAAiB,CAAC,WAAyB,EAAA;;AAEjD,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,EAAE;AAC7D,YAAA,IAAI,CAAC,gBAAgB,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;AACtF,SAAA;AAED,QAAA,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;KACjC;AAED;;AAEG;AACH,IAAA,IAAW,UAAU,GAAA;QACnB,OAAO,IAAI,CAAC,WAAW,CAAC;KACzB;AAED;;;;AAIG;IACH,IAAW,UAAU,CAAC,UAA0B,EAAA;AAC9C,QAAA,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;KAC/B;AAED;;;;;AAKG;AACI,IAAA,OAAO,CAAC,SAAiB,EAAA;AAC9B,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,SAAS,IAAI,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;KAC7F;AAED;;;;AAIG;IACI,eAAe,GAAA;QACpB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC;KAChD;AAED;;;;AAIG;IACI,WAAW,GAAA;QAChB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC;KAChD;AAED;;;;AAIG;IACI,UAAU,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,gBAAgB,KAAK,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;KAC7F;AAED;;;;;;;AAOG;AACI,IAAA,cAAc,CAAC,SAAiB,EAAA;AACrC,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;AAC5B,YAAA,MAAM,IAAI,KAAK,CAAC,6CAA6C,SAAS,CAAA,CAAA,CAAG,CAAC,CAAC;AAC5E,SAAA;AAED,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;KACpC;AAED;;;;;;AAMG;AACI,IAAA,oBAAoB,CAAC,MAAc,EAAA;AACxC,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;KACnE;AAED;;;;;;AAMG;AACI,IAAA,cAAc,CAAC,IAAgB,EAAA;QACpC,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;KACvC;AAED;;;;;AAKG;AACI,IAAA,kBAAkB,CAAC,eAAuB,EAAA;AAC/C,QAAA,IAAI,eAAgC,CAAC;AAErC,QAAA,IAAI,eAAe,GAAG,IAAI,CAAC,gBAAgB,EAAE;AAC3C,YAAA,eAAe,GAAG,eAAe,CAAC,QAAQ,CAAC;AAC5C,SAAA;AAAM,aAAA,IAAI,eAAe,GAAG,IAAI,CAAC,gBAAgB,EAAE;AAClD,YAAA,eAAe,GAAG,eAAe,CAAC,SAAS,CAAC;AAC7C,SAAA;AAAM,aAAA;AACL,YAAA,eAAe,GAAG,eAAe,CAAC,IAAI,CAAC;AACxC,SAAA;AAED,QAAA,OAAO,eAAe,CAAC;KACxB;AAED;;;;;;;;AAQG;AACI,IAAA,WAAW,CAAC,gBAAwB,EAAA;QACzC,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;KAC5D;AAED;;;;;;;;;AASG;AACI,IAAA,QAAQ,CAAC,gBAAwB,EAAE,WAAgC,EAAE,YAAiC,EAAA;AAC3G,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;KACpF;AAED;;;;;AAKG;IACI,gBAAgB,CAAC,WAAgC,EAAE,YAAiC,EAAA;AACzF,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,gBAAgB,GAAG,CAAC,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;KAC7F;AAED;;;;;AAKG;IACI,YAAY,CAAC,WAAgC,EAAE,YAAiC,EAAA;AACrF,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,gBAAgB,GAAG,CAAC,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;KAC7F;AAED;;;;;AAKG;AACI,IAAA,WAAW,CAAC,gBAAwB,EAAA;QACzC,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;KAC5D;AAED;;AAEG;IACI,KAAK,GAAA;AACV,QAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;KAC7B;8GAtVU,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,EAJf,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,kBAAA,EAAA,4BAAA,EAAA,gBAAA,EAAA,0BAAA,EAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE;SACtD,EAMgB,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,sBAAA,EAAA,SAAA,EAAA,UAAU,gDC7D7B,uwCAiCA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,4BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDwBa,eAAe,EAAA,UAAA,EAAA,CAAA;kBAP3B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAW,EAEV,SAAA,EAAA;AACT,wBAAA,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,iBAAiB,EAAE;AACtD,qBAAA,EAAA,QAAA,EAAA,uwCAAA,EAAA,CAAA;wDAOM,oBAAoB,EAAA,CAAA;sBAD1B,eAAe;AAAC,gBAAA,IAAA,EAAA,CAAA,UAAU,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAA;gBAQ3C,cAAc,EAAA,CAAA;sBADpB,KAAK;gBAQC,YAAY,EAAA,CAAA;sBADlB,KAAK;gBAQC,eAAe,EAAA,CAAA;sBADrB,KAAK;gBAQK,gBAAgB,EAAA,CAAA;sBAD1B,KAAK;gBAuBC,oBAAoB,EAAA,CAAA;sBAD1B,KAAK;gBAuCK,qBAAqB,EAAA,CAAA;sBAD/B,WAAW;uBAAC,kBAAkB,CAAA;gBAYpB,mBAAmB,EAAA,CAAA;sBAD7B,WAAW;uBAAC,gBAAgB,CAAA;;;AE5J/B;;;;;;;;;;;;;;;;;;;;AAoBG;MAIU,wBAAwB,CAAA;AAQnC;;;;AAIG;AACH,IAAA,WAAA,CAA4B,cAAoC,EAAA;QAApC,IAAc,CAAA,cAAA,GAAd,cAAc,CAAsB;AAZhE;;;AAGG;AAEI,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAmB,CAAC;KAQrD;AAED;;AAEG;IACI,QAAQ,GAAA;AACb,QAAA,IAAI,CAAC,cAAc,CAAC,OAAO,GAAG,IAAI,CAAC;QACnC,IAAI,CAAC,cAAc,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;KAC9C;8GAtBU,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,oBAAA,EAAA,IAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAxB,wBAAwB,EAAA,QAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAHpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,qBAAqB;AAChC,iBAAA,CAAA;;0BAcc,IAAI;yCAPV,QAAQ,EAAA,CAAA;sBADd,MAAM;;;AC9BT;;;;;;;;;;AAUG;MAIU,iBAAiB,CAAA;AAa5B;;;;AAIG;AACH,IAAA,WAAA,CAAoB,MAAuB,EAAA;QAAvB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAiB;AAjB3C;;AAEG;AAEI,QAAA,IAAA,CAAA,WAAW,GAAuB,IAAI,YAAY,EAAE,CAAC;AAE5D;;AAEG;AAEI,QAAA,IAAA,CAAA,YAAY,GAAuB,IAAI,YAAY,EAAE,CAAC;KAQ5D;AAED;;AAEG;AACH,IAAA,IAAW,QAAQ,GAAA;QACjB,OAAO,IAAI,CAAC,WAAW,CAAC;KACzB;AAED;;;;AAIG;IACH,IACW,QAAQ,CAAC,OAA2B,EAAA;AAC7C,QAAA,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;KAC5B;AAED;;;AAGG;IAEI,OAAO,GAAA;AACZ,QAAA,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;KAC/D;8GA7CU,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAjB,iBAAiB,EAAA,QAAA,EAAA,cAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,WAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,cAAc;AACzB,iBAAA,CAAA;iFAMQ,WAAW,EAAA,CAAA;sBADjB,MAAM;gBAOA,YAAY,EAAA,CAAA;sBADlB,MAAM;gBAwBI,QAAQ,EAAA,CAAA;sBADlB,MAAM;gBAUA,OAAO,EAAA,CAAA;sBADb,YAAY;uBAAC,OAAO,CAAA;;;ACxDvB;;;;;;;;;;;;;;;;;;;;;AAqBG;MAIU,qBAAqB,CAAA;AAMhC;;;;AAIG;AACH,IAAA,WAAA,CAA4B,UAAsB,EAAA;QAAtB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;;QAP3C,IAAQ,CAAA,QAAA,GAAG,IAAI,CAAC;KAQtB;AAED;;AAEG;IACI,QAAQ,GAAA;;;AAGb,QAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAe,KAAK,EAAE,CAAC;KACzE;8GArBU,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,UAAA,EAAA,IAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAArB,qBAAqB,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,EAAA,UAAA,CAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAHjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,kBAAkB;AAC7B,iBAAA,CAAA;;0BAYc,IAAI;yCAPV,QAAQ,EAAA,CAAA;sBADd,KAAK;uBAAC,gBAAgB,CAAA;;;AC5BzB;;;;;;;;;;;AAWG;MAIU,qBAAqB,CAAA;AAahC;;;;AAIG;AACH,IAAA,WAAA,CAAoB,MAAuB,EAAA;QAAvB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAiB;AAjB3C;;AAEG;AAEI,QAAA,IAAA,CAAA,WAAW,GAAuB,IAAI,YAAY,EAAE,CAAC;AAE5D;;AAEG;AAEI,QAAA,IAAA,CAAA,YAAY,GAAuB,IAAI,YAAY,EAAE,CAAC;KAQ5D;AAED;;AAEG;AACH,IAAA,IAAW,QAAQ,GAAA;QACjB,OAAO,IAAI,CAAC,WAAW,CAAC;KACzB;AAED;;;;AAIG;IACH,IACW,QAAQ,CAAC,OAA2B,EAAA;;AAE7C,QAAA,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;KAC5B;AAED;;;AAGG;IAEI,OAAO,GAAA;AACZ,QAAA,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;KACnE;8GA9CU,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAArB,qBAAqB,EAAA,QAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,WAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAHjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,kBAAkB;AAC7B,iBAAA,CAAA;iFAMQ,WAAW,EAAA,CAAA;sBADjB,MAAM;gBAOA,YAAY,EAAA,CAAA;sBADlB,MAAM;gBAwBI,QAAQ,EAAA,CAAA;sBADlB,MAAM;gBAWA,OAAO,EAAA,CAAA;sBADb,YAAY;uBAAC,OAAO,CAAA;;;AC1DvB;;;;;;;;;;;AAWG;MAIU,oBAAoB,CAAA;AAO/B;;;;AAIG;AACH,IAAA,WAAA,CAAoB,MAAuB,EAAA;QAAvB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAiB;AAX3C;;AAEG;AAEI,QAAA,IAAA,CAAA,QAAQ,GAAuB,IAAI,YAAY,EAAE,CAAC;KAQxD;AAED;;AAEG;IAEI,OAAO,GAAA;;AAEZ,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;;AAErB,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;KACrB;8GAxBU,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAApB,oBAAoB,EAAA,QAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,WAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAHhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,iBAAiB;AAC5B,iBAAA,CAAA;iFAMQ,QAAQ,EAAA,CAAA;sBADd,MAAM;gBAeA,OAAO,EAAA,CAAA;sBADb,YAAY;uBAAC,OAAO,CAAA;;;ACjCvB;;;;;;;;;;;;AAYG;MAIU,qBAAqB,CAAA;AAChC;;;;AAIG;AACH,IAAA,WAAA,CAA4B,UAAsB,EAAA;QAAtB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;KACjD;AAED;;AAEG;IACI,QAAQ,GAAA;AACb,QAAA,IAAI,CAAC,UAAU,CAAC,eAAe,GAAG,IAAI,CAAC;KACxC;8GAdU,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,UAAA,EAAA,IAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAArB,qBAAqB,EAAA,QAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAHjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,kBAAkB;AAC7B,iBAAA,CAAA;;0BAOc,IAAI;;;ACrBnB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCG;AAQG,MAAO,6BAA8B,SAAQ,oBAAoB,CAAA;8GAA1D,6BAA6B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA7B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,6BAA6B,EAL7B,QAAA,EAAA,0BAAA,EAAA,SAAA,EAAA;AACT,YAAA,EAAC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,CAAC,MAAM,6BAA6B,CAAC,EAAC;AACnF,YAAA,EAAC,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,UAAU,CAAC,MAAM,6BAA6B,CAAC,EAAC;AAC9F,SAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAEU,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAPzC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,0BAA0B;AACpC,oBAAA,SAAS,EAAE;AACT,wBAAA,EAAC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,CAAC,MAAmC,6BAAA,CAAC,EAAC;AACnF,wBAAA,EAAC,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,UAAU,CAAC,MAAmC,6BAAA,CAAC,EAAC;AAC9F,qBAAA;AACF,iBAAA,CAAA;;;AC3CD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoDG;AAOG,MAAO,mBAAoB,SAAQ,UAAU,CAAA;8GAAtC,mBAAmB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,EAJnB,QAAA,EAAA,gBAAA,EAAA,SAAA,EAAA;AACT,YAAA,EAAC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,CAAC,MAAM,mBAAmB,CAAC,EAAC;AAC1E,SAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAEU,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAN/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,SAAS,EAAE;AACT,wBAAA,EAAC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,CAAC,MAAyB,mBAAA,CAAC,EAAC;AAC1E,qBAAA;AACF,iBAAA,CAAA;;;ACtDD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8CG;MAIU,uBAAuB,CAAA;AA2BlC,IAAA,WAAA,CAAoB,MAAuB,EAAA;QAAvB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAiB;KAAK;IAEzC,WAAW,GAAA;QAChB,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;KACnD;IAEO,iBAAiB,GAAA;QACvB,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACzB,OAAO,IAAI,CAAC,gBAAgB,CAAC;AAC9B,SAAA;QACD,OAAO,IAAI,0BAA0B,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;KACpF;8GAtCU,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAvB,uBAAuB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAHnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,oBAAoB;AAC/B,iBAAA,CAAA;iFAOQ,gBAAgB,EAAA,CAAA;sBADtB,KAAK;gBAUC,gBAAgB,EAAA,CAAA;sBADtB,KAAK;gBAWC,eAAe,EAAA,CAAA;sBADrB,KAAK;;;AC9ER;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BG;MAIU,sBAAsB,CAAA;AAMjC;;;;AAIG;AACH,IAAA,WAAA,CAA4B,UAAsB,EAAA;QAAtB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;;QAP3C,IAAkB,CAAA,kBAAA,GAAG,IAAI,CAAC;KAQhC;AAED;;AAEG;IACI,QAAQ,GAAA;;;AAGb,QAAA,IAAI,CAAC,UAAU,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,kBAAyB,KAAK,EAAE,CAAC;KACvG;8GArBU,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,UAAA,EAAA,IAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAtB,sBAAsB,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,kBAAA,EAAA,CAAA,iBAAA,EAAA,oBAAA,CAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAHlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,mBAAmB;AAC9B,iBAAA,CAAA;;0BAYc,IAAI;yCAPV,kBAAkB,EAAA,CAAA;sBADxB,KAAK;uBAAC,iBAAiB,CAAA;;;ACnB1B;;;;AAIG;MA4CU,gBAAgB,CAAA;;AAEpB,IAAA,OAAO,OAAO,GAAA;QACnB,OAAO;AACL,YAAA,QAAQ,EAAE,gBAAgB;AAC1B,YAAA,SAAS,EAAE;;AAEV,aAAA;SACF,CAAC;KACH;8GATU,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,iBAzCzB,eAAe;YACf,mBAAmB;YACnB,4BAA4B;YAC5B,6BAA6B;YAC7B,iBAAiB;YACjB,iBAAiB;YACjB,qBAAqB;YACrB,qBAAqB;YACrB,yBAAyB;YACzB,wBAAwB;YACxB,wBAAwB;YACxB,mBAAmB;YACnB,6BAA6B;YAC7B,qBAAqB;YACrB,oBAAoB;YACpB,uBAAuB;YACvB,sBAAsB,CAAA,EAAA,OAAA,EAAA,CAGtB,YAAY,CAAA,EAAA,OAAA,EAAA,CAGZ,eAAe;YACf,mBAAmB;YACnB,4BAA4B;YAC5B,6BAA6B;YAC7B,iBAAiB;YACjB,iBAAiB;YACjB,qBAAqB;YACrB,qBAAqB;YACrB,yBAAyB;YACzB,wBAAwB;YACxB,wBAAwB;YACxB,mBAAmB;YACnB,6BAA6B;YAC7B,qBAAqB;YACrB,oBAAoB;YACpB,uBAAuB;YACvB,sBAAsB,CAAA,EAAA,CAAA,CAAA,EAAA;AAGb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,YAtBzB,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAsBH,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBA3C5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,eAAe;wBACf,mBAAmB;wBACnB,4BAA4B;wBAC5B,6BAA6B;wBAC7B,iBAAiB;wBACjB,iBAAiB;wBACjB,qBAAqB;wBACrB,qBAAqB;wBACrB,yBAAyB;wBACzB,wBAAwB;wBACxB,wBAAwB;wBACxB,mBAAmB;wBACnB,6BAA6B;wBAC7B,qBAAqB;wBACrB,oBAAoB;wBACpB,uBAAuB;wBACvB,sBAAsB;AACvB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;AACb,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,eAAe;wBACf,mBAAmB;wBACnB,4BAA4B;wBAC5B,6BAA6B;wBAC7B,iBAAiB;wBACjB,iBAAiB;wBACjB,qBAAqB;wBACrB,qBAAqB;wBACrB,yBAAyB;wBACzB,wBAAwB;wBACxB,wBAAwB;wBACxB,mBAAmB;wBACnB,6BAA6B;wBAC7B,qBAAqB;wBACrB,oBAAoB;wBACpB,uBAAuB;wBACvB,sBAAsB;AACvB,qBAAA;AACF,iBAAA,CAAA;;;ACpED;;ACAA;;AAEG;;;;"}