Diff
checker
텍스트
텍스트
이미지
문서
Excel
폴더
Legal
Enterprise
데스크톱
요금제
로그인
데스크톱 앱 다운로드
텍스트 비교
두 텍스트 파일의 차이점을 찾아보세요
도구
기록
실시간 편집
변경 없는 행 숨기기
줄바꿈 비활성화
레이아웃
나란히 보기
합쳐 보기
비교 단위
스마트
단어
글자
구문 강조
언어 선택
제외
텍스트 변환
첫 변경으로
수정
Diffchecker Desktop
가장 안전하게 Diffchecker를 사용하는 방법. 데스크톱 앱을 사용하면 비교 데이터가 외부로 전송되지 않습니다!
데스크톱 앱 받기
Untitled diff
생성일
7년 전
비교 결과 만료 없음
초기화
내보내기
공유
설명
56 삭제
행
총
삭제
글자
총
삭제
이 기능을 계속 사용하려면 업그레이드해 주세요
Diff
checker
Pro
요금제 보기
62 행
복사
39 추가
행
총
추가
글자
총
추가
이 기능을 계속 사용하려면 업그레이드해 주세요
Diff
checker
Pro
요금제 보기
46 행
복사
복사
복사됨
복사
복사됨
import { inject as service } from
'
@ember
/service
'
;
import { inject as service } from
"
@ember
-decorators
/service
"
;
import Component from '@ember/component';
import Component from '@ember/component';
복사
복사됨
복사
복사됨
import {
computed } from
'
@ember/object
'
;
import {
action, wrapComputed,
computed } from
"
@ember/object
"
;
import { isEmpty } from '@ember/utils';
import { isEmpty } from '@ember/utils';
import { task } from 'ember-concurrency';
import { task } from 'ember-concurrency';
import { filterByFilePath } from '../utils';
import { filterByFilePath } from '../utils';
복사
복사됨
복사
복사됨
export default
Component.
extend
(
{
export default
class AddonSourceUsagesComponent
extend
s Component
{
visibleUsageCount
:
25
,
visibleUsageCount
=
25
;
showUsages
=
false
;
showUsages
:
false
,
usages
=
null
;
regex
=
false
;
usages
:
null
,
fileFilter
=
null
;
regex
:
false
,
fileFilter
:
null
,
복사
복사됨
복사
복사됨
codeSearch
: service(),
@service
codeSearch
;
복사
복사됨
복사
복사됨
visibleUsages:
computed('visibleUsageCount', 'usages'
, function
() {
@
computed('visibleUsageCount', 'usages'
)
get visibleUsages
() {
return this.usages.slice(0, this.visibleUsageCount);
return this.usages.slice(0, this.visibleUsageCount);
복사
복사됨
복사
복사됨
}
),
}
복사
복사됨
복사
복사됨
moreUsages:
computed('visibleUsageCount', 'usages'
, function
() {
@
computed('visibleUsageCount', 'usages'
)
get moreUsages
() {
return this.visibleUsageCount < this.usages.length;
return this.visibleUsageCount < this.usages.length;
복사
복사됨
복사
복사됨
}
),
}
복사
복사됨
복사
복사됨
fetchUsages:
task(function* () {
@(
task(function* () {
let usages = yield this.codeSearch.usages.perform(this.addon.id, this.query, this.regex);
let usages = yield this.codeSearch.usages.perform(this.addon.id, this.query, this.regex);
this.set('usages', filterByFilePath(usages, this.fileFilter));
this.set('usages', filterByFilePath(usages, this.fileFilter));
복사
복사됨
복사
복사됨
}).drop()
,
}).drop()
)
fetchUsages
;
actions: {
toggleUsages() {
this.toggleProperty('showUsages');
if (this.showUsages && this.usages === null) {
this.
fetchUsages
.perform();
}
},
복사
복사됨
복사
복사됨
viewMore
() {
@action
let newUsageCount =
this.
visibleUsageCount + 25;
toggleUsages
() {
this.
set('visibleUsageCount', newUsageCount
);
this.toggleProperty('showUsages');
if (
this.
showUsages && this.usages === null) {
this.
fetchUsages.perform(
);
}
}
}
}
복사
복사됨
복사
복사됨
});
복사
복사됨
복사
복사됨
fun
ction
filterByFilePath(usages, filterTerm) {
@a
ction
if (isEmpty(filterTerm)
) {
viewMore(
) {
return usages;
let newUsageCount = this.visibleUsageCount + 25;
}
this.set('visibleUsageCount', newUsageCount);
let filterRegex;
try {
filterRegex = new RegExp(filterTerm);
} catch(e) {
return [];
}
}
복사
복사됨
복사
복사됨
return usages.filter((usage) => {
return usage.filename.match(filterRegex);
});
}
}
저장된 비교 결과
원본
파일 열기
import { inject as service } from '@ember/service'; import Component from '@ember/component'; import { computed } from '@ember/object'; import { isEmpty } from '@ember/utils'; import { task } from 'ember-concurrency'; import { filterByFilePath } from '../utils'; export default Component.extend({ visibleUsageCount: 25, showUsages: false, usages: null, regex: false, fileFilter: null, codeSearch: service(), visibleUsages: computed('visibleUsageCount', 'usages', function() { return this.usages.slice(0, this.visibleUsageCount); }), moreUsages: computed('visibleUsageCount', 'usages', function() { return this.visibleUsageCount < this.usages.length; }), fetchUsages: task(function* () { let usages = yield this.codeSearch.usages.perform(this.addon.id, this.query, this.regex); this.set('usages', filterByFilePath(usages, this.fileFilter)); }).drop(), actions: { toggleUsages() { this.toggleProperty('showUsages'); if (this.showUsages && this.usages === null) { this.fetchUsages.perform(); } }, viewMore() { let newUsageCount = this.visibleUsageCount + 25; this.set('visibleUsageCount', newUsageCount); } } }); function filterByFilePath(usages, filterTerm) { if (isEmpty(filterTerm)) { return usages; } let filterRegex; try { filterRegex = new RegExp(filterTerm); } catch(e) { return []; } return usages.filter((usage) => { return usage.filename.match(filterRegex); }); }
수정본
파일 열기
import { inject as service } from "@ember-decorators/service"; import Component from '@ember/component'; import { action, wrapComputed, computed } from "@ember/object"; import { isEmpty } from '@ember/utils'; import { task } from 'ember-concurrency'; import { filterByFilePath } from '../utils'; export default class AddonSourceUsagesComponent extends Component { visibleUsageCount = 25; showUsages = false; usages = null; regex = false; fileFilter = null; @service codeSearch; @computed('visibleUsageCount', 'usages') get visibleUsages() { return this.usages.slice(0, this.visibleUsageCount); } @computed('visibleUsageCount', 'usages') get moreUsages() { return this.visibleUsageCount < this.usages.length; } @(task(function* () { let usages = yield this.codeSearch.usages.perform(this.addon.id, this.query, this.regex); this.set('usages', filterByFilePath(usages, this.fileFilter)); }).drop()) fetchUsages; @action toggleUsages() { this.toggleProperty('showUsages'); if (this.showUsages && this.usages === null) { this.fetchUsages.perform(); } } @action viewMore() { let newUsageCount = this.visibleUsageCount + 25; this.set('visibleUsageCount', newUsageCount); } }
비교하기