core_ez-foundation-config.jsdoc.js
/**
* EzFoundation 유틸리티 함수에 대한 전역 설정 객체
*
* @typedef EzFoundationConfig
* @property {string} [hCmbYySqlId]
* 연도 조회 쿼리 아이디
* @property {string} [hCmbSmrSqlId]
* 학기 조회 쿼리 아이디
* @property {string} [hCmbOrgSqlId]
* 학과 조회 쿼리 아이디
* @property {string} [hCmbMngtDpmjSqlId]
* 관리학과 조회 쿼리 아이디
* @property {HCmbSmrAliasConfig[]} [hCmbSmrAlias]
* 학사 콤보의 커스텀 학기 타입을 정의할 수 있습니다.
* @property {HCmbSmrTypeConfig[]} [hCmbSmrType]
* 학사 콤보의 학기 타입 (특정 학기반 보여주는 필터링)
* @property {HCmbTargetComponentName} [hCmbTargetComponentName]
* 학사콤보 대상 컴포넌트의 정규식
* @property {HCmbSmrOffsetRule[]} [hCmbSmrOffsetRule]
* 학사 콤보의 학기 오프셋 규칙을 정의할 수 있습니다.
* @example
* // f_config.xjs
* nexacro.EzFoundation.hCmbYySqlId = hCmb.s01;
* nexacro.EzFoundation.hCmbSmrSqlId = hCmb.s02;
* nexacro.EzFoundation.hCmbOrgSqlId = hCmb.s03;
* nexacro.EzFoundation.hCmbSmrAlias = [
* {
* id: "custom",
* aliases: [
* {
* smrCd: "12340010",
* smrNm: "전기",
* },
* {
* smrCd: "12340020",
* smrNm: "후기",
* },
* ],
* condition: (context) => {
* return true;
* },
* },
* ];
* nexacro.EzFoundation.hCmbSmrType = [
* {
* // 정규 학기
* id: "R",
* condition: (ctx) =>
* ctx.component.id === "cmb_grduSmr" ||
* ctx.gridBindColId === "GRDU_SMR",
* filter: (ctx) => ctx.rowData["SUPLMT_INFO_3"] === "1",
* },
* {
* // 계절 학기
* id: "S",
* condition: (ctx) => false,
* filter: (ctx) => ctx.rowData["SUPLMT_INFO_4"] === "1",
* },
* ];
* nexacro.EzFoundation.hCmbTargetComponentName = {
* yyCompNm: /^spn_(?:grdu)?[yY]y$/,
* smrCompNm: /^cmb_(?:grdu)?[sS]mr$/,
* fcltCompNm: /^cmb_fcltDvcd$/,
* univCompNm: /^cmb_univCd$/,
* dpmjCompNm: /^cmb_dpmjCd$/,
* majrCompNm: /^cmb_majrCd$/,
* detMajrCompNm: /^cmb_detMajrCd$/,
* smrColNm: ["SMR", "GRDU_SMR"],
* fcltColNm: "FCLT_DVCD",
* univColNm: "UNIV_CD",
* dpmjColNm: "DPMJ_CD",
* majrColNm: "MAJR_CD",
* detMajrColNm: "DET_MAJR_CD",
* };
* nexacro.EzFoundation.hCmbSmrOffsetRule = [
* {
* condition: (ctx) => true,
* offset: 1,
* },
* ];
*
*/
/**
* 학기 별칭을 지정하기 위한 설정 객체
*
* @typedef HCmbSmrAliasConfig
* @property {string} id
* 학기 타입을 구분하고자 하는 코드
* @property {HCmbSmrAliasItem[]} aliases
* 학기 별칭 목록
* @property {HCmbSmrConditionFunc} condition
* 자동 선택 시 판별 함수
*/
/**
* 학기 별칭 목록
*
* @typedef HCmbSmrAliasItem
* @property {string} smrCd
* @property {string} smrNm
*/
/**
* 학기 판별용 함수
*
* @callback HCmbSmrConditionFunc
* @param {Object} context
* 판별 참조용 데이터
* @param {nexacro.Form} context.form
* 학사 콤보가 호출된 폼 객체
* @param {nexacro.Component} context.component
* 학기 콤보 컴포넌트
* @param {boolean} context.isGrid
* 그리드 여부
* @param {boolean} context.isCombo
* 콤보 여부
* @param {string} context.gridBindColId
* 대상이 그리드일 경우 학기에 바인딩된 컬럼명
* @returns {boolean}
* 판별 결과, true 값 일 시 해당 별칭을 사용함.
*/
/**
* @typedef HCmbSmrTypeConfig
* @param {string} id
* 설정 아이디
* @param {string | HCmbSmrFailValueFunc} [failValue]
* 기준 연도/학기와 일치하는 값이 없을 시 선택할 값
* @param {RemoveRowsByCondtionFunc} filter
* 행 별 필터 함수
* @param {HCmbSmrConditionFunc} condition
* 자동 판별 함수
*/
/**
* @callback HCmbSmrFailValueFunc
* @param {Object} context
* @param {string} context.baseSmr 기준 학기
*/
/**
* 학사 콤보의 컴포넌트 판별 정규식, 해당 정규식을 만족하는 컴포넌트를 대상으로 선택한다.
*
* @typedef HCmbTargetComponentName
* @property {RegExp} [yyCompNm=/^spn_(?:grdu)?[yY]y$/]
* 연도 컴포넌트의 명칭 정규식.
* @property {RegExp} [smrCompNm=/^cmb_(?:grdu)?[sS]mr$/]
* 학기 컴포넌트의 명칭 정규식.
* @property {RegExp} [fcltCompNm=/^cmb_fcltDvcd$/]
* 학부/대학원 구분 컴포넌트의 명칭 정규식.
* @property {RegExp} [univCompNm=/^cmb_univCd$/]
* 대학 컴포넌트의 명칭 정규식
* @property {RegExp} [dpmjCompNm=/^cmb_dpmjCd$/]
* 학과 컴포넌트의 명칭 정규식
* @property {RegExp} [majrCompNm=/^cmb_majrCd$/]
* 전공 컴포넌트의 명칭 정규식
* @property {RegExp} [detMajrCompNm=/^cmb_detMajrCd$/]
* 세부 전공 컬럼 명칭
* @property {string | string[]} [smrColNm=["SMR", "GRDU_SMR"]]
* 학기 그리드 컬럼 명칭 정규식.
* @property {string} [fcltGridColNm=FCLT_DVCD]
* 학부/대학원 구분 그리드 컬럼 명칭
* @property {string} [univColNm=UNIV_CD]
* 대학 그리드 컬럼 명칭
* @property {string} [dpmjColNm=DPMJ_CD]
* 학과 그리드 컬럼 명칭
* @property {string} [majrColNm=MAJR_CD]
* 전공 그리드 컬럼 명칭
* @property {string} [detMajrColNm=DET_MAJR_CD]
* 세부 전공 그리드 컬럼 명칭
*/
/**
* @callback HCmbSmrOffsetRuleConditionFunc
* @param {Object} context
* @param {nexacro.Form} context.form
*/
/**
* @typedef HCmbSmrOffsetRule
* @property {HCmbSmrOffsetRuleConditionFunc} condition
* 학기 오프셋 조건
* @property {number} offset
* 학기 오프셋 값
*/