sdc_client 0.158.9 → 0.159.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 (57) hide show
  1. package/CHANGELOG.md +53 -0
  2. package/LICENSE +21 -0
  3. package/dist/index.js +23 -13
  4. package/dist/ugly.index.js +2 -1
  5. package/dist/ugly.index.js.LICENSE.txt +1 -8
  6. package/gulp/gulp.jsx +11 -36
  7. package/package.json +22 -11
  8. package/src/index.js +27 -7
  9. package/src/simpleDomControl/AbstractSDC.js +15 -11
  10. package/src/simpleDomControl/sdc_controller.js +3 -3
  11. package/src/simpleDomControl/sdc_dom_events.js +5 -10
  12. package/src/simpleDomControl/sdc_events.js +3 -3
  13. package/src/simpleDomControl/sdc_main.js +34 -13
  14. package/src/simpleDomControl/sdc_model.js +209 -84
  15. package/src/simpleDomControl/sdc_params.js +0 -3
  16. package/src/simpleDomControl/sdc_server_call.js +21 -4
  17. package/src/simpleDomControl/sdc_test_utils.js +0 -1
  18. package/src/simpleDomControl/sdc_utils.js +59 -7
  19. package/src/simpleDomControl/sdc_view.js +16 -1
  20. package/.github/workflows/node.js.yml +0 -38
  21. package/.idea/inspectionProfiles/Project_Default.xml +0 -17
  22. package/.idea/jsLibraryMappings.xml +0 -6
  23. package/.idea/misc.xml +0 -6
  24. package/.idea/modules.xml +0 -8
  25. package/.idea/vcs.xml +0 -6
  26. package/.idea/workspace.xml +0 -403
  27. package/.readthedocs.yaml +0 -13
  28. package/.tool-versions +0 -1
  29. package/SimpleDomControlClient.iml +0 -12
  30. package/docs/api-reference.rst +0 -225
  31. package/docs/conf.py +0 -11
  32. package/docs/controllers.rst +0 -228
  33. package/docs/events-and-dom.rst +0 -120
  34. package/docs/getting-started.rst +0 -143
  35. package/docs/index.rst +0 -22
  36. package/docs/models.rst +0 -351
  37. package/docs/overview.rst +0 -66
  38. package/docs/requirements.txt +0 -1
  39. package/eslint.config.js +0 -43
  40. package/gulpfile.cjs +0 -30
  41. package/jest.config.mjs +0 -197
  42. package/test/controller.test.js +0 -93
  43. package/test/dist.test.js +0 -127
  44. package/test/model.test.js +0 -330
  45. package/test/models/Author.js +0 -145
  46. package/test/models/Book.js +0 -112
  47. package/test/models/BookContent.js +0 -114
  48. package/test/models/SdcUser.js +0 -75
  49. package/test/models/src.js +0 -8
  50. package/test/sdc_model_dates.ai.test.js +0 -57
  51. package/test/sdc_server_call.ai.test.js +0 -267
  52. package/test/utils.js +0 -88
  53. package/test/view.test.js +0 -159
  54. package/test-setup.js +0 -4
  55. package/webpack.config/webpack.default.config.cjs +0 -14
  56. package/webpack.config/webpack.development.config.cjs +0 -14
  57. package/webpack.config/webpack.production.config.cjs +0 -11
@@ -1,4 +1,4 @@
1
- import {SdcModel, SdcQuerySet} from "../index.js";
1
+ import { SdcModel, SdcQuerySet } from "../index.js";
2
2
 
