linny-r 1.4.3 → 1.4.5

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 (49) hide show
  1. package/README.md +102 -48
  2. package/package.json +1 -1
  3. package/server.js +31 -6
  4. package/static/images/check-off-not-same-changed.png +0 -0
  5. package/static/images/check-off-not-same-not-changed.png +0 -0
  6. package/static/images/check-off-same-changed.png +0 -0
  7. package/static/images/check-off-same-not-changed.png +0 -0
  8. package/static/images/check-on-not-same-changed.png +0 -0
  9. package/static/images/check-on-not-same-not-changed.png +0 -0
  10. package/static/images/check-on-same-changed.png +0 -0
  11. package/static/images/check-on-same-not-changed.png +0 -0
  12. package/static/images/eq-not-same-changed.png +0 -0
  13. package/static/images/eq-not-same-not-changed.png +0 -0
  14. package/static/images/eq-same-changed.png +0 -0
  15. package/static/images/eq-same-not-changed.png +0 -0
  16. package/static/images/ne-not-same-changed.png +0 -0
  17. package/static/images/ne-not-same-not-changed.png +0 -0
  18. package/static/images/ne-same-changed.png +0 -0
  19. package/static/images/ne-same-not-changed.png +0 -0
  20. package/static/images/sort-asc-lead.png +0 -0
  21. package/static/images/sort-asc.png +0 -0
  22. package/static/images/sort-desc-lead.png +0 -0
  23. package/static/images/sort-desc.png +0 -0
  24. package/static/images/sort-not.png +0 -0
  25. package/static/index.html +51 -35
  26. package/static/linny-r.css +167 -53
  27. package/static/scripts/linny-r-gui-actor-manager.js +340 -0
  28. package/static/scripts/linny-r-gui-chart-manager.js +944 -0
  29. package/static/scripts/linny-r-gui-constraint-editor.js +681 -0
  30. package/static/scripts/linny-r-gui-controller.js +4005 -0
  31. package/static/scripts/linny-r-gui-dataset-manager.js +1176 -0
  32. package/static/scripts/linny-r-gui-documentation-manager.js +739 -0
  33. package/static/scripts/linny-r-gui-equation-manager.js +307 -0
  34. package/static/scripts/linny-r-gui-experiment-manager.js +1944 -0
  35. package/static/scripts/linny-r-gui-expression-editor.js +450 -0
  36. package/static/scripts/linny-r-gui-file-manager.js +392 -0
  37. package/static/scripts/linny-r-gui-finder.js +727 -0
  38. package/static/scripts/linny-r-gui-model-autosaver.js +230 -0
  39. package/static/scripts/linny-r-gui-monitor.js +448 -0
  40. package/static/scripts/linny-r-gui-paper.js +2789 -0
  41. package/static/scripts/linny-r-gui-receiver.js +323 -0
  42. package/static/scripts/linny-r-gui-repository-browser.js +819 -0
  43. package/static/scripts/linny-r-gui-scale-unit-manager.js +244 -0
  44. package/static/scripts/linny-r-gui-sensitivity-analysis.js +778 -0
  45. package/static/scripts/linny-r-gui-undo-redo.js +560 -0
  46. package/static/scripts/linny-r-model.js +34 -15
  47. package/static/scripts/linny-r-utils.js +11 -1
  48. package/static/scripts/linny-r-vm.js +21 -12
  49. package/static/scripts/linny-r-gui.js +0 -16908
@@ -313,42 +313,59 @@ img.sbtn.senab:hover {
313
313
  filter: brightness(150%);
314
314
  }
315
315
 
