@startinblox/core 0.17.21-beta.9 → 0.17.22
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 -23
- 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.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/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 -51
- 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 -242
- 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 -43
- 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/filter.js +0 -214
- package/dist/libs/filter.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 -863
- 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 -136
- 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 -36
- package/dist/new-widgets/templates/defaultTemplatesDirectory.js.map +0 -1
- package/dist/new-widgets/templates/displayTemplatesDirectory.js +0 -90
- 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/linkTextMixin.js +0 -14
- package/dist/new-widgets/templatesDependencies/linkTextMixin.js.map +0 -1
- package/dist/new-widgets/templatesDependencies/multipleFormMixin.js +0 -125
- 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,242 +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'; //@ts-ignore
|
|
35
|
-
|
|
36
|
-
import L from 'https://cdn.skypack.dev/leaflet'; // TODO : revert to "leaflet" when apps up to date
|
|
37
|
-
|
|
38
|
-
import 'https://cdn.skypack.dev/leaflet.markercluster'; // TODO : revert to "leaflet.markercluster" when apps up to date
|
|
39
|
-
|
|
40
|
-
import { html, render } from '../_snowpack/pkg/lit-html.js';
|
|
41
|
-
import { ifDefined } from '../_snowpack/pkg/lit-html/directives/if-defined.js';
|
|
42
|
-
export const SolidMap = {
|
|
43
|
-
name: 'solid-map',
|
|
44
|
-
use: [WidgetMixin, ListMixin, StoreMixin, GrouperMixin, CounterMixin, FilterMixin, FederationMixin, NextMixin],
|
|
45
|
-
attributes: {
|
|
46
|
-
clustering: {
|
|
47
|
-
type: Boolean,
|
|
48
|
-
default: null
|
|
49
|
-
}
|
|
50
|
-
},
|
|
51
|
-
initialState: {
|
|
52
|
-
markers: {
|
|
53
|
-
default: null
|
|
54
|
-
},
|
|
55
|
-
subscriptions: null,
|
|
56
|
-
resetPlanned: false,
|
|
57
|
-
hasBeenResetOnce: false
|
|
58
|
-
},
|
|
59
|
-
|
|
60
|
-
created() {
|
|
61
|
-
//@ts-ignore
|
|
62
|
-
import("../_snowpack/pkg/leaflet/dist/leaflet.css.proxy.js"); //@ts-ignore
|
|
63
|
-
|
|
64
|
-
import("../style/default-theme.css.proxy.js"); //@ts-ignore
|
|
65
|
-
|
|
66
|
-
import("../_snowpack/pkg/leaflet.markercluster/dist/MarkerCluster.css.proxy.js"); //@ts-ignore
|
|
67
|
-
|
|
68
|
-
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
|
|
69
|
-
|
|
70
|
-
document.body.addEventListener('navigate', () => setTimeout(() => this.isVisible && !this.hasBeenResetOnce && this.reset()));
|
|
71
|
-
this.markers = [];
|
|
72
|
-
this.subscriptions = new Map();
|
|
73
|
-
},
|
|
74
|
-
|
|
75
|
-
get isVisible() {
|
|
76
|
-
return this.element.offsetParent !== null;
|
|
77
|
-
},
|
|
78
|
-
|
|
79
|
-
attached() {
|
|
80
|
-
const id = uniqID();
|
|
81
|
-
const template = html(_templateObject(), id);
|
|
82
|
-
render(template, this.element);
|
|
83
|
-
const div = this.element.querySelector("#".concat(id));
|
|
84
|
-
this.map = L.map(div);
|
|
85
|
-
L.tileLayer('https://{s}.basemaps.cartocdn.com/rastertiles/voyager/{z}/{x}/{y}{r}.png').addTo(this.map);
|
|
86
|
-
|
|
87
|
-
if (this.clustering !== null) {
|
|
88
|
-
this.markersCluster = L.markerClusterGroup();
|
|
89
|
-
this.map.addLayer(this.markersCluster);
|
|
90
|
-
}
|
|
91
|
-
},
|
|
92
|
-
|
|
93
|
-
reset() {
|
|
94
|
-
if (this.isVisible) {
|
|
95
|
-
// reset only if visible
|
|
96
|
-
this.map.invalidateSize();
|
|
97
|
-
|
|
98
|
-
if (this.markers.length) {
|
|
99
|
-
this.map.fitBounds(L.featureGroup(this.markers).getBounds()); // Center map on markers if some available
|
|
100
|
-
} else {
|
|
101
|
-
this.map.fitWorld(); // ... or on the world if not
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
this.hasBeenResetOnce = true;
|
|
105
|
-
}
|
|
106
|
-
},
|
|
107
|
-
|
|
108
|
-
/**
|
|
109
|
-
* Execute a reset only if none is planned already
|
|
110
|
-
*/
|
|
111
|
-
planReset() {
|
|
112
|
-
if (!this.resetPlanned) {
|
|
113
|
-
this.resetPlanned = true;
|
|
114
|
-
setTimeout(() => {
|
|
115
|
-
this.reset();
|
|
116
|
-
this.resetPlanned = false;
|
|
117
|
-
});
|
|
118
|
-
}
|
|
119
|
-
},
|
|
120
|
-
|
|
121
|
-
dispatchSelect(event) {
|
|
122
|
-
const target = event.target;
|
|
123
|
-
const resource = target['options'].resource;
|
|
124
|
-
this.element.dispatchEvent(new CustomEvent('resourceSelect', {
|
|
125
|
-
detail: {
|
|
126
|
-
resource: resource
|
|
127
|
-
}
|
|
128
|
-
}));
|
|
129
|
-
this.goToNext(resource);
|
|
130
|
-
},
|
|
131
|
-
|
|
132
|
-
/**
|
|
133
|
-
* Override listMixin method: initialize a marker on the map
|
|
134
|
-
* @param resourceId: id of the resource to display
|
|
135
|
-
* @param groupClass: class of the group of markers
|
|
136
|
-
*/
|
|
137
|
-
async appendChildElt(resourceId, groupClass) {
|
|
138
|
-
const resource = await store.getData(resourceId, this.context);
|
|
139
|
-
|
|
140
|
-
if (!this.subscriptions.get(resourceId)) {
|
|
141
|
-
this.subscriptions.set(resourceId, PubSub.subscribe(resourceId, () => this.updateDOM()));
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
if (!resource) return;
|
|
145
|
-
const lat = await resource['lat'];
|
|
146
|
-
const lng = await resource['lng'];
|
|
147
|
-
|
|
148
|
-
if (lat && lng) {
|
|
149
|
-
const icon = L.divIcon({
|
|
150
|
-
// create the icon, doc here: https://leafletjs.com/reference-1.6.0.html#icon
|
|
151
|
-
className: 'sib-custom-marker ' + groupClass,
|
|
152
|
-
// default class used for styling
|
|
153
|
-
iconSize: [8, 8],
|
|
154
|
-
iconAnchor: [12, 34],
|
|
155
|
-
popupAnchor: [0, -34]
|
|
156
|
-
}); // create a marker, doc here: https://leafletjs.com/reference-1.6.0.html#marker
|
|
157
|
-
|
|
158
|
-
const marker = L.marker([lat.toString(), lng.toString()], {
|
|
159
|
-
resource,
|
|
160
|
-
icon
|
|
161
|
-
});
|
|
162
|
-
if (this.clustering === null) marker.addTo(this.map);else this.markersCluster.addLayer(marker);
|
|
163
|
-
marker.on('click', this.dispatchSelect.bind(this));
|
|
164
|
-
|
|
165
|
-
if (this.fields !== null) {
|
|
166
|
-
// show popups only if fields attribute
|
|
167
|
-
marker.bindPopup(() => this.getPopupContent(resourceId), {
|
|
168
|
-
minWidth: 150
|
|
169
|
-
}); // re-generate popup solid-display
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
this.markers.push(marker);
|
|
173
|
-
}
|
|
174
|
-
},
|
|
175
|
-
|
|
176
|
-
/**
|
|
177
|
-
* Generate the solid-display of the popup
|
|
178
|
-
* @param resourceId: id of the popup clicked
|
|
179
|
-
*/
|
|
180
|
-
getPopupContent(resourceId) {
|
|
181
|
-
const attributes = {};
|
|
182
|
-
|
|
183
|
-
for (let attr of this.element.attributes) {
|
|
184
|
-
//copy widget and value attributes
|
|
185
|
-
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;
|
|
186
|
-
if (attr.name.startsWith('child-')) attributes[attr.name.replace(/^child-/, '')] = attr.value;
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
const div = document.createElement('div');
|
|
190
|
-
const template = html(_templateObject2(), ifDefined(this.fields), resourceId, spread(attributes));
|
|
191
|
-
render(template, div);
|
|
192
|
-
return div.querySelector('solid-display');
|
|
193
|
-
},
|
|
194
|
-
|
|
195
|
-
/**
|
|
196
|
-
* Override widgetMixin method: empty the map
|
|
197
|
-
*/
|
|
198
|
-
empty() {
|
|
199
|
-
if (!this.map) return;
|
|
200
|
-
if (this.markersCluster) this.map.removeLayer(this.markersCluster);
|
|
201
|
-
|
|
202
|
-
for (let marker of this.markers) this.map.removeLayer(marker);
|
|
203
|
-
|
|
204
|
-
if (this.clustering !== null) {
|
|
205
|
-
this.markersCluster = L.markerClusterGroup();
|
|
206
|
-
this.map.addLayer(this.markersCluster);
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
this.markers = [];
|
|
210
|
-
},
|
|
211
|
-
|
|
212
|
-
/**
|
|
213
|
-
* Override groupMixin method
|
|
214
|
-
* @param groupName: value of the group
|
|
215
|
-
*/
|
|
216
|
-
renderGroup(groupName) {
|
|
217
|
-
const sanitizedGroupName = encodeURIComponent(groupName.toLowerCase()).replace(/%[0-9A-F]{2}/gi, '');
|
|
218
|
-
const div = document.createElement('div'); // used to pass group info to renderDOM
|
|
219
|
-
|
|
220
|
-
div.dataset.groupClass = 'group-' + sanitizedGroupName;
|
|
221
|
-
return div;
|
|
222
|
-
},
|
|
223
|
-
|
|
224
|
-
/**
|
|
225
|
-
* Override listMixin method: display all the resources
|
|
226
|
-
* @param resources
|
|
227
|
-
* @param listPostProcessors
|
|
228
|
-
* @param div
|
|
229
|
-
* @param context
|
|
230
|
-
*/
|
|
231
|
-
async renderDOM(resources, listPostProcessors, div, context) {
|
|
232
|
-
const groupClass = div.dataset.groupClass || ''; // get the group class from the useless div element
|
|
233
|
-
|
|
234
|
-
await Promise.all(resources.map(resource => this.appendChildElt(resource['@id'], groupClass)));
|
|
235
|
-
this.planReset();
|
|
236
|
-
const nextProcessor = listPostProcessors.shift();
|
|
237
|
-
if (nextProcessor) await nextProcessor(resources, listPostProcessors, div, context);
|
|
238
|
-
}
|
|
239
|
-
|
|
240
|
-
};
|
|
241
|
-
Sib.register(SolidMap);
|
|
242
|
-
//# 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\n//@ts-ignore\nimport L, { MarkerOptions } from 'https://cdn.skypack.dev/leaflet'; // TODO : revert to \"leaflet\" when apps up to date\nimport 'https://cdn.skypack.dev/leaflet.markercluster'; // TODO : revert to \"leaflet.markercluster\" when apps up to date\n\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":"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","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"]}
|