@startinblox/core 0.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (157) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +182 -0
  3. package/dist/_snowpack/pkg/autolinker.js +4429 -0
  4. package/dist/_snowpack/pkg/autolinker.js.map +1 -0
  5. package/dist/_snowpack/pkg/common/_baseUnary-c1edb653.js +353 -0
  6. package/dist/_snowpack/pkg/common/_baseUnary-c1edb653.js.map +1 -0
  7. package/dist/_snowpack/pkg/common/_commonjsHelpers-37fa8da4.js +26 -0
  8. package/dist/_snowpack/pkg/common/_commonjsHelpers-37fa8da4.js.map +1 -0
  9. package/dist/_snowpack/pkg/common/decode-26fbf385.js +185 -0
  10. package/dist/_snowpack/pkg/common/decode-26fbf385.js.map +1 -0
  11. package/dist/_snowpack/pkg/common/lit-html-3647afce.js +1104 -0
  12. package/dist/_snowpack/pkg/common/lit-html-3647afce.js.map +1 -0
  13. package/dist/_snowpack/pkg/delta-markdown-for-quill.js +26198 -0
  14. package/dist/_snowpack/pkg/delta-markdown-for-quill.js.map +1 -0
  15. package/dist/_snowpack/pkg/dialog-polyfill.js +827 -0
  16. package/dist/_snowpack/pkg/dialog-polyfill.js.map +1 -0
  17. package/dist/_snowpack/pkg/fusejs.js +1593 -0
  18. package/dist/_snowpack/pkg/fusejs.js.map +1 -0
  19. package/dist/_snowpack/pkg/import-map.json +24 -0
  20. package/dist/_snowpack/pkg/jsonld-context-parser.js +836 -0
  21. package/dist/_snowpack/pkg/jsonld-context-parser.js.map +1 -0
  22. package/dist/_snowpack/pkg/leaflet/dist/leaflet.css +640 -0
  23. package/dist/_snowpack/pkg/leaflet/dist/leaflet.css.proxy.js +10 -0
  24. package/dist/_snowpack/pkg/leaflet.markercluster/dist/MarkerCluster.Default.css +60 -0
  25. package/dist/_snowpack/pkg/leaflet.markercluster/dist/MarkerCluster.Default.css.proxy.js +10 -0
  26. package/dist/_snowpack/pkg/leaflet.markercluster/dist/MarkerCluster.css +14 -0
  27. package/dist/_snowpack/pkg/leaflet.markercluster/dist/MarkerCluster.css.proxy.js +10 -0
  28. package/dist/_snowpack/pkg/lit-html/directives/if-defined.js +39 -0
  29. package/dist/_snowpack/pkg/lit-html/directives/if-defined.js.map +1 -0
  30. package/dist/_snowpack/pkg/lit-html/directives/unsafe-html.js +48 -0
  31. package/dist/_snowpack/pkg/lit-html/directives/unsafe-html.js.map +1 -0
  32. package/dist/_snowpack/pkg/lit-html/directives/until.js +87 -0
  33. package/dist/_snowpack/pkg/lit-html/directives/until.js.map +1 -0
  34. package/dist/_snowpack/pkg/lit-html.js +94 -0
  35. package/dist/_snowpack/pkg/lit-html.js.map +1 -0
  36. package/dist/_snowpack/pkg/markdown-it-link-attributes.js +68 -0
  37. package/dist/_snowpack/pkg/markdown-it-link-attributes.js.map +1 -0
  38. package/dist/_snowpack/pkg/markdown-it.js +11307 -0
  39. package/dist/_snowpack/pkg/markdown-it.js.map +1 -0
  40. package/dist/_snowpack/pkg/quill/dist/quill.snow.css +945 -0
  41. package/dist/_snowpack/pkg/quill/dist/quill.snow.css.proxy.js +10 -0
  42. package/dist/_snowpack/pkg/quill-delta-to-markdown.js +971 -0
  43. package/dist/_snowpack/pkg/quill-delta-to-markdown.js.map +1 -0
  44. package/dist/_snowpack/pkg/quill.js +14442 -0
  45. package/dist/_snowpack/pkg/quill.js.map +1 -0
  46. package/dist/_snowpack/pkg/slim-select.js +714 -0
  47. package/dist/_snowpack/pkg/slim-select.js.map +1 -0
  48. package/dist/_snowpack/pkg/tui-calendar/dist/tui-calendar.css +1149 -0
  49. package/dist/_snowpack/pkg/tui-calendar/dist/tui-calendar.css.proxy.js +10 -0
  50. package/dist/_snowpack/pkg/tui-calendar.js +46507 -0
  51. package/dist/_snowpack/pkg/tui-calendar.js.map +1 -0
  52. package/dist/components/solid-ac-checker.js +45 -0
  53. package/dist/components/solid-calendar.js +66 -0
  54. package/dist/components/solid-delete.js +96 -0
  55. package/dist/components/solid-display.js +150 -0
  56. package/dist/components/solid-form-search.js +177 -0
  57. package/dist/components/solid-form.js +259 -0
  58. package/dist/components/solid-lang.js +35 -0
  59. package/dist/components/solid-map.js +204 -0
  60. package/dist/components/solid-table.js +181 -0
  61. package/dist/components/solid-widget.js +72 -0
  62. package/dist/import.css +4 -0
  63. package/dist/index.js +49 -0
  64. package/dist/libs/Component.js +13 -0
  65. package/dist/libs/ComponentFactory.js +168 -0
  66. package/dist/libs/Compositor.js +96 -0
  67. package/dist/libs/Sib.js +44 -0
  68. package/dist/libs/filter.js +184 -0
  69. package/dist/libs/helpers.js +194 -0
  70. package/dist/libs/interfaces.js +6 -0
  71. package/dist/libs/lit-helpers.js +142 -0
  72. package/dist/libs/polyfills.js +37 -0
  73. package/dist/libs/store/server-pagination.js +22 -0
  74. package/dist/libs/store/server-search.js +35 -0
  75. package/dist/libs/store/store.js +814 -0
  76. package/dist/locales/en.json +10 -0
  77. package/dist/locales/en.json.proxy.js +2 -0
  78. package/dist/locales/fr.json +10 -0
  79. package/dist/locales/fr.json.proxy.js +2 -0
  80. package/dist/mixins/attributeBinderMixin.js +116 -0
  81. package/dist/mixins/contextMixin.js +26 -0
  82. package/dist/mixins/counterMixin.js +54 -0
  83. package/dist/mixins/federationMixin.js +51 -0
  84. package/dist/mixins/filterMixin.js +155 -0
  85. package/dist/mixins/grouperMixin.js +73 -0
  86. package/dist/mixins/highlighterMixin.js +36 -0
  87. package/dist/mixins/interfaces.js +6 -0
  88. package/dist/mixins/listMixin.js +105 -0
  89. package/dist/mixins/nextMixin.js +23 -0
  90. package/dist/mixins/paginateMixin.js +97 -0
  91. package/dist/mixins/requiredMixin.js +26 -0
  92. package/dist/mixins/serverPaginationMixin.js +122 -0
  93. package/dist/mixins/sorterMixin.js +131 -0
  94. package/dist/mixins/storeMixin.js +109 -0
  95. package/dist/mixins/translationMixin.js +58 -0
  96. package/dist/mixins/validationMixin.js +95 -0
  97. package/dist/mixins/widgetMixin.js +351 -0
  98. package/dist/new-widgets/attributeMixins/actionMixin.js +13 -0
  99. package/dist/new-widgets/attributeMixins/blankMixin.js +7 -0
  100. package/dist/new-widgets/attributeMixins/booleanMixin.js +7 -0
  101. package/dist/new-widgets/attributeMixins/index.js +19 -0
  102. package/dist/new-widgets/attributeMixins/mailtoMixin.js +7 -0
  103. package/dist/new-widgets/attributeMixins/multipleMixin.js +27 -0
  104. package/dist/new-widgets/attributeMixins/numberMixin.js +7 -0
  105. package/dist/new-widgets/attributeMixins/placeholderMixin.js +16 -0
  106. package/dist/new-widgets/attributeMixins/telMixin.js +7 -0
  107. package/dist/new-widgets/baseWidgetMixin.js +109 -0
  108. package/dist/new-widgets/callbackMixins/autocompletionMixin.js +96 -0
  109. package/dist/new-widgets/callbackMixins/index.js +7 -0
  110. package/dist/new-widgets/callbackMixins/richtextMixin.js +37 -0
  111. package/dist/new-widgets/callbackMixins/slimselect.css +2 -0
  112. package/dist/new-widgets/callbackMixins/slimselect.css.proxy.js +10 -0
  113. package/dist/new-widgets/interfaces.js +1 -0
  114. package/dist/new-widgets/new-widget-factory.js +91 -0
  115. package/dist/new-widgets/templateAdditionMixins/addableMixin.js +26 -0
  116. package/dist/new-widgets/templateAdditionMixins/index.js +13 -0
  117. package/dist/new-widgets/templateAdditionMixins/labelLastMixin.js +16 -0
  118. package/dist/new-widgets/templateAdditionMixins/labelMixin.js +18 -0
  119. package/dist/new-widgets/templates/defaultTemplatesDirectory.js +29 -0
  120. package/dist/new-widgets/templates/displayTemplatesDirectory.js +54 -0
  121. package/dist/new-widgets/templates/formTemplatesDirectory.js +432 -0
  122. package/dist/new-widgets/templates/groupTemplatesDirectory.js +11 -0
  123. package/dist/new-widgets/templates/index.js +6 -0
  124. package/dist/new-widgets/templates/setTemplatesDirectory.js +16 -0
  125. package/dist/new-widgets/templatesDependencies/altMixin.js +12 -0
  126. package/dist/new-widgets/templatesDependencies/editableMixin.js +60 -0
  127. package/dist/new-widgets/templatesDependencies/filterRangeFormMixin.js +34 -0
  128. package/dist/new-widgets/templatesDependencies/formCheckboxMixin.js +10 -0
  129. package/dist/new-widgets/templatesDependencies/formCheckboxesMixin.js +41 -0
  130. package/dist/new-widgets/templatesDependencies/formDropdownMixin.js +56 -0
  131. package/dist/new-widgets/templatesDependencies/formFileMixin.js +82 -0
  132. package/dist/new-widgets/templatesDependencies/formLengthMixin.js +18 -0
  133. package/dist/new-widgets/templatesDependencies/formMinMaxMixin.js +18 -0
  134. package/dist/new-widgets/templatesDependencies/formMixin.js +56 -0
  135. package/dist/new-widgets/templatesDependencies/formNumberMixin.js +10 -0
  136. package/dist/new-widgets/templatesDependencies/formRadioMixin.js +12 -0
  137. package/dist/new-widgets/templatesDependencies/formStepMixin.js +12 -0
  138. package/dist/new-widgets/templatesDependencies/linkTextMixin.js +13 -0
  139. package/dist/new-widgets/templatesDependencies/multipleFormMixin.js +112 -0
  140. package/dist/new-widgets/templatesDependencies/multipleselectFormMixin.js +65 -0
  141. package/dist/new-widgets/templatesDependencies/patternMixin.js +18 -0
  142. package/dist/new-widgets/templatesDependencies/rangeMixin.js +100 -0
  143. package/dist/new-widgets/templatesDependencies/setMixin.js +9 -0
  144. package/dist/new-widgets/templatesDependencies/valueRichtextMixin.js +9 -0
  145. package/dist/new-widgets/valueTransformationMixins/autolinkMixin.js +14 -0
  146. package/dist/new-widgets/valueTransformationMixins/dateMixin.js +29 -0
  147. package/dist/new-widgets/valueTransformationMixins/dateTimeMixin.js +12 -0
  148. package/dist/new-widgets/valueTransformationMixins/index.js +15 -0
  149. package/dist/new-widgets/valueTransformationMixins/markdownMixin.js +30 -0
  150. package/dist/new-widgets/valueTransformationMixins/multilineMixin.js +13 -0
  151. package/dist/new-widgets/valueTransformationMixins/oembedMixin.js +21 -0
  152. package/dist/solid-template-element.js +144 -0
  153. package/dist/style/default-theme.css +24 -0
  154. package/dist/style/default-theme.css.proxy.js +10 -0
  155. package/dist/widgets/baseWidget.js +268 -0
  156. package/dist/widgets/widget-factory.js +22 -0
  157. package/package.json +117 -0