316
- div.eqbtn {
317
- background-image: url('images/eq.png');
316
+ /* Bounds button indicates whether LB = UB */
317
+ div.bbtn {
318
318
  background-size: contain;
319
319
  background-repeat: no-repeat;
320
320
  cursor: pointer;
321
321
  }
322
322
 
323
- div.eqbtn:hover,
324
- div.intbtn:hover {
323
+ div.bbtn.eq {
324
+ background-image: url('images/eq.png');
325
+ }
326
+
327
+ div.bbtn.eq:hover {
325
328
  filter: brightness(120%);
326
329
  }
327
330
 
328
- div.nebtn {
331
+ div.bbtn.eq.same-changed {
332
+ background-image: url('images/eq-same-changed.png');
333
+ }
334
+
335
+ div.bbtn.eq.same-not-changed {
336
+ background-image: url('images/eq-same-not-changed.png');
337
+ }
338
+
339
+ div.bbtn.eq.not-same-changed {
340
+ background-image: url('images/eq-not-same-changed.png');
341
+ }
342
+
343
+ div.bbtn.eq.not-same-not-changed {
344
+ background-image: url('images/eq-not-same-not-changed.png');
345
+ }
346
+
347
+ div.bbtn.ne {
329
348
  background-image: url('images/ne.png');
330
- background-size: contain;
331
- background-repeat: no-repeat;
332
- cursor: pointer;
333
349
  }
334
350
 
335
- div.nebtn:hover,
336
- div.contbtn:hover {
351
+ div.bbtn.ne:hover {
337
352
  filter: brightness(110%);
338
353
  }
339
354
 
340
- div.intbtn {
341
- background-image: url('images/integer-on.png');
342
- background-size: contain;
343
- background-repeat: no-repeat;
344
- cursor: pointer;
355
+ div.bbtn.ne.same-changed {
356
+ background-image: url('images/ne-same-changed.png');
345
357
  }
346
358
 
347
- div.contbtn {
348
- background-image: url('images/integer-off.png');
349
- background-size: contain;
350
- background-repeat: no-repeat;
351
- cursor: pointer;
359
+ div.bbtn.ne.same-not-changed {
360
+ background-image: url('images/ne-same-not-changed.png');
361
+ }
362
+
363
+ div.bbtn.ne.not-same-changed {
364
+ background-image: url('images/ne-not-same-changed.png');
365
+ }
366
+
367
+ div.bbtn.ne.not-same-not-changed {
368
+ background-image: url('images/ne-not-same-not-changed.png');
352
369
  }
353
370
 
354
371
  input {
@@ -366,7 +383,44 @@ input[type="password"] {
366
383
  }
367
384
 
368
385
  input[type="text"]:disabled {
369
- background-color: #f4f0f2;
386
+ color: gray;
387
+ background-color: #f4f0f2;
388
+ }
389
+
390
+ input[type="text"].same-not-changed {
391
+ color: #5060b0;
392
+ background-color: #f4f8ff;
393
+ }
394
+
395
+ input[type="text"].not-same-not-changed {
396
+ color: #b06050;
397
+ background-color: #fff6f4;
398
+ }
399
+
400
+ input[type="text"].same-changed {
401
+ color: #0000e0;
402
+ background-color: #c0e0ff;
403
+ }
404
+
405
+ input[type="text"].not-same-changed {
406
+ color: #e00000;
407
+ background-color: #ffd0c0;
408
+ }
409
+
410
+ select.same-not-changed {
411
+ color: #5060b0;
412
+ }
413
+
414
+ select.not-same-not-changed {
415
+ color: #b06050;
416
+ }
417
+
418
+ select.same-changed {
419
+ color: #0000e0;
420
+ }
421
+
422
+ select.not-same-changed {
423
+ color: #e00000;
370
424
  }
371
425
 
372
426
  textarea {
@@ -619,6 +673,21 @@ img.inline-cancel-btn:hover {
619
673
  filter: brightness(120%);
620
674
  }
621
675
 
676
+ #actor-group,
677
+ #constraint-group,
678
+ #cluster-group,
679
+ #link-group,
680
+ #process-group,
681
+ #product-group {
682
+ position: absolute;
683
+ right: 45px;
684
+ top: 5px;
685
+ font-size: 10px;
686
+ color: #8000a0;
687
+ background-color: inherit;
688
+ animation: blink 1s step-start 0s infinite;
689
+ }
690
+
622
691
  /* CHECK BOX styles
623
692
  NOTE: separate style names `abox` and `vbox` so that different events can be
624
693
  bound dynamically to actor check boxes */
@@ -640,26 +709,59 @@ div.vbox:hover {
640
709
  filter: brightness(105%);
641
710
  }
642
711
 
712
+ div.crossed {
713
+ background-size: contain;
714
+ background-image: url('images/check-x.png');
715
+ }
716
+
717
+ div.disab {
718
+ background-size: contain;
719
+ background-image: url('images/check-disab.png');
720
+ }
721
+
643
722
  div.clear {
644
723
  background-size: contain;
645
724
  background-image: url('images/check-off.png');
646
725
  }
647
726
 
727
+ div.clear.same-changed {
728
+ background-image: url('images/check-off-same-changed.png');
729
+ }
730
+
731
+ div.clear.same-not-changed {
732
+ background-image: url('images/check-off-same-not-changed.png');
733
+ }
734
+
735
+ div.clear.not-same-changed {
736
+ background-image: url('images/check-off-not-same-changed.png');
737
+ }
738
+
739
+ div.clear.not-same-not-changed {
740
+ background-image: url('images/check-off-not-same-not-changed.png');
741
+ }
742
+
648
743
  div.checked {
649
744
  background-size: contain;
650
745
  background-image: url('images/check-on.png');
651
746
  }
652
747
 
653
- div.crossed {
654
- background-size: contain;
655
- background-image: url('images/check-x.png');
748
+ div.checked.same-changed {
749
+ background-image: url('images/check-on-same-changed.png');
656
750
  }
657
751
 
658
- div.disab {
659
- background-size: contain;
660
- background-image: url('images/check-disab.png');
752
+ div.checked.same-not-changed {
753
+ background-image: url('images/check-on-same-not-changed.png');
661
754
  }
662
755
 
756
+ div.checked.not-same-changed {
757
+ background-image: url('images/check-on-not-same-changed.png');
758
+ }
759
+
760
+ div.checked.not-same-not-changed {
761
+ background-image: url('images/check-on-not-same-not-changed.png');
762
+ }
763
+
764
+
663
765
  /* NOTE: the name of the focal cluster is displayed to the right of
664
766
  the top bar buttons */
665
767
  #focal-cluster {
@@ -1293,11 +1395,11 @@ td.export {
1293
1395
  white-space: nowrap;
1294
1396
  }
1295
1397
 
1296
- #process-pace {
1398
+ #process-LCF {
1297
1399
  width: 77px;
1298
1400
  }
1299
1401
 
1300
- #process-pace-x {
1402
+ #process-LCF-x {
1301
1403
  margin-bottom: 5px;
1302
1404
  }
1303
1405
 
@@ -1592,12 +1694,24 @@ td.export {
1592
1694
  height: min-content;
1593
1695
  }
1594
1696
 
1697
+ #link-x-y {
1698
+ display: inline-block;
1699
+ white-space: nowrap;
1700
+ margin-right: 3px;
1701
+ }
1702
+
1703
+ #link-arrow-1 {
1704
+ padding: 0 1px;
1705
+ }
1706
+
1707
+ #link-arrow-2 {
1708
+ padding: 0 2px;
1709
+ }
1710
+
1595
1711
  #link-from-name,
1596
1712
  #link-to-name {
1597
1713
  display: inline-block;
1598
- max-width: 143px;
1599
- margin-left: 2px;
1600
- margin-right: 2px;
1714
+ max-width: 135px;
1601
1715
  white-space: nowrap;
1602
1716
  overflow: hidden;
1603
1717
  text-overflow: ellipsis;
@@ -1759,18 +1873,18 @@ div.menu-item:hover {
1759
1873
  height: 436px;
1760
1874
  }
1761
1875
 
1762
- #ce-button-bar {
1876
+ #constraint-button-bar {
1763
1877
  margin-top: 1px;
1764
1878
  margin-left: 2px;
1765
1879
  }
1766
1880
 
1767
- #ce-container {
1881
+ #constraint-container {
1768
1882
  position: absolute;
1769
1883
  top: 45px;
1770
1884
  left: 20px;
1771
1885
  }
1772
1886
 
1773
- #ce-y-label {
1887
+ #constraint-y-label {
1774
1888
  position: absolute;
1775
1889
  bottom: 75px;
1776
1890
  left: 8px;
@@ -1783,7 +1897,7 @@ div.menu-item:hover {
1783
1897
  white-space: nowrap;
1784
1898
  }
1785
1899
 
1786
- #ce-x-label {
1900
+ #constraint-x-label {
1787
1901
  position: absolute;
1788
1902
  top: 374px;
1789
1903
  left: 45px;
@@ -1791,21 +1905,21 @@ div.menu-item:hover {
1791
1905
  text-align: center;
1792
1906
  }
1793
1907
 
1794
- #ce-pos-x {
1908
+ #constraint-pos-x {
1795
1909
  position: absolute;
1796
1910
  top: 393px;
1797
1911
  left: 4px;
1798
1912
  width: 54px;
1799
1913
  }
1800
1914
 
1801
- #ce-pos-y {
1915
+ #constraint-pos-y {
1802
1916
  position: absolute;
1803
1917
  top: 393px;
1804
1918
  left: 55px;
1805
1919
  width: 54px;
1806
1920
  }