3
3
  /**
4
4
  * Reference to the HTML body.
@@ -193,7 +193,7 @@ function progressHandlingFunction(e) {
193
193
 
194
194
  $progressContainer
195
195
  .find(".progress-bar")
196
- .css({width: percentVal})
196
+ .css({ width: percentVal })
197
197
  .text(percentVal);
198
198
  }
199
199
  }
@@ -331,7 +331,7 @@ function parseHiddenInputs(value) {
331
331
  }
332
332
 
333
333
  export function getValueFromField(formItem) {
334
- let {type, name} = formItem;
334
+ let { type, name } = formItem;
335
335
  if (name && name !== "") {
336
336
  if (type === "hidden") {
337
337
  return parseHiddenInputs($(formItem).val());
@@ -350,12 +350,64 @@ export function getValueFromField(formItem) {
350
350
  return null;
351
351
  }
352
352
 
353
+ const pad2 = (n) => String(n).padStart(2, "0");
354
+
355
+ /**
356
+ * Convert a Date, a date string or a timestamp into a valid Date.
357
+ * A date-only string ("YYYY-MM-DD") is read as local midnight, not UTC,
358
+ * so the day does not shift in time zones west of UTC.
359
+ *
360
+ * @param {*} value
361
+ * @returns {?Date} null if the value is empty or not a valid date
362
+ */
363
+ export function toDate(value) {
364
+ if (value === null || value === undefined || value === "") {
365
+ return null;
366
+ }
367
+ let date;
368
+ if (value instanceof Date) {
369
+ date = value;
370
+ } else if (typeof value === "string" && /^\d{4}-\d{2}-\d{2}$/.test(value)) {
371
+ const [y, m, d] = value.split("-").map(Number);
372
+ date = new Date(y, m - 1, d);
373
+ } else {
374
+ date = new Date(value);
375
+ }
376
+ return isNaN(date.getTime()) ? null : date;
377
+ }
378
+
379
+ /**
380
+ * @param {*} value
381
+ * @returns {string} "YYYY-MM-DD" in local time, or "" if not a valid date
382
+ */
383
+ export function formatDate(value) {
384
+ const date = toDate(value);
385
+ if (!date) {
386
+ return "";
387
+ }
388
+ return `${date.getFullYear()}-${pad2(date.getMonth() + 1)}-${pad2(date.getDate())}`;
389
+ }
390
+
391
+ /**
392
+ * @param {*} value
393
+ * @returns {string} "YYYY-MM-DDTHH:MM" in local time, or "" if not a valid date
394
+ */
395
+ export function formatDateTimeLocal(value) {
396
+ const date = toDate(value);
397
+ if (!date) {
398
+ return "";
399
+ }
400
+ return `${formatDate(date)}T${pad2(date.getHours())}:${pad2(date.getMinutes())}`;
401
+ }
353
402
 
