jsgui3-server 0.0.121 → 0.0.122
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/.vscode/settings.json +6 -0
- package/README.md +10 -10
- package/controls/Active_HTML_Document.js +116 -116
- package/controls/README.md +7 -7
- package/controls/page/admin.js +74 -74
- package/controls/panel/admin.js +11 -11
- package/examples/_css/basic.css +913 -913
- package/examples/_css/database-control.css +51 -51
- package/examples/_css/jsgui.css +66 -66
- package/examples/_css/multi-layout.css +23 -23
- package/examples/_css/style.css +1669 -1669
- package/examples/_css/top-and-bottom-bars.css +54 -54
- package/examples/box/1) square box/client.js +188 -188
- package/examples/box/1) square box/server.js +112 -112
- package/examples/box/2) twenty square boxes/css flex wrap/client.js +248 -248
- package/examples/box/2) twenty square boxes/css flex wrap/server.js +112 -112
- package/examples/boxes/square_boxes.js +45 -48
- package/examples/boxes/square_boxes_client.js +132 -136
- package/examples/client-side-popup-menu-button.html +93 -93
- package/examples/color_palette.js +51 -51
- package/examples/color_palette_client.js +95 -95
- package/examples/controls/1) window/client.js +186 -186
- package/examples/controls/1) window/server.js +117 -117
- package/examples/controls/10) window, mirrored text inputs/client.js +320 -320
- package/examples/controls/10) window, mirrored text inputs/server.js +117 -117
- package/examples/controls/11) window, mirrored text fields/client.js +493 -251
- package/examples/controls/11) window, mirrored text fields/server.js +117 -117
- package/examples/controls/11b) window, shared Data_Object model mirrored text fields/client.js +613 -331
- package/examples/controls/11b) window, shared Data_Object model mirrored text fields/server.js +117 -117
- package/examples/controls/11c) window, shared Data_Value model mirrored text fields/client.js +617 -617
- package/examples/controls/11c) window, shared Data_Value model mirrored text fields/server.js +117 -117
- package/examples/controls/11d) window, shared model mirrored integer text fields/client.js +611 -280
- package/examples/controls/11d) window, shared model mirrored integer text fields/server.js +134 -22
- package/examples/controls/12) window, Select_Options control/client.js +435 -452
- package/examples/controls/12) window, Select_Options control/server.js +117 -117
- package/examples/controls/2) two windows/client.js +193 -193
- package/examples/controls/2) two windows/server.js +113 -113
- package/examples/controls/3) five windows/client.js +217 -217
- package/examples/controls/3) five windows/server.js +116 -115
- package/examples/controls/4) window, tabbed panel/client.js +54 -225
- package/examples/controls/4) window, tabbed panel/server.js +17 -117
- package/examples/controls/5) window, grid/client.js +204 -484
- package/examples/controls/5) window, grid/server.js +117 -119
- package/examples/controls/6) window, color_palette/client.js +204 -204
- package/examples/controls/6) window, color_palette/server.js +117 -117
- package/examples/controls/7) window, month_view/client.js +40 -231
- package/examples/controls/7) window, month_view/server.js +117 -117
- package/examples/controls/8) window, checkbox/client.js +247 -209
- package/examples/controls/8) window, checkbox/server.js +117 -117
- package/examples/controls/9) window, date picker/client.js +303 -303
- package/examples/controls/9) window, date picker/server.js +117 -117
- package/examples/controls/9b) window, shared data.model mirrored date pickers/client.js +398 -398
- package/examples/controls/9b) window, shared data.model mirrored date pickers/server.js +117 -117
- package/examples/controls/__old/_html-server-color-palette.js +114 -114
- package/examples/controls/__old/html-server-combo-box.js +104 -104
- package/examples/controls/__old/html-server-list.js +98 -98
- package/examples/controls/__old/html-server-popup-menu-button.js +114 -114
- package/examples/controls/__old/html-server-start-stop-toggle-button.js +146 -146
- package/examples/controls/__old/scs-arrow-button.js +36 -36
- package/examples/controls/__old/scs-date-picker.js +157 -157
- package/examples/controls/__old/scs-file-browser.js +82 -82
- package/examples/controls/__old/scs-item.js +159 -159
- package/examples/controls/__old/scs-month-arrow-selector.js +126 -126
- package/examples/controls/__old/scs-month-view.js +94 -94
- package/examples/controls/__old/scs-start-stop-toggle-button.js +40 -40
- package/examples/controls/__old/scs-tree.js +49 -49
- package/examples/controls/__old/scs-year-arrow-selector.js +127 -127
- package/examples/demos/date-picker.js +119 -119
- package/examples/demos/explain-encapsulation.js +9 -9
- package/examples/demos/resizing.js +35 -35
- package/examples/demos/server_time.js +6 -6
- package/examples/grids/grid_1.js +45 -45
- package/examples/grids/grid_1_client.js +329 -329
- package/examples/html-rendering.js +20 -20
- package/examples/html-server.js +105 -105
- package/examples/introducing jsgui3/server.js +110 -110
- package/examples/mx_display/mx_display_1.js +45 -45
- package/examples/mx_display/mx_display_1_client.js +444 -444
- package/fs2.js +1836 -1836
- package/http/responders/HTTP_Responder.js +15 -15
- package/http/responders/static/Static_Route_HTTP_Responder.js +105 -105
- package/module.js +34 -34
- package/old/_single-control-server.js +418 -418
- package/old/single-control-server.js +368 -368
- package/old/single-page-app.js +131 -131
- package/package.json +42 -42
- package/page-context.js +92 -92
- package/publishers/helpers/assigners/Assigner.js +10 -10
- package/publishers/helpers/assigners/static-compressed-response-buffers/Single_Control_Webpage_Server_Static_Compressed_Response_Buffers_Assigner.js +150 -150
- package/publishers/helpers/assigners/static-headers/Single_Control_Webpage_Server_Static_Headers_Assigner.js +109 -109
- package/publishers/helpers/assigners/static-routes/Single_Control_Webpage_Server_Static_Routes_Assigner.js +91 -91
- package/publishers/helpers/assigners/static-uncompressed-response-buffers/Single_Control_Webpage_Server_Static_Uncompressed_Response_Buffers_Assigner.js +104 -104
- package/publishers/helpers/preparers/static/bundle/Ready_To_Serve_Preparer.js +18 -18
- package/publishers/helpers/preparers/static/bundle/Static_Routes_Responses_Webpage_Bundle_Preparer.js +44 -44
- package/publishers/http-function-publisher.js +212 -212
- package/publishers/http-html-page-publisher.js +5 -5
- package/publishers/http-html-publisher.js +24 -24
- package/publishers/http-js-publisher.js +135 -135
- package/publishers/http-observable-publisher.js +124 -124
- package/publishers/http-publisher.js +53 -53
- package/publishers/http-resource-publisher.js +325 -325
- package/publishers/http-webpage-publisher.js +659 -658
- package/publishers/http-webpageorsite-publisher.js +343 -343
- package/publishers/http-website-publisher.js +640 -640
- package/publishers/notes.md +9 -9
- package/resources/README.md +16 -16
- package/resources/_old_website-javascript-resource.js +994 -994
- package/resources/_old_website-resource.js +507 -507
- package/resources/compile/server-resource-compilation.js +43 -43
- package/resources/data-resource.js +118 -118
- package/resources/fs-resource.js +146 -146
- package/resources/jsbuilder/Abstract_Single_Declaration.js +105 -105
- package/resources/jsbuilder/Abstract_Single_Declaration_Sequence.js +42 -42
- package/resources/jsbuilder/JS_AST/JS_AST_Abstract_Node.js +61 -61
- package/resources/jsbuilder/JS_AST/JS_AST_Abstract_Node_Group.js +41 -41
- package/resources/jsbuilder/JS_AST/JS_AST_Group_Shared.js +61 -61
- package/resources/jsbuilder/JS_AST/JS_AST_Node.js +93 -93
- package/resources/jsbuilder/JS_AST/JS_AST_Node_0-Core.js +253 -253
- package/resources/jsbuilder/JS_AST/JS_AST_Node_1-Babel.js +337 -337
- package/resources/jsbuilder/JS_AST/JS_AST_Node_10-Changing.js +39 -39
- package/resources/jsbuilder/JS_AST/JS_AST_Node_2.1.1-Child.js +96 -96
- package/resources/jsbuilder/JS_AST/JS_AST_Node_2.1.2-Parent.js +37 -37
- package/resources/jsbuilder/JS_AST/JS_AST_Node_2.1.3-Ancestor.js +61 -61
- package/resources/jsbuilder/JS_AST/JS_AST_Node_2.2-Inner.js +43 -43
- package/resources/jsbuilder/JS_AST/JS_AST_Node_2.3-All.js +72 -72
- package/resources/jsbuilder/JS_AST/JS_AST_Node_2.4-Sibling.js +92 -92
- package/resources/jsbuilder/JS_AST/JS_AST_Node_2.5-Available_In_Scope.js +29 -29
- package/resources/jsbuilder/JS_AST/JS_AST_Node_2.9-Signature.js +116 -116
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3-Basics.js +159 -159
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.0.0-Basics_First.js +178 -178
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.0.1-Basics_Second.js +87 -87
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.0.99-Basics_Last.js +91 -91
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.1-Basics_Each.js +136 -136
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.1.5-Basics_Count.js +73 -73
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.2-Basics_Filter.js +39 -39
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.3-Basics_Collect.js +85 -85
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.4-Basics_Select.js +42 -42
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.5-Basics_Find.js +40 -40
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.6-Basics_Callmap.js +54 -54
- package/resources/jsbuilder/JS_AST/JS_AST_Node_4.0-Index_Indexes.js +45 -45
- package/resources/jsbuilder/JS_AST/JS_AST_Node_4.1-Index.js +343 -343
- package/resources/jsbuilder/JS_AST/JS_AST_Node_5.0-Category.js +38 -38
- package/resources/jsbuilder/JS_AST/JS_AST_Node_5.1-Category_Identifier.js +30 -30
- package/resources/jsbuilder/JS_AST/JS_AST_Node_5.2-Category_Literal.js +28 -28
- package/resources/jsbuilder/JS_AST/JS_AST_Node_5.3-Category_Expression.js +26 -26
- package/resources/jsbuilder/JS_AST/JS_AST_Node_5.4-Category_Pattern.js +8 -8
- package/resources/jsbuilder/JS_AST/JS_AST_Node_5.5-Category_Declaration.js +43 -43
- package/resources/jsbuilder/JS_AST/JS_AST_Node_5.6-Category_Statement.js +21 -21
- package/resources/jsbuilder/JS_AST/JS_AST_Node_6.0-Type.js +89 -89
- package/resources/jsbuilder/JS_AST/JS_AST_Node_6.1-Type_Class_Declaration.js +8 -8
- package/resources/jsbuilder/JS_AST/JS_AST_Node_6.2-Type_Variable_Declaration.js +27 -27
- package/resources/jsbuilder/JS_AST/JS_AST_Node_6.3-Type_Variable_Declarator.js +28 -28
- package/resources/jsbuilder/JS_AST/JS_AST_Node_7-Query.js +736 -736
- package/resources/jsbuilder/JS_AST/JS_AST_Node_8-Features.js +64 -64
- package/resources/jsbuilder/JS_AST/JS_AST_Node_9-Planning.js +31 -31
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Arrangement.js +15 -15
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Node_Declared_Object.js +305 -305
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Node_Feature.js +77 -77
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Node_Feature_Declaration.js +248 -248
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Node_Feature_Declarator.js +138 -138
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Root_Node_Feature/JS_AST_Root_Node_Feature.js +10 -10
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Root_Node_Feature/JS_AST_Root_Node_Feature_Exported.js +100 -100
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Root_Node_Feature/JS_AST_Root_Node_Feature_Exports.js +60 -60
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Root_Node_Feature/JS_AST_Root_Node_Interpreted.js +179 -179
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Root_Node_Feature/_JSGUI_Root_Node_Interpreted.js +43 -43
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Root_Node_Feature/special_case_objectassign_to_object.js +12 -12
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Group.js +35 -35
- package/resources/jsbuilder/JS_AST/JS_AST_Operation.js +11 -11
- package/resources/jsbuilder/JS_AST/JS_AST_Operation_On_Relationship.js +31 -31
- package/resources/jsbuilder/JS_AST/JS_AST_Ordered_Relationship_Node_To_Group.js +37 -37
- package/resources/jsbuilder/JS_AST/JS_AST_Ordinal.js +39 -39
- package/resources/jsbuilder/JS_AST/JS_AST_Ordinal_Relationship.js +25 -25
- package/resources/jsbuilder/JS_AST/JS_AST_Relationship_Node_To_Group.js +200 -200
- package/resources/jsbuilder/JS_AST/JS_AST_Relationship_Node_Within_Group_To_Node.js +43 -43
- package/resources/jsbuilder/JS_AST/_JS_AST_Node_3.8-Query_Features.js +76 -76
- package/resources/jsbuilder/JS_AST/query/enable_array_as_queryable.js +227 -227
- package/resources/jsbuilder/JS_AST/query/find_object_keys.js +404 -404
- package/resources/jsbuilder/JS_AST/query/node_queries.js +8 -8
- package/resources/jsbuilder/JS_AST/query/root_query_identidy.js +11 -11
- package/resources/jsbuilder/JS_AST_Node_Extended/JSGUI_Singular_Declaration.js +85 -85
- package/resources/jsbuilder/JS_AST_Node_Extended/JS_AST_Node_Declaration.js +123 -123
- package/resources/jsbuilder/JS_AST_Node_Extended/JS_AST_Node_Extended.js +87 -87
- package/resources/jsbuilder/JS_AST_Node_Extended/JS_AST_Node_Extended_0-Core.js +10 -10
- package/resources/jsbuilder/JS_Builder.js +10 -10
- package/resources/jsbuilder/JS_File/Feature/JS_File_Declared_Object.js +31 -31
- package/resources/jsbuilder/JS_File/Feature/JS_File_Exported_Object_Info.js +25 -25
- package/resources/jsbuilder/JS_File/Feature/JS_File_Exports.js +78 -78
- package/resources/jsbuilder/JS_File/Feature/JS_File_Feature.js +17 -17
- package/resources/jsbuilder/JS_File/Feature/JS_File_Imported_Object_Info.js +25 -25
- package/resources/jsbuilder/JS_File/Feature/JS_File_Imports.js +8 -8
- package/resources/jsbuilder/JS_File/JS_File.js +12 -12
- package/resources/jsbuilder/JS_File/JS_File_0-Core.js +202 -202
- package/resources/jsbuilder/JS_File/JS_File_1-Early_Parse.js +175 -175
- package/resources/jsbuilder/JS_File/JS_File_2-Babel.js +81 -81
- package/resources/jsbuilder/JS_File/JS_File_3-JS_AST_Node.js +86 -86
- package/resources/jsbuilder/JS_File/JS_File_4-Query.js +413 -413
- package/resources/jsbuilder/JS_File/JS_File_4.1-Query_Features.js +414 -414
- package/resources/jsbuilder/JS_File/JS_File_5-Planning.js +59 -59
- package/resources/jsbuilder/JS_File/JS_File_6-Changing.js +24 -24
- package/resources/jsbuilder/JS_File/JS_File_Export_Reference.js +12 -12
- package/resources/jsbuilder/JS_File/JS_File_Import_Reference.js +23 -23
- package/resources/jsbuilder/JS_File/JS_File_Import_References.js +31 -31
- package/resources/jsbuilder/JS_File/JS_File_Processor.js +16 -16
- package/resources/jsbuilder/JS_File/JS_Files.js +15 -15
- package/resources/jsbuilder/Module.js +14 -14
- package/resources/jsbuilder/Platform.js +13 -13
- package/resources/jsbuilder/Platforms.js +69 -69
- package/resources/jsbuilder/Project.js +109 -109
- package/resources/jsbuilder/Reference.js +1 -1
- package/resources/jsbuilder/Reference_Sequence.js +16 -16
- package/resources/jsbuilder/Scope.js +29 -29
- package/resources/jsbuilder/Variable_Name_Provider.js +42 -42
- package/resources/jsbuilder/_JS_File.js +225 -225
- package/resources/jsbuilder/ast_query.js +20 -20
- package/resources/jsbuilder/babel/babel_consts.js +162 -162
- package/resources/jsbuilder/babel/babel_node_tools.js +541 -541
- package/resources/jsbuilder/babel/deep_iterate/deep_iterate_babel.js +923 -904
- package/resources/jsbuilder/build.js +16 -16
- package/resources/jsbuilder/platform_notes.md +66 -66
- package/resources/jsbuilder/test/test_ast_node.js +381 -381
- package/resources/jsbuilder/test/test_js_file.js +303 -303
- package/resources/jsbuilder/test/test_project.js +157 -157
- package/resources/local-server-info-resource.js +96 -96
- package/resources/notes.txt +10 -10
- package/resources/old/website-image-resource.js +1185 -1185
- package/resources/process-js.js +498 -498
- package/resources/processors/bundlers/bundle.js +29 -29
- package/resources/processors/bundlers/bundler.js +23 -23
- package/resources/processors/bundlers/css-bundler.js +234 -234
- package/resources/processors/bundlers/js/JS_Bundler.js +51 -51
- package/resources/processors/bundlers/js/esbuild/Advanced_JS_Bundler_Using_ESBuild.js +388 -391
- package/resources/processors/bundlers/js/esbuild/Bundler_Using_ESBuild.js +8 -8
- package/resources/processors/bundlers/js/esbuild/Core_JS_Non_Minifying_Bundler_Using_ESBuild.js +188 -188
- package/resources/processors/bundlers/js/esbuild/Core_JS_Single_File_Minifying_Bundler_Using_ESBuild.js +191 -192
- package/resources/processors/bundlers/js/esbuild/_Old_CSS_Extractor.js +239 -239
- package/resources/processors/bundlers/js-bundler.js +263 -263
- package/resources/processors/bundlers/test_ast.js +73 -73
- package/resources/processors/bundlers/webpage-bundler.js +404 -404
- package/resources/processors/bundlers/website-bundler.js +22 -22
- package/resources/processors/extractors/Extractor.js +9 -11
- package/resources/processors/extractors/js/css_and_js/AST_Node/CSS_And_JS_From_JS_String_Using_AST_Node_Extractor.js +239 -254
- package/resources/processors/extractors/js/css_and_js/CSS_And_JS_From_JS_String_Extractor.js +3 -3
- package/resources/processors/extractors/string/Pos_Span_String_Extractor.js +93 -93
- package/resources/server-installed-tools.js +28 -28
- package/resources/server-resource-pool.js +41 -41
- package/resources/website-audio-resource.js +735 -735
- package/resources/website-css-resource.js +411 -411
- package/resources/website-image-resource.js +412 -412
- package/resources/website-javascript-resource-processor.js +908 -908
- package/resources/website-javascript-resource.js +874 -874
- package/resources/website-resource-processor.js +10 -10
- package/resources/website-resource.js +164 -164
- package/resources/website-static-html-resource.js +199 -199
- package/resources/website-template-html-resource.js +231 -231
- package/roadmap.md +75 -75
- package/server.js +609 -573
- package/static-page-context.js +13 -13
- package/website/webpage.js +81 -81
- package/website/website-group.js +15 -15
- package/website/website.js +260 -260
- package/examples/controls/11d) window, shared model mirrored integer text fields/both.js +0 -17
- package/examples/controls/13) window, shared model mirrored lat_long/client.js +0 -933
- package/examples/controls/13) window, shared model mirrored lat_long/server.js +0 -50
- package/examples/controls/14) window, control compositional model/client.js +0 -328
- package/examples/controls/14) window, control compositional model/server.js +0 -118
- package/examples/controls/14a) window, control spec has compositional model/client.js +0 -440
- package/examples/controls/14a) window, control spec has compositional model/server.js +0 -118
- package/examples/controls/15) window, text field/client.js +0 -256
- package/examples/controls/15) window, text field/server.js +0 -39
- package/examples/controls/16) Window([Text_Input])/client.js +0 -266
- package/examples/controls/16) Window([Text_Input])/server.js +0 -109
- package/examples/controls/16a) Window([Text_Input]) Integer data.model.data_type/client.js +0 -494
- package/examples/controls/16a) Window([Text_Input]) Integer data.model.data_type/isomorphic.js +0 -24
- package/examples/controls/16a) Window([Text_Input]) Integer data.model.data_type/server.js +0 -73
- package/examples/controls/2b) two window, context menus/client.js +0 -193
- package/examples/controls/2b) two window, context menus/server.js +0 -114
- package/examples/controls/4a) window, tabbed panel with various controls inside/client.js +0 -233
- package/examples/controls/4a) window, tabbed panel with various controls inside/server.js +0 -118
|
@@ -1,38 +1,38 @@
|
|
|
1
|
-
const JS_AST_Relationship_Node_To_Group = require('./JS_AST_Relationship_Node_To_Group');
|
|
2
|
-
|
|
3
|
-
class JS_AST_Ordered_Relationship_Node_To_Group extends JS_AST_Relationship_Node_To_Group {
|
|
4
|
-
constructor(spec = {}) {
|
|
5
|
-
super(spec);
|
|
6
|
-
let index;
|
|
7
|
-
if (spec.index !== undefined) index = spec.index;
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
Object.defineProperty(this, 'index', {
|
|
12
|
-
get() {
|
|
13
|
-
return index;
|
|
14
|
-
},
|
|
15
|
-
enumerable: true,
|
|
16
|
-
configurable: false
|
|
17
|
-
});
|
|
18
|
-
|
|
19
|
-
// A 'pre' property
|
|
20
|
-
|
|
21
|
-
// Could be another group / a subgroup.
|
|
22
|
-
|
|
23
|
-
// a previous object.
|
|
24
|
-
// seems like a Node_group?
|
|
25
|
-
|
|
26
|
-
// .each
|
|
27
|
-
// .all
|
|
28
|
-
//
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
//
|
|
34
|
-
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
|
|
1
|
+
const JS_AST_Relationship_Node_To_Group = require('./JS_AST_Relationship_Node_To_Group');
|
|
2
|
+
|
|
3
|
+
class JS_AST_Ordered_Relationship_Node_To_Group extends JS_AST_Relationship_Node_To_Group {
|
|
4
|
+
constructor(spec = {}) {
|
|
5
|
+
super(spec);
|
|
6
|
+
let index;
|
|
7
|
+
if (spec.index !== undefined) index = spec.index;
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
Object.defineProperty(this, 'index', {
|
|
12
|
+
get() {
|
|
13
|
+
return index;
|
|
14
|
+
},
|
|
15
|
+
enumerable: true,
|
|
16
|
+
configurable: false
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
// A 'pre' property
|
|
20
|
+
|
|
21
|
+
// Could be another group / a subgroup.
|
|
22
|
+
|
|
23
|
+
// a previous object.
|
|
24
|
+
// seems like a Node_group?
|
|
25
|
+
|
|
26
|
+
// .each
|
|
27
|
+
// .all
|
|
28
|
+
//
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
//
|
|
34
|
+
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
38
|
module.exports = JS_AST_Ordered_Relationship_Node_To_Group;
|
|
@@ -1,40 +1,40 @@
|
|
|
1
|
-
class JS_AST_Ordinal {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
// Not a relationship
|
|
5
|
-
// First child is an ordinal relationship
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
constructor(spec = {}) {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
let origin, obtainer, number;
|
|
16
|
-
|
|
17
|
-
//let relationship_to;
|
|
18
|
-
|
|
19
|
-
if (spec.origin) {
|
|
20
|
-
origin = spec.origin;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
if (spec.number !== undefined) {
|
|
24
|
-
number = spec.number;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
//if (spec.obtainer) {
|
|
28
|
-
// obtainer = spec.obtainer;
|
|
29
|
-
//}
|
|
30
|
-
//if (spec.relationship_to) {
|
|
31
|
-
// relationship_to = spec.relationship_to;
|
|
32
|
-
//}
|
|
33
|
-
|
|
34
|
-
let arr_cached;
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
|
|
1
|
+
class JS_AST_Ordinal {
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
// Not a relationship
|
|
5
|
+
// First child is an ordinal relationship
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
constructor(spec = {}) {
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
let origin, obtainer, number;
|
|
16
|
+
|
|
17
|
+
//let relationship_to;
|
|
18
|
+
|
|
19
|
+
if (spec.origin) {
|
|
20
|
+
origin = spec.origin;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
if (spec.number !== undefined) {
|
|
24
|
+
number = spec.number;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
//if (spec.obtainer) {
|
|
28
|
+
// obtainer = spec.obtainer;
|
|
29
|
+
//}
|
|
30
|
+
//if (spec.relationship_to) {
|
|
31
|
+
// relationship_to = spec.relationship_to;
|
|
32
|
+
//}
|
|
33
|
+
|
|
34
|
+
let arr_cached;
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
40
|
module.exports = JS_AST_Ordinal;
|
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
class JS_AST_Ordinal_Relationship {
|
|
2
|
-
constructor(spec = {}) {
|
|
3
|
-
let ordinal, relationship;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
if (spec.ordinal !== undefined) ordinal = spec.ordinal;
|
|
8
|
-
if (spec.relationship !== undefined) relationship = spec.relationship;
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
Object.defineProperty(this, 'origin', {
|
|
13
|
-
get() {
|
|
14
|
-
return ordinal.origin;
|
|
15
|
-
|
|
16
|
-
},
|
|
17
|
-
//set(newValue) { bValue = newValue; },
|
|
18
|
-
enumerable: true,
|
|
19
|
-
configurable: false
|
|
20
|
-
});
|
|
21
|
-
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
module.exports = JS_AST_Ordinal_Relationship;
|
|
1
|
+
class JS_AST_Ordinal_Relationship {
|
|
2
|
+
constructor(spec = {}) {
|
|
3
|
+
let ordinal, relationship;
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
if (spec.ordinal !== undefined) ordinal = spec.ordinal;
|
|
8
|
+
if (spec.relationship !== undefined) relationship = spec.relationship;
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
Object.defineProperty(this, 'origin', {
|
|
13
|
+
get() {
|
|
14
|
+
return ordinal.origin;
|
|
15
|
+
|
|
16
|
+
},
|
|
17
|
+
//set(newValue) { bValue = newValue; },
|
|
18
|
+
enumerable: true,
|
|
19
|
+
configurable: false
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
module.exports = JS_AST_Ordinal_Relationship;
|
|
@@ -1,201 +1,201 @@
|
|
|
1
|
-
// Change to Group_Relationship?
|
|
2
|
-
const {each} = require('lang-tools');
|
|
3
|
-
const JS_AST_Group_Shared = require('./JS_AST_Group_Shared');
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
class JS_AST_Relationship_Node_To_Group {
|
|
8
|
-
constructor(spec = {}) {
|
|
9
|
-
|
|
10
|
-
let name;
|
|
11
|
-
if (spec.name !== undefined) {
|
|
12
|
-
name = spec.name;
|
|
13
|
-
}
|
|
14
|
-
let origin;
|
|
15
|
-
if (spec.origin !== undefined) {
|
|
16
|
-
origin = spec.origin;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
// eg 'child'
|
|
24
|
-
|
|
25
|
-
// Iteration of sibling and ancestor groups here.
|
|
26
|
-
|
|
27
|
-
// And a sibling_nodes property.
|
|
28
|
-
|
|
29
|
-
// Integrate sibling iteration into the system.
|
|
30
|
-
// Will make some queries / other parts of the system easier to write.
|
|
31
|
-
|
|
32
|
-
// A version of this that is ordinal as well, with .next and .previous.
|
|
33
|
-
// so we start by knowing the ordinal and the origin
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
// all previous sibling nodes?
|
|
37
|
-
// node.sibling.previous.each
|
|
38
|
-
// node.each.previous.sibling
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
const iterate_group = callback => {
|
|
42
|
-
// available_in_scope
|
|
43
|
-
// all previous siblings that are declarations / assignment expressions (of the right sort)
|
|
44
|
-
// iterate ancestors
|
|
45
|
-
// all child declarations
|
|
46
|
-
// (maybe just the ones before current)
|
|
47
|
-
|
|
48
|
-
// or something like above
|
|
49
|
-
//
|
|
50
|
-
|
|
51
|
-
if (name === 'post-sibling') {
|
|
52
|
-
if (origin.parent_node) {
|
|
53
|
-
//const postsibs = [];
|
|
54
|
-
let i2 = 0;
|
|
55
|
-
each(origin.parent_node.child_nodes, (node, idx, stop) => {
|
|
56
|
-
if (idx > origin.index) {
|
|
57
|
-
callback(node, i2++, stop);
|
|
58
|
-
} else {
|
|
59
|
-
}
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
} else if (name === 'previous-sibling') {
|
|
63
|
-
if (origin.parent_node) {
|
|
64
|
-
const presibs = [];
|
|
65
|
-
each(origin.parent_node.child_nodes, (node, idx, stop) => {
|
|
66
|
-
if (idx < origin.index) {
|
|
67
|
-
presibs.push(node)
|
|
68
|
-
} else {
|
|
69
|
-
stop();
|
|
70
|
-
}
|
|
71
|
-
});
|
|
72
|
-
presibs.reverse();
|
|
73
|
-
each(presibs, (node, idx, stop) => callback(node, idx, stop));
|
|
74
|
-
}
|
|
75
|
-
} else if (name === 'sibling') {
|
|
76
|
-
if (origin.parent_node) {
|
|
77
|
-
each(origin.parent_node.child_nodes, (node, idx, stop) => {
|
|
78
|
-
if (node !== origin) {
|
|
79
|
-
callback(node, idx, stop);
|
|
80
|
-
}
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
} else if (name === 'all') {
|
|
84
|
-
origin.deep_iterate(callback);
|
|
85
|
-
} else if (name === 'inner') {
|
|
86
|
-
origin.inner_deep_iterate(callback);
|
|
87
|
-
} else if (name === 'child') {
|
|
88
|
-
|
|
89
|
-
each(origin.child_nodes, callback);
|
|
90
|
-
//origin.each_child(callback);
|
|
91
|
-
} else if (name === 'available_in_scope') {
|
|
92
|
-
throw 'NYI';
|
|
93
|
-
} else {
|
|
94
|
-
console.log('name', name);
|
|
95
|
-
throw 'stop';
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
const find = (finder) => {
|
|
100
|
-
let res;
|
|
101
|
-
iterate_group((node, idx, stop) => {
|
|
102
|
-
if (finder(node)) {
|
|
103
|
-
if (!res) res = node; // TODO fix stop
|
|
104
|
-
//stop();
|
|
105
|
-
}
|
|
106
|
-
})
|
|
107
|
-
return res;
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
const shared = new JS_AST_Group_Shared({
|
|
111
|
-
group_iterator: iterate_group
|
|
112
|
-
});
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
// And collect is still a verb here.
|
|
116
|
-
// Use property sugar with a different name.
|
|
117
|
-
let _collected;
|
|
118
|
-
const collect = () => {
|
|
119
|
-
if (!_collected) {
|
|
120
|
-
_collected = [];
|
|
121
|
-
iterate_group(node => _collected.push(node));
|
|
122
|
-
}
|
|
123
|
-
return _collected;
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
// and .all could be like .collect but a property.
|
|
128
|
-
// and with groups could be used in a fair few places.
|
|
129
|
-
|
|
130
|
-
Object.defineProperty(this, 'all', {
|
|
131
|
-
get() {
|
|
132
|
-
return this.collect();
|
|
133
|
-
},
|
|
134
|
-
//set(newValue) { bValue = newValue; },
|
|
135
|
-
enumerable: true,
|
|
136
|
-
configurable: false
|
|
137
|
-
});
|
|
138
|
-
|
|
139
|
-
let _count;
|
|
140
|
-
|
|
141
|
-
const count = () => {
|
|
142
|
-
if (_count === undefined) {
|
|
143
|
-
if (_collected) {
|
|
144
|
-
_count = _collected.length;
|
|
145
|
-
} else {
|
|
146
|
-
|
|
147
|
-
if (name === 'child') {
|
|
148
|
-
_count = origin.child_nodes.length;
|
|
149
|
-
} else {
|
|
150
|
-
_count = 0;
|
|
151
|
-
iterate_group(node => _count++);
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
return _count;
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
Object.defineProperty(this, 'count', {
|
|
161
|
-
get() {
|
|
162
|
-
return count();
|
|
163
|
-
},
|
|
164
|
-
//set(newValue) { bValue = newValue; },
|
|
165
|
-
enumerable: true,
|
|
166
|
-
configurable: false
|
|
167
|
-
});
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
const select = (fn_select) => {
|
|
171
|
-
// Could return another group?
|
|
172
|
-
//
|
|
173
|
-
|
|
174
|
-
const res = [];
|
|
175
|
-
iterate_group(node => {
|
|
176
|
-
if (fn_select(node)) res.push(node);
|
|
177
|
-
});
|
|
178
|
-
return res;
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
Object.assign(this, {
|
|
183
|
-
select: select,
|
|
184
|
-
shared: shared,
|
|
185
|
-
each: iterate_group,
|
|
186
|
-
find: find,
|
|
187
|
-
collect: collect
|
|
188
|
-
});
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
/*
|
|
192
|
-
this.select = select;
|
|
193
|
-
this.shared = shared;
|
|
194
|
-
this.each = iterate_group;
|
|
195
|
-
this.find = find;
|
|
196
|
-
this.collect = collect;
|
|
197
|
-
*/
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
|
|
1
|
+
// Change to Group_Relationship?
|
|
2
|
+
const {each} = require('lang-tools');
|
|
3
|
+
const JS_AST_Group_Shared = require('./JS_AST_Group_Shared');
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class JS_AST_Relationship_Node_To_Group {
|
|
8
|
+
constructor(spec = {}) {
|
|
9
|
+
|
|
10
|
+
let name;
|
|
11
|
+
if (spec.name !== undefined) {
|
|
12
|
+
name = spec.name;
|
|
13
|
+
}
|
|
14
|
+
let origin;
|
|
15
|
+
if (spec.origin !== undefined) {
|
|
16
|
+
origin = spec.origin;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
// eg 'child'
|
|
24
|
+
|
|
25
|
+
// Iteration of sibling and ancestor groups here.
|
|
26
|
+
|
|
27
|
+
// And a sibling_nodes property.
|
|
28
|
+
|
|
29
|
+
// Integrate sibling iteration into the system.
|
|
30
|
+
// Will make some queries / other parts of the system easier to write.
|
|
31
|
+
|
|
32
|
+
// A version of this that is ordinal as well, with .next and .previous.
|
|
33
|
+
// so we start by knowing the ordinal and the origin
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
// all previous sibling nodes?
|
|
37
|
+
// node.sibling.previous.each
|
|
38
|
+
// node.each.previous.sibling
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
const iterate_group = callback => {
|
|
42
|
+
// available_in_scope
|
|
43
|
+
// all previous siblings that are declarations / assignment expressions (of the right sort)
|
|
44
|
+
// iterate ancestors
|
|
45
|
+
// all child declarations
|
|
46
|
+
// (maybe just the ones before current)
|
|
47
|
+
|
|
48
|
+
// or something like above
|
|
49
|
+
//
|
|
50
|
+
|
|
51
|
+
if (name === 'post-sibling') {
|
|
52
|
+
if (origin.parent_node) {
|
|
53
|
+
//const postsibs = [];
|
|
54
|
+
let i2 = 0;
|
|
55
|
+
each(origin.parent_node.child_nodes, (node, idx, stop) => {
|
|
56
|
+
if (idx > origin.index) {
|
|
57
|
+
callback(node, i2++, stop);
|
|
58
|
+
} else {
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
} else if (name === 'previous-sibling') {
|
|
63
|
+
if (origin.parent_node) {
|
|
64
|
+
const presibs = [];
|
|
65
|
+
each(origin.parent_node.child_nodes, (node, idx, stop) => {
|
|
66
|
+
if (idx < origin.index) {
|
|
67
|
+
presibs.push(node)
|
|
68
|
+
} else {
|
|
69
|
+
stop();
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
presibs.reverse();
|
|
73
|
+
each(presibs, (node, idx, stop) => callback(node, idx, stop));
|
|
74
|
+
}
|
|
75
|
+
} else if (name === 'sibling') {
|
|
76
|
+
if (origin.parent_node) {
|
|
77
|
+
each(origin.parent_node.child_nodes, (node, idx, stop) => {
|
|
78
|
+
if (node !== origin) {
|
|
79
|
+
callback(node, idx, stop);
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
} else if (name === 'all') {
|
|
84
|
+
origin.deep_iterate(callback);
|
|
85
|
+
} else if (name === 'inner') {
|
|
86
|
+
origin.inner_deep_iterate(callback);
|
|
87
|
+
} else if (name === 'child') {
|
|
88
|
+
|
|
89
|
+
each(origin.child_nodes, callback);
|
|
90
|
+
//origin.each_child(callback);
|
|
91
|
+
} else if (name === 'available_in_scope') {
|
|
92
|
+
throw 'NYI';
|
|
93
|
+
} else {
|
|
94
|
+
console.log('name', name);
|
|
95
|
+
throw 'stop';
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
const find = (finder) => {
|
|
100
|
+
let res;
|
|
101
|
+
iterate_group((node, idx, stop) => {
|
|
102
|
+
if (finder(node)) {
|
|
103
|
+
if (!res) res = node; // TODO fix stop
|
|
104
|
+
//stop();
|
|
105
|
+
}
|
|
106
|
+
})
|
|
107
|
+
return res;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
const shared = new JS_AST_Group_Shared({
|
|
111
|
+
group_iterator: iterate_group
|
|
112
|
+
});
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
// And collect is still a verb here.
|
|
116
|
+
// Use property sugar with a different name.
|
|
117
|
+
let _collected;
|
|
118
|
+
const collect = () => {
|
|
119
|
+
if (!_collected) {
|
|
120
|
+
_collected = [];
|
|
121
|
+
iterate_group(node => _collected.push(node));
|
|
122
|
+
}
|
|
123
|
+
return _collected;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
// and .all could be like .collect but a property.
|
|
128
|
+
// and with groups could be used in a fair few places.
|
|
129
|
+
|
|
130
|
+
Object.defineProperty(this, 'all', {
|
|
131
|
+
get() {
|
|
132
|
+
return this.collect();
|
|
133
|
+
},
|
|
134
|
+
//set(newValue) { bValue = newValue; },
|
|
135
|
+
enumerable: true,
|
|
136
|
+
configurable: false
|
|
137
|
+
});
|
|
138
|
+
|
|
139
|
+
let _count;
|
|
140
|
+
|
|
141
|
+
const count = () => {
|
|
142
|
+
if (_count === undefined) {
|
|
143
|
+
if (_collected) {
|
|
144
|
+
_count = _collected.length;
|
|
145
|
+
} else {
|
|
146
|
+
|
|
147
|
+
if (name === 'child') {
|
|
148
|
+
_count = origin.child_nodes.length;
|
|
149
|
+
} else {
|
|
150
|
+
_count = 0;
|
|
151
|
+
iterate_group(node => _count++);
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
return _count;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
Object.defineProperty(this, 'count', {
|
|
161
|
+
get() {
|
|
162
|
+
return count();
|
|
163
|
+
},
|
|
164
|
+
//set(newValue) { bValue = newValue; },
|
|
165
|
+
enumerable: true,
|
|
166
|
+
configurable: false
|
|
167
|
+
});
|
|
168
|
+
|
|
169
|
+
|
|
170
|
+
const select = (fn_select) => {
|
|
171
|
+
// Could return another group?
|
|
172
|
+
//
|
|
173
|
+
|
|
174
|
+
const res = [];
|
|
175
|
+
iterate_group(node => {
|
|
176
|
+
if (fn_select(node)) res.push(node);
|
|
177
|
+
});
|
|
178
|
+
return res;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
|
|
182
|
+
Object.assign(this, {
|
|
183
|
+
select: select,
|
|
184
|
+
shared: shared,
|
|
185
|
+
each: iterate_group,
|
|
186
|
+
find: find,
|
|
187
|
+
collect: collect
|
|
188
|
+
});
|
|
189
|
+
|
|
190
|
+
|
|
191
|
+
/*
|
|
192
|
+
this.select = select;
|
|
193
|
+
this.shared = shared;
|
|
194
|
+
this.each = iterate_group;
|
|
195
|
+
this.find = find;
|
|
196
|
+
this.collect = collect;
|
|
197
|
+
*/
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
|
|
201
201
|
module.exports = JS_AST_Relationship_Node_To_Group;
|