1807
1921
 
1808
- #ce-point {
1922
+ #constraint-point {
1809
1923
  position: absolute;
1810
1924
  top: 393px;
1811
1925
  left: 160px;
@@ -1813,7 +1927,7 @@ div.menu-item:hover {
1813
1927
  text-align: center;
1814
1928
  }
1815
1929
 
1816
- #ce-equation {
1930
+ #constraint-equation {
1817
1931
  position: absolute;
1818
1932
  top: 393px;
1819
1933
  right: 4px;
@@ -1821,14 +1935,14 @@ div.menu-item:hover {
1821
1935
  text-align: right;
1822
1936
  }
1823
1937
 
1824
- #ce {
1938
+ #constraint {
1825
1939
  width: 330px;
1826
1940
  height: 320px;
1827
1941
  transform-origin: top left;
1828
1942
  }
1829
1943
 
1830
- #ce-from-name,
1831
- #ce-to-name {
1944
+ #constraint-from-name,
1945
+ #constraint-to-name {
1832
1946
  display: inline-block;
1833
1947
  max-width: 190px;
1834
1948
  white-space: nowrap;
@@ -1837,7 +1951,7 @@ div.menu-item:hover {
1837
1951
  font-weight: 700;
1838
1952
  }
1839
1953
 
1840
- #ce-from-name {
1954
+ #constraint-from-name {
1841
1955
  vertical-align: bottom;
