Diff
checker
テキスト
テキスト
画像
ドキュメント
Excel
フォルダ
Legal
Enterprise
デスクトップ
料金
ログイン
Diffchecker デスクトップのダウンロード
テキスト比較
2 つのテキスト ファイルの違いを見つける
ツール
履歴
ライブエディター
未変更行を折りたたむ
折り返しなし
レイアウト
分割
統合
比較精度
スマート
単語
文字
シンタックスハイライト
構文を選択
無視
テキスト変換
最初の差分へ移動
入力を編集
Diffchecker Desktop
Diffcheckerを実行する最も安全な方法。Diffchecker Desktopアプリを入手:あなたの差分はコンピューターから出ることはありません!
Desktopを入手
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); } }
違いを見つける