PageSourceSearch

https://shinhan.co.id/wp-content/cache/speedycache/shinhan.co.id/a…7793fa036ae5c7a-group-accordion-frontend.js

js shinhan.co.id collected 2026-09-24 09:48:48 UTC 10,369 bytes, 301 lines download raw bytes

1(function ($){
2const groupAccordions=$(".wp-block-aab-group-accordion");
3let id=0;
4$.each(groupAccordions, function (index, item){
5const accordionId=$(item).attr('id');
6const parentDiv=$(`#${accordionId}`);
7const accordionItems=$(parentDiv).children('.wp-block-aab-accordion-item.aagb__accordion_container.step');
8const accordionCompletionStatus={};
9const accordionStatusCookie=JSON.parse(getCookie(`aab-completion-status-${accordionId}`));
10$.each(accordionItems, function (index, accordionItem){
11const accordionHead=$(accordionItem).children('.aagb__accordion_head');
12const accordionBody=$(accordionItem).children('.aagb__accordion_body');
13const accordionBodyContinue=$(accordionBody).children('.continue');
14const completeSign=$(accordionHead).find('.complete-sign');
15const aagbIcon=$(accordionHead).find('.aagb__icon');
16const $stepResult=$("#" + accordionId).find('> .step-result');
17if(accordionStatusCookie!==null){
18accordionCompletionStatus[index]=accordionStatusCookie[index]||false;
19if(accordionCompletionStatus[index]){
20completeSign.show();
21aagbIcon.hide();
22accordionBodyContinue.hide();
23}}else{
24accordionCompletionStatus[index]=false;
25}
26accordionBodyContinue.on('click', function (e){
27completeSign.show();
28accordionHead.click();
29accordionCompletionStatus[index]=true;
30aagbIcon.hide();
31accordionBodyContinue.hide();
32setCookie('aab-completion-status-' + accordionId, JSON.stringify(accordionCompletionStatus), 30);
33updateProgressBasedOnActiveSection(accordionId, parentDiv.find("#progressBarFill"));
34if(allAccordionsCompleted(accordionCompletionStatus, accordionItems)){
35$stepResult.css('display', 'block');
36setTimeout(()=> {
37$stepResult.hide();
38}, 5000)
39}else{
40let nextIndex=index + 1;
41while (nextIndex < accordionItems.length){
42if(!accordionCompletionStatus[nextIndex]){
43accordionItems.eq(nextIndex).find("> .aagb__accordion_head").click();
44break;
45}
46nextIndex++;
47}
48if(nextIndex >=accordionItems.length){
49nextIndex=0;
50while (nextIndex < index){
51if(!accordionCompletionStatus[nextIndex]){
52accordionItems.eq(nextIndex).find('> .aagb__accordion_head').click();
53break;
54}
55nextIndex++;
56}}
57}})
58})
59const lastAccordionItem=accordionItems.last();
60const lastAccordionItemStepText=lastAccordionItem.find('> .aagb__accordion_body').children('.continue').find('.step-text');
61if(lastAccordionItemStepText.length > 0){
62lastAccordionItemStepText.text("End");
63}
64const accordionCheckListItems=$(parentDiv).children('.wp-block-aab-accordion-item.aagb__accordion_container.check-list');
65if(accordionCheckListItems.length){
66let checklistItems=[];
67const checklistItemsCookie=JSON.parse(getCookie(`aab-checklist-status-${accordionId}`));
68if(checklistItemsCookie!==null){
69checklistItems=checklistItemsCookie;
70}
71$.each(accordionCheckListItems, function (index, item){
72const checklistBox=$(item).find('> .aagb__accordion_head  .checklist-box');
73const aagb__accordion_title=$(item).find('> .aagb__accordion_head .aagb__accordion_title');
74let isChecked=false;
75if(checklistItemsCookie==null){
76const checklistItemsObj={[`${index}`]: false};
77checklistItems.push(checklistItemsObj);
78}else{
79$.each(checklistItems, function (checklistItemsIndex, checklistItem){
80if(index===checklistItemsIndex){
81if(checklistItem[checklistItemsIndex]===true){
82checklistBox.prop('checked', true);
83aagb__accordion_title.toggleClass('line-through');
84}}
85});
86}
87checklistBox.change(function (){
88aagb__accordion_title.toggleClass('line-through');
89isChecked=checklistBox.is(':checked');
90checklistItems[index]={[`${index}`]: isChecked};
91setCookie('aab-checklist-status-' + accordionId, JSON.stringify(checklistItems), 30);
92const checklistStatus={};
93checklistItems.forEach((item, idx)=> {
94checklistStatus[idx]=item[idx];
95});
96updateProgressBasedOnActiveSection(accordionId, parentDiv.find("#progressBarFill"));
97});
98});
99}})
100function allAccordionsCompleted(status, items){
101for (let i=0; i < items.length; i++){
102if(!status[i]){
103return false;
104}}
105return true;
106}
107$(".aagb__accordion_component.read-more-btn").each(function (){
108const textMax=$(this).data('contentcount');
109const paragraph=$(this).find("p:first");
110const fullText=paragraph.text();
111if(paragraph.text().length > textMax){
112const slicedText=fullText.slice(0, textMax);
113paragraph.text(slicedText + '...').show();
114paragraph.data("full-text", fullText);
115$(this).children().not(paragraph).not('.aagb_overlay').fadeOut();
116$(this).siblings(".aagb_button_toggle").click(function (e){
117e.preventDefault();
118const $btn=$(this);
119const $body=$btn.closest(".aagb__accordion_body");
120const $component=$body.find(".aagb__accordion_component");
121const $overlay=$body.find(".aagb_overlay");
122const startHeight=$component.height();
123paragraph.text(fullText);
124$component.children().not('.aagb_overlay').show();
125const endHeight=$component.height();
126$component
127.css({ height: startHeight, overflow: "hidden" })
128.animate({ height: endHeight }, "slow", function (){
129$component.css({ height: "", overflow: "" });
130});
131$btn.fadeOut("slow");
132$overlay.fadeOut("slow").removeClass("aagb_overlay");
133});
134}else{
135$(this).siblings(".aagb_button_toggle").remove();
136$(this).closest(".aagb__accordion_body").find(".aagb_overlay").remove();
137}});
138function setCookie(name, value, days){
139let expires="";
140if(days){
141let date=new Date();
142date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
143expires="; expires=" + date.toUTCString();
144}
145document.cookie=name + "=" + (value||"") + expires + "; path=/";
146}
147function getCookie(name){
148let nameEQ=name + "=";
149let ca=document.cookie.split(';');
150for (let i=0; i < ca.length; i++){
151let c=ca[i];
152while (c.charAt(0)==' ') c=c.substring(1, c.length);
153if(c.indexOf(nameEQ)==0) return c.substring(nameEQ.length, c.length);
154}
155return null;
156}
157if($('.wp-block-aab-group-accordion').length){
158$(".wp-block-aab-group-accordion").each(function (){
159const $groupAccordion=$(this);
160const $accordionItems=$groupAccordion.find('> .wp-block-aab-accordion-item');
161const $searchContainer=$groupAccordion.find('> .aagb_form_inner');
162const $search=$searchContainer.find('> .aagb_form_group .aagb-search-control');
163const $searchHelp=$searchContainer.find('> .help-block');
164const $searchWrapperBtn=$groupAccordion.find('> .aagb_accordion_wrapper_btn');
165const $showMoreBtn=$groupAccordion.find('> .aab-show-more-btn-container .show-more-btn');
166const $showLessBtn=$groupAccordion.find('> .aab-show-more-btn-container .show-less-btn');
167let itemsPerClick=Number($showMoreBtn.data('items-to-show'));
168let itemsToShow=itemsPerClick;
169let filterClass='';
170let searchTxt='';
171let searchTimeout;
172$search.on('input', function (){
173clearTimeout(searchTimeout);
174searchTimeout=setTimeout(()=> {
175searchTxt=$search.val();
176loadAccordions();
177}, 300);
178});
179$search.one('focus input', function (){
180$accordionItems.each(function (){
181if(!$(this).data('search-content')){
182$(this).data('search-content', $(this).text().toLowerCase());
183}});
184});
185function loadAccordions(){
186let _targetItems=$accordionItems;
187_targetItems.hide();
188if(filterClass) _targetItems=_targetItems.filter(`.${filterClass}`);
189$searchContainer.removeClass('has-success has-error');
190$groupAccordion?.unmark?.();
191$searchHelp.hide();
192if(searchTxt){
193$searchHelp.show();
194const searchLower=searchTxt.toLowerCase();
195_targetItems=_targetItems.filter(function(){
196const content=$(this).data('search-content')||$(this).text().toLowerCase();
197return content.includes(searchLower);
198});
199if(_targetItems.length){
200$searchHelp.text(`${_targetItems.length} question(s) found.`);
201$searchContainer.addClass('has-success');
202_targetItems?.mark?.(searchTxt);
203$searchWrapperBtn.show();
204}else{
205$searchContainer.addClass('has-error');
206$searchHelp.text('No questions found.');
207$searchWrapperBtn.hide();
208}}
209$showMoreBtn.parent()?.show();
210if(itemsToShow > 0){
211let loaded=0;
212_targetItems.each(function (){
213$(this).hide();
214if(loaded < itemsToShow){
215$(this).show();
216loaded++;
217}});
218if(loaded >=_targetItems.length){
219$showMoreBtn.hide();
220$showLessBtn.show(0, function (){
221$(this).css("display", "flex");
222});
223$showLessBtn.parent()?.css("background-color", "#ffffff00");
224if(loaded <=itemsPerClick) $showMoreBtn.parent()?.hide();
225}else{
226$showMoreBtn.show();
227$showLessBtn.hide();
228}}else{
229_targetItems.show();
230$showMoreBtn?.parent()?.hide();
231}}
232var filterButtons=$(this).find('> .aab-filter-button-group button');
233var allButton=$(this).find('> .aab-filter-button-group .cat_all_item');
234filterButtons.on('click', function (){
235filterClass=$(this).data('filter');
236filterButtons.removeClass('active');
237allButton.removeClass('active');
238$(this).addClass('active');
239loadAccordions();
240});
241allButton.on('click', function (){
242filterButtons.removeClass('active');
243$(this).addClass('active');
244filterClass='';
245loadAccordions();
246});
247allButton.click();
248loadAccordions();
249$showMoreBtn.on('click', function (){
250itemsToShow +=itemsPerClick;
251loadAccordions();
252$showLessBtn.focus();
253});
254$showLessBtn.on('click', function (){
255itemsToShow=itemsPerClick;
256loadAccordions();
257$showMoreBtn.focus();
258});
259});
260}
261function updateProgressBasedOnActiveSection(accordionId, $progressBarFill){
262const $groupAccordion=$('#' + accordionId);
263const $stepAccordionItems=$groupAccordion.children('.wp-block-aab-accordion-item.aagb__accordion_container.step'
264);
265const $checklistAccordionItems=$groupAccordion.children('.wp-block-aab-accordion-item.aagb__accordion_container.check-list'
266);
267const $progressText=$groupAccordion.find('.aab-progress-text');
268let completedCount=0,
269totalCount=0,
270percentage=0;
271if($stepAccordionItems.length&&$stepAccordionItems.is(':visible')){
272const stepStatus=JSON.parse(getCookie(`aab-completion-status-${accordionId}`)||'{}'
273);
274totalCount=$stepAccordionItems.length;
275for (let i=0; i < totalCount; i++)
276if(stepStatus[i]) completedCount++;
277}else if($checklistAccordionItems.length &&
278$checklistAccordionItems.is(':visible')
279){
280const checklistStatus=JSON.parse(getCookie(`aab-checklist-status-${accordionId}`)||'[]'
281);
282totalCount=$checklistAccordionItems.length;
283for (let i=0; i < totalCount; i++)
284if(checklistStatus[i]&&checklistStatus[i][i])
285completedCount++;
286}
287percentage=totalCount > 0 ? (completedCount / totalCount) * 100:0;
288$progressBarFill.css('width', `${percentage}%`);
289$progressText.text(`${Math.round(percentage)}%`);
290setCookie(`aab-progress-${accordionId}`, percentage, 30);
291}
292$(document).ready(function (){
293$('.wp-block-aab-group-accordion').each(function (){
294const accordionId=$(this).attr('id');
295updateProgressBasedOnActiveSection(
296accordionId,
297$(this).find('#progressBarFill')
298);
299});
300});
301})(jQuery);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.