1842
1956
  }
1843
1957
 
@@ -1857,7 +1971,7 @@ div.menu-item:hover {
1857
1971
  width: 126px;
1858
1972
  }
1859
1973
 
1860
- #ce-bottom-div {
1974
+ #constraint-bottom-div {
1861
1975
  position: absolute;
1862
1976
  bottom: 4px;
1863
1977
  left: 4px;
@@ -1866,31 +1980,31 @@ div.menu-item:hover {
1866
1980
  border-top: 1px solid silver;
1867
1981
  }
1868
1982
 
1869
- #ce-no-slack-div {
1983
+ #constraint-no-slack-div {
1870
1984
  position: absolute;
1871
1985
  left: -2px;
1872
1986
  bottom: -1px;
1873
1987
  width: 100px;
1874
1988
  }
1875
1989
 
1876
- #ce-no-slack-lbl {
1990
+ #constraint-no-slack-lbl {
1877
1991
  display: inline-block;
1878
1992
  vertical-align: top;
1879
1993
  padding-top: 4px;
1880
1994
  }
1881
1995
 
1882
- #ce-soc-direct {
1996
+ #constraint-soc-direct {
1883
1997
  height: 19px;
1884
1998
  font-size: 12px;
1885
1999
  }
1886
2000
 
1887
- #ce-share-of-cost {
2001
+ #constraint-share-of-cost {
1888
2002
  width: 45px;
1889
2003
  max-height: 18px;
1890
2004
  margin: 3px 1px 0 3px;
1891
2005
  }
1892
2006
 
1893
- #ce-soc {
2007
+ #constraint-soc {
1894
2008
  position: absolute;
1895
2009
  right: 0px;
1896
2010
  }
@@ -2647,7 +2761,7 @@ td.equation-expression {
2647
2761
  position: absolute;
2648
2762
  top: 113px;
2649
2763
  width: 200px;
2650
- height: calc(100% - 115px);
2764
+ height: calc(100% - 117px);
2651
2765
  overflow-y: auto;
2652
2766
  }
2653
2767
 
@@ -4750,7 +4864,7 @@ div.call-stack-expr {
4750
4864
  overflow: auto;
4751
4865
  }
4752
4866
 
4753
- #confirm-move-buttons,
4867
+ #move-buttons,
4754
4868
  #confirm-load-from-repo-buttons,
4755
4869
  #confirm-delete-from-repo-buttons,
4756
4870
  #check-update-buttons {
@@ -4761,7 +4875,7 @@ div.call-stack-expr {
4761
4875
  white-space: nowrap;
4762
4876
  }
4763
4877
 
4764
- #confirm-move-buttons > img,
4878
+ #move-buttons > img,
4765
4879
  #confirm-load-from-repo-buttons > img,
4766
4880
  #confirm-delete-from-repo-buttons > img,
4767
4881
  #check-update-buttons > img {