0){
- cbLength++;
- if(cb.is(":checked")){
- checkedLength++;
- };
- }
- });
-
- if(cbLength == checkedLength){
- allChecked = true;
- }
-
- if(allChecked){
- thead.find(":checkbox").prop("checked", true);
- } else {
- thead.find(":checkbox").prop("checked", false);
- }
-
- }
- },
- countChecked : function(checkboxElement){
- var parentEl = $(checkboxElement).parent()[0];
- var tr = $(checkboxElement).parents("tr");
- var siblings = tr.find("TD");
- var checkboxColIndex = siblings.index(parentEl);
-
- var table = $(checkboxElement).parents("table");
- var tbody = table.find("tbody");
- var trs = tbody.find("tr");
-
- var count = 0;
- trs.each(function(){
- var cb = $(this).find("td").eq(checkboxColIndex).find(":checkbox");
- if(cb.length > 0){
- if(cb.is(":checked")) {
- count++;
- }
- }
- });
- return count;
- }
- }
-};
diff --git a/src/main/webapp/resources/js/fims/cmmn/componentization.js b/src/main/webapp/resources/js/fims/cmmn/componentization.js
deleted file mode 100644
index d0589be..0000000
--- a/src/main/webapp/resources/js/fims/cmmn/componentization.js
+++ /dev/null
@@ -1,411 +0,0 @@
-/**************************************************************************
-* 버튼으로 조작가능한 셀렉트박스
-**************************************************************************/
-function fnMakeSpinnerSelect(selectEl, prevBtnEl, nextBtnEl){
-
- $(selectEl).on("animationend", function(){
- $(selectEl).removeClass("highlight-once");
- });
- $(prevBtnEl).on("click", function(){
- var selected = $(selectEl).find("option:selected");
- var prev = selected.prev();
- if(prev.length >= 1){
- $(selectEl).val(prev.val());
- } else {
- $(selectEl).addClass("highlight-once");
- }
- });
- $(nextBtnEl).on("click", function(){
- var selected = $(selectEl).find("option:selected");
- var next = selected.next();
- if(next.length >= 1){
- $(selectEl).val(next.val());
- } else {
- $(selectEl).addClass("highlight-once");
- }
- });
-}
-
-/**************************************************************************
-* 선택된 옵션의 스타일이 적용된 셀렉트박스
-**************************************************************************/
-function fnMakeOptionStyleSelect(selectEl){
- $(selectEl).addClass("option-style-select");
-
- selectEl.changeUI = function(){
-
- var selected = $(this).find("option:selected");
-
- if(selected.length <= 0){
- selectEl.dataset.optionStyle = "";
- selectEl.title = "";
- return;
- }
-
- selectEl.dataset.optionStyle = selected.val();
- selectEl.title = selected[0].title;
- };
-
- $(selectEl).on("change", function(){
- selectEl.changeUI();
- });
-
- selectEl.changeUI();
-}
-
-/**************************************************************************
-* 행 위치 이동 가능한 테이블
-**************************************************************************/
-function getBrowserName() {
- var agent = navigator.userAgent.toUpperCase();
- if (agent.indexOf('TRIDENT') >= 0) {
- return 'IE';
- } else if (agent.indexOf('FIREFOX') >= 0) {
- return 'FIREFOX';
- } else if (agent.indexOf('EDG') >= 0) {
- return 'EDGE';
- } else if (agent.indexOf('CHROME') >= 0) {
- return 'CHROME';
- } else if (agent.indexOf('SAFARI') >= 0) {
- return 'SAFARI';
- } else {
- return '';
- }
-}
-const BROWSER_NAME = getBrowserName();
-var VERTICAL_SCROLL_HEIGHT = 14;
-switch(BROWSER_NAME){
- case "EDGE" :
- VERTICAL_SCROLL_HEIGHT = 14;
- break;
- case "FIREFOX" :
- VERTICAL_SCROLL_HEIGHT = 15;
- break;
- case "CHROME" :
- VERTICAL_SCROLL_HEIGHT = 15;
- break;
-}
-
-function fnMakeRowSpinner(tableRowEl, upBtnEl, downBtnEl, scrollEl, validFunc){
-
- if(validFunc != undefined && validFunc != null){
- tableRowEl.validForComponent = validFunc;
- } else {
- tableRowEl.validForComponent = function(eventInfo){
- return true;
- };
- }
-
- $(upBtnEl).on("click", function(){
- var tbody = $(tableRowEl).parent();
-
- var theadHeight = $(scrollEl).find("thead").outerHeight();
- var scrollElStart = $(scrollEl).offset().top + theadHeight;
- var scrollElHeight = $(scrollEl).height() - theadHeight - VERTICAL_SCROLL_HEIGHT;
- var scrollMiddle = scrollElStart + (scrollElHeight/2);
-
- if($(tableRowEl).index() == 0){
- return;
- }
-
- var beforeIndex = $(tableRowEl).index() - 1;
- var beforeTr = $(tbody).find("tr").eq(beforeIndex);
-
-
- var eventInfo = {
- clickedButtonType : "up",
- currentRow : tableRowEl,
- siblingRow : beforeTr
- };
- if(!tableRowEl.validForComponent(eventInfo)){
- return;
- }
-
-
- var rowStart = beforeTr.offset().top;
- var rowHeight = beforeTr.outerHeight();
- var rowMiddle = rowStart+(rowHeight/2);
-
- beforeTr.before(tableRowEl);
-
- if(rowMiddle < scrollMiddle){
- var move = scrollMiddle - rowMiddle;
- $(scrollEl).scrollTop($(scrollEl).scrollTop() - move);
- }
-
- $(tbody).find("tr").removeClass("current-row");
- $(tableRowEl).addClass("current-row");
- });
-
- $(downBtnEl).on("click", function(){
- var tbody = $(tableRowEl).parent();
-
- var theadHeight = $(scrollEl).find("thead").outerHeight();
- var scrollElStart = $(scrollEl).offset().top + theadHeight;
- var scrollElHeight = $(scrollEl).height() - theadHeight - VERTICAL_SCROLL_HEIGHT;
- var scrollMiddle = scrollElStart + (scrollElHeight/2);
-
- if($(tableRowEl).index() == ($(tbody).children().length) - 1){
- return;
- }
-
- var afterIndex = $(tableRowEl).index() + 1;
- var afterTr = $(tbody).find("tr").eq(afterIndex);
-
-
- var eventInfo = {
- clickedButtonType : "down",
- currentRow : tableRowEl,
- siblingRow : afterTr
- };
- if(!tableRowEl.validForComponent(eventInfo)){
- return;
- }
-
-
- var rowStart = afterTr.offset().top;
- var rowHeight = afterTr.outerHeight();
- var rowMiddle = rowStart+(rowHeight/2);
-
- afterTr.after(tableRowEl);
-
- if(rowMiddle > scrollMiddle){
- var move = rowMiddle - scrollMiddle;
- $(scrollEl).scrollTop($(scrollEl).scrollTop() + move);
- }
-
- $(tbody).find("tr").removeClass("current-row");
- $(tableRowEl).addClass("current-row");
- });
-}
-
-
-/**************************************************************************
-* 행 번호 표시 테이블
-**************************************************************************/
-function fnMakeRowNumberingTable(tbody, markerFinder, markerSetter){
-
- var moCallbackFunc = function(mutationList, observer){
- var target = mutationList[0].target;
-
- $(target).find("tr").each(function(idx, item){
- markerSetter(markerFinder(item),idx+1);
- });
- };
- var mo = new MutationObserver(moCallbackFunc);
- mo.observe(tbody, {childList : true});
-}
-
-/**************************************************************************
-* 스크롤 테이블
-**************************************************************************/
-function fnMakeScrollableTable(tableScrollEl, thisScrollendEvent){
-
- tableScrollEl.thisScrollendEvent = thisScrollendEvent;
-
- tableScrollEl.changeContent = function(content, initScrollPosition, noMore){
- var beforeRender = this.scrollTop;
-
- $(this).find("tbody").html(content);
-
- this.scrollTop = 0;
- var min = this.scrollTop;
- this.scrollTop = this.scrollHeight;
- var max = this.scrollTop;
- var hasScroll = (min != max);
-
- var more = document.createElement("tr");
-
- if(hasScroll && !noMore){
- more.classList.add("h-px-30");
-
- $(this).find("tbody").append(more);
-
- var ioCallbackFunc = function(entries, observer){
- var entry = entries[0];
- var target = entry.target;
- if(entry.isIntersecting){
- observer.unobserve(target);
- tableScrollEl.thisScrollendEvent();
- }
- };
-
- var io = new IntersectionObserver(ioCallbackFunc, {threshold : 0});
- io.observe(more);
- }
-
- if(initScrollPosition){
- this.scrollTop = 0;
- } else {
-
- var afterRender = this.scrollTop;
-
- if(beforeRender < afterRender){
- this.scrollTop = beforeRender;
- }
- }
-
- };
-}
-
-/**************************************************************************
-* 단일 업로드 이미지 뷰어
-**************************************************************************/
-function fnMakeSingleImageViewer(imgEl, fileInputEl, dataAttributeForFilePath, dataAttributeForFileName){
-
- $(imgEl).on("click", function(){
- $(fileInputEl).click();
- });
-
- $(fileInputEl).on("change", function(){
-
- if(this.files != null && this.files.length > 0){
- $(imgEl).attr("alt", this.files[0].name);
- $(imgEl).attr("src", (window.URL || window.webkitURL).createObjectURL(this.files[0]));
-
- } else {
-
- var orgnName = $(imgEl).attr("data-"+dataAttributeForFileName);
- var orgnPath = $(imgEl).attr("data-"+dataAttributeForFilePath);
-
- if(orgnPath != undefined && orgnPath != null && orgnPath != ""){
- $(imgEl).attr("alt", orgnName);
- $(imgEl).attr("src", orgnPath);
- } else {
- $(imgEl).attr("alt", "파일이 없습니다.");
- $(imgEl).attr("src", "/resources/img/no-image.svg");
- }
-
- }
-
- });
-}
-
-/**************************************************************************
-* 드래그 가능한 다이얼로그
-**************************************************************************/
-function fnMakeDraggableDialog(dialogEl) {
-
- var currentDialog;
- var currentPosX = 0, currentPosY = 0, previousPosX = 0, previousPosY = 0;
-
- function fnDragMouseDown(e) {
-
- e.preventDefault();
-
- currentDialog = this.targetDialog;
- previousPosX = e.clientX;
- previousPosY = e.clientY;
-
- document.onmouseup = fnCloseDragElement;
- document.onmousemove = fnElementDrag;
- }
-
- function fnElementDrag(e) {
-
- e.preventDefault();
-
- currentPosX = previousPosX - e.clientX;
- currentPosY = previousPosY - e.clientY;
-
- previousPosX = e.clientX;
- previousPosY = e.clientY;
-
- currentDialog.style.top = (currentDialog.offsetTop - currentPosY) + 'px';
- currentDialog.style.left = (currentDialog.offsetLeft - currentPosX) + 'px';
- }
-
- function fnCloseDragElement() {
- document.onmouseup = null;
- document.onmousemove = null;
- }
-
- $(dialogEl).find(".modal-header")[0].targetDialog = dialogEl;
- $(dialogEl).find(".modal-header")[0].onmousedown = fnDragMouseDown;
-}
-
-/**************************************************************************
-* 컬럼 크기 조절 테이블
-**************************************************************************/
-function fnMakeResizableTable(containerEl){
-
- var cur_container, cur_handle, cur_index, cur_col, cur_col_width;
- var cursorStart = 0, dragStart = false;
-
- function fnMouseDown(e){
-
- e.preventDefault();
-
- cur_handle = this;
- cur_container = cur_handle.tableContainer;
-
- cur_index = parseInt(cur_handle.getAttribute("data-resizecol"))-1;
-
- var thEls = $(cur_container.getElementsByTagName("table")[0]).find("th").not(".dummy-th");
- cur_col = thEls[cur_index];
- cur_col_width = cur_col.getBoundingClientRect().width;
-
- dragStart = true;
- cursorStart = event.pageX;
-
- document.onmouseup = fnCloseResize;
- document.onmousemove = fnMouseMove;
-
- }
-
- function fnMouseMove(e){
- e.preventDefault();
-
- if(dragStart){
- var cursorPosition = event.pageX;
- var mouseMoved = (cursorPosition - cursorStart);
- var newWidth = cur_col_width + mouseMoved;
-
- if(newWidth > 30){
- cur_col.style.width = newWidth+"px";
- }
- }
- }
-
- function fnCloseResize(e){
- document.onmousemove = null;
- document.onmouseup = null;
- cur_container.removeHandle();
- cur_container.addHandle();
- }
-
- containerEl.style.position = "relative";
-
- containerEl.addHandle = function(){
- var thEls = $(this.getElementsByTagName("table")[0]).find("th").not(".dummy-th");
- var th_length = thEls.length;
- var widthAcc = 0;
- for(var i=0; i < th_length; i++){
- widthAcc += thEls[i].getBoundingClientRect().width;
- var yDiv = document.createElement("div");
- yDiv.className = "resize-handle";
- yDiv.setAttribute("data-resizecol",i+1);
- yDiv.style.cssText = "left: "+widthAcc+"px;";
- this.append(yDiv);
- }
-
- handleEls = this.getElementsByClassName("resize-handle");
- var handle_length = handleEls.length;
- for(var i = 0; i < handle_length; i++){
- handleEls[i].tableContainer = this;
- handleEls[i].onmousedown = fnMouseDown;
- }
- };
-
- containerEl.removeHandle = function(){
- $(this).find(".resize-handle").remove();
- }
-
- containerEl.changeColumn = function(ths){
- this.removeHandle();
- $(this).find("table thead tr").html(ths);
- this.addHandle();
- }
-
- containerEl.addHandle();
-}
\ No newline at end of file
diff --git a/src/main/webapp/resources/js/fims/cmmn/downsize.js b/src/main/webapp/resources/js/fims/cmmn/downsize.js
deleted file mode 100644
index 863664f..0000000
--- a/src/main/webapp/resources/js/fims/cmmn/downsize.js
+++ /dev/null
@@ -1,45 +0,0 @@
-//테이블 렌더링 후 축소 처리할 컬럼 확인
-function fnDownsizeCheck(tableObj) {
- $(tableObj).find("thead tr th").each(function(){
- var thIndex = $(this).index();
- if($(this).hasClass("downsize")){
- var trs = $(this).parent("tr").parent("thead").next("tbody").find("tr");
- trs.each(function(){
- $(this).find("td:eq("+thIndex+")").css("max-width","160px");
- });
- }
- });
-}
-
-//테이블 컬럼 축소 여부 변경
-function fnDownsizeToggle(thObj) {
-
- $(thObj).toggleClass("downsize");
-
- var thIndex = $(thObj).index();
-
- var setValue = "";
- if($(thObj).hasClass("downsize")){
- setValue = "160px";
- }
-
- var tbody = $(thObj).parent("tr").parent("thead").next("tbody");
- if(tbody.length < 1){
- return;
- }
-
- var trs = tbody.find("tr");
-
- if(trs.length < 1){
- return;
- }
-
- if(trs.length == 1 && trs.find("td").length <= 1){
- return;
- }
-
- trs.each(function(){
- $(this).find("td:eq("+thIndex+")").css("max-width",setValue);
- });
-
-};
\ No newline at end of file
diff --git a/src/main/webapp/resources/js/fims/cmmn/initAfterPageLoad.js b/src/main/webapp/resources/js/fims/cmmn/initAfterPageLoad.js
deleted file mode 100644
index 154e934..0000000
--- a/src/main/webapp/resources/js/fims/cmmn/initAfterPageLoad.js
+++ /dev/null
@@ -1,19 +0,0 @@
-function initDatepicker(elementId){
-
- var executionArea = $("#"+elementId);
-
- executionArea.find(".form-date").datePicker();
-
-}
-
-function initDetailSearchButton(elementId){
-
- var executionArea = $("#"+elementId);
-
- /*--------------------- 상세검색 버튼 제어 ---------------------*/
- executionArea.find(".btn-open-detail").on("click", function() {
- $(this).find('i').toggleClass('bx-chevron-down');
- $(this).find('i').toggleClass('bx-chevron-up');
- });
-
-}
\ No newline at end of file
diff --git a/src/main/webapp/resources/js/fims/cmmn/searchUtil.js b/src/main/webapp/resources/js/fims/cmmn/searchUtil.js
deleted file mode 100644
index 2d8f6ca..0000000
--- a/src/main/webapp/resources/js/fims/cmmn/searchUtil.js
+++ /dev/null
@@ -1,99 +0,0 @@
-/**************************************************************************
-* 그리드의 특정 열 값을 키워드로 자료 조회
-**************************************************************************/
-function searchFromGridTitle(byValue, byOutputValue, mainOption, subOption){
- var trDataset = event.target.parentElement.dataset;
-
- var byElementId = trDataset.by;
- var byOutputElementId = trDataset.byOutput;
- var mainOptionElementId = trDataset.mainOption;
- var subOptionElementId = trDataset.subOption;
-
- document.getElementById(byElementId).value = snakeToCamel(byValue);
- document.getElementById(byOutputElementId).value = byOutputValue + " 검색";
-
- document.getElementById(mainOptionElementId).value = mainOption;
- document.getElementById(subOptionElementId).value = subOption;
-}
-
-/**************************************************************************
-* 차량번호로 단속 건수 조회
-**************************************************************************/
-async function countCrdnByVhrno(vhrno, taskSeCd, sggCd){
- return new Promise((resolve, reject) => {
- json.get({
- url: wctx.url("/"+taskSeCd+"/crdn/crdn06/010/nocs.do"),
- data: {
- vhrno : vhrno,
- taskSeCd : taskSeCd,
- sggCd : sggCd
- },
- success: function(resp, textStatus, jqXHR) {
- resolve(resp);
- },
- error: function(jqXHR, textStatus, error) {
- }
- });
- });
-}
-
-/**************************************************************************
-* 차량번호로 민원상담 건수 조회
-**************************************************************************/
-async function countCvlcptDscsnByVhrno(vhrno, taskSeCd, sggCd){
- return new Promise((resolve, reject) => {
- json.get({
- url: wctx.url("/"+taskSeCd+"/sprt/sprt04/010/nocs.do"),
- data: {
- vhrno : vhrno,
- taskSeCd : taskSeCd,
- sggCd : sggCd
- },
- success: function(resp, textStatus, jqXHR) {
- resolve(resp);
- },
- error: function(jqXHR, textStatus, error) {
- }
- });
- });
-}
-
-/**************************************************************************
-* 시군구코드, 차량번호, 기준일자로 차적 조회
-**************************************************************************/
-async function getVhclInfo(sggCd, vhrno, levy_stdde){
- return new Promise((resolve, reject) => {
- json.post({
- url: wctx.url("/payer/vehicle.do"),
- data: {
- sggCd : sggCd,
- vhrno : vhrno,
- levy_stdde : levy_stdde
- },
- success: function(resp, textStatus, jqXHR) {
- resolve(resp);
- },
- error: function(jqXHR, textStatus, error) {
- }
- });
- });
-};
-
-/**************************************************************************
-* 장애인 차량여부 조회
-**************************************************************************/
-async function getVhclDisabledParkingInfo(vhrno){
- return new Promise((resolve, reject) => {
- json.get({
- url: wctx.url("/intf/disabledParking/parkingInfo"),
- data: {
- vehicleNo : vhrno
- },
- success: function(resp, textStatus, jqXHR) {
- resolve(resp);
- },
- error: function(jqXHR, textStatus, error) {
- }
- });
- });
-}
\ No newline at end of file
diff --git a/src/main/webapp/resources/js/fims/cmmn/shortcutKey.js b/src/main/webapp/resources/js/fims/cmmn/shortcutKey.js
deleted file mode 100644
index a786a71..0000000
--- a/src/main/webapp/resources/js/fims/cmmn/shortcutKey.js
+++ /dev/null
@@ -1,75 +0,0 @@
-document.addEventListener('keydown', (event) => {
-
- var RESERVED_FUNCTION_KEYS = ["F1","F2","F3","F4","F6","F7","F8","F9","F10","F11","PageDown","PageUp"];
- var KEYS_FOR_GLOBAL = ["F9","F10","F11"];
-
- if(RESERVED_FUNCTION_KEYS.includes(event.key)){
-
- event.preventDefault();
-
- var activeBasckdropYn = isActiveBackdrop();
-
- var curArea = getCurrentAreaForShortcutKey();
-
- if(KEYS_FOR_GLOBAL.includes(event.key)){ //전역 기능
-
- if(event.key == "F9"){
- if($("#securityMode--top").is(":checked")){
- $("#securityMode--top").prop("checked", false);
- fn_securityModeToggle(false);
- } else {
- $("#securityMode--top").prop("checked", true);
- fn_securityModeToggle(true);
- }
-
- }
-
- if(event.key == "F10"){
- if($("#photoMask--top").is(":checked")){
- $("#photoMask--top").prop("checked", false);
- fn_photoMask(false);
- } else {
- $("#photoMask--top").prop("checked", true);
- fn_photoMask(true);
- }
-
- }
-
- if(!activeBasckdropYn){
- //TODO : do something
- }
-
- } else { //페이지별,다이얼로그별 버튼
-
- if(curArea != null){
-
- var targetButton = $(curArea).find("button.btn-"+event.key);
-
- if(targetButton.length == 1){
- targetButton.click();
- } else {
- if(targetButton.length > 1){
- debug('단축키 버튼 중복 : ' + targetButton.length + "개");
- }
- }
-
- }
-
- }
-
- return false;
- }
-});
-
-//단축키 기능이 사용될 영역을 반환한다.
-function getCurrentAreaForShortcutKey(){
-
- if(isActiveBackdrop()){
- return getLastOpenDialog();
- } else {
- return getActiveRootTabArea();
- }
-
- return null;
-}
-
diff --git a/src/main/webapp/resources/js/fims/cmmn/taskUtil.js b/src/main/webapp/resources/js/fims/cmmn/taskUtil.js
deleted file mode 100644
index 0e74e14..0000000
--- a/src/main/webapp/resources/js/fims/cmmn/taskUtil.js
+++ /dev/null
@@ -1,18 +0,0 @@
-function renderForTask(areaId, taskClass){
- var slotAreas = $("#"+areaId).find("[slot]");
- slotAreas.each(function(){
- var tempHtml = "";
- $(this).find("template").each(function(){
- tempHtml += this.cloneNode(true).outerHTML;
- });
-
- var taskTemplate = $(this).find("template."+taskClass);
- if(taskTemplate.length < 1){
- this.innerHTML = tempHtml;
- return;
- }
-
- var inHtml = $(taskTemplate[0].content).find("slot")[0].innerHTML;
- this.innerHTML = tempHtml + inHtml;
- });
-}
\ No newline at end of file
diff --git a/src/main/webapp/resources/js/fims/crdn/inspection.js b/src/main/webapp/resources/js/fims/crdn/inspection.js
deleted file mode 100644
index 337e43d..0000000
--- a/src/main/webapp/resources/js/fims/crdn/inspection.js
+++ /dev/null
@@ -1,11 +0,0 @@
-function fnMakeImgTagForInspection(url, title, crdnPhotoId, mosaic) {
-
- return `
-
-
-
-
`;
-}
\ No newline at end of file
diff --git a/src/main/webapp/resources/js/fims/cvlc/answerWords.js b/src/main/webapp/resources/js/fims/cvlc/answerWords.js
deleted file mode 100644
index dd5aea2..0000000
--- a/src/main/webapp/resources/js/fims/cvlc/answerWords.js
+++ /dev/null
@@ -1,45 +0,0 @@
-class AnswerBodyControl {
- constructor(levyCaseConf, warningCaseConf, nonlevyCaseConf) {
- this.levy = new DatasetControl(levyCaseConf);
- this.warning = new DatasetControl(warningCaseConf);
- this.nonlevy = new DatasetControl(nonlevyCaseConf);
- }
-}
-
-const MACRO_STRING = {
- MACRO_SEQ : "[@일련번호]",
- MACRO_TELNO : "[@전화번호]",
- MACRO_PIC_NM : "[@담당자성명]"
-};
-
-function fnMacroStringInsert(objId, addText) {
- var insertObj = document.getElementById(objId);
- var textVal = insertObj.value;
- var setPosition = insertObj.selectionStart;
- var beforeTxt = textVal.substring(0, setPosition);
- var afterTxt = textVal.substring(insertObj.selectionEnd, textVal.length);
- insertObj.value = beforeTxt + addText + afterTxt;
- setPosition = setPosition + addText.length;
- insertObj.selectionStart = setPosition;
- insertObj.selectionEnd = setPosition;
- insertObj.focus();
-}
-
-function fnMacroWordsReplace(header, footer, body, telno, picNm) {
- var result = header + "\n\n" + body + "\n\n" + footer;
- result = result.replaceAll("@", "@");
-
- var seq = 1;
- var splited = result.split(MACRO_STRING.MACRO_SEQ);
- var seqCount = splited.length - 1;
- if(seqCount > 0){
- for(; seq <= seqCount; seq++){
- result = result.replace(MACRO_STRING.MACRO_SEQ, seq);
- }
- }
-
- result = result.replaceAll(MACRO_STRING.MACRO_TELNO, telno);
- result = result.replaceAll(MACRO_STRING.MACRO_PIC_NM, picNm);
-
- return result;
-}
\ No newline at end of file
diff --git a/src/main/webapp/resources/js/fims/pdfobject.js b/src/main/webapp/resources/js/fims/pdfobject.js
deleted file mode 100644
index f6738a8..0000000
--- a/src/main/webapp/resources/js/fims/pdfobject.js
+++ /dev/null
@@ -1,341 +0,0 @@
-/**
- * PDFObject v2.2.12
- * https://github.com/pipwerks/PDFObject
- * @license
- * Copyright (c) 2008-2023 Philip Hutchison
- * MIT-style license: http://pipwerks.mit-license.org/
- * UMD module pattern from https://github.com/umdjs/umd/blob/master/templates/returnExports.js
- */
-
-(function (root, factory) {
- if (typeof define === "function" && define.amd) {
- // AMD. Register as an anonymous module.
- define([], factory);
- } else if (typeof module === "object" && module.exports) {
- // Node. Does not work with strict CommonJS, but
- // only CommonJS-like environments that support module.exports,
- // like Node.
- module.exports = factory();
- } else {
- // Browser globals (root is window)
- root.PDFObject = factory();
- }
-}(this, function () {
-
- "use strict";
-
- //PDFObject is designed for client-side (browsers), not server-side (node)
- //Will choke on undefined navigator and window vars when run on server
- //Return boolean false and exit function when running server-side
-
- if( typeof window === "undefined" ||
- window.navigator === undefined ||
- window.navigator.userAgent === undefined ||
- window.navigator.mimeTypes === undefined){
- return false;
- }
-
- let pdfobjectversion = "2.2.12";
- let nav = window.navigator;
- let ua = window.navigator.userAgent;
-
- //Time to jump through hoops -- browser vendors do not make it easy to detect PDF support.
-
- /*
- IE11 still uses ActiveX for Adobe Reader, but IE 11 doesn't expose window.ActiveXObject the same way
- previous versions of IE did. window.ActiveXObject will evaluate to false in IE 11, but "ActiveXObject"
- in window evaluates to true.
-
- MS Edge does not support ActiveX so this test will evaluate false
- */
- let isIE = ("ActiveXObject" in window);
-
- /*
- There is a coincidental correlation between implementation of window.promises and native PDF support in desktop browsers
- We use this to assume if the browser supports promises it supports embedded PDFs
- Is this fragile? Sort of. But browser vendors removed mimetype detection, so we're left to improvise
- */
- let isModernBrowser = (window.Promise !== undefined);
-
- //Older browsers still expose the mimeType
- let supportsPdfMimeType = (nav.mimeTypes["application/pdf"] !== undefined);
-
- //Safari on iPadOS doesn't report as 'mobile' when requesting desktop site, yet still fails to embed PDFs
- let isSafariIOSDesktopMode = ( nav.platform !== undefined &&
- nav.platform === "MacIntel" &&
- nav.maxTouchPoints !== undefined &&
- nav.maxTouchPoints > 1 );
-
- //Quick test for mobile devices.
- let isMobileDevice = (isSafariIOSDesktopMode || /Mobi|Tablet|Android|iPad|iPhone/.test(ua));
-
- //Safari desktop requires special handling
- let isSafariDesktop = ( !isMobileDevice &&
- nav.vendor !== undefined &&
- /Apple/.test(nav.vendor) &&
- /Safari/.test(ua) );
-
- //Firefox started shipping PDF.js in Firefox 19. If this is Firefox 19 or greater, assume PDF.js is available
- let isFirefoxWithPDFJS = (!isMobileDevice && /irefox/.test(ua) && ua.split("rv:").length > 1) ? (parseInt(ua.split("rv:")[1].split(".")[0], 10) > 18) : false;
-
-
- /* ----------------------------------------------------
- Supporting functions
- ---------------------------------------------------- */
-
- let createAXO = function (type){
- var ax;
- try {
- ax = new ActiveXObject(type);
- } catch (e) {
- ax = null; //ensure ax remains null
- }
- return ax;
- };
-
- //If either ActiveX support for "AcroPDF.PDF" or "PDF.PdfCtrl" are found, return true
- //Constructed as a method (not a prop) to avoid unneccesarry overhead -- will only be evaluated if needed
- let supportsPdfActiveX = function (){ return !!(createAXO("AcroPDF.PDF") || createAXO("PDF.PdfCtrl")); };
-
- //Determines whether PDF support is available
- let supportsPDFs = (
- //As of Sept 2020 no mobile browsers properly support PDF embeds
- !isMobileDevice && (
- //We're moving into the age of MIME-less browsers. They mostly all support PDF rendering without plugins.
- isModernBrowser ||
- //Modern versions of Firefox come bundled with PDFJS
- isFirefoxWithPDFJS ||
- //Browsers that still support the original MIME type check
- supportsPdfMimeType ||
- //Pity the poor souls still using IE
- (isIE && supportsPdfActiveX())
- )
- );
-
- //Create a fragment identifier for using PDF Open parameters when embedding PDF
- let buildURLFragmentString = function(pdfParams){
-
- let string = "";
- let prop;
-
- if(pdfParams){
-
- for (prop in pdfParams) {
- if (pdfParams.hasOwnProperty(prop)) {
- string += encodeURIComponent(prop) + "=" + encodeURIComponent(pdfParams[prop]) + "&";
- }
- }
-
- //The string will be empty if no PDF Params found
- if(string){
-
- string = "#" + string;
-
- //Remove last ampersand
- string = string.slice(0, string.length - 1);
-
- }
-
- }
-
- return string;
-
- };
-
- let embedError = function (msg, suppressConsole){
- if(!suppressConsole){
- console.log("[PDFObject] " + msg);
- }
- return false;
- };
-
- let emptyNodeContents = function (node){
- while(node.firstChild){
- node.removeChild(node.firstChild);
- }
- };
-
- let getTargetElement = function (targetSelector){
-
- //Default to body for full-browser PDF
- let targetNode = document.body;
-
- //If a targetSelector is specified, check to see whether
- //it's passing a selector, jQuery object, or an HTML element
-
- if(typeof targetSelector === "string"){
-
- //Is CSS selector
- targetNode = document.querySelector(targetSelector);
-
- } else if (window.jQuery !== undefined && targetSelector instanceof jQuery && targetSelector.length) {
-
- //Is jQuery element. Extract HTML node
- targetNode = targetSelector.get(0);
-
- } else if (targetSelector.nodeType !== undefined && targetSelector.nodeType === 1){
-
- //Is HTML element
- targetNode = targetSelector;
-
- }
-
- return targetNode;
-
- };
-
- let generatePDFObjectMarkup = function (embedType, targetNode, url, pdfOpenFragment, width, height, id, title, omitInlineStyles, customAttribute, PDFJS_URL){
-
- //Ensure target element is empty first
- emptyNodeContents(targetNode);
-
- let source = url;
-
- if(embedType === "pdfjs"){
- //If PDFJS_URL already contains a ?, assume querystring is in place, and use an ampersand to append PDFJS's file parameter
- let connector = (PDFJS_URL.indexOf("?") !== -1) ? "&" : "?";
- source = PDFJS_URL + connector + "file=" + encodeURIComponent(url) + pdfOpenFragment;
- } else {
- source += pdfOpenFragment;
- }
-
- let el_type = (embedType === "pdfjs" || embedType === "iframe") ? "iframe" : "embed";
- let el = document.createElement(el_type);
-
- el.className = "pdfobject";
- el.type = "application/pdf";
- el.title = title;
- el.src = source;
-
- if(id){
- el.id = id;
- }
-
- if(el_type === "iframe"){
- el.allow = "fullscreen";
- el.frameborder = "0";
- }
-
- if(!omitInlineStyles){
-
- let style = (el_type === "embed") ? "overflow: auto;" : "border: none;";
-
- if(targetNode !== document.body){
- //assign width and height to target node
- style += "width: " + width + "; height: " + height + ";";
- } else {
- //this is a full-page embed, use CSS to fill the viewport
- style += "position: absolute; top: 0; right: 0; bottom: 0; left: 0; width: 100%; height: 100%;";
- }
-
- el.style.cssText = style;
-
- }
-
- //Allow developer to insert custom attribute on embed/iframe element, but ensure it does not conflict with attributes used by PDFObject
- let reservedTokens = ["className", "type", "title", "src", "style", "id", "allow", "frameborder"];
- if(customAttribute && customAttribute.key && reservedTokens.indexOf(customAttribute.key) === -1){
- el.setAttribute(customAttribute.key, (typeof customAttribute.value !== "undefined") ? customAttribute.value : "");
- }
-
- targetNode.classList.add("pdfobject-container");
- targetNode.appendChild(el);
-
- return targetNode.getElementsByTagName(el_type)[0];
-
- };
-
- let embed = function(url, targetSelector, options){
-
- //If targetSelector is not defined, convert to boolean
- let selector = targetSelector || false;
-
- //Ensure options object is not undefined -- enables easier error checking below
- let opt = options || {};
-
- //Get passed options, or set reasonable defaults
- let id = (typeof opt.id === "string") ? opt.id : "";
- let page = opt.page || false;
- let pdfOpenParams = opt.pdfOpenParams || {};
- let fallbackLink = (typeof opt.fallbackLink === "string" || typeof opt.fallbackLink === "boolean") ? opt.fallbackLink : true;
- let width = opt.width || "100%";
- let height = opt.height || "100%";
- let title = opt.title || "Embedded PDF";
- let assumptionMode = (typeof opt.assumptionMode === "boolean") ? opt.assumptionMode : true;
- let forcePDFJS = (typeof opt.forcePDFJS === "boolean") ? opt.forcePDFJS : false;
- let supportRedirect = (typeof opt.supportRedirect === "boolean") ? opt.supportRedirect : false;
- let omitInlineStyles = (typeof opt.omitInlineStyles === "boolean") ? opt.omitInlineStyles : false;
- let suppressConsole = (typeof opt.suppressConsole === "boolean") ? opt.suppressConsole : false;
- let forceIframe = (typeof opt.forceIframe === "boolean") ? opt.forceIframe : false;
- let PDFJS_URL = opt.PDFJS_URL || false;
- let targetNode = getTargetElement(selector);
- let fallbackHTML = "";
- let pdfOpenFragment = "";
- let customAttribute = opt.customAttribute || {};
- let fallbackHTML_default = "This browser does not support inline PDFs. Please download the PDF to view it: Download PDF
";
-
- //Ensure URL is available. If not, exit now.
- if(typeof url !== "string"){ return embedError("URL is not valid", suppressConsole); }
-
- //If target element is specified but is not valid, exit without doing anything
- if(!targetNode){ return embedError("Target element cannot be determined", suppressConsole); }
-
- //page option overrides pdfOpenParams, if found
- if(page){ pdfOpenParams.page = page; }
-
- //Stringify optional Adobe params for opening document (as fragment identifier)
- pdfOpenFragment = buildURLFragmentString(pdfOpenParams);
-
-
- // --== Do the dance: Embed attempt #1 ==--
-
- //If the forcePDFJS option is invoked, skip everything else and embed as directed
- if(forcePDFJS && PDFJS_URL){
- return generatePDFObjectMarkup("pdfjs", targetNode, url, pdfOpenFragment, width, height, id, title, omitInlineStyles, customAttribute, PDFJS_URL);
- }
-
- // --== Embed attempt #2 ==--
-
- //Embed PDF if traditional support is provided, or if this developer is willing to roll with assumption
- //that modern desktop (not mobile) browsers natively support PDFs
- if(supportsPDFs || (assumptionMode && !isMobileDevice)){
-
- //Should we use