Skip to content

Commit f5f0518

Browse files
authored
Merge pull request #5 from sassoftware/data-product
Data product implementation added
2 parents b091846 + 2648afd commit f5f0518

16 files changed

+2946
-30
lines changed

CHANGELOG.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,18 @@
11
# Changelog
22

3+
## SAS Portal Framework for SAS Viya v1.1.0
4+
5+
- Add: Data Product Registry object
6+
- Add: Data Product Marketplace object
7+
- Add: documentation for the Run Custom Code object
8+
- Add: docuemntation for the Data Product Registry object
9+
- Add: docuemntation for the Data Product Marketplace object
10+
- Add: get-formatted-datetime utility function
11+
- Add: copy-file utility function
12+
- Add: copy-report utility function
13+
- Add: Prompt Builder object
14+
- Change: Provided updates to the global.css file to support special cases from the Data Product Marketplace object
15+
316
## SAS Portal Framework for SAS Viya v1.0.4
417

518
- Add: The SCR Module Scorer object has been added

css/global.css

Lines changed: 64 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/* #region tokens */
22
:root,
3-
[data-sas-theme='light'] {
3+
[data-sas-theme="light"] {
44
--color-zero-state-modifier-fill-5: hsl(219, 12%, 79%);
55
--color-zero-state-modifier-fill-4: hsl(219, 12%, 72%);
66
--color-zero-state-modifier-fill-3: hsl(212, 94%, 68%);
@@ -704,13 +704,13 @@
704704
--font-size-base-text-s: 14px;
705705
--font-size-base-text-m: 16px;
706706
--font-size-base-text-l: 18px;
707-
--font-family-secondary: 'Anova', -apple-system, BlinkMacSystemFont,
708-
'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji',
709-
'Segoe UI Emoji', 'Segoe UI Symbol';
710-
--font-family-primary: 'AnovaUI', -apple-system, BlinkMacSystemFont,
711-
'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji',
712-
'Segoe UI Emoji', 'Segoe UI Symbol';
713-
--font-family-monospace: Consolas, Menlo, 'Lucida Console', Courier, Monaco,
707+
--font-family-secondary: "Anova", -apple-system, BlinkMacSystemFont,
708+
"Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji",
709+
"Segoe UI Emoji", "Segoe UI Symbol";
710+
--font-family-primary: "AnovaUI", -apple-system, BlinkMacSystemFont,
711+
"Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji",
712+
"Segoe UI Emoji", "Segoe UI Symbol";
713+
--font-family-monospace: Consolas, Menlo, "Lucida Console", Courier, Monaco,
714714
monospace;
715715
--color-syntax-text-09: #65802a;
716716
--color-syntax-text-08: #3c8275;
@@ -728,7 +728,7 @@
728728
--color-action-background-focus-inverse: hsl(0, 100%, 100%);
729729
--color-action-background-focus: hsl(205, 97%, 35%);
730730
}
731-
:root[data-sas-theme='dark'] {
731+
:root[data-sas-theme="dark"] {
732732
--color-zero-state-modifier-fill-5: hsl(219, 12%, 64%);
733733
--color-zero-state-modifier-fill-4: hsl(219, 12%, 72%);
734734
--color-zero-state-modifier-fill-3: hsl(212, 94%, 57%);
@@ -1432,13 +1432,13 @@
14321432
--font-size-base-text-s: 14px;
14331433
--font-size-base-text-m: 16px;
14341434
--font-size-base-text-l: 18px;
1435-
--font-family-secondary: 'Anova', -apple-system, BlinkMacSystemFont,
1436-
'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji',
1437-
'Segoe UI Emoji', 'Segoe UI Symbol';
1438-
--font-family-primary: 'AnovaUI', -apple-system, BlinkMacSystemFont,
1439-
'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji',
1440-
'Segoe UI Emoji', 'Segoe UI Symbol';
1441-
--font-family-monospace: Consolas, Menlo, 'Lucida Console', Courier, Monaco,
1435+
--font-family-secondary: "Anova", -apple-system, BlinkMacSystemFont,
1436+
"Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji",
1437+
"Segoe UI Emoji", "Segoe UI Symbol";
1438+
--font-family-primary: "AnovaUI", -apple-system, BlinkMacSystemFont,
1439+
"Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji",
1440+
"Segoe UI Emoji", "Segoe UI Symbol";
1441+
--font-family-monospace: Consolas, Menlo, "Lucida Console", Courier, Monaco,
14421442
monospace;
14431443
--color-syntax-text-09: #97c03f;
14441444
--color-syntax-text-08: #54b6a4;
@@ -1458,7 +1458,7 @@
14581458
}
14591459

14601460
:root,
1461-
[data-bs-theme='light'] {
1461+
[data-bs-theme="light"] {
14621462
/* --bs-blue: #0d6efd;
14631463
--bs-indigo: #6610f2;
14641464
--bs-purple: #6f42c1;
@@ -1669,17 +1669,17 @@ hr {
16691669

16701670
.carousel-control-prev-icon,
16711671
.carousel-control-next-icon {
1672-
font-family: 'sas-icons';
1672+
font-family: "sas-icons";
16731673
background: none;
16741674
filter: none !important;
16751675
block-size: auto;
16761676
inline-size: auto;
16771677
}
16781678
.carousel-control-prev-icon:before {
1679-
content: '\f1e3';
1679+
content: "\f1e3";
16801680
}
16811681
.carousel-control-next-icon:before {
1682-
content: '\f1e2';
1682+
content: "\f1e2";
16831683
}
16841684

16851685
.carousel > button {
@@ -1767,11 +1767,11 @@ hr {
17671767
color: var(--color-action-text-control-placeholder);
17681768
}
17691769

1770-
.form-check-input[type='checkbox'] {
1770+
.form-check-input[type="checkbox"] {
17711771
display: inline-flex;
17721772
justify-content: center;
17731773
align-items: center;
1774-
font-family: 'sas-icons';
1774+
font-family: "sas-icons";
17751775
border-radius: var(--size-border-radius-xxs);
17761776
padding: var(--space-base-xs);
17771777
}
@@ -1784,7 +1784,7 @@ hr {
17841784
}
17851785

17861786
.form-check-input:checked::before {
1787-
content: '\f15e';
1787+
content: "\f15e";
17881788
}
17891789

17901790
.form-check-input + .from-check-label {
@@ -1796,8 +1796,8 @@ hr {
17961796
color: var(--color-action-text-standard-normal);
17971797
}
17981798
.accordion-button::after {
1799-
font-family: 'sas-icons';
1800-
content: '\f1e1';
1799+
font-family: "sas-icons";
1800+
content: "\f1e1";
18011801
inline-size: auto;
18021802
block-size: auto;
18031803
background: none;
@@ -2025,4 +2025,42 @@ body {
20252025

20262026
.info-icon:hover + .info-content {
20272027
display: block;
2028-
}
2028+
}
2029+
2030+
/* Section: Data Product Marketplace */
2031+
.search-bar {
2032+
display: flex;
2033+
gap: 10px;
2034+
margin-bottom: 30px;
2035+
}
2036+
2037+
.btn-add-to-cart,
2038+
.btn-purchase,
2039+
.btn-remove-from-cart {
2040+
border-radius: 5px;
2041+
}
2042+
.btn-add-to-cart {
2043+
background-color: #28a745;
2044+
border-color: #28a745;
2045+
}
2046+
.btn-add-to-cart:hover {
2047+
background-color: #218838;
2048+
border-color: #1e7e34;
2049+
}
2050+
.btn-purchase {
2051+
background-color: #007bff;
2052+
border-color: #007bff;
2053+
}
2054+
.btn-purchase:hover {
2055+
background-color: #0056b3;
2056+
border-color: #0056b3;
2057+
}
2058+
2059+
.detail-item {
2060+
margin-bottom: 10px;
2061+
word-break: break-word; /* Ensure long URLs or text break */
2062+
}
2063+
.detail-item strong {
2064+
display: inline-block;
2065+
min-width: 120px; /* Align labels */
2066+
}

index.html

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,9 @@
111111
<script src="./js/utility/validate-ds2-variable-name.js"></script>
112112
<script src="./js/utility/get-SCR-metadata.js"></script>
113113
<script src="./js/utility/score-scr.js"></script>
114+
<script src="./js/utility/get-formatted-datetime.js"></script>
115+
<script src="./js/utility/copy-file.js"></script>
116+
<script src="./js/utility/copy-report.js"></script>
114117

115118
<!-- Import Object Builder -->
116119
<script src="./js/objects/add-text-objects.js"></script>
@@ -122,6 +125,9 @@
122125
<script src="./js/objects/add-vaReport-object.js"></script>
123126
<script src="./js/objects/add-run-custom-code-objects.js"></script>
124127
<script src="./js/objects/add-scrScore-object.js"></script>
128+
<script src="./js/objects/add-data-product-registry-object.js"></script>
129+
<script src="./js/objects//add-data-product-marketplace-object.js"></script>
130+
<script src="./js/objects/add-prompt-builder.js"></script>
125131

126132
<!-- Import Page Builing -->
127133
<script src="./js/generate-tabs.js"></script>

js/generate-pages.js

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,27 @@ async function generatePages(VIYAHOST, layout, paneContainer, interfaceText) {
132132
interfaceText?.scrScore
133133
);
134134
break;
135+
case 'dataProductRegistry':
136+
content = await addDataProductRegistryObject(
137+
currentObjectDefinition,
138+
layout?.general?.shorthand,
139+
interfaceText?.dataProductRegistry
140+
);
141+
break;
142+
case 'dataProductMarketplace':
143+
content = await addDataProductMarketplaceObject(
144+
currentObjectDefinition,
145+
layout?.general?.shorthand,
146+
interfaceText?.dataProductMarketplace
147+
);
148+
break;
149+
case 'promptBuilder':
150+
content = await addPromptBuilderObject(
151+
currentObjectDefinition,
152+
layout?.general?.shorthand,
153+
interfaceText?.promptBuilder
154+
);
155+
break;
135156
default:
136157
content = document.createElement('p');
137158
content.innerText = interfaceText?.undefinedObjectText;

0 commit comments

Comments
 (0)