mirror of
https://gitlab.com/walljm/dynamicbible.git
synced 2025-07-25 00:09:54 -04:00
FEATURE: Added links to strongs #s in strongs reference display
* cleaned up the code in the utility * added break in menu to dilineate saved pages
This commit is contained in:
parent
72207e327d
commit
1947ab51a2
@ -40,3 +40,5 @@ DynamicBibleIonic/.idea
|
||||
DynamicBibleIonic/nbproject
|
||||
DynamicBibleIonic/obj
|
||||
DynamicBibleIonic/bin
|
||||
DynamicBibleIonic/.vscode
|
||||
DynamicBibleUtility/.vs
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,19 +1,23 @@
|
||||
<ion-menu [content]="content">
|
||||
|
||||
<ion-header>
|
||||
<ion-toolbar>
|
||||
<ion-title>Pages</ion-title>
|
||||
</ion-toolbar>
|
||||
</ion-header>
|
||||
|
||||
<ion-content>
|
||||
<ion-list>
|
||||
<button ion-item *ngFor="let p of pagesSvc.getResult()" (click)="openPage(p)">
|
||||
{{p.title}}
|
||||
</button>
|
||||
</ion-list>
|
||||
</ion-content>
|
||||
|
||||
</ion-menu>
|
||||
|
||||
<ion-nav [root]="rootPage" #content swipeBackEnabled="false"></ion-nav>
|
||||
<ion-menu [content]="content">
|
||||
<ion-header>
|
||||
<ion-toolbar>
|
||||
<ion-title>Pages</ion-title>
|
||||
</ion-toolbar>
|
||||
</ion-header>
|
||||
<ion-content>
|
||||
<ion-list>
|
||||
<button ion-item *ngFor="let p of pagesSvc.getMainPages()" (click)="openPage(p)">
|
||||
{{p.title}}
|
||||
</button>
|
||||
</ion-list>
|
||||
<ion-list>
|
||||
<ion-list-header>
|
||||
Saved Pages
|
||||
</ion-list-header>
|
||||
<button ion-item *ngFor="let p of pagesSvc.getSavedPages()" (click)="openPage(p)">
|
||||
{{p.title}}
|
||||
</button>
|
||||
</ion-list>
|
||||
</ion-content>
|
||||
</ion-menu>
|
||||
<ion-nav [root]="rootPage" #content swipeBackEnabled="false"></ion-nav>
|
@ -18,4 +18,11 @@
|
||||
.item-md {
|
||||
padding: 0px !important;
|
||||
padding-left: 16px !important;
|
||||
}
|
||||
|
||||
ion-menu{
|
||||
ion-list-header{
|
||||
font-size: 1.4em !important;
|
||||
margin-bottom: 0 !important;
|
||||
}
|
||||
}
|
@ -13,11 +13,8 @@
|
||||
</h2>
|
||||
<span *ngFor="let vs of ch.vss">
|
||||
<b>{{vs.v}}.</b> <span *ngFor="let w of vs.w">
|
||||
<template [ngIf]="!isPunct(w.t)">
|
||||
</template><a *ngIf="w.s != null" (click)="openStrongs(w.s)" (press)="openMenu(w.s)">{{w.t}}</a>
|
||||
<template [ngIf]="!(w.s != null)">
|
||||
{{w.t}}
|
||||
</template>
|
||||
<template [ngIf]="!isPunct(w.t)"> </template><a *ngIf="w.s != null" (click)="openStrongs(w.s)" (press)="openMenu(w.s)">{{w.t}}</a>
|
||||
<template [ngIf]="w.s == null">{{w.t}}</template>
|
||||
</span><br>
|
||||
</span>
|
||||
</div>
|
||||
|
@ -13,7 +13,7 @@ passage .passage-text {
|
||||
padding-top: 12px;
|
||||
}
|
||||
|
||||
@media screen and (min-width: 700px) and (max-width: 949px) {
|
||||
@media screen and (min-width: 800px) {
|
||||
passage .passage-text {
|
||||
-webkit-column-count: 2; /* Chrome, Safari, Opera */
|
||||
-moz-column-count: 2; /* Firefox */
|
||||
@ -29,20 +29,3 @@ passage .passage-text {
|
||||
column-rule-width: 1px;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (min-width: 950px) {
|
||||
passage .passage-text {
|
||||
-webkit-column-count: 3; /* Chrome, Safari, Opera */
|
||||
-moz-column-count: 3; /* Firefox */
|
||||
column-count: 3;
|
||||
-webkit-column-gap: 30px; /* Chrome, Safari, Opera */
|
||||
-moz-column-gap: 30px; /* Firefox */
|
||||
column-gap: 30px;
|
||||
-webkit-column-rule-style: dotted; /* Chrome, Safari, Opera */
|
||||
-moz-column-rule-style: dotted; /* Firefox */
|
||||
column-rule-style: dotted;
|
||||
-webkit-column-rule-width: 1px; /* Chrome, Safari, Opera */
|
||||
-moz-column-rule-width: 1px; /* Firefox */
|
||||
column-rule-width: 1px;
|
||||
}
|
||||
}
|
@ -9,7 +9,7 @@ import { OpenData, CardItem } from "../../pages/search/search";
|
||||
export class Passage
|
||||
{
|
||||
@Output()
|
||||
onStrongsClicked = new EventEmitter<OpenData>();
|
||||
onItemClicked = new EventEmitter<OpenData>();
|
||||
@Output()
|
||||
onClose = new EventEmitter<CardItem>();
|
||||
|
||||
@ -30,13 +30,16 @@ export class Passage
|
||||
{
|
||||
this.onClose.emit(this.cardItem);
|
||||
}
|
||||
|
||||
openStrongs(strongs: string)
|
||||
{
|
||||
this.onStrongsClicked.emit({ card: this.cardItem, qry: this.dict + strongs });
|
||||
this.onItemClicked.emit({ card: this.cardItem, qry: this.dict + strongs });
|
||||
}
|
||||
|
||||
openMenu(strongs: string)
|
||||
{
|
||||
}
|
||||
|
||||
isPunct(c: string)
|
||||
{
|
||||
return new RegExp('^[\.\,\;\:\?\!]$').test(c)
|
||||
|
@ -14,7 +14,9 @@
|
||||
<br>
|
||||
<h2>Strongs Definitition</h2>
|
||||
<p>
|
||||
<b>{{item.def.tr}} ({{item.def.sn}})</b> - {{item.def.p}} - {{item.def.lemma}} - <span [innerHTML]="item.def.de"></span><br>
|
||||
<b>{{item.def.tr}} <template [ngIf]="item.def.sn != null">({{item.def.sn}})</template></b>
|
||||
- {{item.def.p}} - {{item.def.lemma}} -
|
||||
<span *ngFor="let part of item.def.de"><template [ngIf]="part.sn != null"><a (click)="openItem(part.sn)">{{part.sn}}</a></template><template [ngIf]="part.w != null"><span [innerHTML]="part.w"></span></template></span><br>
|
||||
</p>
|
||||
<template [ngIf]="item.rmac !== null">
|
||||
<h2>RMAC</h2>
|
||||
|
@ -0,0 +1,5 @@
|
||||
strongs-modal {
|
||||
a {
|
||||
cursor: pointer !important;
|
||||
}
|
||||
}
|
@ -12,7 +12,7 @@ export class StrongsModal
|
||||
item: StrongsResult;
|
||||
|
||||
@Output()
|
||||
onPassageClicked = new EventEmitter<string>();
|
||||
onItemClicked = new EventEmitter<string>();
|
||||
|
||||
constructor(
|
||||
public platform: Platform,
|
||||
@ -21,8 +21,8 @@ export class StrongsModal
|
||||
)
|
||||
{
|
||||
this.item = this.params.get('strongsid') as StrongsResult;
|
||||
this.onPassageClicked.subscribe(item =>
|
||||
this.params.get('onPassageClicked').getItems(item)
|
||||
this.onItemClicked.subscribe(item =>
|
||||
this.params.get('onItemClicked').getItems(item)
|
||||
)
|
||||
}
|
||||
|
||||
@ -30,13 +30,20 @@ export class StrongsModal
|
||||
{
|
||||
this.viewCtrl.dismiss();
|
||||
}
|
||||
|
||||
openItem(p: string)
|
||||
{
|
||||
this.onItemClicked.emit(p);
|
||||
}
|
||||
|
||||
makePassage(p: string)
|
||||
{
|
||||
return Reference.bookName(parseInt(p.split(";")[0])) + ' ' + p.split(";")[1] + ":" + p.split(";")[2];
|
||||
}
|
||||
|
||||
openPassage(p: string)
|
||||
{
|
||||
let ref = this.makePassage(p);
|
||||
this.onPassageClicked.emit(ref);
|
||||
this.onItemClicked.emit(ref);
|
||||
}
|
||||
}
|
@ -9,7 +9,9 @@
|
||||
<div class="strongs-def">
|
||||
<h2>Strongs Definitition</h2>
|
||||
<p>
|
||||
<b>{{item.def.tr}} ({{item.def.sn}})</b> - {{item.def.p}} - {{item.def.lemma}} - <span [innerHTML]="item.def.de"></span><br>
|
||||
<b>{{item.def.tr}} <template [ngIf]="item.def.sn != null">({{item.def.sn}})</template></b>
|
||||
- {{item.def.p}} - {{item.def.lemma}} -
|
||||
<span *ngFor="let part of item.def.de"><template [ngIf]="part.sn != null"><a (click)="openItem(part.sn)">{{part.sn}}</a></template><template [ngIf]="part.w != null"><span [innerHTML]="part.w"></span></template></span><br>
|
||||
</p>
|
||||
<template [ngIf]="item.rmac !== null">
|
||||
<h2>RMAC</h2>
|
||||
|
@ -8,7 +8,7 @@
|
||||
|
||||
strongs {
|
||||
ion-scroll {
|
||||
height: 250px;
|
||||
height: 200px;
|
||||
}
|
||||
|
||||
.strongs-def {
|
||||
|
@ -13,7 +13,7 @@ export class Strongs
|
||||
onClose = new EventEmitter<CardItem>();
|
||||
|
||||
@Output()
|
||||
onPassageClicked = new EventEmitter<OpenData>();
|
||||
onItemClicked = new EventEmitter<OpenData>();
|
||||
|
||||
@Input()
|
||||
item: StrongsResult;
|
||||
@ -29,13 +29,21 @@ export class Strongs
|
||||
{
|
||||
this.onClose.emit(this.cardItem);
|
||||
}
|
||||
|
||||
openItem(p: string)
|
||||
{
|
||||
this.onItemClicked.emit({ card: this.cardItem, qry: p });
|
||||
}
|
||||
|
||||
makePassage(p: string)
|
||||
{
|
||||
return Reference.bookName(parseInt(p.split(";")[0])) + ' ' + p.split(";")[1] + ":" + p.split(";")[2];
|
||||
}
|
||||
|
||||
openPassage(p: string)
|
||||
{
|
||||
let ref = this.makePassage(p);
|
||||
this.onPassageClicked.emit({ card: this.cardItem, qry: ref });
|
||||
this.onItemClicked.emit({ card: this.cardItem, qry: ref });
|
||||
}
|
||||
|
||||
}
|
@ -13,7 +13,7 @@ export class Words
|
||||
onClose = new EventEmitter<CardItem>();
|
||||
|
||||
@Output()
|
||||
onPassageClicked = new EventEmitter<OpenData>();
|
||||
onItemClicked = new EventEmitter<OpenData>();
|
||||
|
||||
@Input()
|
||||
item: WordLookupResult;
|
||||
@ -34,9 +34,10 @@ export class Words
|
||||
{
|
||||
return Reference.bookName(parseInt(p.split(":")[0])) + ' ' + p.split(":")[1] + ":" + p.split(":")[2];
|
||||
}
|
||||
|
||||
openPassage(p: string)
|
||||
{
|
||||
let ref = this.makePassage(p);
|
||||
this.onPassageClicked.emit({ card: this.cardItem, qry: ref });
|
||||
this.onItemClicked.emit({ card: this.cardItem, qry: ref });
|
||||
}
|
||||
}
|
@ -28,8 +28,8 @@
|
||||
|
||||
<ion-card *ngFor="let item of userProfile.user.items">
|
||||
<error *ngIf="isError(item.type)" [cardItem]="item" [item]="item.data" (onClose)="removeItem($event)"></error>
|
||||
<passage *ngIf="isPassage(item.type)" [cardItem]="item" [item]="item.data" (onClose)="removeItem($event)" [dict]="item.dict" (onStrongsClicked)="getItemsNextToCard($event)"></passage>
|
||||
<strongs *ngIf="isStrongs(item.type)" [cardItem]="item" [item]="item.data" (onClose)="removeItem($event)" (onPassageClicked)="getItemsNextToCard($event)"></strongs>
|
||||
<words *ngIf="isWords(item.type)" [cardItem]="item" [item]="item.data" (onClose)="removeItem($event)" (onPassageClicked)="getItemsNextToCard($event)"></words>
|
||||
<passage *ngIf="isPassage(item.type)" [cardItem]="item" [item]="item.data" (onClose)="removeItem($event)" [dict]="item.dict" (onItemClicked)="getItemsNextToCard($event)"></passage>
|
||||
<strongs *ngIf="isStrongs(item.type)" [cardItem]="item" [item]="item.data" (onClose)="removeItem($event)" (onItemClicked)="getItemsNextToCard($event)"></strongs>
|
||||
<words *ngIf="isWords(item.type)" [cardItem]="item" [item]="item.data" (onClose)="removeItem($event)" (onItemClicked)="getItemsNextToCard($event)"></words>
|
||||
</ion-card>
|
||||
</ion-content>
|
@ -1,5 +1,5 @@
|
||||
import { Type, Component } from '@angular/core';
|
||||
import { Loading, LoadingController, ModalController, NavController, MenuController, ViewController, App, NavParams, IonicApp } from 'ionic-angular';
|
||||
import { Loading, LoadingController, ModalController, NavParams } from 'ionic-angular';
|
||||
import { Storage } from '@ionic/storage';
|
||||
|
||||
import { StrongsModal } from '../../components/strongs-modal/strongs-modal';
|
||||
@ -26,16 +26,14 @@ export class SearchPage
|
||||
saved_results_title: string = "";
|
||||
|
||||
constructor(
|
||||
private strongsService: StrongsService
|
||||
, private bibleService: BibleService
|
||||
, private wordService: WordService
|
||||
, private pagesService: PagesService
|
||||
, public loadingCtrl: LoadingController
|
||||
, public modalCtrl: ModalController
|
||||
, public navCtl: NavController
|
||||
, public menuCtl: MenuController
|
||||
, public local: Storage
|
||||
, public params: NavParams
|
||||
private strongsService: StrongsService
|
||||
,private bibleService: BibleService
|
||||
,private wordService: WordService
|
||||
,private pagesService: PagesService
|
||||
,public loadingCtrl: LoadingController
|
||||
,public modalCtrl: ModalController
|
||||
,public local: Storage
|
||||
,public params: NavParams
|
||||
)
|
||||
{
|
||||
this.userProfile = new UserProfile(UserProfile.createDefaultUser());
|
||||
@ -75,7 +73,7 @@ export class SearchPage
|
||||
|
||||
presentStrongsModal(strongs: StrongsResult)
|
||||
{
|
||||
let modal = this.modalCtrl.create(StrongsModal, { strongsid: strongs, onPassageClicked: this });
|
||||
let modal = this.modalCtrl.create(StrongsModal, { strongsid: strongs, onItemClicked: this });
|
||||
modal.present();
|
||||
}
|
||||
|
||||
|
@ -2,7 +2,7 @@ import {getTestBed, TestBed} from '@angular/core/testing';
|
||||
import {BaseRequestOptions, HttpModule, Http,} from '@angular/http';
|
||||
import {MockBackend} from '@angular/http/testing';
|
||||
import {BibleService} from './bible-service';
|
||||
import {Reference} from './Reference';
|
||||
import {Reference} from '../libs/Reference';
|
||||
|
||||
describe('Bible Service', () =>
|
||||
{
|
||||
|
@ -8,6 +8,7 @@ import { SavedPage } from "../libs/UserProfile";
|
||||
export class PagesService
|
||||
{
|
||||
pages: Array<{ title: string, component: any, params: any }>;
|
||||
savedPages: Array<{ title: string, component: any, params: any }>;
|
||||
|
||||
constructor(public local: Storage)
|
||||
{
|
||||
@ -15,16 +16,22 @@ export class PagesService
|
||||
{ title: 'Search', component: SearchPage, params: { queries: []} },
|
||||
{ title: 'Settings', component: SettingsPage, params: {} }
|
||||
];
|
||||
this.savedPages = [];
|
||||
}
|
||||
|
||||
getResult(): Array<{ title: string, component: any }>
|
||||
getMainPages(): Array<{ title: string, component: any }>
|
||||
{
|
||||
return this.pages;
|
||||
}
|
||||
|
||||
getSavedPages(): Array<{ title: string, component: any }>
|
||||
{
|
||||
return this.savedPages;
|
||||
}
|
||||
|
||||
addPage(page: SavedPage)
|
||||
{
|
||||
this.pages.push({ title: page.title, component: SearchPage, params: { queries: page.queries } });
|
||||
this.savedPages.push({ title: page.title, component: SearchPage, params: { queries: page.queries } });
|
||||
}
|
||||
|
||||
initializePages(page_array: SavedPage[])
|
||||
@ -33,10 +40,11 @@ export class PagesService
|
||||
{ title: 'Search', component: SearchPage, params: { queries: [] } },
|
||||
{ title: 'Settings', component: SettingsPage, params: {} }
|
||||
];
|
||||
this.savedPages = [];
|
||||
|
||||
for (let p of page_array)
|
||||
{
|
||||
this.pages.push({ title: p.title, component: SearchPage, params: { queries: p.queries } });
|
||||
this.savedPages.push({ title: p.title, component: SearchPage, params: { queries: p.queries } });
|
||||
}
|
||||
}
|
||||
}
|
@ -3,55 +3,62 @@ import { BaseRequestOptions, HttpModule, Http, } from '@angular/http';
|
||||
import { MockBackend } from '@angular/http/testing';
|
||||
import { StrongsService } from './strongs-service';
|
||||
|
||||
describe('Strongs Service', () => {
|
||||
beforeEach(() => {
|
||||
TestBed.configureTestingModule({
|
||||
imports: [HttpModule],
|
||||
providers: [
|
||||
StrongsService,
|
||||
describe('Strongs Service', () =>
|
||||
{
|
||||
beforeEach(() =>
|
||||
{
|
||||
TestBed.configureTestingModule({
|
||||
imports: [HttpModule],
|
||||
providers: [
|
||||
StrongsService,
|
||||
{
|
||||
provide: Http,
|
||||
useFactory: function (backend, defaultOptions)
|
||||
{
|
||||
return new Http(backend, defaultOptions);
|
||||
},
|
||||
deps: [MockBackend, BaseRequestOptions]
|
||||
},
|
||||
MockBackend,
|
||||
BaseRequestOptions
|
||||
]
|
||||
});
|
||||
});
|
||||
|
||||
it('Should return an error status', () =>
|
||||
{
|
||||
let svc: StrongsService = getTestBed().get(StrongsService);
|
||||
let r = svc.getResult(6000, "grk");
|
||||
});
|
||||
it('Should get G2396', () =>
|
||||
{
|
||||
let svc: StrongsService = getTestBed().get(StrongsService);
|
||||
let r = svc.getResult(2396, "grk");
|
||||
expect(r.msg).toBe(':)');
|
||||
expect(r.status).toBe(0);
|
||||
});
|
||||
|
||||
for (let j = 1; j <= 5624; j++)
|
||||
{
|
||||
it('Get G' + j, () =>
|
||||
{
|
||||
provide: Http,
|
||||
useFactory: function (backend, defaultOptions) {
|
||||
return new Http(backend, defaultOptions);
|
||||
},
|
||||
deps: [MockBackend, BaseRequestOptions]
|
||||
},
|
||||
MockBackend,
|
||||
BaseRequestOptions
|
||||
]
|
||||
});
|
||||
});
|
||||
let svc: StrongsService = getTestBed().get(StrongsService);
|
||||
let r = svc.getResult(j, "grk");
|
||||
|
||||
it('Should return an error status', () => {
|
||||
let svc: StrongsService = getTestBed().get(StrongsService);
|
||||
let r = svc.getResult(6000, "grk");
|
||||
expect(r.msg).toBe(':)');
|
||||
expect(r.status).toBe(0);
|
||||
});
|
||||
}
|
||||
|
||||
});
|
||||
it('Should get G2396', () => {
|
||||
let svc: StrongsService = getTestBed().get(StrongsService);
|
||||
let r = svc.getResult(2396, "grk");
|
||||
expect(r.msg).toBe(':)');
|
||||
expect(r.status).toBe(0);
|
||||
});
|
||||
|
||||
for (let j = 1; j <= 5624; j++) {
|
||||
it('Get G' + j, () => {
|
||||
let svc: StrongsService = getTestBed().get(StrongsService);
|
||||
let r = svc.getResult(j, "grk");
|
||||
for (let j = 1; j <= 8674; j++)
|
||||
{
|
||||
it('Get H' + j, () =>
|
||||
{
|
||||
let svc: StrongsService = getTestBed().get(StrongsService);
|
||||
let r = svc.getResult(j, "heb");
|
||||
|
||||
expect(r.msg).toBe(':)');
|
||||
expect(r.status).toBe(0);
|
||||
});
|
||||
}
|
||||
|
||||
for (let j = 1; j <= 8674; j++) {
|
||||
it('Get H' + j, () => {
|
||||
let svc: StrongsService = getTestBed().get(StrongsService);
|
||||
let r = svc.getResult(j, "heb");
|
||||
|
||||
expect(r.msg).toBe(':)');
|
||||
expect(r.status).toBe(0);
|
||||
});
|
||||
}
|
||||
|
||||
});
|
||||
expect(r.msg).toBe(':)');
|
||||
expect(r.status).toBe(0);
|
||||
});
|
||||
}
|
||||
});
|
@ -169,8 +169,8 @@ export type StrongsResult =
|
||||
msg: string
|
||||
};
|
||||
|
||||
type StrongsDefinition = { n: number, i: string, tr: string, de: string, lemma: string, p: string }
|
||||
|
||||
type StrongsDefinition = { n: number, i: string, tr: string, de: StrongsDefinitionPart[], lemma: string, p: string }
|
||||
type StrongsDefinitionPart = { sn: string, w: string }
|
||||
type StrongsCrossReference =
|
||||
{
|
||||
id: string, // strongs id H1|G1
|
||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1 +1 @@
|
||||
[{"n":3201,"i":"G3201","p":"mem'-fom-ahee","lemma":"μέμφομαι","tr":"memphomai","de":"Middle voice of an apparently primary verb; to <b><em>blame:</em></b> - find fault."},{"n":3202,"i":"G3202","p":"mem-psim'-oy-ros","lemma":"μεμψίμοιρος","tr":"mempsimoiros","de":"From a presumed derivative of G3201 and <greek>μοῖρα</greek> moira (<em>fate</em>; akin to the base of G3313);<br /><em>blaming fate</em> that is <em>querulous</em> (<em>discontented</em>): - complainer."},{"n":3303,"i":"G3303","p":"men","lemma":"μέν","tr":"men","de":"A primary particle; properly indicative of <em>affirmation</em> or <em>concession</em> (<em>in fact</em>); usually followed by a <em>contrasted</em> clause with G1161 (<em>this</em> one the <em>former</em><b>etc.:</b> - even indeed so some truly verily. Often compounded with other particles in an <em>intensive</em> or <em>asseverative</em> sense."}]
|
||||
[{"n":3201,"i":"G3201","p":"mem'-fom-ahee","lemma":"μέμφομαι","tr":"memphomai","de":[{"w":"Middle voice of an apparently primary verb; to <b> <em>blame:</em> </b> - find fault."}]},{"n":3202,"i":"G3202","p":"mem-psim'-oy-ros","lemma":"μεμψίμοιρος","tr":"mempsimoiros","de":[{"w":"From a presumed derivative of "},{"sn":"G3201"},{"w":" and <greek>μοῖρα</greek> moira (<em>fate</em>; akin to the base of "},{"sn":"G3313"},{"w":"); <br /> <em>blaming fate</em> that is <em>querulous</em> (<em>discontented</em>): - complainer."}]},{"n":3303,"i":"G3303","p":"men","lemma":"μέν","tr":"men","de":[{"w":"A primary particle; properly indicative of <em>affirmation</em> or <em>concession</em> (<em>in fact</em>); usually followed by a <em>contrasted</em> clause with "},{"sn":"G1161"},{"w":" (<em>this</em> one the <em>former</em> <b>etc.:</b> - even indeed so some truly verily. Often compounded with other particles in an <em>intensive</em> or <em>asseverative</em> sense."}]}]
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user