@startinblox/core 0.17.17 → 0.17.21-beta.1
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/package.json +2 -2
- package/dist/_snowpack/env.js +0 -3
- package/dist/_snowpack/pkg/autolinker.js +0 -4281
- package/dist/_snowpack/pkg/autolinker.js.map +0 -1
- package/dist/_snowpack/pkg/autolinker.js.map.proxy.js +0 -1
- package/dist/_snowpack/pkg/common/_baseUnary-217dffb2.js +0 -377
- package/dist/_snowpack/pkg/common/_baseUnary-217dffb2.js.map +0 -1
- package/dist/_snowpack/pkg/common/_baseUnary-217dffb2.js.map.proxy.js +0 -1
- package/dist/_snowpack/pkg/common/_commonjsHelpers-8c19dec8.js +0 -22
- package/dist/_snowpack/pkg/common/_commonjsHelpers-8c19dec8.js.map +0 -1
- package/dist/_snowpack/pkg/common/_commonjsHelpers-8c19dec8.js.map.proxy.js +0 -1
- package/dist/_snowpack/pkg/common/decode-a4c334cf.js +0 -216
- package/dist/_snowpack/pkg/common/decode-a4c334cf.js.map +0 -1
- package/dist/_snowpack/pkg/common/decode-a4c334cf.js.map.proxy.js +0 -1
- package/dist/_snowpack/pkg/common/lit-html-babd44cd.js +0 -1119
- package/dist/_snowpack/pkg/common/lit-html-babd44cd.js.map +0 -1
- package/dist/_snowpack/pkg/common/lit-html-babd44cd.js.map.proxy.js +0 -1
- package/dist/_snowpack/pkg/delta-markdown-for-quill.js +0 -25677
- package/dist/_snowpack/pkg/delta-markdown-for-quill.js.map +0 -1
- package/dist/_snowpack/pkg/delta-markdown-for-quill.js.map.proxy.js +0 -1
- package/dist/_snowpack/pkg/dialog-polyfill.js +0 -859
- package/dist/_snowpack/pkg/dialog-polyfill.js.map +0 -1
- package/dist/_snowpack/pkg/dialog-polyfill.js.map.proxy.js +0 -1
- package/dist/_snowpack/pkg/fusejs.js +0 -1783
- package/dist/_snowpack/pkg/fusejs.js.map +0 -1
- package/dist/_snowpack/pkg/fusejs.js.map.proxy.js +0 -1
- package/dist/_snowpack/pkg/import-map.json +0 -25
- package/dist/_snowpack/pkg/jsonld-context-parser.js +0 -804
- package/dist/_snowpack/pkg/jsonld-context-parser.js.map +0 -1
- package/dist/_snowpack/pkg/jsonld-context-parser.js.map.proxy.js +0 -1
- package/dist/_snowpack/pkg/leaflet/dist/leaflet.css +0 -640
- package/dist/_snowpack/pkg/leaflet/dist/leaflet.css.proxy.js +0 -10
- package/dist/_snowpack/pkg/leaflet.js +0 -14066
- package/dist/_snowpack/pkg/leaflet.js.map +0 -1
- package/dist/_snowpack/pkg/leaflet.js.map.proxy.js +0 -1
- package/dist/_snowpack/pkg/leaflet.markercluster/dist/MarkerCluster.Default.css +0 -60
- package/dist/_snowpack/pkg/leaflet.markercluster/dist/MarkerCluster.Default.css.proxy.js +0 -10
- package/dist/_snowpack/pkg/leaflet.markercluster/dist/MarkerCluster.css +0 -14
- package/dist/_snowpack/pkg/leaflet.markercluster/dist/MarkerCluster.css.proxy.js +0 -10
- package/dist/_snowpack/pkg/leaflet.markercluster.js +0 -2697
- package/dist/_snowpack/pkg/leaflet.markercluster.js.map +0 -1
- package/dist/_snowpack/pkg/leaflet.markercluster.js.map.proxy.js +0 -1
- package/dist/_snowpack/pkg/lit-html/directives/if-defined.js +0 -40
- package/dist/_snowpack/pkg/lit-html/directives/if-defined.js.map +0 -1
- package/dist/_snowpack/pkg/lit-html/directives/if-defined.js.map.proxy.js +0 -1
- package/dist/_snowpack/pkg/lit-html/directives/unsafe-html.js +0 -46
- package/dist/_snowpack/pkg/lit-html/directives/unsafe-html.js.map +0 -1
- package/dist/_snowpack/pkg/lit-html/directives/unsafe-html.js.map.proxy.js +0 -1
- package/dist/_snowpack/pkg/lit-html/directives/until.js +0 -88
- package/dist/_snowpack/pkg/lit-html/directives/until.js.map +0 -1
- package/dist/_snowpack/pkg/lit-html/directives/until.js.map.proxy.js +0 -1
- package/dist/_snowpack/pkg/lit-html.js +0 -92
- package/dist/_snowpack/pkg/lit-html.js.map +0 -1
- package/dist/_snowpack/pkg/lit-html.js.map.proxy.js +0 -1
- package/dist/_snowpack/pkg/markdown-it.js +0 -11860
- package/dist/_snowpack/pkg/markdown-it.js.map +0 -1
- package/dist/_snowpack/pkg/markdown-it.js.map.proxy.js +0 -1
- package/dist/_snowpack/pkg/quill/dist/quill.snow.css +0 -945
- package/dist/_snowpack/pkg/quill/dist/quill.snow.css.proxy.js +0 -10
- package/dist/_snowpack/pkg/quill-delta-to-markdown.js +0 -1029
- package/dist/_snowpack/pkg/quill-delta-to-markdown.js.map +0 -1
- package/dist/_snowpack/pkg/quill-delta-to-markdown.js.map.proxy.js +0 -1
- package/dist/_snowpack/pkg/quill.js +0 -13382
- package/dist/_snowpack/pkg/quill.js.map +0 -1
- package/dist/_snowpack/pkg/quill.js.map.proxy.js +0 -1
- package/dist/_snowpack/pkg/slim-select.js +0 -4
- package/dist/_snowpack/pkg/slim-select.js.map +0 -1
- package/dist/_snowpack/pkg/slim-select.js.map.proxy.js +0 -1
- package/dist/_snowpack/pkg/tui-calendar/dist/tui-calendar.css +0 -1164
- package/dist/_snowpack/pkg/tui-calendar/dist/tui-calendar.css.proxy.js +0 -10
- package/dist/_snowpack/pkg/tui-calendar.js +0 -42285
- package/dist/_snowpack/pkg/tui-calendar.js.map +0 -1
- package/dist/_snowpack/pkg/tui-calendar.js.map.proxy.js +0 -1
- package/dist/components/solid-ac-checker.js +0 -58
- package/dist/components/solid-ac-checker.js.map +0 -1
- package/dist/components/solid-calendar.js +0 -87
- package/dist/components/solid-calendar.js.map +0 -1
- package/dist/components/solid-delete.js +0 -111
- package/dist/components/solid-delete.js.map +0 -1
- package/dist/components/solid-display.js +0 -194
- package/dist/components/solid-display.js.map +0 -1
- package/dist/components/solid-form-search.js +0 -226
- package/dist/components/solid-form-search.js.map +0 -1
- package/dist/components/solid-form.js +0 -354
- package/dist/components/solid-form.js.map +0 -1
- package/dist/components/solid-lang.js +0 -46
- package/dist/components/solid-lang.js.map +0 -1
- package/dist/components/solid-map.js +0 -239
- package/dist/components/solid-map.js.map +0 -1
- package/dist/components/solid-table.js +0 -263
- package/dist/components/solid-table.js.map +0 -1
- package/dist/components/solid-widget.js +0 -94
- package/dist/components/solid-widget.js.map +0 -1
- package/dist/import.css +0 -4
- package/dist/index.js +0 -42
- package/dist/index.js.map +0 -1
- package/dist/libs/Component.js +0 -19
- package/dist/libs/Component.js.map +0 -1
- package/dist/libs/ComponentFactory.js +0 -196
- package/dist/libs/ComponentFactory.js.map +0 -1
- package/dist/libs/Compositor.js +0 -103
- package/dist/libs/Compositor.js.map +0 -1
- package/dist/libs/Sib.js +0 -58
- package/dist/libs/Sib.js.map +0 -1
- package/dist/libs/helpers.js +0 -219
- package/dist/libs/helpers.js.map +0 -1
- package/dist/libs/interfaces.js +0 -6
- package/dist/libs/interfaces.js.map +0 -1
- package/dist/libs/lit-helpers.js +0 -169
- package/dist/libs/lit-helpers.js.map +0 -1
- package/dist/libs/polyfills.js +0 -40
- package/dist/libs/polyfills.js.map +0 -1
- package/dist/libs/store/store.js +0 -768
- package/dist/libs/store/store.js.map +0 -1
- package/dist/locales/en.json +0 -10
- package/dist/locales/en.json.proxy.js +0 -2
- package/dist/locales/fr.json +0 -10
- package/dist/locales/fr.json.proxy.js +0 -2
- package/dist/mixins/attributeBinderMixin.js +0 -124
- package/dist/mixins/attributeBinderMixin.js.map +0 -1
- package/dist/mixins/contextMixin.js +0 -28
- package/dist/mixins/contextMixin.js.map +0 -1
- package/dist/mixins/counterMixin.js +0 -75
- package/dist/mixins/counterMixin.js.map +0 -1
- package/dist/mixins/federationMixin.js +0 -63
- package/dist/mixins/federationMixin.js.map +0 -1
- package/dist/mixins/filterMixin.js +0 -195
- package/dist/mixins/filterMixin.js.map +0 -1
- package/dist/mixins/grouperMixin.js +0 -80
- package/dist/mixins/grouperMixin.js.map +0 -1
- package/dist/mixins/highlighterMixin.js +0 -42
- package/dist/mixins/highlighterMixin.js.map +0 -1
- package/dist/mixins/interfaces.js +0 -8
- package/dist/mixins/interfaces.js.map +0 -1
- package/dist/mixins/listMixin.js +0 -136
- package/dist/mixins/listMixin.js.map +0 -1
- package/dist/mixins/nextMixin.js +0 -26
- package/dist/mixins/nextMixin.js.map +0 -1
- package/dist/mixins/paginateMixin.js +0 -110
- package/dist/mixins/paginateMixin.js.map +0 -1
- package/dist/mixins/requiredMixin.js +0 -34
- package/dist/mixins/requiredMixin.js.map +0 -1
- package/dist/mixins/sorterMixin.js +0 -149
- package/dist/mixins/sorterMixin.js.map +0 -1
- package/dist/mixins/storeMixin.js +0 -102
- package/dist/mixins/storeMixin.js.map +0 -1
- package/dist/mixins/translationMixin.js +0 -68
- package/dist/mixins/translationMixin.js.map +0 -1
- package/dist/mixins/validationMixin.js +0 -113
- package/dist/mixins/validationMixin.js.map +0 -1
- package/dist/mixins/widgetMixin.js +0 -447
- package/dist/mixins/widgetMixin.js.map +0 -1
- package/dist/new-widgets/attributeMixins/actionMixin.js +0 -14
- package/dist/new-widgets/attributeMixins/actionMixin.js.map +0 -1
- package/dist/new-widgets/attributeMixins/blankMixin.js +0 -10
- package/dist/new-widgets/attributeMixins/blankMixin.js.map +0 -1
- package/dist/new-widgets/attributeMixins/booleanMixin.js +0 -10
- package/dist/new-widgets/attributeMixins/booleanMixin.js.map +0 -1
- package/dist/new-widgets/attributeMixins/index.js +0 -20
- package/dist/new-widgets/attributeMixins/index.js.map +0 -1
- package/dist/new-widgets/attributeMixins/mailtoMixin.js +0 -10
- package/dist/new-widgets/attributeMixins/mailtoMixin.js.map +0 -1
- package/dist/new-widgets/attributeMixins/multipleMixin.js +0 -28
- package/dist/new-widgets/attributeMixins/multipleMixin.js.map +0 -1
- package/dist/new-widgets/attributeMixins/numberMixin.js +0 -10
- package/dist/new-widgets/attributeMixins/numberMixin.js.map +0 -1
- package/dist/new-widgets/attributeMixins/placeholderMixin.js +0 -19
- package/dist/new-widgets/attributeMixins/placeholderMixin.js.map +0 -1
- package/dist/new-widgets/attributeMixins/telMixin.js +0 -10
- package/dist/new-widgets/attributeMixins/telMixin.js.map +0 -1
- package/dist/new-widgets/baseWidgetMixin.js +0 -122
- package/dist/new-widgets/baseWidgetMixin.js.map +0 -1
- package/dist/new-widgets/callbackMixins/autocompletionMixin.js +0 -104
- package/dist/new-widgets/callbackMixins/autocompletionMixin.js.map +0 -1
- package/dist/new-widgets/callbackMixins/index.js +0 -8
- package/dist/new-widgets/callbackMixins/index.js.map +0 -1
- package/dist/new-widgets/callbackMixins/richtextMixin.js +0 -42
- package/dist/new-widgets/callbackMixins/richtextMixin.js.map +0 -1
- package/dist/new-widgets/callbackMixins/slimselect.css +0 -2
- package/dist/new-widgets/callbackMixins/slimselect.css.proxy.js +0 -10
- package/dist/new-widgets/new-widget-factory.js +0 -96
- package/dist/new-widgets/new-widget-factory.js.map +0 -1
- package/dist/new-widgets/templateAdditionMixins/addableMixin.js +0 -41
- package/dist/new-widgets/templateAdditionMixins/addableMixin.js.map +0 -1
- package/dist/new-widgets/templateAdditionMixins/index.js +0 -14
- package/dist/new-widgets/templateAdditionMixins/index.js.map +0 -1
- package/dist/new-widgets/templateAdditionMixins/labelLastMixin.js +0 -29
- package/dist/new-widgets/templateAdditionMixins/labelLastMixin.js.map +0 -1
- package/dist/new-widgets/templateAdditionMixins/labelMixin.js +0 -31
- package/dist/new-widgets/templateAdditionMixins/labelMixin.js.map +0 -1
- package/dist/new-widgets/templates/defaultTemplatesDirectory.js +0 -35
- package/dist/new-widgets/templates/defaultTemplatesDirectory.js.map +0 -1
- package/dist/new-widgets/templates/displayTemplatesDirectory.js +0 -89
- package/dist/new-widgets/templates/displayTemplatesDirectory.js.map +0 -1
- package/dist/new-widgets/templates/formTemplatesDirectory.js +0 -397
- package/dist/new-widgets/templates/formTemplatesDirectory.js.map +0 -1
- package/dist/new-widgets/templates/groupTemplatesDirectory.js +0 -21
- package/dist/new-widgets/templates/groupTemplatesDirectory.js.map +0 -1
- package/dist/new-widgets/templates/index.js +0 -7
- package/dist/new-widgets/templates/index.js.map +0 -1
- package/dist/new-widgets/templates/setTemplatesDirectory.js +0 -49
- package/dist/new-widgets/templates/setTemplatesDirectory.js.map +0 -1
- package/dist/new-widgets/templatesDependencies/altMixin.js +0 -13
- package/dist/new-widgets/templatesDependencies/altMixin.js.map +0 -1
- package/dist/new-widgets/templatesDependencies/editableMixin.js +0 -77
- package/dist/new-widgets/templatesDependencies/editableMixin.js.map +0 -1
- package/dist/new-widgets/templatesDependencies/filterRangeFormMixin.js +0 -38
- package/dist/new-widgets/templatesDependencies/filterRangeFormMixin.js.map +0 -1
- package/dist/new-widgets/templatesDependencies/formCheckboxMixin.js +0 -14
- package/dist/new-widgets/templatesDependencies/formCheckboxMixin.js.map +0 -1
- package/dist/new-widgets/templatesDependencies/formCheckboxesMixin.js +0 -51
- package/dist/new-widgets/templatesDependencies/formCheckboxesMixin.js.map +0 -1
- package/dist/new-widgets/templatesDependencies/formDropdownMixin.js +0 -66
- package/dist/new-widgets/templatesDependencies/formDropdownMixin.js.map +0 -1
- package/dist/new-widgets/templatesDependencies/formFileMixin.js +0 -81
- package/dist/new-widgets/templatesDependencies/formFileMixin.js.map +0 -1
- package/dist/new-widgets/templatesDependencies/formLengthMixin.js +0 -19
- package/dist/new-widgets/templatesDependencies/formLengthMixin.js.map +0 -1
- package/dist/new-widgets/templatesDependencies/formMinMaxMixin.js +0 -19
- package/dist/new-widgets/templatesDependencies/formMinMaxMixin.js.map +0 -1
- package/dist/new-widgets/templatesDependencies/formMixin.js +0 -66
- package/dist/new-widgets/templatesDependencies/formMixin.js.map +0 -1
- package/dist/new-widgets/templatesDependencies/formNumberMixin.js +0 -14
- package/dist/new-widgets/templatesDependencies/formNumberMixin.js.map +0 -1
- package/dist/new-widgets/templatesDependencies/formRadioMixin.js +0 -16
- package/dist/new-widgets/templatesDependencies/formRadioMixin.js.map +0 -1
- package/dist/new-widgets/templatesDependencies/formStepMixin.js +0 -13
- package/dist/new-widgets/templatesDependencies/formStepMixin.js.map +0 -1
- package/dist/new-widgets/templatesDependencies/multipleFormMixin.js +0 -107
- package/dist/new-widgets/templatesDependencies/multipleFormMixin.js.map +0 -1
- package/dist/new-widgets/templatesDependencies/multipleselectFormMixin.js +0 -74
- package/dist/new-widgets/templatesDependencies/multipleselectFormMixin.js.map +0 -1
- package/dist/new-widgets/templatesDependencies/patternMixin.js +0 -19
- package/dist/new-widgets/templatesDependencies/patternMixin.js.map +0 -1
- package/dist/new-widgets/templatesDependencies/rangeMixin.js +0 -110
- package/dist/new-widgets/templatesDependencies/rangeMixin.js.map +0 -1
- package/dist/new-widgets/templatesDependencies/setMixin.js +0 -12
- package/dist/new-widgets/templatesDependencies/setMixin.js.map +0 -1
- package/dist/new-widgets/templatesDependencies/valueRichtextMixin.js +0 -12
- package/dist/new-widgets/templatesDependencies/valueRichtextMixin.js.map +0 -1
- package/dist/new-widgets/valueTransformationMixins/autolinkMixin.js +0 -18
- package/dist/new-widgets/valueTransformationMixins/autolinkMixin.js.map +0 -1
- package/dist/new-widgets/valueTransformationMixins/dateMixin.js +0 -35
- package/dist/new-widgets/valueTransformationMixins/dateMixin.js.map +0 -1
- package/dist/new-widgets/valueTransformationMixins/dateTimeMixin.js +0 -16
- package/dist/new-widgets/valueTransformationMixins/dateTimeMixin.js.map +0 -1
- package/dist/new-widgets/valueTransformationMixins/index.js +0 -16
- package/dist/new-widgets/valueTransformationMixins/index.js.map +0 -1
- package/dist/new-widgets/valueTransformationMixins/markdownMixin.js +0 -25
- package/dist/new-widgets/valueTransformationMixins/markdownMixin.js.map +0 -1
- package/dist/new-widgets/valueTransformationMixins/multilineMixin.js +0 -17
- package/dist/new-widgets/valueTransformationMixins/multilineMixin.js.map +0 -1
- package/dist/new-widgets/valueTransformationMixins/oembedMixin.js +0 -27
- package/dist/new-widgets/valueTransformationMixins/oembedMixin.js.map +0 -1
- package/dist/solid-template-element.js +0 -164
- package/dist/solid-template-element.js.map +0 -1
- package/dist/style/default-theme.css +0 -24
- package/dist/style/default-theme.css.proxy.js +0 -10
- package/dist/widgets/baseWidget.js +0 -332
- package/dist/widgets/baseWidget.js.map +0 -1
- package/dist/widgets/widget-factory.js +0 -24
- package/dist/widgets/widget-factory.js.map +0 -1
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
function _templateObject() {
|
|
2
|
-
const data = _taggedTemplateLiteral(["\n <button\n @click=", "\n >\n ", "\n </button>\n "]);
|
|
3
|
-
|
|
4
|
-
_templateObject = function () {
|
|
5
|
-
return data;
|
|
6
|
-
};
|
|
7
|
-
|
|
8
|
-
return data;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
|
|
12
|
-
|
|
13
|
-
import { Sib } from '../libs/Sib.js';
|
|
14
|
-
import { store } from '../libs/store/store.js';
|
|
15
|
-
import { html, render } from '../_snowpack/pkg/lit-html.js';
|
|
16
|
-
export const SolidLang = {
|
|
17
|
-
name: 'solid-lang',
|
|
18
|
-
use: [],
|
|
19
|
-
attributes: {
|
|
20
|
-
lang: {
|
|
21
|
-
type: String,
|
|
22
|
-
default: null
|
|
23
|
-
},
|
|
24
|
-
dataLabel: {
|
|
25
|
-
type: String,
|
|
26
|
-
default: null
|
|
27
|
-
}
|
|
28
|
-
},
|
|
29
|
-
|
|
30
|
-
created() {
|
|
31
|
-
this.render();
|
|
32
|
-
},
|
|
33
|
-
|
|
34
|
-
languageLoader() {
|
|
35
|
-
store.selectLanguage(this.lang);
|
|
36
|
-
location.reload();
|
|
37
|
-
},
|
|
38
|
-
|
|
39
|
-
render() {
|
|
40
|
-
let template = html(_templateObject(), this.languageLoader.bind(this), this.dataLabel);
|
|
41
|
-
render(template, this.element);
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
};
|
|
45
|
-
Sib.register(SolidLang);
|
|
46
|
-
//# sourceMappingURL=solid-lang.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["solid-lang.ts"],"names":["Sib","store","html","render","SolidLang","name","use","attributes","lang","type","String","default","dataLabel","created","languageLoader","selectLanguage","location","reload","template","bind","element","register"],"mappings":";;;;;;;;;;;;AAAA,SAASA,GAAT,QAAoB,aAApB;AACA,SAASC,KAAT,QAAsB,qBAAtB;AAEA,SAASC,IAAT,EAAeC,MAAf,QAA6B,UAA7B;AAEA,OAAO,MAAMC,SAAS,GAAG;AACvBC,EAAAA,IAAI,EAAE,YADiB;AAEvBC,EAAAA,GAAG,EAAE,EAFkB;AAGvBC,EAAAA,UAAU,EAAE;AACVC,IAAAA,IAAI,EAAE;AACJC,MAAAA,IAAI,EAAEC,MADF;AAEJC,MAAAA,OAAO,EAAE;AAFL,KADI;AAKVC,IAAAA,SAAS,EAAE;AACTH,MAAAA,IAAI,EAAEC,MADG;AAETC,MAAAA,OAAO,EAAE;AAFA;AALD,GAHW;;AAcvBE,EAAAA,OAAO,GAAS;AACd,SAAKV,MAAL;AACD,GAhBsB;;AAkBvBW,EAAAA,cAAc,GAAI;AAChBb,IAAAA,KAAK,CAACc,cAAN,CAAqB,KAAKP,IAA1B;AACAQ,IAAAA,QAAQ,CAACC,MAAT;AACD,GArBsB;;AAuBvBd,EAAAA,MAAM,GAAG;AACP,QAAIe,QAAQ,GAAGhB,IAAH,oBAED,KAAKY,cAAL,CAAoBK,IAApB,CAAyB,IAAzB,CAFC,EAIR,KAAKP,SAJG,CAAZ;AAQAT,IAAAA,MAAM,CAACe,QAAD,EAAW,KAAKE,OAAhB,CAAN;AACD;;AAjCsB,CAAlB;AAoCPpB,GAAG,CAACqB,QAAJ,CAAajB,SAAb","sourcesContent":["import { Sib } from '../libs/Sib';\nimport { store } from '../libs/store/store';\n\nimport { html, render } from 'lit-html';\n\nexport const SolidLang = {\n name: 'solid-lang',\n use: [],\n attributes: {\n lang: {\n type: String,\n default: null\n },\n dataLabel: {\n type: String,\n default: null\n }\n },\n\n created(): void {\n this.render();\n },\n\n languageLoader () {\n store.selectLanguage(this.lang);\n location.reload();\n },\n\n render() {\n let template = html`\n <button\n @click=${this.languageLoader.bind(this)}\n >\n ${this.dataLabel}\n </button>\n `;\n\n render(template, this.element);\n }\n};\n\nSib.register(SolidLang);"]}
|
|
@@ -1,239 +0,0 @@
|
|
|
1
|
-
function _templateObject2() {
|
|
2
|
-
const data = _taggedTemplateLiteral(["\n <solid-display\n fields=\"", "\"\n data-src=\"", "\"\n ...=", "\n ></solid-display>\n "]);
|
|
3
|
-
|
|
4
|
-
_templateObject2 = function () {
|
|
5
|
-
return data;
|
|
6
|
-
};
|
|
7
|
-
|
|
8
|
-
return data;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
function _templateObject() {
|
|
12
|
-
const data = _taggedTemplateLiteral(["\n <div id=", " style=\"width:100%;height:100%;\"></div>\n "]);
|
|
13
|
-
|
|
14
|
-
_templateObject = function () {
|
|
15
|
-
return data;
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
return data;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
|
|
22
|
-
|
|
23
|
-
import { Sib } from '../libs/Sib.js';
|
|
24
|
-
import { ListMixin } from '../mixins/listMixin.js';
|
|
25
|
-
import { StoreMixin } from '../mixins/storeMixin.js';
|
|
26
|
-
import { WidgetMixin } from '../mixins/widgetMixin.js';
|
|
27
|
-
import { CounterMixin } from '../mixins/counterMixin.js';
|
|
28
|
-
import { FilterMixin } from '../mixins/filterMixin.js';
|
|
29
|
-
import { FederationMixin } from '../mixins/federationMixin.js';
|
|
30
|
-
import { GrouperMixin } from '../mixins/grouperMixin.js';
|
|
31
|
-
import { NextMixin } from '../mixins/nextMixin.js';
|
|
32
|
-
import { store } from '../libs/store/store.js';
|
|
33
|
-
import { uniqID } from '../libs/helpers.js';
|
|
34
|
-
import { spread } from '../libs/lit-helpers.js';
|
|
35
|
-
import L from '../_snowpack/pkg/leaflet.js';
|
|
36
|
-
import '../_snowpack/pkg/leaflet.markercluster.js';
|
|
37
|
-
import { html, render } from '../_snowpack/pkg/lit-html.js';
|
|
38
|
-
import { ifDefined } from '../_snowpack/pkg/lit-html/directives/if-defined.js';
|
|
39
|
-
export const SolidMap = {
|
|
40
|
-
name: 'solid-map',
|
|
41
|
-
use: [WidgetMixin, ListMixin, StoreMixin, GrouperMixin, CounterMixin, FilterMixin, FederationMixin, NextMixin],
|
|
42
|
-
attributes: {
|
|
43
|
-
clustering: {
|
|
44
|
-
type: Boolean,
|
|
45
|
-
default: null
|
|
46
|
-
}
|
|
47
|
-
},
|
|
48
|
-
initialState: {
|
|
49
|
-
markers: {
|
|
50
|
-
default: null
|
|
51
|
-
},
|
|
52
|
-
subscriptions: null,
|
|
53
|
-
resetPlanned: false,
|
|
54
|
-
hasBeenResetOnce: false
|
|
55
|
-
},
|
|
56
|
-
|
|
57
|
-
created() {
|
|
58
|
-
//@ts-ignore
|
|
59
|
-
import("../_snowpack/pkg/leaflet/dist/leaflet.css.proxy.js"); //@ts-ignore
|
|
60
|
-
|
|
61
|
-
import("../style/default-theme.css.proxy.js"); //@ts-ignore
|
|
62
|
-
|
|
63
|
-
import("../_snowpack/pkg/leaflet.markercluster/dist/MarkerCluster.css.proxy.js"); //@ts-ignore
|
|
64
|
-
|
|
65
|
-
import("../_snowpack/pkg/leaflet.markercluster/dist/MarkerCluster.Default.css.proxy.js"); // reset when it becomes visible to prevent bug https://git.startinblox.com/framework/sib-core/issues/661
|
|
66
|
-
|
|
67
|
-
document.body.addEventListener('navigate', () => setTimeout(() => this.isVisible && !this.hasBeenResetOnce && this.reset()));
|
|
68
|
-
this.markers = [];
|
|
69
|
-
this.subscriptions = new Map();
|
|
70
|
-
},
|
|
71
|
-
|
|
72
|
-
get isVisible() {
|
|
73
|
-
return this.element.offsetParent !== null;
|
|
74
|
-
},
|
|
75
|
-
|
|
76
|
-
attached() {
|
|
77
|
-
const id = uniqID();
|
|
78
|
-
const template = html(_templateObject(), id);
|
|
79
|
-
render(template, this.element);
|
|
80
|
-
const div = this.element.querySelector("#".concat(id));
|
|
81
|
-
this.map = L.map(div);
|
|
82
|
-
L.tileLayer('https://{s}.basemaps.cartocdn.com/rastertiles/voyager/{z}/{x}/{y}{r}.png').addTo(this.map);
|
|
83
|
-
|
|
84
|
-
if (this.clustering !== null) {
|
|
85
|
-
this.markersCluster = L.markerClusterGroup();
|
|
86
|
-
this.map.addLayer(this.markersCluster);
|
|
87
|
-
}
|
|
88
|
-
},
|
|
89
|
-
|
|
90
|
-
reset() {
|
|
91
|
-
if (this.isVisible) {
|
|
92
|
-
// reset only if visible
|
|
93
|
-
this.map.invalidateSize();
|
|
94
|
-
|
|
95
|
-
if (this.markers.length) {
|
|
96
|
-
this.map.fitBounds(L.featureGroup(this.markers).getBounds()); // Center map on markers if some available
|
|
97
|
-
} else {
|
|
98
|
-
this.map.fitWorld(); // ... or on the world if not
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
this.hasBeenResetOnce = true;
|
|
102
|
-
}
|
|
103
|
-
},
|
|
104
|
-
|
|
105
|
-
/**
|
|
106
|
-
* Execute a reset only if none is planned already
|
|
107
|
-
*/
|
|
108
|
-
planReset() {
|
|
109
|
-
if (!this.resetPlanned) {
|
|
110
|
-
this.resetPlanned = true;
|
|
111
|
-
setTimeout(() => {
|
|
112
|
-
this.reset();
|
|
113
|
-
this.resetPlanned = false;
|
|
114
|
-
});
|
|
115
|
-
}
|
|
116
|
-
},
|
|
117
|
-
|
|
118
|
-
dispatchSelect(event) {
|
|
119
|
-
const target = event.target;
|
|
120
|
-
const resource = target['options'].resource;
|
|
121
|
-
this.element.dispatchEvent(new CustomEvent('resourceSelect', {
|
|
122
|
-
detail: {
|
|
123
|
-
resource: resource
|
|
124
|
-
}
|
|
125
|
-
}));
|
|
126
|
-
this.goToNext(resource);
|
|
127
|
-
},
|
|
128
|
-
|
|
129
|
-
/**
|
|
130
|
-
* Override listMixin method: initialize a marker on the map
|
|
131
|
-
* @param resourceId: id of the resource to display
|
|
132
|
-
* @param groupClass: class of the group of markers
|
|
133
|
-
*/
|
|
134
|
-
async appendChildElt(resourceId, groupClass) {
|
|
135
|
-
const resource = await store.getData(resourceId, this.context);
|
|
136
|
-
|
|
137
|
-
if (!this.subscriptions.get(resourceId)) {
|
|
138
|
-
this.subscriptions.set(resourceId, PubSub.subscribe(resourceId, () => this.updateDOM()));
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
if (!resource) return;
|
|
142
|
-
const lat = await resource['lat'];
|
|
143
|
-
const lng = await resource['lng'];
|
|
144
|
-
|
|
145
|
-
if (lat && lng) {
|
|
146
|
-
const icon = L.divIcon({
|
|
147
|
-
// create the icon, doc here: https://leafletjs.com/reference-1.6.0.html#icon
|
|
148
|
-
className: 'sib-custom-marker ' + groupClass,
|
|
149
|
-
// default class used for styling
|
|
150
|
-
iconSize: [8, 8],
|
|
151
|
-
iconAnchor: [12, 34],
|
|
152
|
-
popupAnchor: [0, -34]
|
|
153
|
-
}); // create a marker, doc here: https://leafletjs.com/reference-1.6.0.html#marker
|
|
154
|
-
|
|
155
|
-
const marker = L.marker([lat.toString(), lng.toString()], {
|
|
156
|
-
resource,
|
|
157
|
-
icon
|
|
158
|
-
});
|
|
159
|
-
if (this.clustering === null) marker.addTo(this.map);else this.markersCluster.addLayer(marker);
|
|
160
|
-
marker.on('click', this.dispatchSelect.bind(this));
|
|
161
|
-
|
|
162
|
-
if (this.fields !== null) {
|
|
163
|
-
// show popups only if fields attribute
|
|
164
|
-
marker.bindPopup(() => this.getPopupContent(resourceId), {
|
|
165
|
-
minWidth: 150
|
|
166
|
-
}); // re-generate popup solid-display
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
this.markers.push(marker);
|
|
170
|
-
}
|
|
171
|
-
},
|
|
172
|
-
|
|
173
|
-
/**
|
|
174
|
-
* Generate the solid-display of the popup
|
|
175
|
-
* @param resourceId: id of the popup clicked
|
|
176
|
-
*/
|
|
177
|
-
getPopupContent(resourceId) {
|
|
178
|
-
const attributes = {};
|
|
179
|
-
|
|
180
|
-
for (let attr of this.element.attributes) {
|
|
181
|
-
//copy widget and value attributes
|
|
182
|
-
if (attr.name.startsWith('value-') || attr.name.startsWith('label-') || attr.name.startsWith('widget-') || attr.name.startsWith('class-') || attr.name.startsWith('multiple-') || attr.name.startsWith('editable-') || attr.name.startsWith('action-') || attr.name.startsWith('default-') || attr.name == 'extra-context') attributes[attr.name] = attr.value;
|
|
183
|
-
if (attr.name.startsWith('child-')) attributes[attr.name.replace(/^child-/, '')] = attr.value;
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
const div = document.createElement('div');
|
|
187
|
-
const template = html(_templateObject2(), ifDefined(this.fields), resourceId, spread(attributes));
|
|
188
|
-
render(template, div);
|
|
189
|
-
return div.querySelector('solid-display');
|
|
190
|
-
},
|
|
191
|
-
|
|
192
|
-
/**
|
|
193
|
-
* Override widgetMixin method: empty the map
|
|
194
|
-
*/
|
|
195
|
-
empty() {
|
|
196
|
-
if (!this.map) return;
|
|
197
|
-
if (this.markersCluster) this.map.removeLayer(this.markersCluster);
|
|
198
|
-
|
|
199
|
-
for (let marker of this.markers) this.map.removeLayer(marker);
|
|
200
|
-
|
|
201
|
-
if (this.clustering !== null) {
|
|
202
|
-
this.markersCluster = L.markerClusterGroup();
|
|
203
|
-
this.map.addLayer(this.markersCluster);
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
this.markers = [];
|
|
207
|
-
},
|
|
208
|
-
|
|
209
|
-
/**
|
|
210
|
-
* Override groupMixin method
|
|
211
|
-
* @param groupName: value of the group
|
|
212
|
-
*/
|
|
213
|
-
renderGroup(groupName) {
|
|
214
|
-
const sanitizedGroupName = encodeURIComponent(groupName.toLowerCase()).replace(/%[0-9A-F]{2}/gi, '');
|
|
215
|
-
const div = document.createElement('div'); // used to pass group info to renderDOM
|
|
216
|
-
|
|
217
|
-
div.dataset.groupClass = 'group-' + sanitizedGroupName;
|
|
218
|
-
return div;
|
|
219
|
-
},
|
|
220
|
-
|
|
221
|
-
/**
|
|
222
|
-
* Override listMixin method: display all the resources
|
|
223
|
-
* @param resources
|
|
224
|
-
* @param listPostProcessors
|
|
225
|
-
* @param div
|
|
226
|
-
* @param context
|
|
227
|
-
*/
|
|
228
|
-
async renderDOM(resources, listPostProcessors, div, context) {
|
|
229
|
-
const groupClass = div.dataset.groupClass || ''; // get the group class from the useless div element
|
|
230
|
-
|
|
231
|
-
await Promise.all(resources.map(resource => this.appendChildElt(resource['@id'], groupClass)));
|
|
232
|
-
this.planReset();
|
|
233
|
-
const nextProcessor = listPostProcessors.shift();
|
|
234
|
-
if (nextProcessor) await nextProcessor(resources, listPostProcessors, div, context);
|
|
235
|
-
}
|
|
236
|
-
|
|
237
|
-
};
|
|
238
|
-
Sib.register(SolidMap);
|
|
239
|
-
//# sourceMappingURL=solid-map.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["solid-map.ts"],"names":["Sib","ListMixin","StoreMixin","WidgetMixin","CounterMixin","FilterMixin","FederationMixin","GrouperMixin","NextMixin","store","uniqID","spread","L","html","render","ifDefined","SolidMap","name","use","attributes","clustering","type","Boolean","default","initialState","markers","subscriptions","resetPlanned","hasBeenResetOnce","created","document","body","addEventListener","setTimeout","isVisible","reset","Map","element","offsetParent","attached","id","template","div","querySelector","map","tileLayer","addTo","markersCluster","markerClusterGroup","addLayer","invalidateSize","length","fitBounds","featureGroup","getBounds","fitWorld","planReset","dispatchSelect","event","target","resource","dispatchEvent","CustomEvent","detail","goToNext","appendChildElt","resourceId","groupClass","getData","context","get","set","PubSub","subscribe","updateDOM","lat","lng","icon","divIcon","className","iconSize","iconAnchor","popupAnchor","marker","toString","on","bind","fields","bindPopup","getPopupContent","minWidth","push","attr","startsWith","value","replace","createElement","empty","removeLayer","renderGroup","groupName","sanitizedGroupName","encodeURIComponent","toLowerCase","dataset","renderDOM","resources","listPostProcessors","Promise","all","nextProcessor","shift","register"],"mappings":"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","sourcesContent":["import { Sib } from '../libs/Sib';\nimport { ListMixin } from '../mixins/listMixin';\nimport { StoreMixin } from '../mixins/storeMixin';\nimport { WidgetMixin } from '../mixins/widgetMixin';\nimport { CounterMixin } from '../mixins/counterMixin';\nimport { FilterMixin } from '../mixins/filterMixin';\nimport { FederationMixin } from '../mixins/federationMixin';\nimport { GrouperMixin } from '../mixins/grouperMixin';\nimport { NextMixin } from '../mixins/nextMixin';\nimport { store } from '../libs/store/store';\nimport { uniqID } from '../libs/helpers';\nimport { spread } from '../libs/lit-helpers';\n\nimport L, { MarkerOptions } from 'leaflet';\nimport 'leaflet.markercluster';\nimport { html, render } from 'lit-html';\nimport { ifDefined } from 'lit-html/directives/if-defined';\n\nexport const SolidMap = {\n name: 'solid-map',\n use: [\n WidgetMixin,\n ListMixin,\n StoreMixin,\n GrouperMixin,\n CounterMixin,\n FilterMixin,\n FederationMixin,\n NextMixin,\n ],\n attributes: {\n clustering: {\n type: Boolean,\n default: null\n }\n },\n initialState: {\n markers: {\n default: null\n },\n subscriptions: null,\n resetPlanned: false,\n hasBeenResetOnce: false\n },\n created(): void {\n //@ts-ignore\n import('leaflet/dist/leaflet.css');\n //@ts-ignore\n import('../style/default-theme.css');\n //@ts-ignore\n import('leaflet.markercluster/dist/MarkerCluster.css');\n //@ts-ignore\n import('leaflet.markercluster/dist/MarkerCluster.Default.css');\n\n // reset when it becomes visible to prevent bug https://git.startinblox.com/framework/sib-core/issues/661\n document.body.addEventListener('navigate', () =>\n setTimeout(() => this.isVisible && !this.hasBeenResetOnce && this.reset())\n );\n this.markers = [];\n this.subscriptions = new Map();\n },\n get isVisible() {\n return this.element.offsetParent !== null\n },\n attached(): void {\n const id = uniqID();\n const template = html`\n <div id=${id} style=\"width:100%;height:100%;\"></div>\n `;\n render(template, this.element);\n\n const div = this.element.querySelector(`#${id}`);\n this.map = L.map(div);\n\n L.tileLayer(\n 'https://{s}.basemaps.cartocdn.com/rastertiles/voyager/{z}/{x}/{y}{r}.png'\n ).addTo(this.map);\n\n if (this.clustering !== null) {\n this.markersCluster = L.markerClusterGroup();\n this.map.addLayer(this.markersCluster);\n }\n },\n reset() {\n if (this.isVisible) { // reset only if visible\n this.map.invalidateSize();\n\n if (this.markers.length) {\n this.map.fitBounds(L.featureGroup(this.markers).getBounds()); // Center map on markers if some available\n } else {\n this.map.fitWorld(); // ... or on the world if not\n }\n this.hasBeenResetOnce = true;\n }\n },\n /**\n * Execute a reset only if none is planned already\n */\n planReset() {\n if (!this.resetPlanned) {\n this.resetPlanned = true;\n setTimeout(() => {\n this.reset();\n this.resetPlanned = false;\n })\n }\n },\n dispatchSelect(event: CustomEvent): void {\n const target = event.target as Element;\n const resource = target['options'].resource;\n this.element.dispatchEvent(\n new CustomEvent('resourceSelect', { detail: { resource: resource } })\n );\n this.goToNext(resource);\n },\n\n /**\n * Override listMixin method: initialize a marker on the map\n * @param resourceId: id of the resource to display\n * @param groupClass: class of the group of markers\n */\n async appendChildElt(resourceId: string, groupClass: string) {\n const resource = await store.getData(resourceId, this.context);\n if (!this.subscriptions.get(resourceId)) {\n this.subscriptions.set(resourceId, PubSub.subscribe(resourceId, () => this.updateDOM()))\n }\n if (!resource) return;\n const lat = await resource['lat'];\n const lng = await resource['lng'];\n\n if (lat && lng) {\n const icon = L.divIcon({ // create the icon, doc here: https://leafletjs.com/reference-1.6.0.html#icon\n className: 'sib-custom-marker ' + groupClass, // default class used for styling\n iconSize: [8, 8],\n iconAnchor: [12, 34],\n popupAnchor: [0,-34]\n });\n\n // create a marker, doc here: https://leafletjs.com/reference-1.6.0.html#marker\n const marker = L.marker(\n [lat.toString(), lng.toString()], \n {resource, icon} as MarkerOptions\n );\n if(this.clustering === null) marker.addTo(this.map);\n else this.markersCluster.addLayer(marker);\n marker.on('click', this.dispatchSelect.bind(this));\n\n if (this.fields !== null) { // show popups only if fields attribute\n marker.bindPopup(() => this.getPopupContent(resourceId), { minWidth: 150 }) // re-generate popup solid-display\n }\n\n this.markers.push(marker);\n }\n },\n /**\n * Generate the solid-display of the popup\n * @param resourceId: id of the popup clicked\n */\n getPopupContent(resourceId: string) {\n const attributes:{[key:string]: string} = {};\n\n for (let attr of this.element.attributes) {\n //copy widget and value attributes\n if (\n attr.name.startsWith('value-') ||\n attr.name.startsWith('label-') ||\n attr.name.startsWith('widget-') ||\n attr.name.startsWith('class-') ||\n attr.name.startsWith('multiple-') ||\n attr.name.startsWith('editable-') ||\n attr.name.startsWith('action-') ||\n attr.name.startsWith('default-') ||\n attr.name == 'extra-context'\n )\n attributes[attr.name] = attr.value;\n if (attr.name.startsWith('child-'))\n attributes[attr.name.replace(/^child-/, '')] = attr.value;\n }\n\n const div = document.createElement('div');\n const template = html`\n <solid-display\n fields=\"${ifDefined(this.fields)}\"\n data-src=\"${resourceId}\"\n ...=${spread(attributes)}\n ></solid-display>\n `;\n render(template, div);\n return div.querySelector('solid-display');\n },\n /**\n * Override widgetMixin method: empty the map\n */\n empty(): void {\n if (!this.map) return;\n if (this.markersCluster) this.map.removeLayer(this.markersCluster);\n for (let marker of this.markers) this.map.removeLayer(marker);\n if(this.clustering !== null) {\n this.markersCluster = L.markerClusterGroup();\n this.map.addLayer(this.markersCluster);\n }\n this.markers = [];\n },\n /**\n * Override groupMixin method\n * @param groupName: value of the group\n */\n renderGroup(groupName: string) {\n const sanitizedGroupName = encodeURIComponent(groupName.toLowerCase()).replace(/%[0-9A-F]{2}/gi, '');\n const div = document.createElement('div'); // used to pass group info to renderDOM\n div.dataset.groupClass = 'group-' + sanitizedGroupName;\n return div;\n },\n /**\n * Override listMixin method: display all the resources\n * @param resources\n * @param listPostProcessors\n * @param div\n * @param context\n */\n async renderDOM(resources: object[], listPostProcessors: Function[], div: HTMLElement, context: string) {\n const groupClass = div.dataset.groupClass || ''; // get the group class from the useless div element\n await Promise.all(resources.map(resource => this.appendChildElt(resource['@id'], groupClass)))\n this.planReset();\n\n const nextProcessor = listPostProcessors.shift();\n if(nextProcessor) await nextProcessor(resources, listPostProcessors, div, context);\n }\n};\n\nSib.register(SolidMap);"]}
|
|
@@ -1,263 +0,0 @@
|
|
|
1
|
-
function _templateObject9() {
|
|
2
|
-
const data = _taggedTemplateLiteral(["\n ", "\n ", "\n "]);
|
|
3
|
-
|
|
4
|
-
_templateObject9 = function () {
|
|
5
|
-
return data;
|
|
6
|
-
};
|
|
7
|
-
|
|
8
|
-
return data;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
function _templateObject8() {
|
|
12
|
-
const data = _taggedTemplateLiteral(["\n ", "\n ", "\n "]);
|
|
13
|
-
|
|
14
|
-
_templateObject8 = function () {
|
|
15
|
-
return data;
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
return data;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
function _templateObject7() {
|
|
22
|
-
const data = _taggedTemplateLiteral(["<td>", "</td>"]);
|
|
23
|
-
|
|
24
|
-
_templateObject7 = function () {
|
|
25
|
-
return data;
|
|
26
|
-
};
|
|
27
|
-
|
|
28
|
-
return data;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
function _templateObject6() {
|
|
32
|
-
const data = _taggedTemplateLiteral(["\n <td>\n <input type=\"checkbox\" data-selection />\n </td>"]);
|
|
33
|
-
|
|
34
|
-
_templateObject6 = function () {
|
|
35
|
-
return data;
|
|
36
|
-
};
|
|
37
|
-
|
|
38
|
-
return data;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
function _templateObject5() {
|
|
42
|
-
const data = _taggedTemplateLiteral(["\n <tr data-resource=\"", "\">\n ", "\n ", "\n </tr>\n "]);
|
|
43
|
-
|
|
44
|
-
_templateObject5 = function () {
|
|
45
|
-
return data;
|
|
46
|
-
};
|
|
47
|
-
|
|
48
|
-
return data;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
function _templateObject4() {
|
|
52
|
-
const data = _taggedTemplateLiteral(["\n <th>\n ", "\n </th>"]);
|
|
53
|
-
|
|
54
|
-
_templateObject4 = function () {
|
|
55
|
-
return data;
|
|
56
|
-
};
|
|
57
|
-
|
|
58
|
-
return data;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
function _templateObject3() {
|
|
62
|
-
const data = _taggedTemplateLiteral(["\n <th>\n <input type=\"checkbox\" @change=\"", "\" />\n </th>"]);
|
|
63
|
-
|
|
64
|
-
_templateObject3 = function () {
|
|
65
|
-
return data;
|
|
66
|
-
};
|
|
67
|
-
|
|
68
|
-
return data;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
function _templateObject2() {
|
|
72
|
-
const data = _taggedTemplateLiteral(["\n <tr>\n ", "\n ", "\n </tr>\n "]);
|
|
73
|
-
|
|
74
|
-
_templateObject2 = function () {
|
|
75
|
-
return data;
|
|
76
|
-
};
|
|
77
|
-
|
|
78
|
-
return data;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
function _templateObject() {
|
|
82
|
-
const data = _taggedTemplateLiteral(["\n <solid-form\n data-src=\"", "\"\n fields=\"", "\"\n partial\n autosave\n ...=", "\n ></solid-form>\n "]);
|
|
83
|
-
|
|
84
|
-
_templateObject = function () {
|
|
85
|
-
return data;
|
|
86
|
-
};
|
|
87
|
-
|
|
88
|
-
return data;
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
|
|
92
|
-
|
|
93
|
-
import { Sib } from '../libs/Sib.js';
|
|
94
|
-
import { store } from '../libs/store/store.js';
|
|
95
|
-
import { WidgetMixin } from '../mixins/widgetMixin.js';
|
|
96
|
-
import { ListMixin } from '../mixins/listMixin.js';
|
|
97
|
-
import { StoreMixin } from '../mixins/storeMixin.js';
|
|
98
|
-
import { PaginateMixin } from '../mixins/paginateMixin.js';
|
|
99
|
-
import { FilterMixin } from '../mixins/filterMixin.js';
|
|
100
|
-
import { CounterMixin } from '../mixins/counterMixin.js';
|
|
101
|
-
import { SorterMixin } from '../mixins/sorterMixin.js';
|
|
102
|
-
import { GrouperMixin } from '../mixins/grouperMixin.js';
|
|
103
|
-
import { FederationMixin } from '../mixins/federationMixin.js';
|
|
104
|
-
import { HighlighterMixin } from '../mixins/highlighterMixin.js';
|
|
105
|
-
import { RequiredMixin } from '../mixins/requiredMixin.js';
|
|
106
|
-
import { html, render } from '../_snowpack/pkg/lit-html.js';
|
|
107
|
-
import { until } from '../_snowpack/pkg/lit-html/directives/until.js';
|
|
108
|
-
import { spread } from '../libs/lit-helpers.js';
|
|
109
|
-
export const SolidTable = {
|
|
110
|
-
name: 'solid-table',
|
|
111
|
-
use: [WidgetMixin, ListMixin, StoreMixin, PaginateMixin, GrouperMixin, CounterMixin, HighlighterMixin, FilterMixin, SorterMixin, RequiredMixin, FederationMixin],
|
|
112
|
-
attributes: {
|
|
113
|
-
defaultWidget: {
|
|
114
|
-
type: String,
|
|
115
|
-
default: 'solid-display-value'
|
|
116
|
-
},
|
|
117
|
-
selectable: {
|
|
118
|
-
type: String,
|
|
119
|
-
default: null
|
|
120
|
-
},
|
|
121
|
-
header: {
|
|
122
|
-
type: String,
|
|
123
|
-
default: null
|
|
124
|
-
}
|
|
125
|
-
},
|
|
126
|
-
|
|
127
|
-
get parentElement() {
|
|
128
|
-
return 'table';
|
|
129
|
-
},
|
|
130
|
-
|
|
131
|
-
get defaultMultipleWidget() {
|
|
132
|
-
return 'solid-multiple';
|
|
133
|
-
},
|
|
134
|
-
|
|
135
|
-
get defaultSetWidget() {
|
|
136
|
-
return 'solid-set-default';
|
|
137
|
-
},
|
|
138
|
-
|
|
139
|
-
get selectedLines() {
|
|
140
|
-
if (this.selectable === null) return [];
|
|
141
|
-
return Array.from(this.element.querySelectorAll('input[data-selection]:checked')).map(e => {
|
|
142
|
-
var _e$closest;
|
|
143
|
-
|
|
144
|
-
return e === null || e === void 0 ? void 0 : (_e$closest = e.closest('[data-resource]')) === null || _e$closest === void 0 ? void 0 : _e$closest.getAttribute('data-resource');
|
|
145
|
-
});
|
|
146
|
-
},
|
|
147
|
-
|
|
148
|
-
/**
|
|
149
|
-
* Select all lines
|
|
150
|
-
* @param e - event
|
|
151
|
-
*/
|
|
152
|
-
selectAll(e) {
|
|
153
|
-
if (this.selectable === null) return;
|
|
154
|
-
|
|
155
|
-
for (const checkbox of Array.from(this.element.querySelectorAll('input[data-selection]'))) {
|
|
156
|
-
checkbox.checked = e.target.checked;
|
|
157
|
-
}
|
|
158
|
-
},
|
|
159
|
-
|
|
160
|
-
/**
|
|
161
|
-
* Unselect all lines
|
|
162
|
-
*/
|
|
163
|
-
unselectAll() {
|
|
164
|
-
if (this.selectable === null) return;
|
|
165
|
-
|
|
166
|
-
for (const checkbox of Array.from(this.element.querySelectorAll('input[data-selection]'))) {
|
|
167
|
-
checkbox.checked = false;
|
|
168
|
-
}
|
|
169
|
-
},
|
|
170
|
-
|
|
171
|
-
/**
|
|
172
|
-
* Select specific lines
|
|
173
|
-
* @param lines - array of selected lines
|
|
174
|
-
*/
|
|
175
|
-
selectLines(lines) {
|
|
176
|
-
if (this.selectable === null || lines.length === 0) return;
|
|
177
|
-
|
|
178
|
-
for (const line of lines) {
|
|
179
|
-
const checkbox = this.element.querySelector("[data-resource=\"".concat(line, "\"] input[data-selection]"));
|
|
180
|
-
if (checkbox) checkbox.checked = true;
|
|
181
|
-
}
|
|
182
|
-
},
|
|
183
|
-
|
|
184
|
-
/**
|
|
185
|
-
* Create a widget for the field or a form if it's editable
|
|
186
|
-
* @param field
|
|
187
|
-
* @param resource
|
|
188
|
-
*/
|
|
189
|
-
async createCellWidget(field, resource) {
|
|
190
|
-
// if regular widget
|
|
191
|
-
if (!this.element.hasAttribute('editable-' + field)) return this.createWidgetTemplate(field, resource, true); // if editable widget
|
|
192
|
-
|
|
193
|
-
const attributes = {};
|
|
194
|
-
const formWidgetAttributes = [// attributes to give to the form widget
|
|
195
|
-
'range', 'enum', 'placeholder', 'required', 'autocomplete', 'option-label', 'option-value', 'min', 'max', 'pattern', 'title', 'widget'];
|
|
196
|
-
|
|
197
|
-
for (let attr of formWidgetAttributes) this.addToAttributes("".concat(attr, "-").concat(field), "".concat(attr, "-").concat(field), attributes);
|
|
198
|
-
|
|
199
|
-
const formAttributes = [// attributes to give to the form
|
|
200
|
-
'class', 'submit-button', 'next'];
|
|
201
|
-
|
|
202
|
-
for (let attr of formAttributes) this.addToAttributes("".concat(attr, "-").concat(field), attr, attributes);
|
|
203
|
-
|
|
204
|
-
return html(_templateObject(), resource['@id'], field, spread(attributes));
|
|
205
|
-
},
|
|
206
|
-
|
|
207
|
-
/**
|
|
208
|
-
* Creates a header line for the table
|
|
209
|
-
* @param fields
|
|
210
|
-
*/
|
|
211
|
-
getHeader(fields) {
|
|
212
|
-
let template = html(_templateObject2(), this.selectable !== null ? html(_templateObject3(), this.selectAll.bind(this)) : '', fields.map(field => html(_templateObject4(), this.element.hasAttribute('label-' + field) ? this.element.getAttribute('label-' + field) : field)));
|
|
213
|
-
return template;
|
|
214
|
-
},
|
|
215
|
-
|
|
216
|
-
/**
|
|
217
|
-
* Returns template of a child element (resource)
|
|
218
|
-
* @param resourceId
|
|
219
|
-
* @param attributes
|
|
220
|
-
*/
|
|
221
|
-
async getChildTemplate(resourceId, fields) {
|
|
222
|
-
const resource = await store.getData(resourceId, this.context);
|
|
223
|
-
let template = html(_templateObject5(), resourceId, this.selectable !== null ? html(_templateObject6()) : '', fields.map(field => html(_templateObject7(), until(this.createCellWidget(field, resource)))));
|
|
224
|
-
return template;
|
|
225
|
-
},
|
|
226
|
-
|
|
227
|
-
/**
|
|
228
|
-
* Creates and render the content of a single element (resource)
|
|
229
|
-
* @param parent
|
|
230
|
-
*/
|
|
231
|
-
async appendSingleElt(parent) {
|
|
232
|
-
const fields = await this.getFields();
|
|
233
|
-
const template = html(_templateObject8(), this.header !== null ? this.getHeader(fields) : '', until(this.getChildTemplate(this.resource['@id'], fields)));
|
|
234
|
-
render(template, parent);
|
|
235
|
-
},
|
|
236
|
-
|
|
237
|
-
/**
|
|
238
|
-
* @override listMixin method to use litHtml
|
|
239
|
-
*
|
|
240
|
-
* Render resources from a container
|
|
241
|
-
* @param resources
|
|
242
|
-
* @param listPostProcessors
|
|
243
|
-
* @param div
|
|
244
|
-
* @param context
|
|
245
|
-
*/
|
|
246
|
-
async renderDOM(resources, listPostProcessors, div, context) {
|
|
247
|
-
const selectedLines = [...this.selectedLines]; // save selected lines before moving them
|
|
248
|
-
|
|
249
|
-
const fields = await this.getFields();
|
|
250
|
-
const childTemplates = await Promise.all(resources.map(r => r ? this.getChildTemplate(r['@id'], fields) : null));
|
|
251
|
-
const template = html(_templateObject9(), this.header !== null ? this.getHeader(fields) : '', childTemplates); // create a child template for each resource
|
|
252
|
-
|
|
253
|
-
render(template, div); // Re-select the right lines
|
|
254
|
-
|
|
255
|
-
this.unselectAll();
|
|
256
|
-
this.selectLines(selectedLines);
|
|
257
|
-
const nextProcessor = listPostProcessors.shift();
|
|
258
|
-
if (nextProcessor) await nextProcessor(resources, listPostProcessors, div, context);
|
|
259
|
-
}
|
|
260
|
-
|
|
261
|
-
};
|
|
262
|
-
Sib.register(SolidTable);
|
|
263
|
-
//# sourceMappingURL=solid-table.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["solid-table.ts"],"names":["Sib","store","WidgetMixin","ListMixin","StoreMixin","PaginateMixin","FilterMixin","CounterMixin","SorterMixin","GrouperMixin","FederationMixin","HighlighterMixin","RequiredMixin","html","render","until","spread","SolidTable","name","use","attributes","defaultWidget","type","String","default","selectable","header","parentElement","defaultMultipleWidget","defaultSetWidget","selectedLines","Array","from","element","querySelectorAll","map","e","closest","getAttribute","selectAll","checkbox","checked","target","unselectAll","selectLines","lines","length","line","querySelector","createCellWidget","field","resource","hasAttribute","createWidgetTemplate","formWidgetAttributes","attr","addToAttributes","formAttributes","getHeader","fields","template","bind","getChildTemplate","resourceId","getData","context","appendSingleElt","parent","getFields","renderDOM","resources","listPostProcessors","div","childTemplates","Promise","all","r","nextProcessor","shift","register"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,SAASA,GAAT,QAAoB,aAApB;AACA,SAASC,KAAT,QAAsB,qBAAtB;AACA,SAASC,WAAT,QAA4B,uBAA5B;AACA,SAASC,SAAT,QAA0B,qBAA1B;AACA,SAASC,UAAT,QAA2B,sBAA3B;AACA,SAASC,aAAT,QAA8B,yBAA9B;AACA,SAASC,WAAT,QAA4B,uBAA5B;AACA,SAASC,YAAT,QAA6B,wBAA7B;AACA,SAASC,WAAT,QAA4B,uBAA5B;AACA,SAASC,YAAT,QAA6B,wBAA7B;AACA,SAASC,eAAT,QAAgC,2BAAhC;AACA,SAASC,gBAAT,QAAiC,4BAAjC;AACA,SAASC,aAAT,QAA8B,yBAA9B;AAEA,SAASC,IAAT,EAAeC,MAAf,QAA6B,UAA7B;AACA,SAASC,KAAT,QAAsB,2BAAtB;AACA,SAASC,MAAT,QAAuB,qBAAvB;AAEA,OAAO,MAAMC,UAAU,GAAG;AACxBC,EAAAA,IAAI,EAAE,aADkB;AAExBC,EAAAA,GAAG,EAAE,CACHjB,WADG,EAEHC,SAFG,EAGHC,UAHG,EAIHC,aAJG,EAKHI,YALG,EAMHF,YANG,EAOHI,gBAPG,EAQHL,WARG,EASHE,WATG,EAUHI,aAVG,EAWHF,eAXG,CAFmB;AAexBU,EAAAA,UAAU,EAAE;AACVC,IAAAA,aAAa,EAAE;AACbC,MAAAA,IAAI,EAAEC,MADO;AAEbC,MAAAA,OAAO,EAAE;AAFI,KADL;AAKVC,IAAAA,UAAU,EAAE;AACVH,MAAAA,IAAI,EAAEC,MADI;AAEVC,MAAAA,OAAO,EAAE;AAFC,KALF;AASVE,IAAAA,MAAM,EAAE;AACNJ,MAAAA,IAAI,EAAEC,MADA;AAENC,MAAAA,OAAO,EAAE;AAFH;AATE,GAfY;;AA6BxB,MAAIG,aAAJ,GAA4B;AAC1B,WAAO,OAAP;AACD,GA/BuB;;AAgCxB,MAAIC,qBAAJ,GAAoC;AAClC,WAAO,gBAAP;AACD,GAlCuB;;AAmCxB,MAAIC,gBAAJ,GAA+B;AAC7B,WAAO,mBAAP;AACD,GArCuB;;AAsCxB,MAAIC,aAAJ,GAAoB;AAClB,QAAI,KAAKL,UAAL,KAAoB,IAAxB,EAA8B,OAAO,EAAP;AAC9B,WAAQM,KAAK,CAACC,IAAN,CAAW,KAAKC,OAAL,CAAaC,gBAAb,CAA8B,+BAA9B,CAAX,CAAD,CACJC,GADI,CACAC,CAAC;AAAA;;AAAA,aAAIA,CAAJ,aAAIA,CAAJ,qCAAIA,CAAC,CAAEC,OAAH,CAAW,iBAAX,CAAJ,+CAAI,WAA+BC,YAA/B,CAA4C,eAA5C,CAAJ;AAAA,KADD,CAAP;AAED,GA1CuB;;AA2CxB;AACF;AACA;AACA;AACEC,EAAAA,SAAS,CAACH,CAAD,EAAI;AACX,QAAI,KAAKX,UAAL,KAAoB,IAAxB,EAA8B;;AAC9B,SAAK,MAAMe,QAAX,IAAuBT,KAAK,CAACC,IAAN,CAAW,KAAKC,OAAL,CAAaC,gBAAb,CAA8B,uBAA9B,CAAX,CAAvB,EAAiH;AAC/GM,MAAAA,QAAQ,CAACC,OAAT,GAAmBL,CAAC,CAACM,MAAF,CAASD,OAA5B;AACD;AACF,GApDuB;;AAqDxB;AACF;AACA;AACEE,EAAAA,WAAW,GAAS;AAClB,QAAI,KAAKlB,UAAL,KAAoB,IAAxB,EAA8B;;AAC9B,SAAK,MAAMe,QAAX,IAAuBT,KAAK,CAACC,IAAN,CAAW,KAAKC,OAAL,CAAaC,gBAAb,CAA8B,uBAA9B,CAAX,CAAvB,EAAiH;AAC/GM,MAAAA,QAAQ,CAACC,OAAT,GAAmB,KAAnB;AACD;AACF,GA7DuB;;AA8DxB;AACF;AACA;AACA;AACEG,EAAAA,WAAW,CAACC,KAAD,EAAkB;AAC3B,QAAI,KAAKpB,UAAL,KAAoB,IAApB,IAA4BoB,KAAK,CAACC,MAAN,KAAiB,CAAjD,EAAoD;;AACpD,SAAK,MAAMC,IAAX,IAAmBF,KAAnB,EAA0B;AACxB,YAAML,QAAQ,GAAG,KAAKP,OAAL,CAAae,aAAb,4BAA8CD,IAA9C,+BAAjB;AACA,UAAIP,QAAJ,EAAcA,QAAQ,CAACC,OAAT,GAAmB,IAAnB;AACf;AACF,GAxEuB;;AAyExB;AACF;AACA;AACA;AACA;AACE,QAAMQ,gBAAN,CAAuBC,KAAvB,EAAsCC,QAAtC,EAA0D;AACxD;AACA,QAAI,CAAC,KAAKlB,OAAL,CAAamB,YAAb,CAA0B,cAAcF,KAAxC,CAAL,EAAqD,OAAO,KAAKG,oBAAL,CAA0BH,KAA1B,EAAiCC,QAAjC,EAA2C,IAA3C,CAAP,CAFG,CAIxD;;AACA,UAAM/B,UAAU,GAAG,EAAnB;AACA,UAAMkC,oBAAoB,GAAG,CAAE;AAC7B,WAD2B,EAE3B,MAF2B,EAG3B,aAH2B,EAI3B,UAJ2B,EAK3B,cAL2B,EAM3B,cAN2B,EAO3B,cAP2B,EAQ3B,KAR2B,EAS3B,KAT2B,EAU3B,SAV2B,EAW3B,OAX2B,EAY3B,QAZ2B,CAA7B;;AAcA,SAAK,IAAIC,IAAT,IAAiBD,oBAAjB,EAAuC,KAAKE,eAAL,WAAwBD,IAAxB,cAAgCL,KAAhC,aAA4CK,IAA5C,cAAoDL,KAApD,GAA8D9B,UAA9D;;AAEvC,UAAMqC,cAAc,GAAG,CAAE;AACvB,WADqB,EAErB,eAFqB,EAGrB,MAHqB,CAAvB;;AAKA,SAAK,IAAIF,IAAT,IAAiBE,cAAjB,EAAiC,KAAKD,eAAL,WAAwBD,IAAxB,cAAgCL,KAAhC,GAAyCK,IAAzC,EAAgDnC,UAAhD;;AAEjC,WAAOP,IAAP,oBAEgBsC,QAAQ,CAAC,KAAD,CAFxB,EAGcD,KAHd,EAMUlC,MAAM,CAACI,UAAD,CANhB;AASD,GApHuB;;AAqHxB;AACF;AACA;AACA;AACEsC,EAAAA,SAAS,CAACC,MAAD,EAAmB;AAC1B,QAAIC,QAAQ,GAAG/C,IAAH,qBAEN,KAAKY,UAAL,KAAoB,IAApB,GAA2BZ,IAA3B,qBAEkC,KAAK0B,SAAL,CAAesB,IAAf,CAAoB,IAApB,CAFlC,IAGO,EALD,EAMNF,MAAM,CAACxB,GAAP,CAAYe,KAAD,IAAmBrC,IAAnB,qBAEP,KAAKoB,OAAL,CAAamB,YAAb,CAA0B,WAASF,KAAnC,IAA4C,KAAKjB,OAAL,CAAaK,YAAb,CAA0B,WAASY,KAAnC,CAA5C,GAAwFA,KAFjF,CAAX,CANM,CAAZ;AAYA,WAAOU,QAAP;AACD,GAvIuB;;AAwIxB;AACF;AACA;AACA;AACA;AACE,QAAME,gBAAN,CAAuBC,UAAvB,EAA2CJ,MAA3C,EAAmD;AACjD,UAAMR,QAAQ,GAAG,MAAMlD,KAAK,CAAC+D,OAAN,CAAcD,UAAd,EAA0B,KAAKE,OAA/B,CAAvB;AACA,QAAIL,QAAQ,GAAG/C,IAAH,qBACWkD,UADX,EAEN,KAAKtC,UAAL,KAAoB,IAApB,GAA2BZ,IAA3B,uBAGO,EALD,EAMN8C,MAAM,CAACxB,GAAP,CAAYe,KAAD,IAAmBrC,IAAnB,qBAA8BE,KAAK,CAAC,KAAKkC,gBAAL,CAAsBC,KAAtB,EAA6BC,QAA7B,CAAD,CAAnC,CAAX,CANM,CAAZ;AASA,WAAOS,QAAP;AACD,GAzJuB;;AA2JxB;AACF;AACA;AACA;AACE,QAAMM,eAAN,CAAsBC,MAAtB,EAA0D;AACxD,UAAMR,MAAM,GAAG,MAAM,KAAKS,SAAL,EAArB;AAEA,UAAMR,QAAQ,GAAG/C,IAAH,qBACV,KAAKa,MAAL,KAAgB,IAAhB,GAAuB,KAAKgC,SAAL,CAAeC,MAAf,CAAvB,GAAgD,EADtC,EAEV5C,KAAK,CAAC,KAAK+C,gBAAL,CAAsB,KAAKX,QAAL,CAAc,KAAd,CAAtB,EAA4CQ,MAA5C,CAAD,CAFK,CAAd;AAIA7C,IAAAA,MAAM,CAAC8C,QAAD,EAAWO,MAAX,CAAN;AACD,GAvKuB;;AAyKxB;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACE,QAAME,SAAN,CACEC,SADF,EAEEC,kBAFF,EAGEC,GAHF,EAIEP,OAJF,EAKE;AACA,UAAMnC,aAAa,GAAG,CAAC,GAAG,KAAKA,aAAT,CAAtB,CADA,CAC+C;;AAC/C,UAAM6B,MAAM,GAAG,MAAM,KAAKS,SAAL,EAArB;AACA,UAAMK,cAAc,GAAG,MAAMC,OAAO,CAACC,GAAR,CAC3BL,SAAS,CAACnC,GAAV,CAAcyC,CAAC,IAAIA,CAAC,GAAG,KAAKd,gBAAL,CAAsBc,CAAC,CAAC,KAAD,CAAvB,EAAgCjB,MAAhC,CAAH,GAA6C,IAAjE,CAD2B,CAA7B;AAGA,UAAMC,QAAQ,GAAG/C,IAAH,qBACV,KAAKa,MAAL,KAAgB,IAAhB,GAAuB,KAAKgC,SAAL,CAAeC,MAAf,CAAvB,GAAgD,EADtC,EAEVc,cAFU,CAAd,CANA,CASG;;AACH3D,IAAAA,MAAM,CAAC8C,QAAD,EAAWY,GAAX,CAAN,CAVA,CAYA;;AACA,SAAK7B,WAAL;AACA,SAAKC,WAAL,CAAiBd,aAAjB;AAEA,UAAM+C,aAAa,GAAGN,kBAAkB,CAACO,KAAnB,EAAtB;AACA,QAAID,aAAJ,EACE,MAAMA,aAAa,CACjBP,SADiB,EAEjBC,kBAFiB,EAGjBC,GAHiB,EAIjBP,OAJiB,CAAnB;AAMH;;AA/MuB,CAAnB;AAkNPjE,GAAG,CAAC+E,QAAJ,CAAa9D,UAAb","sourcesContent":["import type { Resource } from '../mixins/interfaces';\nimport { Sib } from '../libs/Sib';\nimport { store } from '../libs/store/store';\nimport { WidgetMixin } from '../mixins/widgetMixin';\nimport { ListMixin } from '../mixins/listMixin';\nimport { StoreMixin } from '../mixins/storeMixin';\nimport { PaginateMixin } from '../mixins/paginateMixin';\nimport { FilterMixin } from '../mixins/filterMixin';\nimport { CounterMixin } from '../mixins/counterMixin';\nimport { SorterMixin } from '../mixins/sorterMixin';\nimport { GrouperMixin } from '../mixins/grouperMixin';\nimport { FederationMixin } from '../mixins/federationMixin';\nimport { HighlighterMixin } from '../mixins/highlighterMixin';\nimport { RequiredMixin } from '../mixins/requiredMixin';\n\nimport { html, render } from 'lit-html';\nimport { until } from 'lit-html/directives/until';\nimport { spread } from '../libs/lit-helpers';\n\nexport const SolidTable = {\n name: 'solid-table',\n use: [\n WidgetMixin,\n ListMixin,\n StoreMixin,\n PaginateMixin,\n GrouperMixin,\n CounterMixin,\n HighlighterMixin,\n FilterMixin,\n SorterMixin,\n RequiredMixin,\n FederationMixin,\n ],\n attributes: {\n defaultWidget: {\n type: String,\n default: 'solid-display-value',\n },\n selectable: {\n type: String,\n default: null,\n },\n header: {\n type: String,\n default: null,\n },\n },\n get parentElement(): string {\n return 'table';\n },\n get defaultMultipleWidget(): string {\n return 'solid-multiple';\n },\n get defaultSetWidget(): string {\n return 'solid-set-default';\n },\n get selectedLines() {\n if (this.selectable === null) return [];\n return (Array.from(this.element.querySelectorAll('input[data-selection]:checked')) as Element[])\n .map(e => e?.closest('[data-resource]')?.getAttribute('data-resource'));\n },\n /**\n * Select all lines\n * @param e - event\n */\n selectAll(e) {\n if (this.selectable === null) return;\n for (const checkbox of Array.from(this.element.querySelectorAll('input[data-selection]') as HTMLInputElement[])) {\n checkbox.checked = e.target.checked;\n }\n },\n /**\n * Unselect all lines\n */\n unselectAll(): void {\n if (this.selectable === null) return;\n for (const checkbox of Array.from(this.element.querySelectorAll('input[data-selection]') as HTMLInputElement[])) {\n checkbox.checked = false;\n }\n },\n /**\n * Select specific lines\n * @param lines - array of selected lines\n */\n selectLines(lines: string[]) {\n if (this.selectable === null || lines.length === 0) return;\n for (const line of lines) {\n const checkbox = this.element.querySelector(`[data-resource=\"${line}\"] input[data-selection]`);\n if (checkbox) checkbox.checked = true;\n }\n },\n /**\n * Create a widget for the field or a form if it's editable\n * @param field\n * @param resource\n */\n async createCellWidget(field: string, resource: Resource) {\n // if regular widget\n if (!this.element.hasAttribute('editable-' + field)) return this.createWidgetTemplate(field, resource, true);\n\n // if editable widget\n const attributes = {};\n const formWidgetAttributes = [ // attributes to give to the form widget\n 'range',\n 'enum',\n 'placeholder',\n 'required',\n 'autocomplete',\n 'option-label',\n 'option-value',\n 'min',\n 'max',\n 'pattern',\n 'title',\n 'widget'\n ];\n for (let attr of formWidgetAttributes) this.addToAttributes(`${attr}-${field}`, `${attr}-${field}`, attributes)\n\n const formAttributes = [ // attributes to give to the form\n 'class',\n 'submit-button',\n 'next'\n ];\n for (let attr of formAttributes) this.addToAttributes(`${attr}-${field}`, attr, attributes)\n\n return html`\n <solid-form\n data-src=\"${resource['@id']}\"\n fields=\"${field}\"\n partial\n autosave\n ...=${spread(attributes)}\n ></solid-form>\n `;\n },\n /**\n * Creates a header line for the table\n * @param fields\n */\n getHeader(fields: string[]) {\n let template = html`\n <tr>\n ${this.selectable !== null ? html`\n <th>\n <input type=\"checkbox\" @change=\"${this.selectAll.bind(this)}\" />\n </th>` : ''}\n ${fields.map((field: string) => html`\n <th>\n ${this.element.hasAttribute('label-'+field) ? this.element.getAttribute('label-'+field) : field}\n </th>`)}\n </tr>\n `\n return template;\n },\n /**\n * Returns template of a child element (resource)\n * @param resourceId\n * @param attributes\n */\n async getChildTemplate(resourceId: string, fields) {\n const resource = await store.getData(resourceId, this.context);\n let template = html`\n <tr data-resource=\"${resourceId}\">\n ${this.selectable !== null ? html`\n <td>\n <input type=\"checkbox\" data-selection />\n </td>` : ''}\n ${fields.map((field: string) => html`<td>${until(this.createCellWidget(field, resource))}</td>`)}\n </tr>\n `\n return template;\n },\n\n /**\n * Creates and render the content of a single element (resource)\n * @param parent\n */\n async appendSingleElt(parent: HTMLElement): Promise<void> {\n const fields = await this.getFields();\n\n const template = html`\n ${this.header !== null ? this.getHeader(fields) : ''}\n ${until(this.getChildTemplate(this.resource['@id'], fields))}\n `;\n render(template, parent);\n },\n\n /**\n * @override listMixin method to use litHtml\n *\n * Render resources from a container\n * @param resources\n * @param listPostProcessors\n * @param div\n * @param context\n */\n async renderDOM(\n resources: object[],\n listPostProcessors: Function[],\n div: HTMLElement,\n context: string,\n ) {\n const selectedLines = [...this.selectedLines]; // save selected lines before moving them\n const fields = await this.getFields();\n const childTemplates = await Promise.all(\n resources.map(r => r ? this.getChildTemplate(r['@id'], fields) : null)\n );\n const template = html`\n ${this.header !== null ? this.getHeader(fields) : ''}\n ${childTemplates}\n `; // create a child template for each resource\n render(template, div);\n\n // Re-select the right lines\n this.unselectAll();\n this.selectLines(selectedLines);\n\n const nextProcessor = listPostProcessors.shift();\n if (nextProcessor)\n await nextProcessor(\n resources,\n listPostProcessors,\n div,\n context\n );\n },\n};\n\nSib.register(SolidTable);\n"]}
|