textbrowser 0.45.1 → 0.46.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.cjs +3 -0
- package/CHANGES.md +13 -0
- package/README.md +19 -15
- package/dist/WorkInfo-es.js +2126 -3647
- package/dist/index-es.js +12425 -13756
- package/dist/index-es.min.js +11 -16
- package/locales/ar.json +211 -209
- package/locales/en-US.json +212 -209
- package/locales/fa.json +211 -209
- package/locales/ru.json +211 -209
- package/package.json +44 -45
- package/resources/index.js +72 -50
- package/resources/resultsDisplay.js +41 -31
- package/resources/templates/index.js +133 -120
- package/resources/templates/resultsDisplayClient.js +2 -0
- package/resources/templates/workDisplay.js +195 -174
- package/resources/templates/workSelect.js +7 -7
- package/resources/user-sample.js +0 -2
- package/resources/user.js +0 -2
- package/resources/utils/IntlURLSearchParams.js +1 -1
- package/resources/utils/Languages.js +9 -4
- package/resources/utils/Metadata.js +14 -9
- package/resources/utils/Params.js +11 -9
- package/resources/utils/Plugin.js +4 -4
- package/resources/utils/WorkInfo.js +28 -13
- package/resources/utils/dialogs.js +8 -6
- package/resources/utils/getLocaleFallbackResults.js +26 -0
- package/resources/vendor/json-refs-min.js +15 -0
- package/resources/workDisplay.js +52 -46
- package/resources/workSelect.js +44 -23
- package/server/main.js +45 -32
- package/sw-sample.js +1 -1
- package/resources/utils/getIMFFallbackResults.js +0 -47
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/* eslint-env browser */
|
|
2
2
|
import rtlDetect from 'rtl-detect';
|
|
3
|
-
import JsonRefs from 'json-refs';
|
|
4
3
|
import {jml} from 'jamilih';
|
|
5
4
|
|
|
5
|
+
import JsonRefs from './vendor/json-refs-min.js';
|
|
6
6
|
import Templates from './templates/index.js';
|
|
7
7
|
import {escapeHTML} from './utils/sanitize.js';
|
|
8
8
|
import {
|
|
@@ -23,7 +23,7 @@ const getRawFieldValue = (v) => {
|
|
|
23
23
|
|
|
24
24
|
const setAnchor = ({
|
|
25
25
|
applicableBrowseFieldSet,
|
|
26
|
-
fieldValueAliasMapPreferred,
|
|
26
|
+
fieldValueAliasMapPreferred, lParamRaw, lIndexedParam, max, $p
|
|
27
27
|
}) => {
|
|
28
28
|
const applicableBrowseFieldSchemaIndexes = applicableBrowseFieldSet.map((abfs) => {
|
|
29
29
|
return abfs.fieldSchemaIndex;
|
|
@@ -32,7 +32,7 @@ const setAnchor = ({
|
|
|
32
32
|
// other anchor params)
|
|
33
33
|
const work = $p.get('work');
|
|
34
34
|
let anchor;
|
|
35
|
-
const anchorRowCol =
|
|
35
|
+
const anchorRowCol = lParamRaw('anchorrowcol');
|
|
36
36
|
if (anchorRowCol) {
|
|
37
37
|
anchor = Templates.resultsDisplayClient.anchorRowCol({anchorRowCol});
|
|
38
38
|
}
|
|
@@ -51,7 +51,7 @@ const setAnchor = ({
|
|
|
51
51
|
}
|
|
52
52
|
break;
|
|
53
53
|
}
|
|
54
|
-
anchorField = $p.get(
|
|
54
|
+
anchorField = $p.get(lIndexedParam('anchorfield') + i, true);
|
|
55
55
|
|
|
56
56
|
const x = applicableBrowseFieldSchemaIndexes[j - 1];
|
|
57
57
|
const rawVal = getRawFieldValue(anchor);
|
|
@@ -87,24 +87,23 @@ export const resultsDisplayClient = async function resultsDisplayClient (args) {
|
|
|
87
87
|
browseFieldSets,
|
|
88
88
|
applicableBrowseFieldSet,
|
|
89
89
|
lang, metadataObj, fileData,
|
|
90
|
-
fieldValueAliasMapPreferred,
|
|
90
|
+
fieldValueAliasMapPreferred, workI18n, lIndexedParam, lParamRaw,
|
|
91
91
|
templateArgs
|
|
92
92
|
} = await resultsDisplayServerOrClient.call(this, {
|
|
93
93
|
...args, skipIndexedDB, prefI18n
|
|
94
94
|
});
|
|
95
|
-
document.title =
|
|
96
|
-
|
|
97
|
-
|
|
95
|
+
document.title = workI18n(
|
|
96
|
+
'browserfile-resultsdisplay',
|
|
97
|
+
{
|
|
98
98
|
work: fileData
|
|
99
99
|
? getMetaProp(lang, metadataObj, 'alias')
|
|
100
100
|
: ''
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
});
|
|
101
|
+
}
|
|
102
|
+
);
|
|
104
103
|
Templates.resultsDisplayClient.main(templateArgs);
|
|
105
104
|
setAnchor({
|
|
106
105
|
applicableBrowseFieldSet,
|
|
107
|
-
fieldValueAliasMapPreferred,
|
|
106
|
+
fieldValueAliasMapPreferred, lIndexedParam, lParamRaw,
|
|
108
107
|
$p: args.$p,
|
|
109
108
|
max: browseFieldSets.length
|
|
110
109
|
});
|
|
@@ -134,13 +133,14 @@ export const resultsDisplayServer = async function resultsDisplayServer (args) {
|
|
|
134
133
|
const jamilih = Templates.resultsDisplayServerOrClient.main(templateArgs);
|
|
135
134
|
return jml.toHTML(...jamilih);
|
|
136
135
|
}
|
|
137
|
-
case 'json':
|
|
136
|
+
// case 'json':
|
|
137
|
+
default:
|
|
138
138
|
return templateArgs.tableData;
|
|
139
139
|
}
|
|
140
140
|
};
|
|
141
141
|
|
|
142
142
|
export const resultsDisplayServerOrClient = async function resultsDisplayServerOrClient ({
|
|
143
|
-
l, lang, fallbackLanguages,
|
|
143
|
+
l, lang, fallbackLanguages, locales, $p, skipIndexedDB, noIndexedDB, prefI18n,
|
|
144
144
|
files, allowPlugins, langData, basePath = '', dynamicBasePath = ''
|
|
145
145
|
}) {
|
|
146
146
|
const languages = new Languages({langData});
|
|
@@ -178,7 +178,12 @@ export const resultsDisplayServerOrClient = async function resultsDisplayServerO
|
|
|
178
178
|
// for a number representing a book); we may wish to
|
|
179
179
|
// switch this (and also for other browse field-based
|
|
180
180
|
// items).
|
|
181
|
-
if (
|
|
181
|
+
if (
|
|
182
|
+
fieldValueAliasMap[idx] !== undefined &&
|
|
183
|
+
// Added this condition after imf->intl-dom conversion; concealing a
|
|
184
|
+
// bug?
|
|
185
|
+
fieldValueAliasMap[idx] !== null
|
|
186
|
+
) {
|
|
182
187
|
return fieldValueAliasMapPreferred[idx][tr[idx]];
|
|
183
188
|
}
|
|
184
189
|
return tr[idx];
|
|
@@ -200,7 +205,12 @@ export const resultsDisplayServerOrClient = async function resultsDisplayServerO
|
|
|
200
205
|
// be multiple aliases for a value; we may wish to
|
|
201
206
|
// switch this (and also for other browse field-based
|
|
202
207
|
// items).
|
|
203
|
-
if (
|
|
208
|
+
if (
|
|
209
|
+
fieldValueAliasMap[idx] !== undefined &&
|
|
210
|
+
// Added this condition after imf->intl-dom conversion; concealing a
|
|
211
|
+
// bug?
|
|
212
|
+
fieldValueAliasMap[idx] !== null
|
|
213
|
+
) {
|
|
204
214
|
rowIDPartsPreferred.push(fieldValueAliasMapPreferred[idx][tr[idx]]);
|
|
205
215
|
} else {
|
|
206
216
|
rowIDPartsPreferred.push(tr[idx]);
|
|
@@ -398,7 +408,7 @@ export const resultsDisplayServerOrClient = async function resultsDisplayServerO
|
|
|
398
408
|
return false;
|
|
399
409
|
});
|
|
400
410
|
}
|
|
401
|
-
reverseLocaleLookup(
|
|
411
|
+
reverseLocaleLookup(locales);
|
|
402
412
|
if (!key && !avoidLog) {
|
|
403
413
|
console.log('Bad param/value', param, '::', p);
|
|
404
414
|
}
|
|
@@ -413,7 +423,7 @@ export const resultsDisplayServerOrClient = async function resultsDisplayServerO
|
|
|
413
423
|
const escapeQuotedCSS = (s) => s.replace(/\\/g, '\\\\').replace(/"/g, '\\"');
|
|
414
424
|
|
|
415
425
|
const {
|
|
416
|
-
fileData,
|
|
426
|
+
fileData, workI18n, getFieldAliasOrName, schemaObj, metadataObj,
|
|
417
427
|
pluginsForWork
|
|
418
428
|
} = await getWorkData({
|
|
419
429
|
files: files || this.files,
|
|
@@ -484,7 +494,7 @@ export const resultsDisplayServerOrClient = async function resultsDisplayServerO
|
|
|
484
494
|
const fieldAliasOrName = plugin.getFieldAliasOrName
|
|
485
495
|
? plugin.getFieldAliasOrName({
|
|
486
496
|
locales: lang,
|
|
487
|
-
|
|
497
|
+
workI18n,
|
|
488
498
|
targetLanguage,
|
|
489
499
|
applicableField,
|
|
490
500
|
applicableFieldI18N,
|
|
@@ -495,7 +505,7 @@ export const resultsDisplayServerOrClient = async function resultsDisplayServerO
|
|
|
495
505
|
: languages.getFieldNameFromPluginNameAndLocales({
|
|
496
506
|
pluginName,
|
|
497
507
|
locales: lang,
|
|
498
|
-
|
|
508
|
+
workI18n,
|
|
499
509
|
targetLanguage,
|
|
500
510
|
applicableFieldI18N,
|
|
501
511
|
// Todo: Should have formal way to i18nize meta
|
|
@@ -553,22 +563,22 @@ export const resultsDisplayServerOrClient = async function resultsDisplayServerO
|
|
|
553
563
|
: prefI18n === 'true' || (
|
|
554
564
|
prefI18n !== 'false' && this.localizeParamNames
|
|
555
565
|
);
|
|
556
|
-
const
|
|
566
|
+
const lParam = localizeParamNames
|
|
557
567
|
? key => l(['params', key])
|
|
558
568
|
: key => key;
|
|
559
|
-
const
|
|
569
|
+
const lIndexedParam = localizeParamNames
|
|
560
570
|
? key => l(['params', 'indexed', key])
|
|
561
571
|
: key => key;
|
|
562
|
-
const
|
|
563
|
-
? (key, suffix = '') => $p.get(
|
|
572
|
+
const lParamRaw = localizeParamNames
|
|
573
|
+
? (key, suffix = '') => $p.get(lParam(key) + suffix, true)
|
|
564
574
|
: (key, suffix = '') => $p.get(key + suffix, true);
|
|
565
|
-
const
|
|
566
|
-
? (key, suffix = '') => $p.get($p.get('work') + '-' +
|
|
575
|
+
const lIndexedParamRaw = localizeParamNames
|
|
576
|
+
? (key, suffix = '') => $p.get($p.get('work') + '-' + lIndexedParam(key) + suffix, true)
|
|
567
577
|
: (key, suffix = '') => $p.get($p.get('work') + '-' + key + suffix, true);
|
|
568
578
|
|
|
569
579
|
// Now that we know `browseFieldSets`, we can parse `startEnd`
|
|
570
580
|
const browseFieldSetStartEndIdx = browseFieldSets.findIndex((item, i) =>
|
|
571
|
-
|
|
581
|
+
lIndexedParamRaw('startEnd', (i + 1))
|
|
572
582
|
);
|
|
573
583
|
if (browseFieldSetStartEndIdx !== -1) {
|
|
574
584
|
// Todo: i18nize (by work and/or by whole app?)
|
|
@@ -581,7 +591,7 @@ export const resultsDisplayServerOrClient = async function resultsDisplayServerO
|
|
|
581
591
|
// Todo: Change query beginning at 0 to 1 if none present?
|
|
582
592
|
// Todo: Support i18nized or canonical aliases (but don't
|
|
583
593
|
// over-trim in such cases)
|
|
584
|
-
const rawSearch = (
|
|
594
|
+
const rawSearch = (lIndexedParamRaw('startEnd', browseFieldSetStartEndIdx + 1) || '').trim();
|
|
585
595
|
const [startFull, endFull] = rawSearch.split(rangeSep);
|
|
586
596
|
if (endFull !== undefined) {
|
|
587
597
|
const startPartVals = startFull.split(partSep);
|
|
@@ -605,7 +615,7 @@ export const resultsDisplayServerOrClient = async function resultsDisplayServerO
|
|
|
605
615
|
}
|
|
606
616
|
|
|
607
617
|
const browseFieldSetIdx = browseFieldSets.findIndex((item, i) =>
|
|
608
|
-
|
|
618
|
+
lIndexedParamRaw('start', (i + 1) + '-1')
|
|
609
619
|
);
|
|
610
620
|
const applicableBrowseFieldSet = browseFieldSets[browseFieldSetIdx];
|
|
611
621
|
const applicableBrowseFieldSetName = setNames[browseFieldSetIdx];
|
|
@@ -635,7 +645,7 @@ export const resultsDisplayServerOrClient = async function resultsDisplayServerO
|
|
|
635
645
|
});
|
|
636
646
|
const showInterlinTitles = $pRaw('interlintitle') === '1';
|
|
637
647
|
|
|
638
|
-
console.log('rand',
|
|
648
|
+
console.log('rand', lParamRaw('rand') === 'yes');
|
|
639
649
|
|
|
640
650
|
const stripToRawFieldValue = (v, i) => {
|
|
641
651
|
let val;
|
|
@@ -809,7 +819,7 @@ export const resultsDisplayServerOrClient = async function resultsDisplayServerO
|
|
|
809
819
|
fieldInfo,
|
|
810
820
|
$p,
|
|
811
821
|
applicableBrowseFieldSet, fieldValueAliasMapPreferred,
|
|
812
|
-
|
|
822
|
+
workI18n, lIndexedParam, lParamRaw, browseFieldSets,
|
|
813
823
|
lang, metadataObj, fileData,
|
|
814
824
|
templateArgs
|
|
815
825
|
};
|
|
@@ -22,144 +22,157 @@ const Templates = {
|
|
|
22
22
|
return jml('div', {
|
|
23
23
|
id: 'main', role: 'main'
|
|
24
24
|
}, body);
|
|
25
|
-
}
|
|
26
|
-
};
|
|
27
|
-
Templates.permissions = {
|
|
28
|
-
versionChange () {
|
|
29
|
-
$('#versionChange').showModal();
|
|
30
25
|
},
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
26
|
+
permissions: {
|
|
27
|
+
versionChange () {
|
|
28
|
+
$('#versionChange').showModal();
|
|
29
|
+
},
|
|
30
|
+
addLogEntry ({text}) {
|
|
31
|
+
const installationDialog = $('#installationLogContainer');
|
|
32
|
+
try {
|
|
33
|
+
installationDialog.showModal();
|
|
34
|
+
const container = $('#dialogContainer');
|
|
35
|
+
container.hidden = false;
|
|
36
|
+
} catch (err) {
|
|
37
|
+
// May already be open
|
|
38
|
+
}
|
|
39
|
+
$('#installationLog').append(text + '\n');
|
|
40
|
+
},
|
|
41
|
+
exitDialogs () {
|
|
35
42
|
const container = $('#dialogContainer');
|
|
36
|
-
container
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
['
|
|
43
|
+
if (container) {
|
|
44
|
+
container.hidden = true;
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
dbError ({type, escapedErrorMessage}) {
|
|
48
|
+
if (type) {
|
|
49
|
+
jml('span', [
|
|
50
|
+
type, ' ',
|
|
51
|
+
escapedErrorMessage
|
|
52
|
+
], $('#dbError'));
|
|
53
|
+
}
|
|
54
|
+
$('#dbError').showModal();
|
|
55
|
+
},
|
|
56
|
+
errorRegistering (escapedErrorMessage) {
|
|
57
|
+
if (escapedErrorMessage) {
|
|
58
|
+
jml('span', [escapedErrorMessage], $('#errorRegistering'));
|
|
59
|
+
}
|
|
60
|
+
$('#errorRegistering').showModal();
|
|
61
|
+
},
|
|
62
|
+
browserNotGrantingPersistence () {
|
|
63
|
+
$('#browserNotGrantingPersistence').showModal();
|
|
64
|
+
},
|
|
65
|
+
/**
|
|
66
|
+
* @param {PlainObject} cfg
|
|
67
|
+
* @param {I18NCallback} cfg.siteI18n
|
|
68
|
+
* @param {() => Promise<void>} cfg.ok
|
|
69
|
+
* @param {() => void} cfg.refuse
|
|
70
|
+
* @param {() => Promise<void>} cfg.close
|
|
71
|
+
* @param {() => void} cfg.closeBrowserNotGranting
|
|
72
|
+
* @returns {[
|
|
73
|
+
* HTMLDialogElement, HTMLDialogElement, HTMLDialogElement,
|
|
74
|
+
* HTMLDialogElement, HTMLDialogElement, HTMLDialogElement
|
|
75
|
+
* ]}
|
|
76
|
+
*/
|
|
77
|
+
main ({siteI18n, ok, refuse, close, closeBrowserNotGranting}) {
|
|
78
|
+
const installationDialog = jml('dialog', {
|
|
79
|
+
style: 'text-align: center; height: 100%',
|
|
80
|
+
id: 'installationLogContainer',
|
|
81
|
+
class: 'focus'
|
|
82
|
+
}, [
|
|
83
|
+
['p', [
|
|
84
|
+
siteI18n('wait-installing')
|
|
85
|
+
]],
|
|
86
|
+
['div', {style: 'height: 80%; overflow: auto;'}, [
|
|
87
|
+
['pre', {id: 'installationLog'}, [
|
|
88
|
+
]]
|
|
77
89
|
]]
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
90
|
+
// ['textarea', {readonly: true, style: 'width: 80%; height: 80%;'}]
|
|
91
|
+
]);
|
|
92
|
+
let requestPermissionsDialog = '';
|
|
93
|
+
if (ok) {
|
|
94
|
+
requestPermissionsDialog = jml(
|
|
95
|
+
'dialog', {
|
|
96
|
+
id: 'willRequestStoragePermissions',
|
|
97
|
+
$on: {close}
|
|
98
|
+
}, [
|
|
99
|
+
['section', [
|
|
100
|
+
siteI18n('will-request-storage-permissions')
|
|
101
|
+
]],
|
|
102
|
+
['br'],
|
|
103
|
+
['div', {class: 'focus'}, [
|
|
104
|
+
['button', {$on: {click: ok}}, [
|
|
105
|
+
siteI18n('OK')
|
|
106
|
+
]],
|
|
107
|
+
['br'], ['br'],
|
|
108
|
+
['button', {$on: {click: refuse}}, [
|
|
109
|
+
siteI18n('refuse-request-storage-permissions')
|
|
110
|
+
]]
|
|
111
|
+
]]
|
|
112
|
+
]
|
|
113
|
+
);
|
|
114
|
+
}
|
|
115
|
+
const errorRegisteringNotice = jml(
|
|
84
116
|
'dialog', {
|
|
85
|
-
id: '
|
|
86
|
-
$on: {close}
|
|
117
|
+
id: 'errorRegistering'
|
|
87
118
|
}, [
|
|
88
119
|
['section', [
|
|
89
|
-
|
|
90
|
-
]]
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
120
|
+
siteI18n('errorRegistering')
|
|
121
|
+
]]
|
|
122
|
+
]
|
|
123
|
+
);
|
|
124
|
+
let browserNotGrantingPersistenceAlert = '';
|
|
125
|
+
if (closeBrowserNotGranting) {
|
|
126
|
+
browserNotGrantingPersistenceAlert = jml(
|
|
127
|
+
'dialog', {
|
|
128
|
+
id: 'browserNotGrantingPersistence'
|
|
129
|
+
}, [
|
|
130
|
+
['section', [
|
|
131
|
+
siteI18n('browser-not-granting-persistence')
|
|
95
132
|
]],
|
|
96
|
-
['br'],
|
|
97
|
-
['
|
|
98
|
-
|
|
133
|
+
['br'],
|
|
134
|
+
['div', {class: 'focus'}, [
|
|
135
|
+
['button', {$on: {click: closeBrowserNotGranting}}, [
|
|
136
|
+
siteI18n('OK')
|
|
137
|
+
]]
|
|
99
138
|
]]
|
|
139
|
+
]
|
|
140
|
+
);
|
|
141
|
+
}
|
|
142
|
+
const versionChangeNotice = jml(
|
|
143
|
+
'dialog', {
|
|
144
|
+
id: 'versionChange'
|
|
145
|
+
}, [
|
|
146
|
+
['section', [
|
|
147
|
+
siteI18n('versionChange')
|
|
100
148
|
]]
|
|
101
149
|
]
|
|
102
150
|
);
|
|
103
|
-
|
|
104
|
-
const errorRegisteringNotice = jml(
|
|
105
|
-
'dialog', {
|
|
106
|
-
id: 'errorRegistering'
|
|
107
|
-
}, [
|
|
108
|
-
['section', [
|
|
109
|
-
l('errorRegistering')
|
|
110
|
-
]]
|
|
111
|
-
]
|
|
112
|
-
);
|
|
113
|
-
let browserNotGrantingPersistenceAlert = '';
|
|
114
|
-
if (closeBrowserNotGranting) {
|
|
115
|
-
browserNotGrantingPersistenceAlert = jml(
|
|
151
|
+
const dbErrorNotice = jml(
|
|
116
152
|
'dialog', {
|
|
117
|
-
id: '
|
|
153
|
+
id: 'dbError'
|
|
118
154
|
}, [
|
|
119
155
|
['section', [
|
|
120
|
-
|
|
121
|
-
]],
|
|
122
|
-
['br'],
|
|
123
|
-
['div', {class: 'focus'}, [
|
|
124
|
-
['button', {$on: {click: closeBrowserNotGranting}}, [
|
|
125
|
-
l('OK')
|
|
126
|
-
]]
|
|
156
|
+
siteI18n('dbError')
|
|
127
157
|
]]
|
|
128
158
|
]
|
|
129
159
|
);
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
]
|
|
139
|
-
);
|
|
140
|
-
const dbErrorNotice = jml(
|
|
141
|
-
'dialog', {
|
|
142
|
-
id: 'dbError'
|
|
143
|
-
}, [
|
|
144
|
-
['section', [
|
|
145
|
-
l('dbError')
|
|
146
|
-
]]
|
|
147
|
-
]
|
|
148
|
-
);
|
|
149
|
-
jml('div', {id: 'dialogContainer', style: 'height: 100%'}, [
|
|
150
|
-
installationDialog,
|
|
151
|
-
requestPermissionsDialog,
|
|
152
|
-
browserNotGrantingPersistenceAlert,
|
|
153
|
-
errorRegisteringNotice,
|
|
154
|
-
versionChangeNotice,
|
|
155
|
-
dbErrorNotice
|
|
156
|
-
], $('#main'));
|
|
160
|
+
jml('div', {id: 'dialogContainer', style: 'height: 100%'}, [
|
|
161
|
+
installationDialog,
|
|
162
|
+
requestPermissionsDialog,
|
|
163
|
+
browserNotGrantingPersistenceAlert,
|
|
164
|
+
errorRegisteringNotice,
|
|
165
|
+
versionChangeNotice,
|
|
166
|
+
dbErrorNotice
|
|
167
|
+
], $('#main'));
|
|
157
168
|
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
169
|
+
return [
|
|
170
|
+
installationDialog,
|
|
171
|
+
requestPermissionsDialog,
|
|
172
|
+
browserNotGrantingPersistenceAlert,
|
|
173
|
+
errorRegisteringNotice, versionChangeNotice, dbErrorNotice
|
|
174
|
+
];
|
|
175
|
+
}
|
|
163
176
|
}
|
|
164
177
|
};
|
|
165
178
|
export default Templates;
|