@@ -0,0 +1,194 @@
1
+ import Fuse from "../_snowpack/pkg/fusejs.js";
2
+ function uniqID() {
3
+ return '_' + (Math.random() * Math.pow(36, 20)).toString(36).slice(0, 10);
4
+ }
5
+ function stringToDom(html) {
6
+ const template = document.createElement('template');
7
+ template.innerHTML = html;
8
+ return template.content;
9
+ }
10
+ async function evalTemplateString(str) {
11
+ let variables = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
12
+ const keys = Object.keys(variables);
13
+ const values = keys.map(key => variables[key]);
14
+ try {
15
+ const AsyncFunction = Object.getPrototypeOf(async function () {}).constructor;
16
+ const func = AsyncFunction.call(null, ...keys, 'return `' + str + '`');
17
+ return await func(...values);
18
+ } catch (e) {
19
+ console.log(e);
20
+ throw new SyntaxError('`' + str + '`');
21
+ }
22
+ }
23
+ function importCSS() {
24
+ const linksElements = [];
25
+ for (var _len = arguments.length, stylesheets = new Array(_len), _key = 0; _key < _len; _key++) {
26
+ stylesheets[_key] = arguments[_key];
27
+ }
28
+ for (let url of stylesheets) {
29
+ url = relativeSource(url);
30
+ let link = Array.from(document.head.querySelectorAll('link')).find(link => link.href === url);
31
+ if (link) return link;
32
+ link = document.createElement('link');
33
+ link.rel = 'stylesheet';
34
+ link.href = url;
35
+ document.head.appendChild(link);
36
+ linksElements.push(link);
37
+ }
38
+ ;
39
+ return linksElements;
40
+ }
41
+ function importJS() {
42
+ for (var _len2 = arguments.length, plugins = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
43
+ plugins[_key2] = arguments[_key2];
44
+ }
45
+ return plugins.map(url => {
46
+ url = new URL(url, document.baseURI).href;
47
+ let script = Array.from(document.querySelectorAll('script')).find(script => script.src === url);
48
+ if (script) return script;
49
+ script = document.createElement('script');
50
+ script.src = url;
51
+ document.head.appendChild(script);
52
+ return script;
53
+ });
54
+ }
55
+ function relativeSource(source) {
56
+ if (!source.match(/^\..?\//)) return new URL(source, document.baseURI).href;
57
+ const e = new Error();
58
+ if (!e.stack) return source;
59
+ const f2 = e.stack.split('\n').filter(l => l.includes(':'))[2];
60
+ let line = f2.match(/[a-z]+:.*$/);
61
+ if (!line) return source;
62
+ const calledFile = line[0].replace(/(\:[0-9]+){2}\)?$/, '');
63
+ source = new URL(source, calledFile).href;
64
+ return source;
65
+ }
66
+ function loadScript(source) {
67
+ source = relativeSource(source);
68
+ return new Promise(resolve => {
69
+ var script = document.createElement('script');
70
+ var head = document.querySelector('head');
71
+ script.async = true;
72
+ script.onload = () => setTimeout(resolve, 0);
73
+ script.src = source;
74
+ if (head) head.appendChild(script);
75
+ });
76
+ }
77
+ function domIsReady() {
78
+ return new Promise(function (resolve) {
79
+ if (document.readyState === 'complete') {
80
+ resolve();
81
+ } else {
82
+ document.addEventListener('DOMContentLoaded', () => resolve());
83
+ }
84
+ });
85
+ }
86
+ function setDeepProperty(obj, path, value) {
87
+ const name = path.shift();
88
+ if (name) {
89
+ if (!(name in obj)) obj[name] = {};
90
+ if (path.length) setDeepProperty(obj[name], path, value);else obj[name] = value;
91
+ }
92
+ }
93
+ function parseFieldsString(fields) {
94
+ let fieldsArray;
95
+
96
+ // remove all sets from fields
97
+ while (fields.indexOf('(') > 0) {
98
+ let firstBracket = fields.indexOf('(');
99
+ let noset = fields.substring(firstBracket, findClosingBracketMatchIndex(fields, firstBracket) + 1);
100
+ fields = fields.replace(noset, '');
101
+ }
102
+ const re = /((^\s*|,)\s*)(("(\\"|[^"])*")|('(\\'|[^'])*')|[^,]*)/gm; // match , not inside quotes
103
+ fieldsArray = fields.match(re) || []; // separate fields
104
+ if (!fieldsArray) return [];
105
+ return fieldsArray.map(a => a.replace(/^[\s,]+/, '')); // remove commas and spaces
106
+ }
107
+
108
+ function findClosingBracketMatchIndex(str, pos) {
109
+ if (str[pos] != '(') throw new Error("No '(' at index " + pos);
110
+ let depth = 1;
111
+ for (let i = pos + 1; i < str.length; i++) {
112
+ switch (str[i]) {
113
+ case '(':
114
+ depth++;
115
+ break;
116
+ case ')':
117
+ if (--depth == 0) return i;
118
+ break;
119
+ }
120
+ }
121
+ return -1;
122
+ }
123
+ function defineComponent(tagName, componentClass) {
124
+ if (!customElements.get(tagName)) {
125
+ customElements.define(tagName, componentClass);
126
+ } else {
127
+ console.warn(`Warning: the component "${tagName}" has already been loaded in another version of sib-core.`);
128
+ }
129
+ }
130
+ function fuzzyCompare(subject, search) {
131
+ const fuse = new Fuse([subject], {
132
+ shouldSort: false,
133
+ threshold: 0.37
134
+ }).search(search);
135
+ return fuse.length > 0;
136
+ }
137
+ const compare = {
138
+ string(subject, query) {
139
+ // Exact match on empty string between query and subject
140
+ if (query === '' && subject.toString() === '') return false;
141
+ // Else if query is empty and subject is something else, return true
142
+ else if (query === '') return true;
143
+ if (subject.toString().toLowerCase().includes(String(query).toLowerCase())) return true;
144
+ return fuzzyCompare(subject, query);
145
+ },
146
+ boolean(subject, query) {
147
+ if (!query) return true;
148
+ return subject;
149
+ },
150
+ number(subject, query) {
151
+ return subject === query;
152
+ },
153
+ list(subject, list) {
154
+ return list.includes(subject);
155
+ },
156
+ range(subject, range) {
157
+ return (range[0] == null || range[0] === '' || subject >= range[0]) && (range[1] == null || range[1] === '' || subject <= range[1]);
158
+ },
159
+ resource(subject, query) {
160
+ // dropdown default ' - ' option return an empty string
161
+ if (query === '') return true;
162
+ if (!query['@id']) return false;
163
+ const ret = subject['@id'] === query['@id'];
164
+ return ret;
165
+ }
166
+ };
167
+ function transformArrayToContainer(resource) {
168
+ const newValue = {
169
+ ...resource
170
+ };
171
+ for (let predicate of Object.keys(newValue)) {
172
+ // iterate over all properties
173
+ const predicateValue = newValue[predicate];
174
+ if (!predicateValue || typeof predicateValue !== 'object') continue; // undefined or literal, do nothing
175
+
176
+ // check all keys of nested resource
177
+ if (!Array.isArray(predicateValue) && predicateValue['@id']) {
178
+ newValue[predicate] = transformArrayToContainer(resource[predicate]);
179
+ }
180
+
181
+ // for arrays
182
+ if (Array.isArray(predicateValue)) {
183
+ newValue[predicate] = {
184
+ 'ldp:contains': [...predicateValue]
185
+ }; // transform to container
186
+ newValue[predicate]['ldp:contains'].forEach((childPredicate, index) => {
187
+ // and check all nested resources
188
+ newValue[predicate]['ldp:contains'][index] = transformArrayToContainer(childPredicate);
189
+ });
190
+ }
191
+ }
192
+ return newValue;
193
+ }
194
+ export { uniqID, stringToDom, evalTemplateString, importCSS, importJS, loadScript, domIsReady, setDeepProperty, parseFieldsString, findClosingBracketMatchIndex, defineComponent, fuzzyCompare, compare, transformArrayToContainer };
@@ -0,0 +1,6 @@
1
+ ;
2
+ ;
3
+ ;
4
+ ;
5
+ ;
6
+ export {};
@@ -0,0 +1,142 @@
1
+ /**
2
+ * Spread function from open-wc/lit-helpers
3
+ * More informations here: https://open-wc.org/developing/lit-helpers.html
4
+ */
5
+ import { html, directive, noChange } from '../_snowpack/pkg/lit-html.js';
6
+ const prevCache = new WeakMap();
7
+ export const spread = directive(spreadData => part => {
8
+ const prevData = prevCache.get(part);
9
+ if (prevData === spreadData) {
10
+ return;
11
+ }
12
+ prevCache.set(part, spreadData);
13
+ if (spreadData) {
14
+ for (const key in spreadData) {
15
+ const value = spreadData[key];
16
+ if (value === noChange) continue;
17
+ const prefix = key[0];
18
+ const {
19
+ element
20
+ } = part.committer;
21
+ if (prefix === '@') {
22
+ const prevHandler = prevData && prevData[key];
23
+ if (!prevHandler || prevHandler !== value) {
24
+ const name = key.slice(1);
25
+ if (prevHandler) element.removeEventListener(name, prevHandler);
26
+ element.addEventListener(name, value);
27
+ }
28
+ continue;
29
+ }
30
+ if (prefix === '.') {
31
+ if (!prevData || prevData[key] !== value) {
32
+ element[key.slice(1)] = value;
33
+ }
34
+ continue;
35
+ }
36
+ if (prefix === '?') {
37
+ if (!prevData || prevData[key] !== value) {
38
+ const name = key.slice(1);
39
+ if (value) {
40
+ element.setAttribute(name, '');
41
+ } else {
42
+ element.removeAttribute(name);
43
+ }
44
+ }
45
+ continue;
46
+ }
47
+ if (!prevData || prevData[key] !== value) {
48
+ if (value != null) {
49
+ element.setAttribute(key, String(value));
50
+ } else {
51
+ element.removeAttribute(key);
52
+ }
53
+ }
54
+ }
55
+ }
56
+ if (prevData) {
57
+ for (const key in prevData) {
58
+ if (!spreadData || !(key in spreadData)) {
59
+ const prefix = key[0];
60
+ const {
61
+ element
62
+ } = part.committer;
63
+ if (prefix === '@') {
64
+ element.removeEventListener(key.slice(1), prevData[key]);
65
+ continue;
66
+ }
67
+ if (prefix === '.') {
68
+ element[key.slice(1)] = undefined;
69
+ continue;
70
+ }
71
+ if (prefix === '?') {
72
+ element.removeAttribute(key.slice(1));
73
+ continue;
74
+ }
75
+ element.removeAttribute(key);
76
+ }
77
+ }
78
+ }
79
+ });
80
+ function dropIndices(arr, needlessValues) {
81
+ const newArr = [];
82
+ let j = 0;
83
+ for (let i = 0, n = arr.length; i < n; ++i) {
84
+ if (needlessValues[j].index === i) {
85
+ ++j;
86
+ } else {
87
+ newArr.push(arr[i]);
88
+ }
89
+ }
90
+ return newArr;
91
+ }
92
+ const templateStringsCache = new WeakMap();
93
+
94
+ // Convert dynamic tags to template strings
95
+ // example: <${'div'}>${'this is example'}</${'div'}> => <div>${'this is example'}</div>
96
+ export function preHTML(strings) {
97
+ // check cache !important return equal link at first argument
98
+ let cachedStrings = templateStringsCache.get(strings);
99
+ for (var _len = arguments.length, values = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
100
+ values[_key - 1] = arguments[_key];
101
+ }
102
+ if (cachedStrings) {
103
+ for (let i = 0, n = cachedStrings.length; i < n; ++i) {
104
+ const needlessValues = cachedStrings[i].needlessValues;
105
+ let isSame = true;
106
+ for (let ii = 0, nn = needlessValues.length; ii < nn; ++ii) {
107
+ if (values[needlessValues[ii].index] !== needlessValues[ii].value) {
108
+ isSame = false;
109
+ break;
110
+ }
111
+ }
112
+ if (isSame) {
113
+ return html(cachedStrings[i].strings, ...dropIndices(values, needlessValues));
114
+ }
115
+ }
116
+ }
117
+ const needlessValues = [];
118
+ const newStrings = [];
119
+ let str;
120
+ for (let i = 0, n = strings.length; i < n; ++i) {
121
+ str = strings[i];
122
+ while (str[str.length - 1] === '<' // open tag
123
+ || str[str.length - 2] === '<' && str[str.length - 1] === '/' // close tag
124
+ ) {
125
+ needlessValues.push({
126
+ value: values[i],
127
+ index: i
128
+ });
129
+ str += values[i] + strings[++i];
130
+ }
131
+ newStrings.push(str);
132
+ }
133
+ if (!cachedStrings) {
134
+ cachedStrings = [];
135
+ templateStringsCache.set(strings, cachedStrings);
136
+ }
137
+ cachedStrings.push({
138
+ strings: newStrings,
139
+ needlessValues
140
+ });
141
+ return html(newStrings, ...dropIndices(values, needlessValues));
142
+ }
@@ -0,0 +1,37 @@
1
+ // Array.prototype.flat
2
+ if (!('flat' in Array.prototype)) {
3
+ Object.defineProperty(Array.prototype, 'flat', {
4
+ configurable: true,
5
+ value: function flat() {
6
+ let depth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
7
+ depth = isNaN(depth) ? 1 : Number(depth);
8
+ if (depth === 0) return Array.prototype.slice.call(this);
9
+ return Array.prototype.reduce.call(this, function (acc, cur) {
10
+ if (Array.isArray(cur)) {
11
+ acc.push.apply(acc, flat.call(cur, depth - 1));
12
+ } else {
13
+ acc.push(cur);
14
+ }
15
+ return acc;
16
+ }, []);
17
+ },
18
+ writable: true
19
+ });
20
+ }
21
+
22
+ // Element.prototype.toggleAttribute
23
+ if (!Element.prototype.toggleAttribute) {
24
+ Element.prototype.toggleAttribute = function (name) {
25
+ let force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;
26
+ if (force !== undefined) force = !!force;
27
+ if (this.hasAttribute(name)) {
28
+ if (force) return true;
29
+ this.removeAttribute(name);
30
+ return false;
31
+ }
32
+ if (force === false) return false;
33
+ this.setAttribute(name, '');
34
+ return true;
35
+ };
36
+ }
37
+ export {};
@@ -0,0 +1,22 @@
1
+ export function formatAttributesToServerPaginationOptions(elementAttributes) {
2
+ const attributes = new Map(Array.from(elementAttributes).map(_ref => {
3
+ let {
4
+ name,
5
+ value
6
+ } = _ref;
7
+ return [name, value];
8
+ }));
9
+ const limit = attributes.get('limit');
10
+ const offset = attributes.get('offset');
11
+ if (!offset || !limit) return;
12
+ return {
13
+ limit: limit,
14
+ offset: offset
15
+ };
16
+ }
17
+ export function appendServerPaginationToIri(iri, options) {
18
+ const first = iri.includes('?') ? '&' : '?';
19
+ const limit = options.limit;
20
+ const offset = options.offset;
21
+ return `${iri}${first}limit=${limit}&offset=${offset}`;
22
+ }
@@ -0,0 +1,35 @@
1
+ export function formatAttributesToServerSearchOptions(elementAttributes) {
2
+ const attributes = new Map(Array.from(elementAttributes).map(_ref => {
3
+ let {
4
+ name,
5
+ value
6
+ } = _ref;
7
+ return [name, value];
8
+ }));
9
+ const fields = attributes.get('server-search-fields')?.split(",").map(field => field.trim());
10
+ const value = attributes.get('server-search-value')?.trim();
11
+ const method = attributes.get('server-search-method')?.trim();
12
+ return {
13
+ fields: fields && fields.length > 0 ? fields : undefined,
14
+ value: value ? value : undefined,
15
+ method: method ? method : undefined
16
+ };
17
+ }
18
+ export function mergeServerSearchOptions(attributesOptions, dynamicOptions) {
19
+ const fields = attributesOptions?.fields ?? dynamicOptions?.fields;
20
+ const value = dynamicOptions?.value ?? attributesOptions?.value;
21
+ const method = attributesOptions?.method ?? dynamicOptions?.method;
22
+ if (!fields || fields.length === 0 || !value) return;
23
+ return {
24
+ fields,
25
+ value,
26
+ method
27
+ };
28
+ }
29
+ export function appendServerSearchToIri(iri, options) {
30
+ const first = iri.includes('?') ? '&' : '?';
31
+ const fields = options.fields.map(encodeURIComponent).join(',');
32
+ const value = encodeURIComponent(options.value);
33
+ const method = encodeURIComponent(options.method ?? 'ibasic');
34
+ return `${iri}${first}search-fields=${fields}&search-terms=${value}&search-method=${method}`;
35
+ }