{"version":3,"file":"uofx-app-components-modal.mjs","sources":["../../../projects/uofx-app-pack/modal/src/footer/modal-footer.component.ts","../../../projects/uofx-app-pack/modal/src/footer/modal-footer.component.html","../../../projects/uofx-app-pack/modal/src/header/modal-header.component.ts","../../../projects/uofx-app-pack/modal/src/header/modal-header.component.html","../../../projects/uofx-app-pack/modal/src/modal.module.ts","../../../projects/uofx-app-pack/modal/uofx-app-components-modal.ts"],"sourcesContent":["import { Component, EventEmitter, Input, Output, TemplateRef, ViewChild, ViewContainerRef } from '@angular/core';\r\nimport { UofxModelFooterButtonModel } from '../modal.model';\r\n\r\n@Component({\r\n  selector: 'uofx-modal-footer',\r\n  templateUrl: './modal-footer.component.html',\r\n  styleUrls: ['./modal-footer.component.scss'],\r\n})\r\nexport class UofxModalFooterComponent {\r\n  /** 樣板(不產生uofx-model-footer dom tag) */\r\n  @ViewChild('template', { static: true }) template: TemplateRef<any>;\r\n\r\n  /** 按鈕標題 */\r\n  @Input() buttonTitle: Array<UofxModelFooterButtonModel> = [{ text: 'global.comm.button.ok' }];\r\n\r\n  /** 按鈕事件 */\r\n  @Output() buttonClick = new EventEmitter<unknown>();\r\n\r\n  /** 按鈕Disabled */\r\n  @Input() disabled: boolean = false;\r\n\r\n  constructor(private viewContainerRef: ViewContainerRef) {}\r\n\r\n  ngOnInit() {\r\n    // 利用createEmbeddedView產生樣板(不產生uofx-model-footer dom tag)，避免nav時ion-footer動畫失效\r\n    this.viewContainerRef.createEmbeddedView(this.template);\r\n  }\r\n\r\n  /** 按鈕事件 */\r\n  onButtonClick(event: unknown) {\r\n    this.buttonClick.emit(event);\r\n  }\r\n}\r\n","<ng-template #template>\r\n  <ion-footer class=\"uofx-modal-footer ion-no-border\">\r\n    <ion-toolbar>\r\n      <div style=\"display: flex\">\r\n        <ion-button\r\n          *ngFor=\"let title of buttonTitle\"\r\n          [disabled]=\"disabled\"\r\n          [ngClass]=\"{ 'btn-defaultCss': !title.cssClass || title.cssClass.trim().length === 0 }\"\r\n          [class]=\"title.cssClass || 'uofx-btn-primary'\"\r\n          [color]=\"title.color\"\r\n          (click)=\"onButtonClick(title.code)\"\r\n          [translate]=\"title.text\">\r\n        </ion-button>\r\n      </div>\r\n    </ion-toolbar>\r\n  </ion-footer>\r\n</ng-template>\r\n","import { AlertController, ModalController } from '@ionic/angular';\r\nimport { Component, ContentChild, ElementRef, Input, OnInit } from '@angular/core';\r\n\r\nimport { FormGroup } from '@angular/forms';\r\nimport { UofxI18NService } from '@uofx/core';\r\n\r\n@Component({\r\n  selector: 'uofx-modal-header',\r\n  templateUrl: './modal-header.component.html',\r\n  styleUrls: ['./modal-header.component.scss'],\r\n})\r\nexport class UofxModalHeaderComponent implements OnInit {\r\n  @ContentChild('buttonsTemplate') buttonsTemplate;\r\n\r\n  /** 標題 */\r\n  @Input() title = '';\r\n\r\n  /** 隱藏關閉按鈕 */\r\n  @Input() hiddenClose = false;\r\n\r\n  /** 父元件的FormGroup */\r\n  @Input('parentForm') form: FormGroup;\r\n\r\n  /** 置頂警告訊息 */\r\n  @Input() errors: Array<string> = [];\r\n\r\n  /** error block樣式 */\r\n  @Input() mode: 'message' | 'error' = 'error';\r\n\r\n  /** 顯示錯誤訊息 icon */\r\n  @Input() showAlertMsgIcon = true;\r\n\r\n  /** 按鈕[X]在關閉時要送出的資料 */\r\n  @Input() setCloseBtnEmit: any = undefined;\r\n\r\n  constructor(\r\n    private modalCtrl: ModalController,\r\n    public alertCtrl: AlertController,\r\n    private i18n: UofxI18NService,\r\n    private el: ElementRef\r\n  ) {}\r\n\r\n  ngOnInit() {\r\n    this.setModalCanDismiss();\r\n  }\r\n\r\n  /** 設定 modal 的 canDismiss */\r\n  async setModalCanDismiss() {\r\n    // 不使用 modalCtrl.getTop() 找，因為如果畫面上有其他 modal 有可能會抓錯人 (ex: 有日期元件)\r\n    const currentModal = this.el.nativeElement.closest('ion-modal') as HTMLIonModalElement;\r\n    if (!currentModal) return;\r\n\r\n    // 所有關閉行為都會觸發 canDismiss 檢查是否可以關閉\r\n    currentModal.canDismiss = async (_, role) => {\r\n      /**\r\n       * 僅放行「程式碼觸發」的關閉行為\r\n       * - 由我們透過 modalCtrl.dismiss(data) 觸發: 允許放行，因為可以拋出資料\r\n       * - 由使用者手勢觸發 (ex: role 為 'gesture'): 攔截下來，因為手勢觸發的關閉無法拋出資料\r\n       */\r\n      if (!this.isUserTriggeredExit(role)) return true;\r\n\r\n      // 手勢觸發時，改由程式碼呼叫 modalDismiss()，\r\n      // 讓下一次 canDismiss 以程式碼身份進入，確保 dismiss 能正確拋出資料並關閉\r\n      if (!this.isFormDirty()) {\r\n        this.modalDismiss();\r\n      } else {\r\n        const confirmed = await this.changeConfirm();\r\n        if (confirmed) this.modalDismiss();\r\n      }\r\n    };\r\n  }\r\n\r\n  /** 判斷是否為使用者觸發的關閉行為 (非程式觸發) */\r\n  isUserTriggeredExit(role: string): boolean {\r\n    // 滑動、點背景遮罩、點關閉按鈕\r\n    return ['gesture', 'backdrop', 'close-btn'].includes(role);\r\n  }\r\n\r\n  /** 是否有變更內容 */\r\n  isFormDirty() {\r\n    return this.form?.dirty;\r\n  }\r\n\r\n  /** 開啟捨棄變更提示 */\r\n  async changeConfirm() {\r\n    return new Promise<boolean>(async (resolve) => {\r\n      const alert = await this.alertCtrl.create({\r\n        // *UKEY:\"global.comm.confirm.discard-changes.title\"\r\n        // *UKEY:\"global.comm.button.abandon\"\r\n        header: this.i18n.trans('global.comm.confirm.discard-changes.title'),\r\n        buttons: [\r\n          {\r\n            text: this.i18n.trans('global.comm.button.cancel'),\r\n            role: 'cancel',\r\n            handler: () => resolve(false),\r\n          },\r\n          {\r\n            text: this.i18n.trans('global.comm.button.abandon'),\r\n            handler: () => resolve(true),\r\n          },\r\n        ],\r\n      });\r\n      await alert.present();\r\n    });\r\n  }\r\n\r\n  /** 關閉按鈕點擊事件 */\r\n  onCloseClick() {\r\n    this.modalDismiss('close-btn');\r\n  }\r\n\r\n  /** 拋出 setCloseBtnEmit 並關閉 modal */\r\n  modalDismiss(role?: string) {\r\n    this.modalCtrl.dismiss(this.setCloseBtnEmit, role);\r\n  }\r\n}\r\n","<ion-header>\r\n  <ion-toolbar>\r\n    <ion-buttons slot=\"start\">\r\n      <ion-button *ngIf=\"!hiddenClose\" (click)=\"onCloseClick()\">\r\n        <ion-icon name=\"close\"></ion-icon>\r\n      </ion-button>\r\n    </ion-buttons>\r\n    <ion-title *ngIf=\"title\" [translate]=\"title\"></ion-title>\r\n    <ng-content></ng-content>\r\n    <!-- header 按鈕 -->\r\n    <ion-buttons slot=\"end\">\r\n      <!-- 要嵌入的按鈕 -->\r\n      <ng-content select=\"ion-button\"></ng-content>\r\n    </ion-buttons>\r\n  </ion-toolbar>\r\n\r\n  <!-- 提示訊息 -->\r\n  <ion-toolbar *ngIf=\"errors.length > 0\" class=\"alert-block\">\r\n    <uofx-error-block [errorMessage]=\"errors\" [mode]=\"mode\"></uofx-error-block>\r\n  </ion-toolbar>\r\n</ion-header>\r\n","import { CommonModule } from '@angular/common';\r\nimport { IonicModule } from '@ionic/angular';\r\nimport { NgModule } from '@angular/core';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { UofxCorePipeModule } from '@uofx/app-components';\r\nimport { UofxErrorBlockModule } from '@uofx/app-components/form';\r\nimport { UofxModalFooterComponent } from './footer/modal-footer.component';\r\nimport { UofxModalHeaderComponent } from './header/modal-header.component';\r\n\r\nconst COMPONENTS = [UofxModalHeaderComponent, UofxModalFooterComponent];\r\n\r\n@NgModule({\r\n  imports: [CommonModule, TranslateModule.forChild(), IonicModule, UofxCorePipeModule, UofxErrorBlockModule],\r\n  exports: [...COMPONENTS],\r\n  declarations: [...COMPONENTS],\r\n  providers: [],\r\n})\r\nexport class UofxModalModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i3","i1","i2","i4"],"mappings":"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"}