/*
 * Copyright (c) 2024 Huawei Device Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

// auto-generated <%= componentName %>Builder.ets by HMRouter
import <%if(isDefaultExport) {%> <%= componentName %> <% } else {%> { <%= componentName %> } <% } %> from '<%= importPath %>'
import { NavDestinationHelper } from '@hadss/hmrouter';

@Builder
export function <%= componentName %>Builder(name: string, param: Object) {
  <%= componentName %>Generated()
}

export const <%= componentName %>BuilderWrapBuilder = wrapBuilder(<%= componentName %>Builder)

@Component
export struct <%= componentName %>Generated {
  private helper: NavDestinationHelper = new NavDestinationHelper(this);

  build() {
    NavDestination() {
      <%= componentName %>()
    }
    <% if(dialog){ %>.mode(NavDestinationMode.DIALOG)<% } %>
    .hideTitleBar(true)
    .attributeModifier(this.helper.modifier)
    .gestureModifier(this.helper.gestureModifier)
    .onWillAppear(()=>{this.helper.onWillAppear()})
    .onAppear(() => {this.helper.onAppear()})
    .onWillShow(()=>{this.helper.onWillAppear()})
    .onShown(()=>{this.helper.onShown()})
    .onWillHide(()=>{this.helper.onWillHide()})
    .onHidden(()=>{this.helper.onHidden()})
    .onWillDisappear(()=>{this.helper.onWillDisappear()})
    .onDisAppear(()=>{this.helper.onDisAppear()})
    .onReady((ctx)=>{this.helper.onReady(ctx)})
    .onBackPressed(()=> this.helper.onBackPressed())
  }
}