354
403
  export function setValueInField(formItem, value) {
355
- let {type, name} = formItem;
404
+ let { type, name } = formItem;
356
405
  if (name && name !== "") {
357
-
358
- if (type === "checkbox") {
406
+ if (type === "datetime-local") {
407
+ formItem.value = formatDateTimeLocal(value);
408
+ } else if (type === "date") {
409
+ formItem.value = formatDate(value);
410
+ } else if (type === "checkbox") {
359
411
  formItem.checked = !!value;
360
412
  } else if (type === "file") {
361
413
  if (value instanceof File) {
@@ -368,7 +420,7 @@ export function setValueInField(formItem, value) {
368
420
  } else if (value instanceof SdcModel) {
369
421
  $(formItem).val(value.id);
370
422
  } else if (value instanceof SdcQuerySet) {
371
- $(formItem).val(`[${value.getIds().join(',')}]`);
423
+ $(formItem).val(`[${value.getIds().join(",")}]`);
372
424
  } else {
373
425
  if (value === null) {
374
426
  value = "";
@@ -72,7 +72,7 @@ function findSdcTgs($container, tagNameList, parentController) {
72
72
  */
73
73
  function replacePlaceholderController(controller, url, urlValues) {
74
74
  for (let key_idx in controller._urlParams) {
75
- if (controller._urlParams.hasOwnProperty(key_idx)) {
75
+ if (Object.hasOwn(controller._urlParams, key_idx)) {
76
76
  let key = controller._urlParams[key_idx];
77
77
  let re = RegExp("%\\(" + key + "\\)\\w", "gm");
78
78
  const val = urlValues[key];
@@ -516,7 +516,22 @@ export function reconcile($virtualNode, $realNode) {
516
516
  toRemove.forEach(($element) => $element.safeRemove());
517
517
  }
518
518
 
519
+ /**
520
+ * Replace the event listeners added by sdcDom (JSX on* props) on a kept node
521
+ * with the listeners of its new virtual counterpart.
522
+ */
523
+ function syncListeners(real, virtual) {
524
+ if (!real || !virtual || (!real._sdcListeners && !virtual._sdcListeners)) {
525
+ return;
526
+ }
527
+ (real._sdcListeners ?? []).forEach(([type, fn]) => real.removeEventListener(type, fn));
528
+ const listeners = virtual._sdcListeners ?? [];
529
+ listeners.forEach(([type, fn]) => real.addEventListener(type, fn));
530
+ real._sdcListeners = listeners;
531
+ }
532
+
519
533
  function syncAttributes($real, $virtual) {
534
+ syncListeners($real[0], $virtual[0]);
520
535
  const realAttrs = $real[0].attributes ?? [];
521
536
  const virtualAttrs = $virtual[0].attributes ?? [];
522
537
  // Remove missing attrs
@@ -1,38 +0,0 @@
1
- # This workflow will do a clean installation of node dependencies, cache/restore them, build the source code and run tests across different versions of node
2
- # For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-nodejs
3
-
4
- name: Node.js CI
5
-
6
- on:
7
- push:
8
- branches: [ "main" ]
9
- pull_request:
10
- branches: [ "main" ]
11
-
12
- jobs:
13
- build:
14
-
15
- runs-on: ubuntu-latest
16
-
17
- strategy:
18
- matrix:
19
- node-version: [20.x, 22.x]
20
- # See supported Node.js release schedule at https://nodejs.org/en/about/releases/
21
-
22
- steps:
23
- - uses: actions/checkout@v4
24
- - name: Use Node.js ${{ matrix.node-version }}
25
- uses: actions/setup-node@v4
26
- with:
27
- node-version: ${{ matrix.node-version }}
28
- cache: 'npm'
29
-
30
- - name: Install dependencies (npm)
31
- run: |
32
- npm i -g yarn
33
- yarn install
34
-
35
- - name: Run Tests
36
- run: |
37
- yarn test
38
-
@@ -1,17 +0,0 @@
1
- <component name="InspectionProjectProfileManager">
2
- <profile version="1.0">
3
- <option name="myName" value="Project Default" />
4
- <inspection_tool class="Eslint" enabled="true" level="WARNING" enabled_by_default="true" />
5
- <inspection_tool class="HtmlUnknownAttribute" enabled="true" level="WARNING" enabled_by_default="true">
6
- <option name="myValues">
7
- <value>
8
- <list size="1">
9
- <item index="0" class="java.lang.String" itemvalue="keydown" />
10
- </list>
11
- </value>
12
- </option>
13
- <option name="myCustomValuesEnabled" value="true" />
14
- </inspection_tool>
15
- <inspection_tool class="JSHint" enabled="true" level="ERROR" enabled_by_default="true" />
16
- </profile>
17
- </component>
@@ -1,6 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="JavaScriptLibraryMappings">
4
- <includedPredefinedLibrary name="Node.js Core" />
5
- </component>
6
- </project>
package/.idea/misc.xml DELETED
@@ -1,6 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="Black">
4
- <option name="sdkName" value="Poetry (SimpleDomControlClient)" />
5
- </component>
6
- </project>
package/.idea/modules.xml DELETED
@@ -1,8 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="ProjectModuleManager">
4
- <modules>
5
- <module fileurl="file://$PROJECT_DIR$/SimpleDomControlClient.iml" filepath="$PROJECT_DIR$/SimpleDomControlClient.iml" />
6
- </modules>
7
- </component>
8
- </project>
package/.idea/vcs.xml DELETED
@@ -1,6 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="VcsDirectoryMappings">
4
- <mapping directory="$PROJECT_DIR$" vcs="Git" />
5
- </component>
6
- </project>
@@ -1,403 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="AutoImportSettings">
4
- <option name="autoReloadType" value="SELECTIVE" />
5
- </component>
6
- <component name="ChangeListManager">
7
- <list default="true" id="4b4ede81-fe43-4a68-9186-e15152e2d80c" name="Changes" comment="v 0.58.0 fixed test with dist" />
8
- <option name="SHOW_DIALOG" value="false" />
9
- <option name="HIGHLIGHT_CONFLICTS" value="true" />
10
- <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
11
- <option name="LAST_RESOLUTION" value="IGNORE" />
12
- </component>
13
- <component name="EmbeddingIndexingInfo">
14
- <option name="cachedIndexableFilesCount" value="139" />
15
- </component>
16
- <component name="FileTemplateManagerImpl">
17
- <option name="RECENT_TEMPLATES">
18
- <list>
19
- <option value="Python Script" />
20
- </list>
21
- </option>
22
- </component>
23
- <component name="Git.Settings">
24
- <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
25
- </component>
26
- <component name="GitHubPullRequestSearchHistory">{
27
- &quot;lastFilter&quot;: {
28
- &quot;state&quot;: &quot;OPEN&quot;,
29
- &quot;assignee&quot;: &quot;StarmanMartin&quot;
30
- }
31
- }</component>
32
- <component name="GithubPullRequestsUISettings">{
33
- &quot;selectedUrlAndAccountId&quot;: {
34
- &quot;url&quot;: &quot;https://github.com/StarmanMartin/SimpleDomControlClient.git&quot;,
35
- &quot;accountId&quot;: &quot;1d79fbc5-ed50-41ec-9a5c-ee6e5d964451&quot;
36
- }
37
- }</component>
38
- <component name="MarkdownSettingsMigration">
39
- <option name="stateVersion" value="1" />
40
- </component>
41
- <component name="McpProjectServerCommands">
42
- <commands />
43
- <urls />
44
- </component>
45
- <component name="ProjectColorInfo">{
46
- &quot;associatedIndex&quot;: 1
47
- }</component>
48
- <component name="ProjectId" id="2b2GffCLJPiEDkJs7nLSyiE5bGz" />
49
- <component name="ProjectViewState">
50
- <option name="hideEmptyMiddlePackages" value="true" />
51
- <option name="showLibraryContents" value="true" />
52
- </component>
53
- <component name="PropertiesComponent"><![CDATA[{
54
- "keyToString": {
55
- "Jest.All Tests.executor": "Run",
56
- "Jest.Controller.executor": "Debug",
57
- "Jest.Test all.executor": "Run",
58
- "Jest.Test reconcile controller.executor": "Run",
59
- "Jest.Test reconcile.executor": "Debug",
60
- "Jest.jest.config.mjs.executor": "Run",
61
- "Jest.model fixtures.queryset create uses the mocked socket receiver to append new rows.executor": "Debug",
62
- "Jest.model fixtures.queryset load receives rows through the mocked socket receiver.executor": "Debug",
63
- "Jest.view.test.js.executor": "Debug",
64
- "RunOnceActivity.MCP Project settings loaded": "true",
65
- "RunOnceActivity.OpenProjectViewOnStart": "true",
66
- "RunOnceActivity.ShowReadmeOnStart": "true",
67
- "RunOnceActivity.TerminalTabsStorage.copyFrom.TerminalArrangementManager.252": "true",
68
- "RunOnceActivity.git.unshallow": "true",
69
- "RunOnceActivity.go.formatter.settings.were.checked": "true",
70
- "RunOnceActivity.go.migrated.go.modules.settings": "true",
71
- "RunOnceActivity.typescript.service.memoryLimit.init": "true",
72
- "SHARE_PROJECT_CONFIGURATION_FILES": "true",
73
- "ai.playground.ignore.import.keys.banner.in.settings": "true",
74
- "git-widget-placeholder": "main",
75
- "go.import.settings.migrated": "true",
76
- "javascript.nodejs.core.library.configured.version": "22.14.0",
77
- "javascript.nodejs.core.library.typings.version": "22.14.1",
78
- "kotlin-language-version-configured": "true",
79
- "last_opened_file_path": "/home/martin/Develop/private/SimpleDomControl",
80
- "node.js.detected.package.eslint": "true",
81
- "node.js.detected.package.tslint": "true",
82
- "node.js.selected.package.eslint": "(autodetect)",
83
- "node.js.selected.package.tslint": "(autodetect)",
84
- "nodejs.jest.jest_package": "/home/martin/Develop/private/SimpleDomControlClient/node_modules/jest",
85
- "nodejs_interpreter_path": "/home/martin/.asdf/installs/nodejs/22.14.0/bin/node",
86
- "nodejs_package_manager_path": "yarn",
87
- "npm.build.executor": "Run",
88
- "npm.test.executor": "Debug",
89
- "project.structure.last.edited": "Modules",
90
- "project.structure.proportion": "0.0",
91
- "project.structure.side.proportion": "0.0",
92
- "settings.editor.selected.configurable": "settings.nodejs",
93
- "ts.external.directory.path": "/home/martin/.local/share/JetBrains/Toolbox/apps/pycharm-professional/plugins/javascript-plugin/jsLanguageServicesImpl/external",
94
- "vue.rearranger.settings.migration": "true"
95
- }
96
- }]]></component>
97
- <component name="RecentsManager">
98
- <key name="CopyFile.RECENT_KEYS">
99
- <recent name="$PROJECT_DIR$" />
100
- </key>
101
- </component>
102
- <component name="RunManager" selected="Jest.Test all">
103
- <configuration name="Controller" type="JavaScriptTestRunnerJest" temporary="true" nameIsGenerated="true">
104
- <node-interpreter value="project" />
105
- <jest-package value="$PROJECT_DIR$/node_modules/jest" />
106
- <working-dir value="$PROJECT_DIR$" />
107
- <envs>
108
- <env name="NODE_OPTIONS" value="--experimental-vm-modules" />
109
- </envs>
110
- <scope-kind value="SUITE" />
111
- <test-file value="$PROJECT_DIR$/test/controller.test.js" />
112
- <test-names>
113
- <test-name value="Controller" />
114
- </test-names>
115
- <method v="2" />
116
- </configuration>
117
- <configuration name="Test all" type="JavaScriptTestRunnerJest" temporary="true">
118
- <node-interpreter value="project" />
119
- <jest-package value="$PROJECT_DIR$/node_modules/jest" />
120
- <working-dir value="$PROJECT_DIR$" />
121
- <envs>
122
- <env name="NODE_OPTIONS" value="--experimental-vm-modules" />
123
- </envs>
124
- <scope-kind value="ALL" />
125
- <method v="2" />
126
- </configuration>
127
- <configuration name="Test reconcile controller" type="JavaScriptTestRunnerJest">
128
- <node-interpreter value="project" />
129
- <jest-package value="$PROJECT_DIR$/node_modules/jest" />
130
- <working-dir value="$PROJECT_DIR$" />
131
- <envs>
132
- <env name="NODE_OPTIONS" value="--experimental-vm-modules" />
133
- </envs>
134
- <scope-kind value="SUITE" />
135
- <test-file value="$PROJECT_DIR$/test/view.test.js" />
136
- <test-names>
137
- <test-name value="Controller reconcile" />
138
- </test-names>
139
- <method v="2" />
140
- </configuration>
141
- <configuration name="jest.config.mjs" type="JavaScriptTestRunnerJest" nameIsGenerated="true">
142
- <config-file value="$PROJECT_DIR$/jest.config.mjs" />
143
- <node-interpreter value="$USER_HOME$/.asdf/installs/nodejs/22.8.0/bin/node" />
144
- <node-options value="--experimental-vm-modules" />
145
- <jest-package value="$PROJECT_DIR$/node_modules/jest" />
146
- <working-dir value="$PROJECT_DIR$" />
147
- <envs />
148
- <scope-kind value="ALL" />
149
- <method v="2" />
150
- </configuration>
151
- <configuration name="view.test.js" type="JavaScriptTestRunnerJest" temporary="true" nameIsGenerated="true">
152
- <node-interpreter value="project" />
153
- <jest-package value="$PROJECT_DIR$/node_modules/jest" />
154
- <working-dir value="$PROJECT_DIR$" />
155
- <envs>
156
- <env name="NODE_OPTIONS" value="--experimental-vm-modules" />
157
- </envs>
158
- <scope-kind value="TEST_FILE" />
159
- <test-file value="$PROJECT_DIR$/test/view.test.js" />
160
- <method v="2" />
161
- </configuration>
162
- <configuration name="build" type="js.build_tools.npm">
163
- <package-json value="$PROJECT_DIR$/package.json" />
164
- <command value="run" />
165
- <scripts>
166
- <script value="build" />
167
- </scripts>
168
- <node-interpreter value="$USER_HOME$/.asdf/installs/nodejs/22.8.0/bin/node" />
169
- <envs />
170
- <method v="2" />
171
- </configuration>
172
- <configuration name="test" type="js.build_tools.npm" temporary="true" nameIsGenerated="true">
173
- <package-json value="$PROJECT_DIR$/package.json" />
174
- <command value="run" />
175
- <scripts>
176
- <script value="test" />
177
- </scripts>
178
- <node-interpreter value="$USER_HOME$/.asdf/installs/nodejs/22.14.0/bin/node" />
179
- <envs />
180
- <method v="2" />
181
- </configuration>
182
- <list>
183
- <item itemvalue="Jest.jest.config.mjs" />
184
- <item itemvalue="Jest.Test reconcile controller" />
185
- <item itemvalue="Jest.view.test.js" />
186
- <item itemvalue="Jest.Controller" />
187
- <item itemvalue="Jest.Test all" />
188
- <item itemvalue="npm.build" />
189
- <item itemvalue="npm.test" />
190
- </list>
191
- <recent_temporary>
192
- <list>
193
- <item itemvalue="Jest.Test all" />
194
- <item itemvalue="Jest.view.test.js" />
195
- <item itemvalue="npm.test" />
196
- <item itemvalue="Jest.Controller" />
197
- </list>
198
- </recent_temporary>
199
- </component>
200
- <component name="SharedIndexes">
201
- <attachedChunks>
202
- <set>
203
- <option value="bundled-js-predefined-d6986cc7102b-9b0f141eb926-JavaScript-PY-253.29346.142" />
204
- <option value="bundled-python-sdk-f2b7a9f6281b-6e1f45a539f7-com.jetbrains.pycharm.pro.sharedIndexes.bundled-PY-253.29346.142" />
205
- </set>
206
- </attachedChunks>
207
- </component>
208
- <component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
209
- <component name="TaskManager">
210
- <task active="true" id="Default" summary="Default task">
211
- <changelist id="4b4ede81-fe43-4a68-9186-e15152e2d80c" name="Changes" comment="" />
212
- <created>1705405864340</created>
213
- <option name="number" value="Default" />
214
- <option name="presentableId" value="Default" />
215
- <updated>1705405864340</updated>
216
- <workItem from="1705405865397" duration="557000" />
217
- <workItem from="1705475959709" duration="66000" />
218
- <workItem from="1705476745685" duration="42000" />
219
- <workItem from="1705482583555" duration="1741000" />
220
- <workItem from="1705520401615" duration="1679000" />
221
- <workItem from="1705526288293" duration="39000" />
222
- <workItem from="1707124210562" duration="901000" />
223
- <workItem from="1709579952668" duration="2466000" />
224
- <workItem from="1709671101704" duration="290000" />
225
- <workItem from="1713769095032" duration="116000" />
226
- <workItem from="1730803990300" duration="2495000" />
227
- <workItem from="1741761262308" duration="532000" />
228
- <workItem from="1741856308927" duration="9000" />
229
- <workItem from="1745266749102" duration="42527000" />
230
- <workItem from="1745433489565" duration="22162000" />
231
- <workItem from="1746775623778" duration="14038000" />
232
- <workItem from="1776656121875" duration="4646000" />
233
- </task>
234
- <task id="LOCAL-00001" summary="v 0.4.11 add gulp tasks to client bib">
235
- <option name="closed" value="true" />
236
- <created>1707124863617</created>
237
- <option name="number" value="00001" />
238
- <option name="presentableId" value="LOCAL-00001" />
239
- <option name="project" value="LOCAL" />
240
- <updated>1707124863617</updated>
241
- </task>
242
- <task id="LOCAL-00002" summary="v 0.4.12 gulp fixes">
243
- <option name="closed" value="true" />
244
- <created>1709671325528</created>
245
- <option name="number" value="00002" />
246
- <option name="presentableId" value="LOCAL-00002" />
247
- <option name="project" value="LOCAL" />
248
- <updated>1709671325529</updated>
249
- </task>
250
- <task id="LOCAL-00003" summary="v 0.4.18 update AbstractSDC relations (get_parent, get_children)">
251
- <option name="closed" value="true" />
252
- <created>1713769152596</created>
253
- <option name="number" value="00003" />
254
- <option name="presentableId" value="LOCAL-00003" />
255
- <option name="project" value="LOCAL" />
256
- <updated>1713769152596</updated>
257
- </task>
258
- <task id="LOCAL-00004" summary="v 0.4.18 build">
259
- <option name="closed" value="true" />
260
- <created>1713769189716</created>
261
- <option name="number" value="00004" />
262
- <option name="presentableId" value="LOCAL-00004" />
263
- <option name="project" value="LOCAL" />
264
- <updated>1713769189716</updated>
265
- </task>
266
- <task id="LOCAL-00005" summary="v 0.56.2 Fixed new version bugs">
267
- <option name="closed" value="true" />
268
- <created>1730805685222</created>
269
- <option name="number" value="00005" />
270
- <option name="presentableId" value="LOCAL-00005" />
271
- <option name="project" value="LOCAL" />
272
- <updated>1730805685222</updated>
273
- </task>
274
- <task id="LOCAL-00006" summary="v 0.57.9 Update dependencies">
275
- <option name="closed" value="true" />
276
- <created>1741761774404</created>
277
- <option name="number" value="00006" />
278
- <option name="presentableId" value="LOCAL-00006" />
279
- <option name="project" value="LOCAL" />
280
- <updated>1741761774404</updated>
281
- </task>
282
- <task id="LOCAL-00007" summary="v 0.57.9 added LCB algorithm to reconcile function">
283
- <option name="closed" value="true" />
284
- <created>1745482240699</created>
285
- <option name="number" value="00007" />
286
- <option name="presentableId" value="LOCAL-00007" />
287
- <option name="project" value="LOCAL" />
288
- <updated>1745482240699</updated>
289
- </task>
290
- <task id="LOCAL-00008" summary="v 0.58.0 Models as class objects">
291
- <option name="closed" value="true" />
292
- <created>1776668775427</created>
293
- <option name="number" value="00008" />
294
- <option name="presentableId" value="LOCAL-00008" />
295
- <option name="project" value="LOCAL" />
296
- <updated>1776668775427</updated>
297
- </task>
298
- <task id="LOCAL-00009" summary="v 0.58.0 Models as class objects">
299
- <option name="closed" value="true" />
300
- <created>1776668816174</created>
301
- <option name="number" value="00009" />
302
- <option name="presentableId" value="LOCAL-00009" />
303
- <option name="project" value="LOCAL" />
304
- <updated>1776668816174</updated>
305
- </task>
306
- <task id="LOCAL-00010" summary="v 0.58.0 Models as class objects">
307
- <option name="closed" value="true" />
308
- <created>1776668837064</created>
309
- <option name="number" value="00010" />
310
- <option name="presentableId" value="LOCAL-00010" />
311
- <option name="project" value="LOCAL" />
312
- <updated>1776668837064</updated>
313
- </task>
314
- <task id="LOCAL-00011" summary="v 0.58.0 update ci">
315
- <option name="closed" value="true" />
316
- <created>1776668891797</created>
317
- <option name="number" value="00011" />
318
- <option name="presentableId" value="LOCAL-00011" />
319
- <option name="project" value="LOCAL" />
320
- <updated>1776668891797</updated>
321
- </task>
322
- <task id="LOCAL-00012" summary="v 0.58.0 update ci">
323
- <option name="closed" value="true" />
324
- <created>1776669031982</created>
325
- <option name="number" value="00012" />
326
- <option name="presentableId" value="LOCAL-00012" />
327
- <option name="project" value="LOCAL" />
328
- <updated>1776669031983</updated>
329
- </task>
330
- <task id="LOCAL-00013" summary="v 0.58.0 fixed test with dist">
331
- <option name="closed" value="true" />
332
- <created>1776669821856</created>
333
- <option name="number" value="00013" />
334
- <option name="presentableId" value="LOCAL-00013" />
335
- <option name="project" value="LOCAL" />
336
- <updated>1776669821856</updated>
337
- </task>
338
- <option name="localTasksCounter" value="14" />
339
- <servers />
340
- </component>
341
- <component name="TypeScriptGeneratedFilesManager">
342
- <option name="version" value="3" />
343
- </component>
344
- <component name="VcsManagerConfiguration">
345
- <MESSAGE value="v 0.4.11 add gulp tasks to client bib" />
346
- <MESSAGE value="v 0.4.12 gulp fixes" />
347
- <MESSAGE value="v 0.4.18 update AbstractSDC relations (get_parent, get_children)" />
348
- <MESSAGE value="v 0.4.18 build" />
349
- <MESSAGE value="v 0.56.2 Fixed new version bugs" />
350
- <MESSAGE value="v 0.57.9 Update dependencies" />
351
- <MESSAGE value="v 0.57.9 added LCB algorithm to reconcile function" />
352
- <MESSAGE value="v 0.58.0 Models as class objects" />
353
- <MESSAGE value="v 0.58.0 update ci" />
354
- <MESSAGE value="v 0.58.0 fixed test with dist" />
355
- <option name="LAST_COMMIT_MESSAGE" value="v 0.58.0 fixed test with dist" />
356
- </component>
357
- <component name="VgoProject">
358
- <settings-migrated>true</settings-migrated>
359
- </component>
360
- <component name="XDebuggerManager">
361
- <breakpoint-manager>
362
- <breakpoints>
363
- <line-breakpoint enabled="true" type="javascript">
364
- <url>file://$PROJECT_DIR$/src/simpleDomControl/sdc_model.js</url>
365
- <line>1047</line>
366
- <properties lambdaOrdinal="-1" />
367
- <option name="timeStamp" value="4" />
368
- </line-breakpoint>
369
- <line-breakpoint enabled="true" type="javascript">
370
- <url>file://$PROJECT_DIR$/src/simpleDomControl/sdc_model.js</url>
371
- <line>769</line>
372
- <properties lambdaOrdinal="-1" />
373
- <option name="timeStamp" value="7" />
374
- </line-breakpoint>
375
- <line-breakpoint enabled="true" type="javascript">
376
- <url>file://$PROJECT_DIR$/test/model.test.js</url>
377
- <line>171</line>
378
- <properties lambdaOrdinal="-1" />
379
- <option name="timeStamp" value="14" />
380
- </line-breakpoint>
381
- <line-breakpoint enabled="true" type="javascript">
382
- <url>file://$PROJECT_DIR$/test/model.test.js</url>
383
- <line>161</line>
384
- <properties lambdaOrdinal="-1" />
385
- <option name="timeStamp" value="15" />
386
- </line-breakpoint>
387
- </breakpoints>
388
- </breakpoint-manager>
389
- <watches-manager>
390
- <configuration name="JavaScriptTestRunnerJest">
391
- <watch expression="MAIN.html()" language="JavaScript" />
392
- <watch expression="parseInt(i/2)" language="JavaScript" />
393
- <watch expression="$element.html()" language="JavaScript" />
394
- <watch expression="op.counterpart.$element.html()" language="JavaScript" />
395
- <watch expression="OPS" language="JavaScript" />
396
- </configuration>
397
- </watches-manager>
398
- </component>
399
- <component name="XSLT-Support.FileAssociations.UIState">
400
- <expand />
401
- <select />
402
- </component>
403
- </project>
package/.readthedocs.yaml DELETED
@@ -1,13 +0,0 @@
1
- version: 2
2
-
3
- build:
4
- os: ubuntu-24.04
5
- tools:
6
- python: "3.12"
7
-
8
- sphinx:
9
- configuration: docs/conf.py
10
-
11
- python:
12
- install:
13
- - requirements: docs/requirements.txt
package/.tool-versions DELETED
@@ -1 +0,0 @@
1
- nodejs 22.14.0
@@ -1,12 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <module type="WEB_MODULE" version="4">
3
- <component name="NewModuleRootManager" inherit-compiler-output="true">
4
- <exclude-output />
5
- <content url="file://$MODULE_DIR$">
6
- <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
7
- <sourceFolder url="file://$MODULE_DIR$/test" isTestSource="true" />
8
- </content>
9
- <orderEntry type="sourceFolder" forTests="false" />
10
- <orderEntry type="module" module-name="SimpleDomControl" />
11
- </component>
12
- </module>