mashlib 2.1.3-test.1 → 2.1.4-test.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.
- package/dist/mash.css +146 -16
- package/dist/mash.css.map +1 -1
- package/dist/mashlib.js +439 -194
- package/dist/mashlib.js.map +1 -1
- package/dist/mashlib.min.js +30 -30
- package/dist/mashlib.min.js.map +1 -1
- package/package.json +6 -6
package/dist/mashlib.js
CHANGED
|
@@ -13881,7 +13881,25 @@ return /******/ (() => { // webpackBootstrap
|
|
|
13881
13881
|
|
|
13882
13882
|
var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
|
|
13883
13883
|
// Module
|
|
13884
|
-
___CSS_LOADER_EXPORT___.push([module.id, `/*
|
|
13884
|
+
___CSS_LOADER_EXPORT___.push([module.id, `/* Visually hidden utility for accessibility */
|
|
13885
|
+
.visually-hidden {
|
|
13886
|
+
position: absolute !important;
|
|
13887
|
+
height: 1px; width: 1px;
|
|
13888
|
+
overflow: hidden;
|
|
13889
|
+
clip: rect(1px, 1px, 1px, 1px);
|
|
13890
|
+
white-space: nowrap;
|
|
13891
|
+
border: 0;
|
|
13892
|
+
padding: 0;
|
|
13893
|
+
margin: -1px;
|
|
13894
|
+
}
|
|
13895
|
+
|
|
13896
|
+
/* Focus indicator for keyboard navigation */
|
|
13897
|
+
.personRow:focus, .dataCell:focus, tr[tabindex="0"]:focus {
|
|
13898
|
+
outline: 2px solid #1976d2;
|
|
13899
|
+
outline-offset: 2px;
|
|
13900
|
+
background: #e3f2fd;
|
|
13901
|
+
}
|
|
13902
|
+
/* contactsPane styles — extracted from inline styles in contactsPane.js */
|
|
13885
13903
|
/* Uses CSS custom properties from the global stylesheet (dev-global.css / mashlib) */
|
|
13886
13904
|
|
|
13887
13905
|
/* ── Layout: Three-column browser ────────────────────────────── */
|
|
@@ -13995,7 +14013,109 @@ ___CSS_LOADER_EXPORT___.push([module.id, `/* contactsPane styles — extracted f
|
|
|
13995
14013
|
.contactPane .claimSuccess {
|
|
13996
14014
|
font-size: 140%;
|
|
13997
14015
|
}
|
|
13998
|
-
|
|
14016
|
+
|
|
14017
|
+
.contactPane .addressBook-grid {
|
|
14018
|
+
max-width: max-content;
|
|
14019
|
+
|
|
14020
|
+
}
|
|
14021
|
+
|
|
14022
|
+
.contactPane .addressBookSection {
|
|
14023
|
+
width: 100%;
|
|
14024
|
+
max-width: 100%;
|
|
14025
|
+
box-sizing: border-box;
|
|
14026
|
+
margin-bottom: var(--spacing-md);
|
|
14027
|
+
box-sizing: border-box;
|
|
14028
|
+
margin-bottom: var(--spacing-md);
|
|
14029
|
+
}
|
|
14030
|
+
|
|
14031
|
+
@media (min-width: 900px) {
|
|
14032
|
+
.contactPane .addressBookSection {
|
|
14033
|
+
margin-bottom: 0;
|
|
14034
|
+
}
|
|
14035
|
+
}
|
|
14036
|
+
|
|
14037
|
+
/* Section Title - primary colored heading */
|
|
14038
|
+
.contactPane .section-title {
|
|
14039
|
+
font-size: 1.25em;
|
|
14040
|
+
font-weight: 600;
|
|
14041
|
+
color: var(--color-primary);
|
|
14042
|
+
margin: 0;
|
|
14043
|
+
}
|
|
14044
|
+
|
|
14045
|
+
/* Card Section Background */
|
|
14046
|
+
.contactPane .section-bg {
|
|
14047
|
+
background: var(--color-section-bg);
|
|
14048
|
+
border-radius: var(--border-radius-full);
|
|
14049
|
+
box-shadow: var(--box-shadow);
|
|
14050
|
+
padding: var(--spacing-md);
|
|
14051
|
+
}
|
|
14052
|
+
|
|
14053
|
+
.contactPane td {
|
|
14054
|
+
border: 1px dotted #999;
|
|
14055
|
+
}
|
|
14056
|
+
|
|
14057
|
+
/* Primary Button */
|
|
14058
|
+
.btn-primary {
|
|
14059
|
+
min-height: var(--min-touch-target);
|
|
14060
|
+
padding: var(--spacing-sm) var(--spacing-md);
|
|
14061
|
+
border: 1px solid var(--color-primary);
|
|
14062
|
+
border-radius: var(--border-radius-base);
|
|
14063
|
+
background: var(--color-primary);
|
|
14064
|
+
color: white;
|
|
14065
|
+
font-weight: 600;
|
|
14066
|
+
cursor: pointer;
|
|
14067
|
+
transition: all var(--animation-duration) ease;
|
|
14068
|
+
}
|
|
14069
|
+
|
|
14070
|
+
.btn-primary:hover {
|
|
14071
|
+
background: color-mix(in srgb, var(--color-primary) 90%, black);
|
|
14072
|
+
box-shadow: 0 2px 4px rgba(124, 77, 255, 0.2);
|
|
14073
|
+
}
|
|
14074
|
+
|
|
14075
|
+
.btn-primary:active {
|
|
14076
|
+
box-shadow: 0 1px 2px rgba(124, 77, 255, 0.2);
|
|
14077
|
+
}
|
|
14078
|
+
|
|
14079
|
+
.btn-primary:disabled {
|
|
14080
|
+
opacity: 0.6;
|
|
14081
|
+
cursor: not-allowed;
|
|
14082
|
+
transform: none;
|
|
14083
|
+
}
|
|
14084
|
+
|
|
14085
|
+
/* Secondary button */
|
|
14086
|
+
.btn-secondary {
|
|
14087
|
+
min-height: var(--min-touch-target);
|
|
14088
|
+
padding: var(--spacing-sm) var(--spacing-md);
|
|
14089
|
+
border: var(--border-width-thin) solid var(--color-secondary);
|
|
14090
|
+
border-radius: var(--border-radius-base);
|
|
14091
|
+
background: var(--color-secondary);
|
|
14092
|
+
color: var(--color-background);
|
|
14093
|
+
font-weight: var(--font-weight-bold);
|
|
14094
|
+
cursor: pointer;
|
|
14095
|
+
transition: all var(--animation-duration) ease;
|
|
14096
|
+
text-decoration: none;
|
|
14097
|
+
display: inline-flex;
|
|
14098
|
+
align-items: center;
|
|
14099
|
+
justify-content: center;
|
|
14100
|
+
}
|
|
14101
|
+
|
|
14102
|
+
.btn-secondary:hover {
|
|
14103
|
+
background: color-mix(in srgb, var(--color-secondary) 85%, black);
|
|
14104
|
+
}
|
|
14105
|
+
|
|
14106
|
+
.btn-secondary:disabled {
|
|
14107
|
+
opacity: var(--opacity-disabled);
|
|
14108
|
+
cursor: not-allowed;
|
|
14109
|
+
}
|
|
14110
|
+
|
|
14111
|
+
/* Action Button Focus - used by ChatWithMe, ProfileCard */
|
|
14112
|
+
.action-button-focus:focus,
|
|
14113
|
+
.action-button-focus:focus-visible {
|
|
14114
|
+
outline: 3px solid var(--color-primary) !important;
|
|
14115
|
+
outline-offset: 2px !important;
|
|
14116
|
+
box-shadow: 0 0 0 2px var(--color-background), 0 0 0 5px rgba(124, 77, 255, 0.25) !important;
|
|
14117
|
+
z-index: 1;
|
|
14118
|
+
}`, "",{"version":3,"sources":["webpack://./src/styles/contactsPane.css"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C;EACE,6BAA6B;EAC7B,WAAW,EAAE,UAAU;EACvB,gBAAgB;EAChB,8BAA8B;EAC9B,mBAAmB;EACnB,SAAS;EACT,UAAU;EACV,YAAY;AACd;;AAEA,4CAA4C;AAC5C;EACE,0BAA0B;EAC1B,mBAAmB;EACnB,mBAAmB;AACrB;AACA,0EAA0E;AAC1E,qFAAqF;;AAErF,mEAAmE;;AAEnE;EACE,yBAAyB;EACzB,eAAe;EACf,eAAe;AACjB;;AAEA;EACE,eAAe;EACf,qBAAqB;AACvB;;AAEA;EACE,eAAe;AACjB;;AAEA;EACE,gBAAgB;AAClB;;AAEA;EACE,SAAS;AACX;;AAEA;;EAEE,cAAc;AAChB;;AAEA,mEAAmE;;AAEnE;EACE,2CAA2C;EAC3C,wCAAwC;EACxC,WAAW;EACX,gCAAgC;EAChC,oBAAoB;EACpB,aAAa;AACf;;AAEA,mEAAmE;;AAEnE;EACE,cAAc;AAChB;;AAEA,mEAAmE;;AAEnE;EACE,2CAA2C;EAC3C,wCAAwC;AAC1C;;AAEA,mEAAmE;;AAEnE;EACE,WAAW;AACb;;AAEA,mEAAmE;;AAEnE;EACE,0BAA0B;EAC1B,yBAAyB;AAC3B;;AAEA;EACE,wBAAwB;EACxB,yBAAyB;AAC3B;;AAEA,mEAAmE;;AAEnE;EACE,8BAA8B;EAC9B,gCAAgC;AAClC;;AAEA;EACE,sBAAsB;AACxB;;AAEA;EACE,mCAAmC;EACnC,8BAA8B;AAChC;;AAEA;EACE,sBAAsB;AACxB;;AAEA,mEAAmE;;AAEnE;EACE,sBAAsB;AACxB;;AAEA;EACE,sBAAsB;AACxB;;AAEA;EACE,aAAa;AACf;;AAEA,mEAAmE;;AAEnE;EACE,eAAe;AACjB;;AAEA;EACE,sBAAsB;;AAExB;;AAEA;EACE,WAAW;EACX,eAAe;EACf,sBAAsB;EACtB,gCAAgC;EAChC,sBAAsB;EACtB,gCAAgC;AAClC;;AAEA;EACE;IACE,gBAAgB;EAClB;AACF;;AAEA,4CAA4C;AAC5C;EACE,iBAAiB;EACjB,gBAAgB;EAChB,2BAA2B;EAC3B,SAAS;AACX;;AAEA,4BAA4B;AAC5B;EACE,mCAAmC;EACnC,wCAAwC;EACxC,6BAA6B;EAC7B,0BAA0B;AAC5B;;AAEA;EACE,uBAAuB;AACzB;;AAEA,mBAAmB;AACnB;EACE,mCAAmC;EACnC,4CAA4C;EAC5C,sCAAsC;EACtC,wCAAwC;EACxC,gCAAgC;EAChC,YAAY;EACZ,gBAAgB;EAChB,eAAe;EACf,8CAA8C;AAChD;;AAEA;EACE,+DAA+D;EAC/D,6CAA6C;AAC/C;;AAEA;EACE,6CAA6C;AAC/C;;AAEA;EACE,YAAY;EACZ,mBAAmB;EACnB,eAAe;AACjB;;AAEA,qBAAqB;AACrB;EACE,mCAAmC;EACnC,4CAA4C;EAC5C,6DAA6D;EAC7D,wCAAwC;EACxC,kCAAkC;EAClC,8BAA8B;EAC9B,oCAAoC;EACpC,eAAe;EACf,8CAA8C;EAC9C,qBAAqB;EACrB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;;AAEA;EACE,iEAAiE;AACnE;;AAEA;EACE,gCAAgC;EAChC,mBAAmB;AACrB;;AAEA,0DAA0D;AAC1D;;EAEE,kDAAkD;EAClD,8BAA8B;EAC9B,4FAA4F;EAC5F,UAAU;AACZ","sourcesContent":["/* Visually hidden utility for accessibility */\n.visually-hidden {\n position: absolute !important;\n height: 1px; width: 1px;\n overflow: hidden;\n clip: rect(1px, 1px, 1px, 1px);\n white-space: nowrap;\n border: 0;\n padding: 0;\n margin: -1px;\n}\n\n/* Focus indicator for keyboard navigation */\n.personRow:focus, .dataCell:focus, tr[tabindex=\"0\"]:focus {\n outline: 2px solid #1976d2;\n outline-offset: 2px;\n background: #e3f2fd;\n}\n/* contactsPane styles — extracted from inline styles in contactsPane.js */\n/* Uses CSS custom properties from the global stylesheet (dev-global.css / mashlib) */\n\n/* ── Layout: Three-column browser ────────────────────────────── */\n\n.contactPane .bookTable {\n border-collapse: collapse;\n margin-right: 0;\n max-height: 9in;\n}\n\n.contactPane .groupsHeader {\n min-width: 10em;\n padding-bottom: 0.2em;\n}\n\n.contactPane .peopleHeader {\n min-width: 18em;\n}\n\n.contactPane .peopleMain {\n overflow: scroll;\n}\n\n.contactPane .cardMain {\n margin: 0;\n}\n\n.contactPane .groupsMain,\n.contactPane .groupsFooter {\n padding: 0.1em;\n}\n\n/* ── Search ──────────────────────────────────────────────────── */\n\n.contactPane .searchInput {\n border: 0.1em solid var(--color-text-muted);\n border-radius: var(--border-radius-base);\n width: 100%;\n font-size: var(--font-size-base);\n padding: 0.1em 0.6em;\n margin: 0.2em;\n}\n\n/* ── Data cells ──────────────────────────────────────────────── */\n\n.contactPane .dataCell {\n padding: 0.1em;\n}\n\n/* ── Rendered sub-pane ───────────────────────────────────────── */\n\n.contactPane .renderPane {\n border: 0.1em solid var(--color-text-muted);\n border-radius: var(--border-radius-base);\n}\n\n/* ── Delete button ───────────────────────────────────────────── */\n\n.contactPane .deleteButton {\n height: 2em;\n}\n\n/* ── Sharing button & icon ───────────────────────────────────── */\n\n.contactPane .sharingButton {\n padding: var(--spacing-md);\n margin: var(--spacing-md);\n}\n\n.contactPane .sharingButtonIcon {\n width: var(--spacing-lg);\n height: var(--spacing-lg);\n}\n\n/* ── \"All\" groups button ─────────────────────────────────────── */\n\n.contactPane .allGroupsButton {\n margin-left: var(--spacing-md);\n font-size: var(--font-size-base);\n}\n\n.contactPane .allGroupsButton--loading {\n background-color: #ff8;\n}\n\n.contactPane .allGroupsButton--active {\n background-color: var(--color-text);\n color: var(--color-background);\n}\n\n.contactPane .allGroupsButton--loaded {\n background-color: #cfc;\n}\n\n/* ── Selection & visibility states ───────────────────────────── */\n\n.contactPane .selected {\n background-color: #cce;\n}\n\n.contactPane .group-loading {\n background-color: #ffe;\n}\n\n.contactPane .hidden {\n display: none;\n}\n\n/* ── Mint new address book ───────────────────────────────────── */\n\n.contactPane .claimSuccess {\n font-size: 140%;\n}\n\n.contactPane .addressBook-grid {\n max-width: max-content;\n\n}\n\n.contactPane .addressBookSection {\n width: 100%;\n max-width: 100%;\n box-sizing: border-box;\n margin-bottom: var(--spacing-md);\n box-sizing: border-box;\n margin-bottom: var(--spacing-md);\n}\n\n@media (min-width: 900px) {\n .contactPane .addressBookSection {\n margin-bottom: 0;\n }\n}\n\n/* Section Title - primary colored heading */\n.contactPane .section-title {\n font-size: 1.25em;\n font-weight: 600;\n color: var(--color-primary);\n margin: 0;\n}\n\n/* Card Section Background */\n.contactPane .section-bg {\n background: var(--color-section-bg);\n border-radius: var(--border-radius-full);\n box-shadow: var(--box-shadow);\n padding: var(--spacing-md);\n}\n\n.contactPane td {\n border: 1px dotted #999;\n}\n\n/* Primary Button */\n.btn-primary {\n min-height: var(--min-touch-target);\n padding: var(--spacing-sm) var(--spacing-md);\n border: 1px solid var(--color-primary);\n border-radius: var(--border-radius-base);\n background: var(--color-primary);\n color: white;\n font-weight: 600;\n cursor: pointer;\n transition: all var(--animation-duration) ease;\n}\n\n.btn-primary:hover {\n background: color-mix(in srgb, var(--color-primary) 90%, black);\n box-shadow: 0 2px 4px rgba(124, 77, 255, 0.2);\n}\n\n.btn-primary:active {\n box-shadow: 0 1px 2px rgba(124, 77, 255, 0.2);\n}\n\n.btn-primary:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n transform: none;\n}\n\n/* Secondary button */\n.btn-secondary {\n min-height: var(--min-touch-target);\n padding: var(--spacing-sm) var(--spacing-md);\n border: var(--border-width-thin) solid var(--color-secondary);\n border-radius: var(--border-radius-base);\n background: var(--color-secondary);\n color: var(--color-background);\n font-weight: var(--font-weight-bold);\n cursor: pointer;\n transition: all var(--animation-duration) ease;\n text-decoration: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n}\n\n.btn-secondary:hover {\n background: color-mix(in srgb, var(--color-secondary) 85%, black);\n}\n\n.btn-secondary:disabled {\n opacity: var(--opacity-disabled);\n cursor: not-allowed;\n}\n\n/* Action Button Focus - used by ChatWithMe, ProfileCard */\n.action-button-focus:focus,\n.action-button-focus:focus-visible {\n outline: 3px solid var(--color-primary) !important;\n outline-offset: 2px !important;\n box-shadow: 0 0 0 2px var(--color-background), 0 0 0 5px rgba(124, 77, 255, 0.25) !important;\n z-index: 1;\n}"],"sourceRoot":""}]);
|
|
13999
14119
|
// Exports
|
|
14000
14120
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
|
|
14001
14121
|
|
|
@@ -14003,15 +14123,15 @@ ___CSS_LOADER_EXPORT___.push([module.id, `/* contactsPane styles — extracted f
|
|
|
14003
14123
|
/***/ },
|
|
14004
14124
|
|
|
14005
14125
|
/***/ 479
|
|
14006
|
-
(module, __nested_webpack_exports__,
|
|
14126
|
+
(module, __nested_webpack_exports__, __nested_webpack_require_14855__) {
|
|
14007
14127
|
|
|
14008
|
-
/* harmony export */
|
|
14128
|
+
/* harmony export */ __nested_webpack_require_14855__.d(__nested_webpack_exports__, {
|
|
14009
14129
|
/* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
14010
14130
|
/* harmony export */ });
|
|
14011
|
-
/* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ =
|
|
14012
|
-
/* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/
|
|
14013
|
-
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ =
|
|
14014
|
-
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/
|
|
14131
|
+
/* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_14855__(354);
|
|
14132
|
+
/* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__nested_webpack_require_14855__.n(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
|
|
14133
|
+
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_14855__(314);
|
|
14134
|
+
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__nested_webpack_require_14855__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);
|
|
14015
14135
|
// Imports
|
|
14016
14136
|
|
|
14017
14137
|
|
|
@@ -14031,15 +14151,15 @@ ___CSS_LOADER_EXPORT___.push([module.id, `/* individual.js styles — extracted
|
|
|
14031
14151
|
/***/ },
|
|
14032
14152
|
|
|
14033
14153
|
/***/ 715
|
|
14034
|
-
(module, __nested_webpack_exports__,
|
|
14154
|
+
(module, __nested_webpack_exports__, __nested_webpack_require_16858__) {
|
|
14035
14155
|
|
|
14036
|
-
/* harmony export */
|
|
14156
|
+
/* harmony export */ __nested_webpack_require_16858__.d(__nested_webpack_exports__, {
|
|
14037
14157
|
/* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
14038
14158
|
/* harmony export */ });
|
|
14039
|
-
/* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ =
|
|
14040
|
-
/* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/
|
|
14041
|
-
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ =
|
|
14042
|
-
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/
|
|
14159
|
+
/* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_16858__(354);
|
|
14160
|
+
/* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__nested_webpack_require_16858__.n(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
|
|
14161
|
+
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_16858__(314);
|
|
14162
|
+
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__nested_webpack_require_16858__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);
|
|
14043
14163
|
// Imports
|
|
14044
14164
|
|
|
14045
14165
|
|
|
@@ -14063,15 +14183,15 @@ ___CSS_LOADER_EXPORT___.push([module.id, `/* mugshotGallery.js styles — extrac
|
|
|
14063
14183
|
/***/ },
|
|
14064
14184
|
|
|
14065
14185
|
/***/ 434
|
|
14066
|
-
(module, __nested_webpack_exports__,
|
|
14186
|
+
(module, __nested_webpack_exports__, __nested_webpack_require_19079__) {
|
|
14067
14187
|
|
|
14068
|
-
/* harmony export */
|
|
14188
|
+
/* harmony export */ __nested_webpack_require_19079__.d(__nested_webpack_exports__, {
|
|
14069
14189
|
/* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
14070
14190
|
/* harmony export */ });
|
|
14071
|
-
/* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ =
|
|
14072
|
-
/* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/
|
|
14073
|
-
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ =
|
|
14074
|
-
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/
|
|
14191
|
+
/* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_19079__(354);
|
|
14192
|
+
/* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__nested_webpack_require_19079__.n(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
|
|
14193
|
+
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_19079__(314);
|
|
14194
|
+
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__nested_webpack_require_19079__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);
|
|
14075
14195
|
// Imports
|
|
14076
14196
|
|
|
14077
14197
|
|
|
@@ -14338,15 +14458,15 @@ ___CSS_LOADER_EXPORT___.push([module.id, `/* Solid-UI form */
|
|
|
14338
14458
|
/***/ },
|
|
14339
14459
|
|
|
14340
14460
|
/***/ 295
|
|
14341
|
-
(module, __nested_webpack_exports__,
|
|
14461
|
+
(module, __nested_webpack_exports__, __nested_webpack_require_37517__) {
|
|
14342
14462
|
|
|
14343
|
-
/* harmony export */
|
|
14463
|
+
/* harmony export */ __nested_webpack_require_37517__.d(__nested_webpack_exports__, {
|
|
14344
14464
|
/* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
14345
14465
|
/* harmony export */ });
|
|
14346
|
-
/* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ =
|
|
14347
|
-
/* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/
|
|
14348
|
-
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ =
|
|
14349
|
-
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/
|
|
14466
|
+
/* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_37517__(354);
|
|
14467
|
+
/* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__nested_webpack_require_37517__.n(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
|
|
14468
|
+
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_37517__(314);
|
|
14469
|
+
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__nested_webpack_require_37517__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);
|
|
14350
14470
|
// Imports
|
|
14351
14471
|
|
|
14352
14472
|
|
|
@@ -14408,15 +14528,15 @@ ___CSS_LOADER_EXPORT___.push([module.id, `/* toolsPane.js styles — extracted f
|
|
|
14408
14528
|
/***/ },
|
|
14409
14529
|
|
|
14410
14530
|
/***/ 886
|
|
14411
|
-
(module, __nested_webpack_exports__,
|
|
14531
|
+
(module, __nested_webpack_exports__, __nested_webpack_require_41736__) {
|
|
14412
14532
|
|
|
14413
|
-
/* harmony export */
|
|
14533
|
+
/* harmony export */ __nested_webpack_require_41736__.d(__nested_webpack_exports__, {
|
|
14414
14534
|
/* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
14415
14535
|
/* harmony export */ });
|
|
14416
|
-
/* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ =
|
|
14417
|
-
/* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/
|
|
14418
|
-
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ =
|
|
14419
|
-
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/
|
|
14536
|
+
/* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_41736__(354);
|
|
14537
|
+
/* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__nested_webpack_require_41736__.n(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
|
|
14538
|
+
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_41736__(314);
|
|
14539
|
+
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__nested_webpack_require_41736__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);
|
|
14420
14540
|
// Imports
|
|
14421
14541
|
|
|
14422
14542
|
|
|
@@ -14748,13 +14868,13 @@ module.exports = insertStyleElement;
|
|
|
14748
14868
|
/***/ },
|
|
14749
14869
|
|
|
14750
14870
|
/***/ 56
|
|
14751
|
-
(module, __unused_webpack_exports,
|
|
14871
|
+
(module, __unused_webpack_exports, __nested_webpack_require_53105__) {
|
|
14752
14872
|
|
|
14753
14873
|
|
|
14754
14874
|
|
|
14755
14875
|
/* istanbul ignore next */
|
|
14756
14876
|
function setAttributesWithoutAttributes(styleElement) {
|
|
14757
|
-
var nonce = true ?
|
|
14877
|
+
var nonce = true ? __nested_webpack_require_53105__.nc : 0;
|
|
14758
14878
|
if (nonce) {
|
|
14759
14879
|
styleElement.setAttribute("nonce", nonce);
|
|
14760
14880
|
}
|
|
@@ -14877,7 +14997,7 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__104__;
|
|
|
14877
14997
|
/******/ var __webpack_module_cache__ = {};
|
|
14878
14998
|
/******/
|
|
14879
14999
|
/******/ // The require function
|
|
14880
|
-
/******/ function
|
|
15000
|
+
/******/ function __nested_webpack_require_55817__(moduleId) {
|
|
14881
15001
|
/******/ // Check if module is in cache
|
|
14882
15002
|
/******/ var cachedModule = __webpack_module_cache__[moduleId];
|
|
14883
15003
|
/******/ if (cachedModule !== undefined) {
|
|
@@ -14891,7 +15011,7 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__104__;
|
|
|
14891
15011
|
/******/ };
|
|
14892
15012
|
/******/
|
|
14893
15013
|
/******/ // Execute the module function
|
|
14894
|
-
/******/ __webpack_modules__[moduleId](module, module.exports,
|
|
15014
|
+
/******/ __webpack_modules__[moduleId](module, module.exports, __nested_webpack_require_55817__);
|
|
14895
15015
|
/******/
|
|
14896
15016
|
/******/ // Return the exports of the module
|
|
14897
15017
|
/******/ return module.exports;
|
|
@@ -14901,11 +15021,11 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__104__;
|
|
|
14901
15021
|
/******/ /* webpack/runtime/compat get default export */
|
|
14902
15022
|
/******/ (() => {
|
|
14903
15023
|
/******/ // getDefaultExport function for compatibility with non-harmony modules
|
|
14904
|
-
/******/
|
|
15024
|
+
/******/ __nested_webpack_require_55817__.n = (module) => {
|
|
14905
15025
|
/******/ var getter = module && module.__esModule ?
|
|
14906
15026
|
/******/ () => (module['default']) :
|
|
14907
15027
|
/******/ () => (module);
|
|
14908
|
-
/******/
|
|
15028
|
+
/******/ __nested_webpack_require_55817__.d(getter, { a: getter });
|
|
14909
15029
|
/******/ return getter;
|
|
14910
15030
|
/******/ };
|
|
14911
15031
|
/******/ })();
|
|
@@ -14913,9 +15033,9 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__104__;
|
|
|
14913
15033
|
/******/ /* webpack/runtime/define property getters */
|
|
14914
15034
|
/******/ (() => {
|
|
14915
15035
|
/******/ // define getter functions for harmony exports
|
|
14916
|
-
/******/
|
|
15036
|
+
/******/ __nested_webpack_require_55817__.d = (exports, definition) => {
|
|
14917
15037
|
/******/ for(var key in definition) {
|
|
14918
|
-
/******/ if(
|
|
15038
|
+
/******/ if(__nested_webpack_require_55817__.o(definition, key) && !__nested_webpack_require_55817__.o(exports, key)) {
|
|
14919
15039
|
/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
|
|
14920
15040
|
/******/ }
|
|
14921
15041
|
/******/ }
|
|
@@ -14924,50 +15044,50 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__104__;
|
|
|
14924
15044
|
/******/
|
|
14925
15045
|
/******/ /* webpack/runtime/hasOwnProperty shorthand */
|
|
14926
15046
|
/******/ (() => {
|
|
14927
|
-
/******/
|
|
15047
|
+
/******/ __nested_webpack_require_55817__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
|
|
14928
15048
|
/******/ })();
|
|
14929
15049
|
/******/
|
|
14930
15050
|
/******/ /* webpack/runtime/nonce */
|
|
14931
15051
|
/******/ (() => {
|
|
14932
|
-
/******/
|
|
15052
|
+
/******/ __nested_webpack_require_55817__.nc = undefined;
|
|
14933
15053
|
/******/ })();
|
|
14934
15054
|
/******/
|
|
14935
15055
|
/************************************************************************/
|
|
14936
15056
|
var __nested_webpack_exports__ = {};
|
|
14937
15057
|
|
|
14938
15058
|
// EXPORTS
|
|
14939
|
-
|
|
15059
|
+
__nested_webpack_require_55817__.d(__nested_webpack_exports__, {
|
|
14940
15060
|
"default": () => (/* binding */ src_contactsPane)
|
|
14941
15061
|
});
|
|
14942
15062
|
|
|
14943
15063
|
// UNUSED EXPORTS: getSameAs
|
|
14944
15064
|
|
|
14945
15065
|
// EXTERNAL MODULE: external {"commonjs":"solid-logic","commonjs2":"solid-logic","amd":"solid-logic","root":"SolidLogic"}
|
|
14946
|
-
var external_commonjs_solid_logic_commonjs2_solid_logic_amd_solid_logic_root_SolidLogic_ =
|
|
15066
|
+
var external_commonjs_solid_logic_commonjs2_solid_logic_amd_solid_logic_root_SolidLogic_ = __nested_webpack_require_55817__(941);
|
|
14947
15067
|
// EXTERNAL MODULE: external {"commonjs":"solid-ui","commonjs2":"solid-ui","amd":"solid-ui","root":"UI"}
|
|
14948
|
-
var external_commonjs_solid_ui_commonjs2_solid_ui_amd_solid_ui_root_UI_ =
|
|
15068
|
+
var external_commonjs_solid_ui_commonjs2_solid_ui_amd_solid_ui_root_UI_ = __nested_webpack_require_55817__(104);
|
|
14949
15069
|
// EXTERNAL MODULE: external {"commonjs":"rdflib","commonjs2":"rdflib","amd":"rdflib","root":"$rdf"}
|
|
14950
|
-
var external_commonjs_rdflib_commonjs2_rdflib_amd_rdflib_root_$rdf_ =
|
|
15070
|
+
var external_commonjs_rdflib_commonjs2_rdflib_amd_rdflib_root_$rdf_ = __nested_webpack_require_55817__(53);
|
|
14951
15071
|
// EXTERNAL MODULE: ./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js
|
|
14952
|
-
var injectStylesIntoStyleTag =
|
|
14953
|
-
var injectStylesIntoStyleTag_default = /*#__PURE__*/
|
|
15072
|
+
var injectStylesIntoStyleTag = __nested_webpack_require_55817__(72);
|
|
15073
|
+
var injectStylesIntoStyleTag_default = /*#__PURE__*/__nested_webpack_require_55817__.n(injectStylesIntoStyleTag);
|
|
14954
15074
|
// EXTERNAL MODULE: ./node_modules/style-loader/dist/runtime/styleDomAPI.js
|
|
14955
|
-
var styleDomAPI =
|
|
14956
|
-
var styleDomAPI_default = /*#__PURE__*/
|
|
15075
|
+
var styleDomAPI = __nested_webpack_require_55817__(825);
|
|
15076
|
+
var styleDomAPI_default = /*#__PURE__*/__nested_webpack_require_55817__.n(styleDomAPI);
|
|
14957
15077
|
// EXTERNAL MODULE: ./node_modules/style-loader/dist/runtime/insertBySelector.js
|
|
14958
|
-
var insertBySelector =
|
|
14959
|
-
var insertBySelector_default = /*#__PURE__*/
|
|
15078
|
+
var insertBySelector = __nested_webpack_require_55817__(659);
|
|
15079
|
+
var insertBySelector_default = /*#__PURE__*/__nested_webpack_require_55817__.n(insertBySelector);
|
|
14960
15080
|
// EXTERNAL MODULE: ./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js
|
|
14961
|
-
var setAttributesWithoutAttributes =
|
|
14962
|
-
var setAttributesWithoutAttributes_default = /*#__PURE__*/
|
|
15081
|
+
var setAttributesWithoutAttributes = __nested_webpack_require_55817__(56);
|
|
15082
|
+
var setAttributesWithoutAttributes_default = /*#__PURE__*/__nested_webpack_require_55817__.n(setAttributesWithoutAttributes);
|
|
14963
15083
|
// EXTERNAL MODULE: ./node_modules/style-loader/dist/runtime/insertStyleElement.js
|
|
14964
|
-
var insertStyleElement =
|
|
14965
|
-
var insertStyleElement_default = /*#__PURE__*/
|
|
15084
|
+
var insertStyleElement = __nested_webpack_require_55817__(540);
|
|
15085
|
+
var insertStyleElement_default = /*#__PURE__*/__nested_webpack_require_55817__.n(insertStyleElement);
|
|
14966
15086
|
// EXTERNAL MODULE: ./node_modules/style-loader/dist/runtime/styleTagTransform.js
|
|
14967
|
-
var styleTagTransform =
|
|
14968
|
-
var styleTagTransform_default = /*#__PURE__*/
|
|
15087
|
+
var styleTagTransform = __nested_webpack_require_55817__(113);
|
|
15088
|
+
var styleTagTransform_default = /*#__PURE__*/__nested_webpack_require_55817__.n(styleTagTransform);
|
|
14969
15089
|
// EXTERNAL MODULE: ./node_modules/css-loader/dist/cjs.js!./src/styles/webidControl.css
|
|
14970
|
-
var webidControl =
|
|
15090
|
+
var webidControl = __nested_webpack_require_55817__(886);
|
|
14971
15091
|
;// ./src/styles/webidControl.css
|
|
14972
15092
|
|
|
14973
15093
|
|
|
@@ -15735,7 +15855,7 @@ function mintNewAddressBook (dataBrowserContext, context) {
|
|
|
15735
15855
|
}
|
|
15736
15856
|
|
|
15737
15857
|
// EXTERNAL MODULE: ./node_modules/css-loader/dist/cjs.js!./src/styles/mugshotGallery.css
|
|
15738
|
-
var mugshotGallery =
|
|
15858
|
+
var mugshotGallery = __nested_webpack_require_55817__(715);
|
|
15739
15859
|
;// ./src/styles/mugshotGallery.css
|
|
15740
15860
|
|
|
15741
15861
|
|
|
@@ -16209,7 +16329,7 @@ const individualAndOrganizationForm_namespaceObject = "# This turtle file define
|
|
|
16209
16329
|
;// ./src/ontology/vcard.ttl
|
|
16210
16330
|
const vcard_namespaceObject = "@prefix : <http://www.w3.org/2006/vcard/ns#> .\n@prefix owl: <http://www.w3.org/2002/07/owl#> .\n@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .\n@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .\n@prefix xml: <http://www.w3.org/XML/1998/namespace> .\n@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .\n\n:Acquaintance a owl:Class ;\n rdfs:label \"Acquaintance\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :RelatedType .\n\n:Agent a owl:Class ;\n rdfs:label \"Agent\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :RelatedType .\n\n:BBS a owl:Class ;\n rdfs:label \"BBS\"@en ;\n rdfs:comment \"This class is deprecated\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :TelephoneType ;\n owl:deprecated true .\n\n:Car a owl:Class ;\n rdfs:label \"Car\"@en ;\n rdfs:comment \"This class is deprecated\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :TelephoneType ;\n owl:deprecated true .\n\n:Cell a owl:Class ;\n rdfs:label \"Cell\"@en ;\n rdfs:comment \"Also called mobile telephone\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :TelephoneType .\n\n:Child a owl:Class ;\n rdfs:label \"Child\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :RelatedType .\n\n:Colleague a owl:Class ;\n rdfs:label \"Colleague\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :RelatedType .\n\n:Contact a owl:Class ;\n rdfs:label \"Contact\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :RelatedType .\n\n:Coresident a owl:Class ;\n rdfs:label \"Coresident\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :RelatedType .\n\n:Coworker a owl:Class ;\n rdfs:label \"Coworker\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :RelatedType .\n\n:Crush a owl:Class ;\n rdfs:label \"Crush\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :RelatedType .\n\n:Date a owl:Class ;\n rdfs:label \"Date\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :RelatedType .\n\n:Dom a owl:Class ;\n rdfs:label \"Dom\"@en ;\n rdfs:comment \"This class is deprecated\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :Type ;\n owl:deprecated true .\n\n:Emergency a owl:Class ;\n rdfs:label \"Emergency\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :RelatedType .\n\n:Fax a owl:Class ;\n rdfs:label \"Fax\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :TelephoneType .\n\n:Female a owl:Class ;\n rdfs:label \"Female\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :Gender .\n\n:Friend a owl:Class ;\n rdfs:label \"Friend\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :RelatedType .\n\n:Home a owl:Class ;\n rdfs:label \"Home\"@en ;\n rdfs:comment \"This implies that the property is related to an individual's personal life\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :Type .\n\n:ISDN a owl:Class ;\n rdfs:label \"ISDN\"@en ;\n rdfs:comment \"This class is deprecated\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :Type ;\n owl:deprecated true .\n\n:Internet a owl:Class ;\n rdfs:label \"Internet\"@en ;\n rdfs:comment \"This class is deprecated\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :Type ;\n owl:deprecated true .\n\n:Intl a owl:Class ;\n rdfs:label \"Intl\"@en ;\n rdfs:comment \"This class is deprecated\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :Type ;\n owl:deprecated true .\n\n:Kin a owl:Class ;\n rdfs:label \"Kin\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :RelatedType .\n\n:Label a owl:Class ;\n rdfs:label \"Label\"@en ;\n rdfs:comment \"This class is deprecated\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :Type ;\n owl:deprecated true .\n\n:Male a owl:Class ;\n rdfs:label \"Male\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :Gender .\n\n:Me a owl:Class ;\n rdfs:label \"Me\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :RelatedType .\n\n:Met a owl:Class ;\n rdfs:label \"Met\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :RelatedType .\n\n:Modem a owl:Class ;\n rdfs:label \"Modem\"@en ;\n rdfs:comment \"This class is deprecated\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :TelephoneType ;\n owl:deprecated true .\n\n:Msg a owl:Class ;\n rdfs:label \"Msg\"@en ;\n rdfs:comment \"This class is deprecated\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :TelephoneType ;\n owl:deprecated true .\n\n:Muse a owl:Class ;\n rdfs:label \"Muse\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :RelatedType .\n\n:Neighbor a owl:Class ;\n rdfs:label \"Neighbor\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :RelatedType .\n\n:None a owl:Class ;\n rdfs:label \"None\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :Gender .\n\n:Other a owl:Class ;\n rdfs:label \"Other\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :Gender .\n\n:PCS a owl:Class ;\n rdfs:label \"PCS\"@en ;\n rdfs:comment \"This class is deprecated\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :TelephoneType ;\n owl:deprecated true .\n\n:Pager a owl:Class ;\n rdfs:label \"Pager\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :TelephoneType .\n\n:Parcel a owl:Class ;\n rdfs:label \"Parcel\"@en ;\n rdfs:comment \"This class is deprecated\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :Type ;\n owl:deprecated true .\n\n:Parent a owl:Class ;\n rdfs:label \"Parent\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :RelatedType .\n\n:Postal a owl:Class ;\n rdfs:label \"Postal\"@en ;\n rdfs:comment \"This class is deprecated\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :Type ;\n owl:deprecated true .\n\n:Pref a owl:Class ;\n rdfs:label \"Pref\"@en ;\n rdfs:comment \"This class is deprecated\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :Type ;\n owl:deprecated true .\n\n:Sibling a owl:Class ;\n rdfs:label \"Sibling\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :RelatedType .\n\n:Spouse a owl:Class ;\n rdfs:label \"Spouse\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :RelatedType .\n\n:Sweetheart a owl:Class ;\n rdfs:label \"Sweetheart\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :RelatedType .\n\n:Tel a owl:Class ;\n rdfs:label \"Tel\"@en ;\n rdfs:comment \"This class is deprecated. Use the hasTelephone object property.\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:deprecated true .\n\n:Text a owl:Class ;\n rdfs:label \"Text\"@en ;\n rdfs:comment \"Also called sms telephone\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :TelephoneType .\n\n:TextPhone a owl:Class ;\n rdfs:label \"Text phone\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :TelephoneType .\n\n:Unknown a owl:Class ;\n rdfs:label \"Unknown\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :Gender .\n\n:Video a owl:Class ;\n rdfs:label \"Video\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :TelephoneType .\n\n:Voice a owl:Class ;\n rdfs:label \"Voice\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :TelephoneType .\n\n:Work a owl:Class ;\n rdfs:label \"Work\"@en ;\n rdfs:comment \"This implies that the property is related to an individual's work place\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :Type .\n\n:X400 a owl:Class ;\n rdfs:label \"X400\"@en ;\n rdfs:comment \"This class is deprecated\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :Type ;\n owl:deprecated true .\n\n:adr a owl:ObjectProperty ;\n rdfs:label \"address\"@en ;\n rdfs:comment \"This object property has been mapped\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:equivalentProperty :hasAddress .\n\n:agent a owl:ObjectProperty ;\n rdfs:label \"agent\"@en ;\n rdfs:comment \"This object property has been deprecated\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:deprecated true .\n\n:anniversary a owl:DatatypeProperty ;\n rdfs:label \"anniversary\"@en ;\n rdfs:comment \"The date of marriage, or equivalent, of the object\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range [ a rdfs:Datatype ;\n owl:unionOf ( xsd:dateTime xsd:gYear ) ] .\n\n:bday a owl:DatatypeProperty ;\n rdfs:label \"birth date\"@en ;\n rdfs:comment \"To specify the birth date of the object\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range [ a rdfs:Datatype ;\n owl:unionOf ( xsd:dateTime xsd:dateTimeStamp xsd:gYear ) ] .\n\n:category a owl:DatatypeProperty ;\n rdfs:label \"category\"@en ;\n rdfs:comment \"The category information about the object, also known as tags\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range xsd:string .\n\n:class a owl:DatatypeProperty ;\n rdfs:label \"class\"@en ;\n rdfs:comment \"This data property has been deprecated\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:deprecated true .\n\n:email a owl:ObjectProperty ;\n rdfs:label \"email\"@en ;\n rdfs:comment \"This object property has been mapped\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:equivalentProperty :hasEmail .\n\n:extended-address a owl:DatatypeProperty ;\n rdfs:label \"extended address\"@en ;\n rdfs:comment \"This data property has been deprecated\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:deprecated true .\n\n:geo a owl:ObjectProperty ;\n rdfs:label \"geo\"@en ;\n rdfs:comment \"This object property has been mapped\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:equivalentProperty :hasGeo .\n\n:hasAdditionalName a owl:ObjectProperty ;\n rdfs:label \"has additional name\"@en ;\n rdfs:comment \"Used to support property parameters for the additional name data property\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasCalendarBusy a owl:ObjectProperty ;\n rdfs:label \"has calendar busy\"@en ;\n rdfs:comment \"To specify the busy time associated with the object. (Was called FBURL in RFC6350)\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasCalendarLink a owl:ObjectProperty ;\n rdfs:label \"has calendar link\"@en ;\n rdfs:comment \"To specify the calendar associated with the object. (Was called CALURI in RFC6350)\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasCalendarRequest a owl:ObjectProperty ;\n rdfs:label \"has calendar request\"@en ;\n rdfs:comment \"To specify the calendar user address to which a scheduling request be sent for the object. (Was called CALADRURI in RFC6350)\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasCategory a owl:ObjectProperty ;\n rdfs:label \"has category\"@en ;\n rdfs:comment \"Used to support property parameters for the category data property\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasCountryName a owl:ObjectProperty ;\n rdfs:label \"has country name\"@en ;\n rdfs:comment \"Used to support property parameters for the country name data property\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasFN a owl:ObjectProperty ;\n rdfs:label \"has formatted name\"@en ;\n rdfs:comment \"Used to support property parameters for the formatted name data property\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasFamilyName a owl:ObjectProperty ;\n rdfs:label \"has family name\"@en ;\n rdfs:comment \"Used to support property parameters for the family name data property\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasGender a owl:ObjectProperty ;\n rdfs:label \"has gender\"@en ;\n rdfs:comment \"To specify the sex or gender identity of the object. URIs are recommended to enable interoperable sex and gender codes to be used.\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasGivenName a owl:ObjectProperty ;\n rdfs:label \"has given name\"@en ;\n rdfs:comment \"Used to support property parameters for the given name data property\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasHonorificPrefix a owl:ObjectProperty ;\n rdfs:label \"has honorific prefix\"@en ;\n rdfs:comment \"Used to support property parameters for the honorific prefix data property\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasHonorificSuffix a owl:ObjectProperty ;\n rdfs:label \"has honorific suffix\"@en ;\n rdfs:comment \"Used to support property parameters for the honorific suffix data property\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasInstantMessage a owl:ObjectProperty ;\n rdfs:label \"has messaging\"@en ;\n rdfs:comment \"To specify the instant messaging and presence protocol communications with the object. (Was called IMPP in RFC6350)\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasLanguage a owl:ObjectProperty ;\n rdfs:label \"has language\"@en ;\n rdfs:comment \"Used to support property parameters for the language data property\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasLocality a owl:ObjectProperty ;\n rdfs:label \"has locality\"@en ;\n rdfs:comment \"Used to support property parameters for the locality data property\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasNickname a owl:ObjectProperty ;\n rdfs:label \"has nickname\"@en ;\n rdfs:comment \"Used to support property parameters for the nickname data property\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:seeAlso :nickname .\n\n:hasNote a owl:ObjectProperty ;\n rdfs:label \"has note\"@en ;\n rdfs:comment \"Used to support property parameters for the note data property\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasOrganizationName a owl:ObjectProperty ;\n rdfs:label \"has organization name\"@en ;\n rdfs:comment \"Used to support property parameters for the organization name data property\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasOrganizationUnit a owl:ObjectProperty ;\n rdfs:label \"has organization unit name\"@en ;\n rdfs:comment \"Used to support property parameters for the organization unit name data property\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasPostalCode a owl:ObjectProperty ;\n rdfs:label \"has postal code\"@en ;\n rdfs:comment \"Used to support property parameters for the postal code data property\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasRegion a owl:ObjectProperty ;\n rdfs:label \"has region\"@en ;\n rdfs:comment \"Used to support property parameters for the region data property\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasRelated a owl:ObjectProperty ;\n rdfs:label \"has related\"@en ;\n rdfs:comment \"To specify a relationship between another entity and the entity represented by this object\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasRole a owl:ObjectProperty ;\n rdfs:label \"has role\"@en ;\n rdfs:comment \"Used to support property parameters for the role data property\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasSource a owl:ObjectProperty ;\n rdfs:label \"has source\"@en ;\n rdfs:comment \"To identify the source of directory information of the object\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasStreetAddress a owl:ObjectProperty ;\n rdfs:label \"has street address\"@en ;\n rdfs:comment \"Used to support property parameters for the street address data property\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasTitle a owl:ObjectProperty ;\n rdfs:label \"has title\"@en ;\n rdfs:comment \"Used to support property parameters for the title data property\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasUID a owl:ObjectProperty ;\n rdfs:label \"has uid\"@en ;\n rdfs:comment \"To specify a value that represents a globally unique identifier corresponding to the object\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasValue a owl:ObjectProperty ;\n rdfs:label \"has value\"@en ;\n rdfs:comment \"Used to indicate the resource value of an object property that requires property parameters\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:label a owl:DatatypeProperty ;\n rdfs:label \"label\"@en ;\n rdfs:comment \"This data property has been deprecated\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:deprecated true .\n\n:language a owl:DatatypeProperty ;\n rdfs:label \"language\"@en ;\n rdfs:comment \"To specify the language that may be used for contacting the object. May also be used as a property parameter.\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:latitude a owl:DatatypeProperty ;\n rdfs:label \"latitude\"@en ;\n rdfs:comment \"This data property has been deprecated. See hasGeo\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:deprecated true .\n\n:longitude a owl:DatatypeProperty ;\n rdfs:label \"longitude\"@en ;\n rdfs:comment \"This data property has been deprecated. See hasGeo\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:deprecated true .\n\n:mailer a owl:DatatypeProperty ;\n rdfs:label \"mailer\"@en ;\n rdfs:comment \"This data property has been deprecated\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:deprecated true .\n\n:note a owl:DatatypeProperty ;\n rdfs:label \"note\"@en ;\n rdfs:comment \"A note associated with the object\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range xsd:string .\n\n:org a owl:ObjectProperty ;\n rdfs:label \"organization\"@en ;\n rdfs:comment \"This object property has been mapped. Use the organization-name data property.\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:equivalentProperty :organization-name .\n\n:organization-unit a owl:DatatypeProperty ;\n rdfs:label \"organizational unit name\"@en ;\n rdfs:comment \"To specify the organizational unit name associated with the object\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range xsd:string ;\n rdfs:subPropertyOf :organization-name .\n\n:post-office-box a owl:DatatypeProperty ;\n rdfs:label \"post office box\"@en ;\n rdfs:comment \"This data property has been deprecated\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:deprecated true .\n\n:prodid a owl:DatatypeProperty ;\n rdfs:label \"product id\"@en ;\n rdfs:comment \"To specify the identifier for the product that created the object\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range xsd:string .\n\n:rev a owl:DatatypeProperty ;\n rdfs:label \"revision\"@en ;\n rdfs:comment \"To specify revision information about the object\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range xsd:dateTime .\n\n:role a owl:DatatypeProperty ;\n rdfs:label \"role\"@en ;\n rdfs:comment \"To specify the function or part played in a particular situation by the object\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range xsd:string .\n\n:sort-string a owl:DatatypeProperty ;\n rdfs:label \"sort as\"@en ;\n rdfs:comment \"To specify the string to be used for national-language-specific sorting. Used as a property parameter only.\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range xsd:string .\n\n:title a owl:DatatypeProperty ;\n rdfs:label \"title\"@en ;\n rdfs:comment \"To specify the position or job of the object\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range xsd:string .\n\n:tz a owl:DatatypeProperty ;\n rdfs:label \"time zone\"@en ;\n rdfs:comment \"To indicate time zone information that is specific to the object. May also be used as a property parameter.\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range xsd:string .\n\n:value a owl:DatatypeProperty ;\n rdfs:label \"value\"@en ;\n rdfs:comment \"Used to indicate the literal value of a data property that requires property parameters\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:Address a owl:Class ;\n rdfs:label \"Address\"@en ;\n rdfs:comment \"To specify the components of the delivery address for the object\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:equivalentClass [ a owl:Class ;\n owl:unionOf ( [ a owl:Class ;\n owl:intersectionOf ( [ a owl:Restriction ;\n owl:onProperty :country-name ;\n owl:someValuesFrom xsd:string ] [ a owl:Restriction ;\n owl:maxCardinality \"1\"^^xsd:nonNegativeInteger ;\n owl:onProperty :country-name ] ) ] [ a owl:Class ;\n owl:intersectionOf ( [ a owl:Restriction ;\n owl:onProperty :locality ;\n owl:someValuesFrom xsd:string ] [ a owl:Restriction ;\n owl:maxCardinality \"1\"^^xsd:nonNegativeInteger ;\n owl:onProperty :locality ] ) ] [ a owl:Class ;\n owl:intersectionOf ( [ a owl:Restriction ;\n owl:onProperty :postal-code ;\n owl:someValuesFrom xsd:string ] [ a owl:Restriction ;\n owl:maxCardinality \"1\"^^xsd:nonNegativeInteger ;\n owl:onProperty :postal-code ] ) ] [ a owl:Class ;\n owl:intersectionOf ( [ a owl:Restriction ;\n owl:onProperty :region ;\n owl:someValuesFrom xsd:string ] [ a owl:Restriction ;\n owl:maxCardinality \"1\"^^xsd:nonNegativeInteger ;\n owl:onProperty :region ] ) ] [ a owl:Class ;\n owl:intersectionOf ( [ a owl:Restriction ;\n owl:onProperty :street-address ;\n owl:someValuesFrom xsd:string ] [ a owl:Restriction ;\n owl:maxCardinality \"1\"^^xsd:nonNegativeInteger ;\n owl:onProperty :street-address ] ) ] ) ] .\n\n:Email a owl:Class ;\n rdfs:label \"Email\"@en ;\n rdfs:comment \"To specify the electronic mail address for communication with the object the vCard represents. Use the hasEmail object property.\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:deprecated true .\n\n:Group a owl:Class ;\n rdfs:label \"Group\"@en ;\n rdfs:comment \"Object representing a group of persons or entities. A group object will usually contain hasMember properties to specify the members of the group.\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :Kind ;\n owl:disjointWith :Individual,\n :Location,\n :Organization ;\n owl:equivalentClass [ a owl:Class ;\n owl:intersectionOf ( [ a owl:Restriction ;\n owl:onProperty :hasMember ;\n owl:someValuesFrom :Kind ] [ a owl:Restriction ;\n owl:minQualifiedCardinality \"1\"^^xsd:nonNegativeInteger ;\n owl:onClass :Kind ;\n owl:onProperty :hasMember ] ) ] .\n\n:Individual a owl:Class ;\n rdfs:label \"Individual\"@en ;\n rdfs:comment \"An object representing a single person or entity\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :Kind ;\n owl:disjointWith :Location,\n :Organization .\n\n:Name a owl:Class ;\n rdfs:label \"Name\"@en ;\n rdfs:comment \"To specify the components of the name of the object\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:equivalentClass [ a owl:Class ;\n owl:unionOf ( [ a owl:Class ;\n owl:intersectionOf ( [ a owl:Restriction ;\n owl:onProperty :additional-name ;\n owl:someValuesFrom xsd:string ] [ a owl:Restriction ;\n owl:minCardinality \"0\"^^xsd:nonNegativeInteger ;\n owl:onProperty :additional-name ] ) ] [ a owl:Class ;\n owl:intersectionOf ( [ a owl:Restriction ;\n owl:onProperty :family-name ;\n owl:someValuesFrom xsd:string ] [ a owl:Restriction ;\n owl:maxCardinality \"1\"^^xsd:nonNegativeInteger ;\n owl:onProperty :family-name ] ) ] [ a owl:Class ;\n owl:intersectionOf ( [ a owl:Restriction ;\n owl:onProperty :given-name ;\n owl:someValuesFrom xsd:string ] [ a owl:Restriction ;\n owl:maxCardinality \"1\"^^xsd:nonNegativeInteger ;\n owl:onProperty :given-name ] ) ] [ a owl:Class ;\n owl:intersectionOf ( [ a owl:Restriction ;\n owl:onProperty :honorific-prefix ;\n owl:someValuesFrom xsd:string ] [ a owl:Restriction ;\n owl:minCardinality \"0\"^^xsd:nonNegativeInteger ;\n owl:onProperty :honorific-prefix ] ) ] [ a owl:Class ;\n owl:intersectionOf ( [ a owl:Restriction ;\n owl:onProperty :honorific-suffix ;\n owl:someValuesFrom xsd:string ] [ a owl:Restriction ;\n owl:minCardinality \"0\"^^xsd:nonNegativeInteger ;\n owl:onProperty :honorific-suffix ] ) ] ) ] .\n\n:VCard a owl:Class ;\n rdfs:label \"VCard\"@en ;\n rdfs:comment \"The vCard class is equivalent to the new Kind class, which is the parent for the four explicit types of vCards (Individual, Organization, Location, Group)\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:equivalentClass :Kind .\n\n:fn a owl:DatatypeProperty ;\n rdfs:label \"formatted name\"@en ;\n rdfs:comment \"The formatted text corresponding to the name of the object\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range xsd:string .\n\n:hasAddress a owl:ObjectProperty ;\n rdfs:label \"has address\"@en ;\n rdfs:comment \"To specify the components of the delivery address for the object\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range :Address .\n\n:hasEmail a owl:ObjectProperty ;\n rdfs:label \"has email\"@en ;\n rdfs:comment \"To specify the electronic mail address for communication with the object\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range :Email .\n\n:hasGeo a owl:ObjectProperty ;\n rdfs:label \"has geo\"@en ;\n rdfs:comment \"To specify information related to the global positioning of the object. May also be used as a property parameter.\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasKey a owl:ObjectProperty ;\n rdfs:label \"has key\"@en ;\n rdfs:comment \"To specify a public key or authentication certificate associated with the object\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:equivalentProperty :key .\n\n:hasLogo a owl:ObjectProperty ;\n rdfs:label \"has logo\"@en ;\n rdfs:comment \"To specify a graphic image of a logo associated with the object \"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:equivalentProperty :logo .\n\n:hasName a owl:ObjectProperty ;\n rdfs:label \"has name\"@en ;\n rdfs:comment \"To specify the components of the name of the object\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range :Name ;\n owl:equivalentProperty :n .\n\n:hasPhoto a owl:ObjectProperty ;\n rdfs:label \"has photo\"@en ;\n rdfs:comment \"To specify an image or photograph information that annotates some aspect of the object\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:equivalentProperty :photo .\n\n:hasSound a owl:ObjectProperty ;\n rdfs:label \"has sound\"@en ;\n rdfs:comment \"To specify a digital sound content information that annotates some aspect of the object\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:equivalentProperty :sound .\n\n:hasTelephone a owl:ObjectProperty ;\n rdfs:label \"has telephone\"@en ;\n rdfs:comment \"To specify the telephone number for telephony communication with the object\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:equivalentProperty :tel .\n\n:hasURL a owl:ObjectProperty ;\n rdfs:label \"has url\"@en ;\n rdfs:comment \"To specify a uniform resource locator associated with the object\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:equivalentProperty :url .\n\n:key a owl:ObjectProperty ;\n rdfs:label \"key\"@en ;\n rdfs:comment \"This object property has been mapped\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:equivalentProperty :hasKey .\n\n:logo a owl:ObjectProperty ;\n rdfs:label \"logo\"@en ;\n rdfs:comment \"This object property has been mapped\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:equivalentProperty :hasLogo .\n\n:n a owl:ObjectProperty ;\n rdfs:label \"name\"@en ;\n rdfs:comment \"This object property has been mapped\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:equivalentProperty :hasName .\n\n:nickname a owl:DatatypeProperty ;\n rdfs:label \"nickname\"@en ;\n rdfs:comment \"The nick name associated with the object\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range xsd:string .\n\n:photo a owl:ObjectProperty ;\n rdfs:label \"photo\"@en ;\n rdfs:comment \"This object property has been mapped\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:equivalentProperty :hasPhoto .\n\n:sound a owl:ObjectProperty ;\n rdfs:label \"sound\"@en ;\n rdfs:comment \"This object property has been mapped\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:equivalentProperty :hasSound .\n\n:tel a owl:ObjectProperty ;\n rdfs:label \"telephone\"@en ;\n rdfs:comment \"This object property has been mapped\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:equivalentProperty :hasTelephone .\n\n:url a owl:ObjectProperty ;\n rdfs:label \"url\"@en ;\n rdfs:comment \"This object property has been mapped\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:equivalentProperty :hasURL .\n\n:Location a owl:Class ;\n rdfs:label \"Location\"@en ;\n rdfs:comment \"An object representing a named geographical place\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :Kind ;\n owl:disjointWith :Organization .\n\n:additional-name a owl:DatatypeProperty ;\n rdfs:label \"additional name\"@en ;\n rdfs:comment \"The additional name associated with the object\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range xsd:string .\n\n:country-name a owl:DatatypeProperty ;\n rdfs:label \"country name\"@en ;\n rdfs:comment \"The country name associated with the address of the object\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range xsd:string .\n\n:family-name a owl:DatatypeProperty ;\n rdfs:label \"family name\"@en ;\n rdfs:comment \"The family name associated with the object\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range xsd:string .\n\n:given-name a owl:DatatypeProperty ;\n rdfs:label \"given name\"@en ;\n rdfs:comment \"The given name associated with the object\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range xsd:string .\n\n:hasMember a owl:ObjectProperty ;\n rdfs:label \"has member\"@en ;\n rdfs:comment \"To include a member in the group this object represents. (This property can only be used by Group individuals)\"@en ;\n rdfs:domain :Group ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range :Kind .\n\n:honorific-prefix a owl:DatatypeProperty ;\n rdfs:label \"honorific prefix\"@en ;\n rdfs:comment \"The honorific prefix of the name associated with the object\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range xsd:string .\n\n:honorific-suffix a owl:DatatypeProperty ;\n rdfs:label \"honorific suffix\"@en ;\n rdfs:comment \"The honorific suffix of the name associated with the object\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range xsd:string .\n\n:locality a owl:DatatypeProperty ;\n rdfs:label \"locality\"@en ;\n rdfs:comment \"The locality (e.g. city or town) associated with the address of the object\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range xsd:string .\n\n:organization-name a owl:DatatypeProperty ;\n rdfs:label \"organization name\"@en ;\n rdfs:comment \"To specify the organizational name associated with the object\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range xsd:string .\n\n:postal-code a owl:DatatypeProperty ;\n rdfs:label \"postal code\"@en ;\n rdfs:comment \"The postal code associated with the address of the object\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range xsd:string .\n\n:region a owl:DatatypeProperty ;\n rdfs:label \"region\"@en ;\n rdfs:comment \"The region (e.g. state or province) associated with the address of the object\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range xsd:string .\n\n:street-address a owl:DatatypeProperty ;\n rdfs:label \"street address\"@en ;\n rdfs:comment \"The street address associated with the address of the object\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range xsd:string .\n\n:Organization a owl:Class ;\n rdfs:label \"Organization\"@en ;\n rdfs:comment \"\"\"An object representing an organization. An organization is a single entity, and might represent a business or government, a department or division within a business or government, a club, an association, or the like.\n\"\"\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :Kind .\n\n:Gender a owl:Class ;\n rdfs:label \"Gender\"@en ;\n rdfs:comment \"Used for gender codes. The URI of the gender code must be used as the value for Gender.\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:Kind a owl:Class ;\n rdfs:label \"Kind\"@en ;\n rdfs:comment \"The parent class for all objects\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:equivalentClass [ a owl:Restriction ;\n owl:minQualifiedCardinality \"1\"^^xsd:nonNegativeInteger ;\n owl:onDataRange xsd:string ;\n owl:onProperty :fn ],\n :VCard .\n\n:Type a owl:Class ;\n rdfs:label \"Type\"@en ;\n rdfs:comment \"Used for type codes. The URI of the type code must be used as the value for Type.\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:TelephoneType a owl:Class ;\n rdfs:label \"Phone\"@en ;\n rdfs:comment \"Used for telephone type codes. The URI of the telephone type code must be used as the value for the Telephone Type.\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:RelatedType a owl:Class ;\n rdfs:label \"Relation Type\"@en ;\n rdfs:comment \"Used for relation type codes. The URI of the relation type code must be used as the value for the Relation Type.\"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n<http://www.w3.org/2006/vcard/ns> a owl:Ontology ;\n rdfs:label \"Ontology for vCard\"@en ;\n rdfs:comment \"Ontology for vCard based on RFC6350\"@en ;\n owl:versionInfo \"Final\"@en .\n\n\n";
|
|
16211
16331
|
// EXTERNAL MODULE: ./node_modules/css-loader/dist/cjs.js!./src/styles/individual.css
|
|
16212
|
-
var individual =
|
|
16332
|
+
var individual = __nested_webpack_require_55817__(479);
|
|
16213
16333
|
;// ./src/styles/individual.css
|
|
16214
16334
|
|
|
16215
16335
|
|
|
@@ -16238,7 +16358,7 @@ var individual_update = injectStylesIntoStyleTag_default()(individual/* default
|
|
|
16238
16358
|
/* harmony default export */ const styles_individual = (individual/* default */.A && individual/* default */.A.locals ? individual/* default */.A.locals : undefined);
|
|
16239
16359
|
|
|
16240
16360
|
// EXTERNAL MODULE: ./node_modules/css-loader/dist/cjs.js!./src/styles/rdfFormsEnforced.css
|
|
16241
|
-
var rdfFormsEnforced =
|
|
16361
|
+
var rdfFormsEnforced = __nested_webpack_require_55817__(434);
|
|
16242
16362
|
;// ./src/styles/rdfFormsEnforced.css
|
|
16243
16363
|
|
|
16244
16364
|
|
|
@@ -16412,7 +16532,7 @@ async function renderIndividual (dom, div, subject, dataBrowserContext) {
|
|
|
16412
16532
|
} // renderIndividual
|
|
16413
16533
|
|
|
16414
16534
|
// EXTERNAL MODULE: ./node_modules/css-loader/dist/cjs.js!./src/styles/toolsPane.css
|
|
16415
|
-
var toolsPane =
|
|
16535
|
+
var toolsPane = __nested_webpack_require_55817__(295);
|
|
16416
16536
|
;// ./src/styles/toolsPane.css
|
|
16417
16537
|
|
|
16418
16538
|
|
|
@@ -17212,7 +17332,7 @@ function toolsPane_toolsPane (
|
|
|
17212
17332
|
// ends
|
|
17213
17333
|
|
|
17214
17334
|
// EXTERNAL MODULE: ./node_modules/css-loader/dist/cjs.js!./src/styles/contactsPane.css
|
|
17215
|
-
var contactsPane =
|
|
17335
|
+
var contactsPane = __nested_webpack_require_55817__(903);
|
|
17216
17336
|
;// ./src/styles/contactsPane.css
|
|
17217
17337
|
|
|
17218
17338
|
|
|
@@ -17676,20 +17796,32 @@ const contactsPane_utils = external_commonjs_solid_ui_commonjs2_solid_ui_amd_sol
|
|
|
17676
17796
|
}
|
|
17677
17797
|
}
|
|
17678
17798
|
|
|
17679
|
-
peopleHeader.textContent =
|
|
17680
|
-
cards.length > 5 ? '' + cards.length + ' contacts' : 'contact'
|
|
17799
|
+
peopleHeader.textContent = 'Contact name'
|
|
17681
17800
|
|
|
17682
17801
|
function renderNameInGroupList (person) {
|
|
17683
17802
|
const personRow = dom.createElement('tr')
|
|
17803
|
+
personRow.setAttribute('role', 'listitem')
|
|
17804
|
+
personRow.setAttribute('tabindex', '0')
|
|
17805
|
+
personRow.setAttribute('aria-label', nameFor(person))
|
|
17806
|
+
personRow.classList.add('personRow')
|
|
17807
|
+
personRow.subject = person
|
|
17684
17808
|
const personLeft = personRow.appendChild(dom.createElement('td'))
|
|
17685
|
-
// const personRight = personRow.appendChild(dom.createElement('td'))
|
|
17686
17809
|
personLeft.classList.add('dataCell')
|
|
17687
|
-
|
|
17688
|
-
const
|
|
17689
|
-
|
|
17690
|
-
|
|
17810
|
+
// Visually hidden span for screen readers
|
|
17811
|
+
const srOnly = dom.createElement('span')
|
|
17812
|
+
srOnly.classList.add('visually-hidden')
|
|
17813
|
+
srOnly.textContent = 'Contact: '
|
|
17814
|
+
personLeft.appendChild(srOnly)
|
|
17815
|
+
personLeft.appendChild(dom.createTextNode(nameFor(person)))
|
|
17691
17816
|
external_commonjs_solid_ui_commonjs2_solid_ui_amd_solid_ui_root_UI_.widgets.makeDraggable(personRow, person)
|
|
17692
17817
|
|
|
17818
|
+
// Keyboard selection
|
|
17819
|
+
personRow.addEventListener('keydown', function (event) {
|
|
17820
|
+
if (event.key === 'Enter' || event.key === ' ') {
|
|
17821
|
+
event.preventDefault()
|
|
17822
|
+
selectPerson(person)
|
|
17823
|
+
}
|
|
17824
|
+
})
|
|
17693
17825
|
setPersonListener(personRow, person)
|
|
17694
17826
|
return personRow
|
|
17695
17827
|
}
|
|
@@ -17715,7 +17847,6 @@ const contactsPane_utils = external_commonjs_solid_ui_commonjs2_solid_ui_amd_sol
|
|
|
17715
17847
|
|
|
17716
17848
|
function syncGroupTable () {
|
|
17717
17849
|
function renderGroupRow (group) {
|
|
17718
|
-
// Is something is dropped on a group, add people to group
|
|
17719
17850
|
async function handleURIsDroppedOnGroup (uris) {
|
|
17720
17851
|
uris.forEach(function (u) {
|
|
17721
17852
|
console.log('Dropped on group: ' + u)
|
|
@@ -17773,6 +17904,7 @@ const contactsPane_utils = external_commonjs_solid_ui_commonjs2_solid_ui_amd_sol
|
|
|
17773
17904
|
dom.createElement('button')
|
|
17774
17905
|
)
|
|
17775
17906
|
sharingButton.classList.add('sharingButton')
|
|
17907
|
+
sharingButton.setAttribute('aria-label', 'Toggle group sharing settings')
|
|
17776
17908
|
const img = sharingButton.appendChild(
|
|
17777
17909
|
dom.createElement('img')
|
|
17778
17910
|
)
|
|
@@ -17781,6 +17913,7 @@ const contactsPane_utils = external_commonjs_solid_ui_commonjs2_solid_ui_amd_sol
|
|
|
17781
17913
|
'src',
|
|
17782
17914
|
external_commonjs_solid_ui_commonjs2_solid_ui_amd_solid_ui_root_UI_.icons.iconBase + 'noun_123691.svg'
|
|
17783
17915
|
)
|
|
17916
|
+
img.setAttribute('alt', 'Sharing icon')
|
|
17784
17917
|
sharingButton.addEventListener('click', function () {
|
|
17785
17918
|
visible = !visible
|
|
17786
17919
|
if (visible) {
|
|
@@ -17797,11 +17930,27 @@ const contactsPane_utils = external_commonjs_solid_ui_commonjs2_solid_ui_amd_sol
|
|
|
17797
17930
|
// Body of renderGroupRow
|
|
17798
17931
|
const name = kb.any(group, contactsPane_ns.vcard('fn'))
|
|
17799
17932
|
const groupRow = dom.createElement('tr')
|
|
17933
|
+
groupRow.setAttribute('role', 'listitem')
|
|
17934
|
+
groupRow.setAttribute('tabindex', '0')
|
|
17935
|
+
groupRow.setAttribute('aria-label', name ? name.value : 'Group')
|
|
17800
17936
|
groupRow.subject = group
|
|
17801
17937
|
external_commonjs_solid_ui_commonjs2_solid_ui_amd_solid_ui_root_UI_.widgets.makeDraggable(groupRow, group)
|
|
17802
17938
|
|
|
17803
17939
|
groupRow.classList.add('dataCell')
|
|
17804
|
-
|
|
17940
|
+
// Visually hidden span for screen readers
|
|
17941
|
+
const srOnly = dom.createElement('span')
|
|
17942
|
+
srOnly.classList.add('visually-hidden')
|
|
17943
|
+
srOnly.textContent = 'Group: '
|
|
17944
|
+
groupRow.appendChild(srOnly)
|
|
17945
|
+
groupRow.appendChild(dom.createTextNode(name))
|
|
17946
|
+
|
|
17947
|
+
// Keyboard selection
|
|
17948
|
+
groupRow.addEventListener('keydown', function (event) {
|
|
17949
|
+
if (event.key === 'Enter' || event.key === ' ') {
|
|
17950
|
+
event.preventDefault()
|
|
17951
|
+
groupRowClickListener(event)
|
|
17952
|
+
}
|
|
17953
|
+
})
|
|
17805
17954
|
|
|
17806
17955
|
external_commonjs_solid_ui_commonjs2_solid_ui_amd_solid_ui_root_UI_.widgets.makeDropTarget(groupRow, handleURIsDroppedOnGroup)
|
|
17807
17956
|
external_commonjs_solid_ui_commonjs2_solid_ui_amd_solid_ui_root_UI_.widgets.deleteButtonWithCheck(
|
|
@@ -17820,7 +17969,6 @@ const contactsPane_utils = external_commonjs_solid_ui_commonjs2_solid_ui_amd_sol
|
|
|
17820
17969
|
const groups = groupsInOrder()
|
|
17821
17970
|
contactsPane_utils.syncTableToArrayReOrdered(groupsMainTable, groups, renderGroupRow)
|
|
17822
17971
|
refreshGroupsSelected()
|
|
17823
|
-
// await checkDataModel(groups)
|
|
17824
17972
|
} // syncGroupTable
|
|
17825
17973
|
|
|
17826
17974
|
async function checkDataModel () {
|
|
@@ -17911,59 +18059,151 @@ const contactsPane_utils = external_commonjs_solid_ui_commonjs2_solid_ui_amd_sol
|
|
|
17911
18059
|
// //////////////////////////// Three-column Contact Browser - Body
|
|
17912
18060
|
// ////////////////// Body of 3-column browser
|
|
17913
18061
|
|
|
18062
|
+
// Main wrapper for accessibility and style
|
|
18063
|
+
const main = dom.createElement('main')
|
|
18064
|
+
main.id = 'main-content'
|
|
18065
|
+
main.classList.add('addressBook-grid')
|
|
18066
|
+
main.setAttribute('role', 'main')
|
|
18067
|
+
main.setAttribute('aria-label', 'Address Book')
|
|
18068
|
+
main.setAttribute('tabindex', '-1')
|
|
18069
|
+
div.appendChild(main)
|
|
18070
|
+
|
|
18071
|
+
// Section wrapper for accessibility and style
|
|
18072
|
+
const section = dom.createElement('section')
|
|
18073
|
+
section.setAttribute('aria-labelledby', 'addressBook-section')
|
|
18074
|
+
section.classList.add('addressBookSection', 'section-bg')
|
|
18075
|
+
section.setAttribute('role', 'region')
|
|
18076
|
+
section.setAttribute('tabindex', '-1')
|
|
18077
|
+
main.appendChild(section)
|
|
18078
|
+
|
|
18079
|
+
const header = dom.createElement('header')
|
|
18080
|
+
header.classList.add('text-center', 'mb-md')
|
|
18081
|
+
const h2 = dom.createElement('h2')
|
|
18082
|
+
h2.id = 'addressBook-heading'
|
|
18083
|
+
h2.setAttribute('tabindex', '-1')
|
|
18084
|
+
h2.textContent = title
|
|
18085
|
+
header.appendChild(h2)
|
|
18086
|
+
section.appendChild(header)
|
|
18087
|
+
|
|
18088
|
+
// Accessible table structure
|
|
17914
18089
|
const bookTable = dom.createElement('table')
|
|
17915
18090
|
bookTable.classList.add('bookTable')
|
|
17916
|
-
|
|
17917
|
-
|
|
17918
|
-
bookTable
|
|
17919
|
-
|
|
17920
|
-
|
|
17921
|
-
|
|
17922
|
-
|
|
17923
|
-
|
|
17924
|
-
|
|
17925
|
-
|
|
17926
|
-
|
|
17927
|
-
|
|
17928
|
-
|
|
17929
|
-
|
|
17930
|
-
|
|
17931
|
-
|
|
17932
|
-
|
|
17933
|
-
const
|
|
17934
|
-
const
|
|
18091
|
+
bookTable.setAttribute('role', 'table')
|
|
18092
|
+
bookTable.setAttribute('aria-label', 'Contacts browser')
|
|
18093
|
+
section.appendChild(bookTable)
|
|
18094
|
+
|
|
18095
|
+
// Table caption for screen readers
|
|
18096
|
+
const caption = dom.createElement('caption')
|
|
18097
|
+
caption.textContent = 'Contacts three-column browser'
|
|
18098
|
+
caption.classList.add('visually-hidden')
|
|
18099
|
+
bookTable.appendChild(caption)
|
|
18100
|
+
|
|
18101
|
+
// Table head
|
|
18102
|
+
const thead = dom.createElement('thead')
|
|
18103
|
+
const bookHeader = dom.createElement('tr')
|
|
18104
|
+
thead.appendChild(bookHeader)
|
|
18105
|
+
bookTable.appendChild(thead)
|
|
18106
|
+
|
|
18107
|
+
// Table body
|
|
18108
|
+
const tbody = dom.createElement('tbody')
|
|
18109
|
+
const bookMain = dom.createElement('tr')
|
|
18110
|
+
tbody.appendChild(bookMain)
|
|
18111
|
+
bookTable.appendChild(tbody)
|
|
18112
|
+
|
|
18113
|
+
// Table footer
|
|
18114
|
+
const tfoot = dom.createElement('tfoot')
|
|
18115
|
+
const bookFooter = dom.createElement('tr')
|
|
18116
|
+
tfoot.appendChild(bookFooter)
|
|
18117
|
+
bookTable.appendChild(tfoot)
|
|
18118
|
+
|
|
18119
|
+
// Headers
|
|
18120
|
+
const groupsHeader = dom.createElement('th')
|
|
18121
|
+
groupsHeader.setAttribute('scope', 'col')
|
|
18122
|
+
groupsHeader.setAttribute('id', 'groupsHeader')
|
|
18123
|
+
groupsHeader.textContent = 'Groups'
|
|
18124
|
+
groupsHeader.classList.add('groupsHeader')
|
|
18125
|
+
bookHeader.appendChild(groupsHeader)
|
|
18126
|
+
|
|
18127
|
+
const peopleHeader = dom.createElement('th')
|
|
18128
|
+
peopleHeader.setAttribute('scope', 'col')
|
|
18129
|
+
peopleHeader.setAttribute('id', 'peopleHeader')
|
|
18130
|
+
peopleHeader.textContent = 'Name'
|
|
18131
|
+
peopleHeader.classList.add('peopleHeader')
|
|
18132
|
+
bookHeader.appendChild(peopleHeader)
|
|
17935
18133
|
|
|
17936
|
-
const
|
|
17937
|
-
|
|
17938
|
-
|
|
18134
|
+
const cardHeader = dom.createElement('th')
|
|
18135
|
+
cardHeader.setAttribute('scope', 'col')
|
|
18136
|
+
cardHeader.setAttribute('id', 'cardHeader')
|
|
18137
|
+
cardHeader.textContent = 'Search for name'
|
|
18138
|
+
cardHeader.classList.add('cardHeader')
|
|
18139
|
+
bookHeader.appendChild(cardHeader)
|
|
17939
18140
|
|
|
17940
|
-
|
|
18141
|
+
// Main columns
|
|
18142
|
+
const groupsMain = dom.createElement('td')
|
|
17941
18143
|
groupsMain.classList.add('groupsMain')
|
|
17942
|
-
|
|
17943
|
-
|
|
17944
|
-
const
|
|
18144
|
+
groupsMain.setAttribute('role', 'region')
|
|
18145
|
+
groupsMain.setAttribute('aria-labelledby', 'groupsHeader')
|
|
18146
|
+
const groupsMainTable = dom.createElement('table')
|
|
18147
|
+
groupsMainTable.setAttribute('role', 'list')
|
|
18148
|
+
groupsMainTable.setAttribute('aria-label', 'Groups list')
|
|
18149
|
+
groupsMain.appendChild(groupsMainTable)
|
|
18150
|
+
bookMain.appendChild(groupsMain)
|
|
18151
|
+
|
|
18152
|
+
const peopleMain = dom.createElement('td')
|
|
18153
|
+
peopleMain.classList.add('peopleMain')
|
|
18154
|
+
peopleMain.setAttribute('role', 'region')
|
|
18155
|
+
peopleMain.setAttribute('aria-labelledby', 'peopleHeader')
|
|
18156
|
+
const peopleMainTable = dom.createElement('table')
|
|
18157
|
+
peopleMainTable.setAttribute('role', 'list')
|
|
18158
|
+
peopleMainTable.setAttribute('aria-label', 'People list')
|
|
18159
|
+
peopleMain.appendChild(peopleMainTable)
|
|
18160
|
+
bookMain.appendChild(peopleMain)
|
|
18161
|
+
|
|
18162
|
+
const cardMain = dom.createElement('td')
|
|
18163
|
+
cardMain.classList.add('cardMain')
|
|
18164
|
+
cardMain.setAttribute('role', 'region')
|
|
18165
|
+
cardMain.setAttribute('aria-labelledby', 'cardHeader')
|
|
18166
|
+
bookMain.appendChild(cardMain)
|
|
17945
18167
|
|
|
17946
|
-
|
|
18168
|
+
// Footer columns
|
|
18169
|
+
const groupsFooter = dom.createElement('td')
|
|
17947
18170
|
groupsFooter.classList.add('groupsFooter')
|
|
17948
|
-
|
|
17949
|
-
const cardFooter = bookFooter.appendChild(dom.createElement('td'))
|
|
18171
|
+
bookFooter.appendChild(groupsFooter)
|
|
17950
18172
|
|
|
17951
|
-
|
|
18173
|
+
const peopleFooter = dom.createElement('td')
|
|
18174
|
+
bookFooter.appendChild(peopleFooter)
|
|
17952
18175
|
|
|
17953
|
-
const
|
|
18176
|
+
const cardFooter = dom.createElement('td')
|
|
18177
|
+
bookFooter.appendChild(cardFooter)
|
|
18178
|
+
|
|
18179
|
+
// Search input
|
|
18180
|
+
const searchDiv = dom.createElement('div')
|
|
18181
|
+
searchDiv.classList.add('searchDiv')
|
|
18182
|
+
cardHeader.appendChild(searchDiv)
|
|
18183
|
+
const searchInput = dom.createElement('input')
|
|
17954
18184
|
searchInput.setAttribute('type', 'text')
|
|
18185
|
+
searchInput.setAttribute('aria-label', 'Search contacts')
|
|
17955
18186
|
searchInput.classList.add('searchInput')
|
|
17956
|
-
|
|
18187
|
+
searchDiv.appendChild(searchInput)
|
|
17957
18188
|
searchInput.addEventListener('input', function (_event) {
|
|
17958
|
-
refreshFilteredPeople(true)
|
|
18189
|
+
refreshFilteredPeople(true)
|
|
17959
18190
|
})
|
|
17960
18191
|
|
|
17961
|
-
|
|
17962
|
-
|
|
17963
|
-
|
|
17964
|
-
|
|
17965
|
-
|
|
18192
|
+
// Accessibility: keyboard navigation for peopleMainTable rows
|
|
18193
|
+
peopleMainTable.addEventListener('keydown', function (event) {
|
|
18194
|
+
const rows = Array.from(peopleMainTable.children)
|
|
18195
|
+
const current = document.activeElement
|
|
18196
|
+
const idx = rows.indexOf(current)
|
|
18197
|
+
if (event.key === 'ArrowDown' && idx < rows.length - 1) {
|
|
18198
|
+
rows[idx + 1].focus()
|
|
18199
|
+
event.preventDefault()
|
|
18200
|
+
} else if (event.key === 'ArrowUp' && idx > 0) {
|
|
18201
|
+
rows[idx - 1].focus()
|
|
18202
|
+
event.preventDefault()
|
|
18203
|
+
}
|
|
18204
|
+
})
|
|
17966
18205
|
|
|
18206
|
+
// ...existing code...
|
|
17967
18207
|
function setGroupListVisibility (visible) {
|
|
17968
18208
|
groupsHeader.classList.toggle('hidden', !visible)
|
|
17969
18209
|
groupsMain.classList.toggle('hidden', !visible)
|
|
@@ -17977,7 +18217,7 @@ const contactsPane_utils = external_commonjs_solid_ui_commonjs2_solid_ui_amd_sol
|
|
|
17977
18217
|
if (book) {
|
|
17978
18218
|
const allGroups = groupsHeader.appendChild(dom.createElement('button'))
|
|
17979
18219
|
allGroups.textContent = 'All'
|
|
17980
|
-
allGroups.classList.add('allGroupsButton')
|
|
18220
|
+
allGroups.classList.add('allGroupsButton', 'actionButton', 'btn-secondary', 'action-button-focus')
|
|
17981
18221
|
allGroups.addEventListener('click', function (_event) {
|
|
17982
18222
|
allGroups.state = allGroups.state ? 0 : 1
|
|
17983
18223
|
peopleMainTable.innerHTML = '' // clear in case refreshNames doesn't work for unknown reason
|
|
@@ -18011,7 +18251,7 @@ const contactsPane_utils = external_commonjs_solid_ui_commonjs2_solid_ui_amd_sol
|
|
|
18011
18251
|
setGroupListVisibility(false) // If no books involved, hide group list
|
|
18012
18252
|
} // if not book
|
|
18013
18253
|
|
|
18014
|
-
peopleHeader.textContent = 'name'
|
|
18254
|
+
peopleHeader.textContent = 'Contact name'
|
|
18015
18255
|
peopleHeader.classList.add('peopleHeader')
|
|
18016
18256
|
peopleMain.classList.add('peopleMain')
|
|
18017
18257
|
|
|
@@ -18027,7 +18267,8 @@ const contactsPane_utils = external_commonjs_solid_ui_commonjs2_solid_ui_amd_sol
|
|
|
18027
18267
|
}
|
|
18028
18268
|
})
|
|
18029
18269
|
container.appendChild(newContactButton)
|
|
18030
|
-
newContactButton.innerHTML = 'New
|
|
18270
|
+
newContactButton.innerHTML = 'New contact' // + IndividualClassLabel
|
|
18271
|
+
newContactButton.classList.add('actionButton', 'btn-secondary', 'action-button-focus')
|
|
18031
18272
|
peopleFooter.appendChild(container)
|
|
18032
18273
|
newContactButton.addEventListener('click', async _event => craeteNewCard(contactsPane_ns.vcard('Individual')), false)
|
|
18033
18274
|
|
|
@@ -18043,7 +18284,8 @@ const contactsPane_utils = external_commonjs_solid_ui_commonjs2_solid_ui_amd_sol
|
|
|
18043
18284
|
}
|
|
18044
18285
|
})
|
|
18045
18286
|
container2.appendChild(newOrganizationButton)
|
|
18046
|
-
newOrganizationButton.innerHTML = 'New
|
|
18287
|
+
newOrganizationButton.innerHTML = 'New organization' // + IndividualClassLabel
|
|
18288
|
+
newOrganizationButton.classList.add('actionButton', 'btn-secondary', 'action-button-focus')
|
|
18047
18289
|
peopleFooter.appendChild(container2)
|
|
18048
18290
|
newOrganizationButton.addEventListener('click', async _event => craeteNewCard(contactsPane_ns.vcard('Organization')), false)
|
|
18049
18291
|
|
|
@@ -18053,7 +18295,8 @@ const contactsPane_utils = external_commonjs_solid_ui_commonjs2_solid_ui_amd_sol
|
|
|
18053
18295
|
dom.createElement('button')
|
|
18054
18296
|
)
|
|
18055
18297
|
newGroupButton.setAttribute('type', 'button')
|
|
18056
|
-
newGroupButton.innerHTML = 'New
|
|
18298
|
+
newGroupButton.innerHTML = 'New group' // + IndividualClassLabel
|
|
18299
|
+
newGroupButton.classList.add('actionButton', 'btn-secondary', 'action-button-focus')
|
|
18057
18300
|
newGroupButton.addEventListener(
|
|
18058
18301
|
'click', newGroupClickHandler,
|
|
18059
18302
|
false
|
|
@@ -18063,6 +18306,7 @@ const contactsPane_utils = external_commonjs_solid_ui_commonjs2_solid_ui_amd_sol
|
|
|
18063
18306
|
const toolsButton = cardFooter.appendChild(dom.createElement('button'))
|
|
18064
18307
|
toolsButton.setAttribute('type', 'button')
|
|
18065
18308
|
toolsButton.innerHTML = 'Tools'
|
|
18309
|
+
toolsButton.classList.add('actionButton', 'btn-secondary', 'action-button-focus')
|
|
18066
18310
|
toolsButton.addEventListener('click', function (_event) {
|
|
18067
18311
|
cardMain.innerHTML = ''
|
|
18068
18312
|
cardMain.appendChild(
|
|
@@ -18078,7 +18322,11 @@ const contactsPane_utils = external_commonjs_solid_ui_commonjs2_solid_ui_amd_sol
|
|
|
18078
18322
|
})
|
|
18079
18323
|
} // if book
|
|
18080
18324
|
|
|
18081
|
-
|
|
18325
|
+
const newBookBtn = newAddressBookButton(book)
|
|
18326
|
+
if (newBookBtn && newBookBtn.classList) {
|
|
18327
|
+
newBookBtn.classList.add('actionButton', 'btn-secondary', 'action-button-focus')
|
|
18328
|
+
}
|
|
18329
|
+
cardFooter.appendChild(newBookBtn)
|
|
18082
18330
|
|
|
18083
18331
|
// })
|
|
18084
18332
|
|
|
@@ -31771,13 +32019,11 @@ function presentCV(subject, store) {
|
|
|
31771
32019
|
}
|
|
31772
32020
|
const skills = store.each(subject, _solidUi.ns.schema('skills')).map(sk => skillAsText(store, sk)).filter(skill => skill !== '');
|
|
31773
32021
|
const languageNodes = store.each(subject, _solidUi.ns.schema('knowsLanguage'));
|
|
31774
|
-
const languages = languageNodes.flatMap(node => expandRdfList(store, node)).map(lan => languageAsText(store, lan));
|
|
31775
|
-
// Deduplicate languages
|
|
31776
|
-
const uniqueLanguages = Array.from(new Set(languages));
|
|
32022
|
+
const languages = languageNodes.flatMap(node => expandRdfList(store, node)).map(lan => languageAsText(store, lan)).filter(language => language !== '');
|
|
31777
32023
|
return {
|
|
31778
32024
|
rolesByType,
|
|
31779
32025
|
skills,
|
|
31780
|
-
languages
|
|
32026
|
+
languages
|
|
31781
32027
|
};
|
|
31782
32028
|
}
|
|
31783
32029
|
|
|
@@ -32358,37 +32604,28 @@ exports.presentSocial = presentSocial;
|
|
|
32358
32604
|
var _solidUi = __webpack_require__(500);
|
|
32359
32605
|
var _rdfFormsHelper = __webpack_require__(7824);
|
|
32360
32606
|
/* babel-plugin-inline-import './ontology/socialMedia.ttl' */
|
|
32361
|
-
const socialMediaForm = "@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.\n@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.\n@prefix foaf: <http://xmlns.com/foaf/0.1/>.\n@prefix owl: <http://www.w3.org/2002/07/owl#>.\n@prefix solid: <http://www.w3.org/ns/solid/terms#>.\n@prefix ui: <http://www.w3.org/ns/ui#>.\n@prefix schema: <http://schema.org/>.\n@prefix vcard: <http://www.w3.org/2006/vcard/ns#>.\n@prefix org: <http://www.w3.org/ns/org#>.\n@prefix : <#>.\n\n########### ATTENTION - we cannot rename this ontology file name without migrating existing data on existing accounts\n\n########### Social Media - other accounts\n#\n# Twitter, linked In, Orkid, Mastodon, Matrix, Bluesky, Instagram, Facebook, Github,\n# Snapchat, TikTok, etc\n\n:this\n <http://purl.org/dc/elements/1.1/title> \"Social media form\" ;\n a ui:Form ;\n ui:parts (\n :SocialsForm\n ).\n\n:SocialsForm a ui:Multiple;\n ui:label \"online account\";\n ui:property foaf:account; # the triple is created with the foaf:acccounts predicate\n ui:ordered true; # Allow user to order occounts most important first.\n ui:part :AccountsForm.\n\n:AccountsForm a ui:Group; \n ui:weight 1; \n ui:parts ( \n :AccountField \n :AccountIdField ).\n\n:AccountField a ui:Classifier; \n ui:label \"Choose account\"@en;\n ui:multiple false ; \n ui:category foaf:Account. # the accounts are described by the foaf:Account predicate\n\n# this is what is needed to make a dropdown box\nfoaf:Account a rdfs:Class;\n rdfs:label \"Online Account Provider\";\n owl:disjointUnionOf ( \n :BlueSkyAccount :DiggAccount :FacebookAccount :GithubAccount :InstagramAccount\n :LinkedInAccount :MastodonAccount :MatrixAccount :MediumAccount :NostrAccount \n :OrcidAccount :PinterestAccount :RedditAccount :SnapchatAccount :StravaAccount \n :TiktokAccount :TumblrAccount :TwitterAccount :OtherAccount) .\n\n:AccountIdField a ui:Options; \n ui:dependingOn rdf:type; \n ui:case\n [ ui:for :BlueSkyAccount; ui:use :BlueSkyIdField ],\n [ ui:for :DiggAccount; ui:use :DiggIdField],\n [ ui:for :FacebookAccount; ui:use :FacebookIdField ],\n [ ui:for :GithubAccount; ui:use :GithubIdField ],\n [ ui:for :InstagramAccount; ui:use :InstagramIdField ],\n [ ui:for :LinkedInAccount; ui:use :LinkedInIdField ],\n [ ui:for :MastodonAccount; ui:use :MastodonIdField ],\n [ ui:for :MatrixAccount; ui:use :MatrixIdField ],\n [ ui:for :MediumAccount; ui:use :MediumIdField ],\n [ ui:for :NostrAccount; ui:use :NostrIdField ],\n [ ui:for :OrcidAccount; ui:use :OrcidIdField ],\n [ ui:for :PinterestAccount; ui:use :PinterestIdField ],\n [ ui:for :RedditAccount; ui:use :RedditIdField ],\n [ ui:for :StravaAccount; ui:use :StravaIdField ],\n [ ui:for :SnapchatAccount; ui:use :SnapchatIdField ],\n [ ui:for :TiktokAccount; ui:use :TiktokIdField ],\n [ ui:for :TumblrAccount; ui:use :TumblrIdField ],\n [ ui:for :TwitterAccount; ui:use :TwitterIdField ],\n [ ui:for :OtherAccount; ui:use :OtherIdForm ] .\n\n:BlueSkyAccount rdfs:subClassOf foaf:Account ;\n rdfs:label \"Bluesky\";\n foaf:userProfilePrefix \"https://bsky.app/profile/\";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/bluesky-1.svg>;\n foaf:homepage <https://bsky.app/> .\n\n:DiggAccount rdfs:subClassOf foaf:Account ;\n rdfs:label \"Digg\";\n foaf:userProfilePrefix \"https://www.digg.com/\";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/digg-icon.svg>;\n foaf:homepage <https://www.digg.com/> .\n\n:FacebookAccount rdfs:subClassOf foaf:Account ;\n rdfs:label \"Facebook\";\n foaf:userProfilePrefix \"https://www.facebook.com/\";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/facebook-2020-2-1.svg>;\n foaf:homepage <https://www.facebook.com/> .\n\n:GithubAccount rdfs:subClassOf foaf:Account ;\n rdfs:label \"Github\";\n foaf:userProfilePrefix \"https://www.github.com/\";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/github-icon.svg>;\n foaf:homepage <https://github.com/> .\n\n:InstagramAccount rdfs:subClassOf foaf:Account ;\n rdfs:label \"Instagram\";\n foaf:userProfilePrefix \"https://www.instagram.com/\";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/instagram-2016-5.svg>;\n foaf:homepage <https://www.instagram.com/> .\n\n:LinkedInAccount rdfs:subClassOf foaf:Account ;\n rdfs:label \"LinkedIn\";\n foaf:userProfilePrefix \"https://www.linkedin.com/in/\";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/linkedin-icon.svg>;\n foaf:homepage <https://linkedin.com/> .\n\n:MastodonAccount rdfs:subClassOf foaf:Account ;\n rdfs:label \"Mastodon\" ;\n foaf:userProfilePrefix \"https://mastodon.social/\";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/mastodon-2.svg>;\n foaf:homepage <https://joinmastodon.org/> .\n\n:MatrixAccount rdfs:subClassOf foaf:Account ;\n rdfs:label \"Matrix\" ;\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/matrix-logo-black.svg> ;\n foaf:userProfilePrefix \"https://matrix.to/#/\" ;\n foaf:homepage <https://matrix.org/> .\n\n:MediumAccount rdfs:subClassOf foaf:Account ;\n rdfs:label \"Medium\";\n foaf:userProfilePrefix \"https://medium.com/\";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/medium-logo-wordmark-black.svg>;\n foaf:homepage <https://medium.com/> .\n\n:NostrAccount rdfs:subClassOf foaf:Account ;\n rdfs:label \"Nostr\";\n foaf:userProfilePrefix \"https://primal.net/p/\";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/nostr-icon-purple-on-white.svg>;\n foaf:homepage <https://nostr.net/> .\n\n:OrcidAccount rdfs:subClassOf foaf:Account ;\n rdfs:label \"ORCiD\";\n foaf:userProfilePrefix \"https://orcid.org/\";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/ORCID-1.svg>;\n foaf:homepage <https://orcid.org/> .\n\n:PinterestAccount rdfs:subClassOf foaf:Account ;\n rdfs:label \"Pinterest\";\n foaf:userProfilePrefix \"https://pin.it/\";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/pinterest-2-1.svg>;\n foaf:homepage <https://pinterest.com/> .\n\n:RedditAccount rdfs:subClassOf foaf:Account ;\n rdfs:label \"Reddit\";\n foaf:userProfilePrefix \"https://www.reddit.com/user/\";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/reddit-4.svg>;\n foaf:homepage <https://reddit.com/> .\n\n:SnapchatAccount rdfs:subClassOf foaf:Account ;\n rdfs:label \"Snapchat\";\n foaf:userProfilePrefix \"https://www.snapchat.com/add/\";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/snapchat-1.svg>;\n foaf:homepage <https://www.snapchat.com/> .\n\n:StravaAccount rdfs:subClassOf foaf:Account ;\n rdfs:label \"Strava\";\n foaf:userProfilePrefix \"https://www.strava.com/athletes/\";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/strava-2.svg>;\n foaf:homepage <https://strava.com/> .\n\n:TiktokAccount rdfs:subClassOf foaf:Account ;\n rdfs:label \"TikTok\";\n foaf:userProfilePrefix \"https://www.tiktok.com/@\";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/tiktok-icon-2.svg>;\n foaf:homepage <https://www.tiktok.com/> .\n\n:TumblrAccount rdfs:subClassOf foaf:Account ;\n rdfs:label \"Tumblr\";\n foaf:userProfilePrefix \"https://www.tumblr.com/\";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/tumblr-icon.svg>;\n foaf:homepage <https://www.tumblr.com/> .\n\n:TwitterAccount rdfs:subClassOf foaf:Account ;\n rdfs:label \"X\";\n foaf:userProfilePrefix \"https://x.com/\";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/x-2.svg>;\n foaf:homepage <https://x.com/> .\n\n:OtherAccount rdfs:subClassOf foaf:Account ;\n rdfs:label \"Other\" ;\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/noun_1689339.svg> .\n\n:BlueSkyIdField\n a ui:SingleLineTextField ;\n ui:label \"Username\";\n ui:maxLength \"200\" ;\n ui:property foaf:accountName ; \n ui:pattern \"@[a-z0-9A-Z_-](.[a-z0-9A-Z_-])*\".\n\n:DiggIdField\n a ui:SingleLineTextField ;\n ui:label \"Username\";\n ui:maxLength \"200\" ;\n ui:property foaf:accountName ; \n ui:pattern \"@[a-z0-9A-Z_-](.[a-z0-9A-Z_-])*\".\n\n:FacebookIdField\n a ui:SingleLineTextField ;\n ui:label \"Username\";\n ui:property foaf:accountName ; \n ui:pattern \"[a-z0-9A-Z_-]*\".\n\n:GithubIdField\n a ui:SingleLineTextField ;\n ui:label \"Username\";\n ui:maxLength \"200\" ;\n ui:property foaf:accountName ; \n ui:pattern \"[a-z0-9A-Z_-]*\".\n\n:InstagramIdField\n a ui:SingleLineTextField ;\n ui:label \"Username\";\n ui:maxLength \"200\" ;\n ui:property foaf:accountName ; \n ui:pattern \"[a-z0-9A-Z_-]*\".\n\n:LinkedInIdField\n a ui:SingleLineTextField ;\n ui:label \"Username\";\n ui:maxLength \"200\" ;\n ui:property foaf:accountName ; \n ui:pattern \"[a-z0-9A-Z_-]*(.[a-z0-9A-Z_-])*\".\n\n:MastodonIdField\n a ui:SingleLineTextField ;\n ui:label \"Username\";\n ui:maxLength \"200\" ;\n ui:property foaf:accountName ; \n ui:pattern \"@[a-z0-9A-Z_-]*(.[a-z0-9A-Z_-])*\".\n\n:MatrixIdField\n a ui:SingleLineTextField ;\n ui:label \"Username\";\n ui:maxLength \"200\" ;\n ui:property foaf:accountName ; \n ui:pattern \"@[a-z0-9A-Z_-]*(.[a-z0-9A-Z_-])*\".\n\n:MediumIdField\n a ui:SingleLineTextField ;\n ui:label \"Username\";\n ui:maxLength \"200\" ;\n ui:property foaf:accountName ; \n ui:pattern \"@[a-z0-9A-Z_-]*(.[a-z0-9A-Z_-])*\".\n\n:NostrIdField\n a ui:SingleLineTextField ;\n ui:label \"Username\";\n ui:maxLength \"200\" ;\n ui:property foaf:accountName ; \n ui:pattern \"[a-z0-9A-Z_-]*(.[a-z0-9A-Z_-])*\".\n\n:OrcidIdField\n a ui:SingleLineTextField ;\n ui:label \"Username\";\n ui:maxLength \"200\" ;\n ui:property foaf:accountName ; \n ui:pattern \"[a-z0-9A-Z_-]*\".\n\n:PinterestIdField\n a ui:SingleLineTextField ;\n ui:label \"Username\";\n ui:maxLength \"200\" ;\n ui:property foaf:accountName ; \n ui:pattern \"[a-z0-9A-Z_-]*\".\n\n:RedditIdField\n a ui:SingleLineTextField ;\n ui:label \"Username\";\n ui:maxLength \"200\" ;\n ui:property foaf:accountName ; \n ui:pattern \"[a-z0-9A-Z_-]*\".\n\n:StravaIdField\n a ui:SingleLineTextField ;\n ui:label \"Username\";\n ui:maxLength \"200\" ;\n ui:property foaf:accountName ; \n ui:pattern \"[a-z0-9A-Z_-]*\".\n\n:SnapchatIdField\n a ui:SingleLineTextField ;\n ui:label \"Username\";\n ui:maxLength \"200\" ;\n ui:property foaf:accountName ; \n ui:pattern \"@[a-z0-9A-Z_-]*\".\n\n:TiktokIdField\n a ui:SingleLineTextField ;\n ui:label \"Username\";\n ui:maxLength \"200\" ;\n ui:property foaf:accountName ; \n ui:pattern \"@[a-z0-9A-Z_-]*\".\n\n:TumblrIdField\n a ui:SingleLineTextField ;\n ui:label \"Username\";\n ui:maxLength \"200\" ;\n ui:property foaf:accountName ; \n ui:pattern \"@[a-z0-9A-Z_-]*\".\n\n:TwitterIdField\n a ui:SingleLineTextField ;\n ui:label \"Username\";\n ui:maxLength \"200\" ;\n ui:property foaf:accountName ; \n ui:pattern \"@[a-z0-9A-Z_-]*\".\n\n# an unknown online account needs more info\n\n:OtherIdForm a ui:Group; \n ui:weight 0; \n ui:parts ( \n :OtherIdField \n :OtherIconField \n :OtherLabelField ).\n\n:OtherIdField\n a ui:NamedNodeURIField ;\n ui:label \"Account link\";\n ui:maxLength \"200\" ;\n ui:property foaf:homepage.\n\n:OtherIconField\n a ui:NamedNodeURIField ;\n ui:label \"Icon link\";\n ui:maxLength \"200\" ;\n ui:property foaf:icon.\n\n:OtherLabelField\n a ui:SingleLineTextField ;\n ui:label \"Name\";\n ui:maxLength \"200\" ;\n ui:property rdfs:label.\n\n# ends\n";
|
|
32607
|
+
const socialMediaForm = "@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.\n@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.\n@prefix foaf: <http://xmlns.com/foaf/0.1/>.\n@prefix owl: <http://www.w3.org/2002/07/owl#>.\n@prefix solid: <http://www.w3.org/ns/solid/terms#>.\n@prefix ui: <http://www.w3.org/ns/ui#>.\n@prefix schema: <http://schema.org/>.\n@prefix vcard: <http://www.w3.org/2006/vcard/ns#>.\n@prefix org: <http://www.w3.org/ns/org#>.\n@prefix : <#>.\n\n########### ATTENTION - we cannot rename this ontology file name without migrating existing data on existing accounts\n\n########### Social Media - other accounts\n#\n# Twitter, linked In, Orkid, Mastodon, Matrix, Bluesky, Instagram, Facebook, Github,\n# Snapchat, TikTok, etc\n\n:this\n <http://purl.org/dc/elements/1.1/title> \"Social media form\" ;\n a ui:Form ;\n ui:parts (\n :SocialsForm\n ).\n\n:SocialsForm a ui:Multiple;\n ui:label \"online account\";\n ui:property foaf:account; # the triple is created with the foaf:acccounts predicate\n ui:ordered true; # Allow user to order occounts most important first.\n ui:part :AccountsForm.\n\n:AccountsForm a ui:Group; \n ui:weight 1; \n ui:parts ( \n :AccountField \n :AccountIdField ).\n\n:AccountField a ui:Classifier; \n ui:label \"Account\"@en;\n ui:multiple false ; \n ui:category foaf:Account. # the accounts are described by the foaf:Account predicate\n\n# this is what is needed to make a dropdown box\nfoaf:Account a rdfs:Class;\n rdfs:label \"Online Account Provider\";\n owl:disjointUnionOf ( \n :BlueSkyAccount :DiggAccount :FacebookAccount :GithubAccount :InstagramAccount\n :LinkedInAccount :MastodonAccount :MatrixAccount :MediumAccount :NostrAccount \n :OrcidAccount :PinterestAccount :RedditAccount :SnapchatAccount :StravaAccount \n :TiktokAccount :TumblrAccount :TwitterAccount :OtherAccount) .\n\n:AccountIdField a ui:Options; \n ui:dependingOn rdf:type; \n ui:case\n [ ui:for :BlueSkyAccount; ui:use :BlueSkyIdField ],\n [ ui:for :DiggAccount; ui:use :DiggIdField],\n [ ui:for :FacebookAccount; ui:use :FacebookIdField ],\n [ ui:for :GithubAccount; ui:use :GithubIdField ],\n [ ui:for :InstagramAccount; ui:use :InstagramIdField ],\n [ ui:for :LinkedInAccount; ui:use :LinkedInIdField ],\n [ ui:for :MastodonAccount; ui:use :MastodonIdField ],\n [ ui:for :MatrixAccount; ui:use :MatrixIdField ],\n [ ui:for :MediumAccount; ui:use :MediumIdField ],\n [ ui:for :NostrAccount; ui:use :NostrIdField ],\n [ ui:for :OrcidAccount; ui:use :OrcidIdField ],\n [ ui:for :PinterestAccount; ui:use :PinterestIdField ],\n [ ui:for :RedditAccount; ui:use :RedditIdField ],\n [ ui:for :StravaAccount; ui:use :StravaIdField ],\n [ ui:for :SnapchatAccount; ui:use :SnapchatIdField ],\n [ ui:for :TiktokAccount; ui:use :TiktokIdField ],\n [ ui:for :TumblrAccount; ui:use :TumblrIdField ],\n [ ui:for :TwitterAccount; ui:use :TwitterIdField ],\n [ ui:for :OtherAccount; ui:use :OtherIdForm ] .\n\n:BlueSkyAccount rdfs:subClassOf foaf:Account ;\n rdfs:label \"Bluesky\";\n foaf:userProfilePrefix \"https://bsky.app/profile/\";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/bluesky-1.svg>;\n foaf:homepage <https://bsky.app/> .\n\n:DiggAccount rdfs:subClassOf foaf:Account ;\n rdfs:label \"Digg\";\n foaf:userProfilePrefix \"https://www.digg.com/\";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/digg-icon.svg>;\n foaf:homepage <https://www.digg.com/> .\n\n:FacebookAccount rdfs:subClassOf foaf:Account ;\n rdfs:label \"Facebook\";\n foaf:userProfilePrefix \"https://www.facebook.com/\";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/facebook-2020-2-1.svg>;\n foaf:homepage <https://www.facebook.com/> .\n\n:GithubAccount rdfs:subClassOf foaf:Account ;\n rdfs:label \"Github\";\n foaf:userProfilePrefix \"https://www.github.com/\";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/github-icon.svg>;\n foaf:homepage <https://github.com/> .\n\n:InstagramAccount rdfs:subClassOf foaf:Account ;\n rdfs:label \"Instagram\";\n foaf:userProfilePrefix \"https://www.instagram.com/\";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/instagram-2016-5.svg>;\n foaf:homepage <https://www.instagram.com/> .\n\n:LinkedInAccount rdfs:subClassOf foaf:Account ;\n rdfs:label \"LinkedIn\";\n foaf:userProfilePrefix \"https://www.linkedin.com/in/\";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/linkedin-icon.svg>;\n foaf:homepage <https://linkedin.com/> .\n\n:MastodonAccount rdfs:subClassOf foaf:Account ;\n rdfs:label \"Mastodon\" ;\n foaf:userProfilePrefix \"https://mastodon.social/\";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/mastodon-2.svg>;\n foaf:homepage <https://joinmastodon.org/> .\n\n:MatrixAccount rdfs:subClassOf foaf:Account ;\n rdfs:label \"Matrix\" ;\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/matrix-logo-black.svg> ;\n foaf:userProfilePrefix \"https://matrix.to/#/\" ;\n foaf:homepage <https://matrix.org/> .\n\n:MediumAccount rdfs:subClassOf foaf:Account ;\n rdfs:label \"Medium\";\n foaf:userProfilePrefix \"https://medium.com/\";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/medium-logo-wordmark-black.svg>;\n foaf:homepage <https://medium.com/> .\n\n:NostrAccount rdfs:subClassOf foaf:Account ;\n rdfs:label \"Nostr\";\n foaf:userProfilePrefix \"https://primal.net/p/\";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/nostr-icon-purple-on-white.svg>;\n foaf:homepage <https://nostr.net/> .\n\n:OrcidAccount rdfs:subClassOf foaf:Account ;\n rdfs:label \"ORCiD\";\n foaf:userProfilePrefix \"https://orcid.org/\";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/ORCID-1.svg>;\n foaf:homepage <https://orcid.org/> .\n\n:PinterestAccount rdfs:subClassOf foaf:Account ;\n rdfs:label \"Pinterest\";\n foaf:userProfilePrefix \"https://pin.it/\";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/pinterest-2-1.svg>;\n foaf:homepage <https://pinterest.com/> .\n\n:RedditAccount rdfs:subClassOf foaf:Account ;\n rdfs:label \"Reddit\";\n foaf:userProfilePrefix \"https://www.reddit.com/user/\";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/reddit-4.svg>;\n foaf:homepage <https://reddit.com/> .\n\n:SnapchatAccount rdfs:subClassOf foaf:Account ;\n rdfs:label \"Snapchat\";\n foaf:userProfilePrefix \"https://www.snapchat.com/add/\";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/snapchat-1.svg>;\n foaf:homepage <https://www.snapchat.com/> .\n\n:StravaAccount rdfs:subClassOf foaf:Account ;\n rdfs:label \"Strava\";\n foaf:userProfilePrefix \"https://www.strava.com/athletes/\";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/strava-2.svg>;\n foaf:homepage <https://strava.com/> .\n\n:TiktokAccount rdfs:subClassOf foaf:Account ;\n rdfs:label \"TikTok\";\n foaf:userProfilePrefix \"https://www.tiktok.com/@\";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/tiktok-icon-2.svg>;\n foaf:homepage <https://www.tiktok.com/> .\n\n:TumblrAccount rdfs:subClassOf foaf:Account ;\n rdfs:label \"Tumblr\";\n foaf:userProfilePrefix \"https://www.tumblr.com/\";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/tumblr-icon.svg>;\n foaf:homepage <https://www.tumblr.com/> .\n\n:TwitterAccount rdfs:subClassOf foaf:Account ;\n rdfs:label \"X\";\n foaf:userProfilePrefix \"https://x.com/\";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/x-2.svg>;\n foaf:homepage <https://x.com/> .\n\n:OtherAccount rdfs:subClassOf foaf:Account ;\n rdfs:label \"Other\" ;\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/noun_1689339.svg> .\n\n:BlueSkyIdField\n a ui:SingleLineTextField ;\n ui:label \"Username\";\n ui:maxLength \"200\" ;\n ui:property foaf:accountName ; \n ui:pattern \"@[a-z0-9A-Z_-](.[a-z0-9A-Z_-])*\".\n\n:DiggIdField\n a ui:SingleLineTextField ;\n ui:label \"Username\";\n ui:maxLength \"200\" ;\n ui:property foaf:accountName ; \n ui:pattern \"@[a-z0-9A-Z_-](.[a-z0-9A-Z_-])*\".\n\n:FacebookIdField\n a ui:SingleLineTextField ;\n ui:label \"Username\";\n ui:property foaf:accountName ; \n ui:pattern \"[a-z0-9A-Z_-]*\".\n\n:GithubIdField\n a ui:SingleLineTextField ;\n ui:label \"Username\";\n ui:maxLength \"200\" ;\n ui:property foaf:accountName ; \n ui:pattern \"[a-z0-9A-Z_-]*\".\n\n:InstagramIdField\n a ui:SingleLineTextField ;\n ui:label \"Username\";\n ui:maxLength \"200\" ;\n ui:property foaf:accountName ; \n ui:pattern \"[a-z0-9A-Z_-]*\".\n\n:LinkedInIdField\n a ui:SingleLineTextField ;\n ui:label \"Username\";\n ui:maxLength \"200\" ;\n ui:property foaf:accountName ; \n ui:pattern \"[a-z0-9A-Z_-]*(.[a-z0-9A-Z_-])*\".\n\n:MastodonIdField\n a ui:SingleLineTextField ;\n ui:label \"Username\";\n ui:maxLength \"200\" ;\n ui:property foaf:accountName ; \n ui:pattern \"@[a-z0-9A-Z_-]*(.[a-z0-9A-Z_-])*\".\n\n:MatrixIdField\n a ui:SingleLineTextField ;\n ui:label \"Username\";\n ui:maxLength \"200\" ;\n ui:property foaf:accountName ; \n ui:pattern \"@[a-z0-9A-Z_-]*(.[a-z0-9A-Z_-])*\".\n\n:MediumIdField\n a ui:SingleLineTextField ;\n ui:label \"Username\";\n ui:maxLength \"200\" ;\n ui:property foaf:accountName ; \n ui:pattern \"@[a-z0-9A-Z_-]*(.[a-z0-9A-Z_-])*\".\n\n:NostrIdField\n a ui:SingleLineTextField ;\n ui:label \"Username\";\n ui:maxLength \"200\" ;\n ui:property foaf:accountName ; \n ui:pattern \"[a-z0-9A-Z_-]*(.[a-z0-9A-Z_-])*\".\n\n:OrcidIdField\n a ui:SingleLineTextField ;\n ui:label \"Username\";\n ui:maxLength \"200\" ;\n ui:property foaf:accountName ; \n ui:pattern \"[a-z0-9A-Z_-]*\".\n\n:PinterestIdField\n a ui:SingleLineTextField ;\n ui:label \"Username\";\n ui:maxLength \"200\" ;\n ui:property foaf:accountName ; \n ui:pattern \"[a-z0-9A-Z_-]*\".\n\n:RedditIdField\n a ui:SingleLineTextField ;\n ui:label \"Username\";\n ui:maxLength \"200\" ;\n ui:property foaf:accountName ; \n ui:pattern \"[a-z0-9A-Z_-]*\".\n\n:StravaIdField\n a ui:SingleLineTextField ;\n ui:label \"Username\";\n ui:maxLength \"200\" ;\n ui:property foaf:accountName ; \n ui:pattern \"[a-z0-9A-Z_-]*\".\n\n:SnapchatIdField\n a ui:SingleLineTextField ;\n ui:label \"Username\";\n ui:maxLength \"200\" ;\n ui:property foaf:accountName ; \n ui:pattern \"@[a-z0-9A-Z_-]*\".\n\n:TiktokIdField\n a ui:SingleLineTextField ;\n ui:label \"Username\";\n ui:maxLength \"200\" ;\n ui:property foaf:accountName ; \n ui:pattern \"@[a-z0-9A-Z_-]*\".\n\n:TumblrIdField\n a ui:SingleLineTextField ;\n ui:label \"Username\";\n ui:maxLength \"200\" ;\n ui:property foaf:accountName ; \n ui:pattern \"@[a-z0-9A-Z_-]*\".\n\n:TwitterIdField\n a ui:SingleLineTextField ;\n ui:label \"Username\";\n ui:maxLength \"200\" ;\n ui:property foaf:accountName ; \n ui:pattern \"@[a-z0-9A-Z_-]*\".\n\n# an unknown online account needs more info\n\n:OtherIdForm a ui:Group; \n ui:weight 0; \n ui:parts ( \n :OtherIdField \n :OtherIconField \n :OtherLabelField ).\n\n:OtherIdField\n a ui:NamedNodeURIField ;\n ui:label \"Account link\";\n ui:maxLength \"200\" ;\n ui:property foaf:homepage.\n\n:OtherIconField\n a ui:NamedNodeURIField ;\n ui:label \"Icon link\";\n ui:maxLength \"200\" ;\n ui:property foaf:icon.\n\n:OtherLabelField\n a ui:SingleLineTextField ;\n ui:label \"Name\";\n ui:maxLength \"200\" ;\n ui:property rdfs:label.\n\n# ends\n";
|
|
32362
32608
|
const socialMediaFormName = 'socialMedia.ttl'; // The name of the file to upload
|
|
32363
32609
|
|
|
32364
32610
|
const DEFAULT_ICON_URI = _solidUi.icons.iconBase + 'noun_10636_grey.svg'; // grey disc
|
|
32365
32611
|
|
|
32366
32612
|
function expandRdfList(store, node) {
|
|
32367
|
-
const
|
|
32368
|
-
|
|
32369
|
-
|
|
32370
|
-
|
|
32371
|
-
|
|
32372
|
-
|
|
32373
|
-
|
|
32374
|
-
|
|
32375
|
-
|
|
32376
|
-
|
|
32377
|
-
|
|
32378
|
-
const
|
|
32379
|
-
if (!
|
|
32380
|
-
|
|
32381
|
-
|
|
32382
|
-
|
|
32383
|
-
const value = store.any(current, _solidUi.ns.rdf('first'));
|
|
32384
|
-
if (value) items.push(...inner(value));
|
|
32385
|
-
const rest = store.any(current, _solidUi.ns.rdf('rest'));
|
|
32386
|
-
if (!rest || rest.termType === 'NamedNode' && rest.value === _solidUi.ns.rdf('nil').value) break;
|
|
32387
|
-
current = rest;
|
|
32388
|
-
}
|
|
32389
|
-
return items;
|
|
32390
|
-
}
|
|
32391
|
-
return inner(node);
|
|
32613
|
+
const collectionElements = node.elements;
|
|
32614
|
+
if (Array.isArray(collectionElements)) {
|
|
32615
|
+
return collectionElements.flatMap(element => expandRdfList(store, element));
|
|
32616
|
+
}
|
|
32617
|
+
const first = store.any(node, _solidUi.ns.rdf('first'));
|
|
32618
|
+
if (!first) return [node];
|
|
32619
|
+
const items = [];
|
|
32620
|
+
let current = node;
|
|
32621
|
+
while (current) {
|
|
32622
|
+
const value = store.any(current, _solidUi.ns.rdf('first'));
|
|
32623
|
+
if (value) items.push(...expandRdfList(store, value));
|
|
32624
|
+
const rest = store.any(current, _solidUi.ns.rdf('rest'));
|
|
32625
|
+
if (!rest || rest.termType === 'NamedNode' && rest.value === _solidUi.ns.rdf('nil').value) break;
|
|
32626
|
+
current = rest;
|
|
32627
|
+
}
|
|
32628
|
+
return items;
|
|
32392
32629
|
}
|
|
32393
32630
|
function presentSocial(subject, store) {
|
|
32394
32631
|
function nameForAccount(subject) {
|
|
@@ -32419,17 +32656,12 @@ function presentSocial(subject, store) {
|
|
|
32419
32656
|
return DEFAULT_ICON_URI;
|
|
32420
32657
|
}
|
|
32421
32658
|
function homepageForAccount(subject) {
|
|
32422
|
-
const
|
|
32423
|
-
if (acHomepage) return acHomepage.value;
|
|
32424
|
-
const id = store.anyJS(subject, _solidUi.ns.foaf('accountName'), null, subject.doc()) || 'No_account_Name';
|
|
32659
|
+
const id = store.anyJS(subject, _solidUi.ns.foaf('accountName'), null, subject.doc()) || '';
|
|
32425
32660
|
const classes = store.each(subject, _solidUi.ns.rdf('type'));
|
|
32426
32661
|
for (const k of classes) {
|
|
32427
|
-
|
|
32428
|
-
if (
|
|
32429
|
-
|
|
32430
|
-
if (userProfilePrefix) {
|
|
32431
|
-
return userProfilePrefix.value + id.trim();
|
|
32432
|
-
}
|
|
32662
|
+
const userProfilePrefix = store.any(k, _solidUi.ns.foaf('userProfilePrefix'));
|
|
32663
|
+
if (userProfilePrefix) {
|
|
32664
|
+
return userProfilePrefix.value + id.trim();
|
|
32433
32665
|
}
|
|
32434
32666
|
}
|
|
32435
32667
|
return store.anyJS(subject, _solidUi.ns.foaf('homepage'), null, subject.doc()) || '';
|
|
@@ -32445,23 +32677,14 @@ function presentSocial(subject, store) {
|
|
|
32445
32677
|
// we need to load the social media accounts ontology to be able to query all data needed
|
|
32446
32678
|
(0, _rdfFormsHelper.loadDocument)(store, socialMediaForm, socialMediaFormName);
|
|
32447
32679
|
const accountNodes = store.each(subject, _solidUi.ns.foaf('account'));
|
|
32448
|
-
|
|
32449
|
-
|
|
32450
|
-
const accountNameSet = new Set();
|
|
32451
|
-
const accounts = [];
|
|
32452
|
-
for (const ac of accountThings) {
|
|
32453
|
-
if (ac.termType === 'NamedNode') {
|
|
32454
|
-
const accountNameNode = store.any(ac, _solidUi.ns.foaf('accountName'));
|
|
32455
|
-
const accountName = accountNameNode ? accountNameNode.value : '';
|
|
32456
|
-
if (!accountNameSet.has(accountName)) {
|
|
32457
|
-
accountNameSet.add(accountName);
|
|
32458
|
-
accounts.push(accountAsObject(ac));
|
|
32459
|
-
}
|
|
32460
|
-
}
|
|
32461
|
-
}
|
|
32462
|
-
if (!accounts.length) return {
|
|
32680
|
+
const accountThings = accountNodes.flatMap(node => expandRdfList(store, node));
|
|
32681
|
+
if (!accountThings.length) return {
|
|
32463
32682
|
accounts: []
|
|
32464
32683
|
};
|
|
32684
|
+
//console.log('Social: accountThings', accountThings)
|
|
32685
|
+
const accounts = accountThings.map(ac => accountAsObject(ac));
|
|
32686
|
+
//console.log('Social: account objects', accounts)
|
|
32687
|
+
|
|
32465
32688
|
return {
|
|
32466
32689
|
accounts
|
|
32467
32690
|
};
|
|
@@ -32763,7 +32986,7 @@ var _rdfFormsHelper = _interopRequireDefault(__webpack_require__(7824));
|
|
|
32763
32986
|
var _texts = __webpack_require__(1363);
|
|
32764
32987
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
32765
32988
|
/* babel-plugin-inline-import '../ontology/resumeForm.ttl' */
|
|
32766
|
-
const resumeForm = "@prefix os: <http://www.w3.org/2000/10/swap/os#> .\n@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.\n@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.\n@prefix foaf: <http://xmlns.com/foaf/0.1/>.\n@prefix owl: <http://www.w3.org/2002/07/owl#>.\n@prefix solid: <http://www.w3.org/ns/solid/terms#>.\n@prefix ui: <http://www.w3.org/ns/ui#>.\n@prefix schema: <http://schema.org/>.\n@prefix vcard: <http://www.w3.org/2006/vcard/ns#>.\n@prefix org: <http://www.w3.org/ns/org#>.\n@prefix esco: <http://data.europa.eu/esco/model#>.\n@prefix wd: <http://www.wikidata.org/entity/>.\n@prefix wdt: <http://www.wikidata.org/prop/direct/>.\n\n@prefix : <#>.\n\n:this\n <http://purl.org/dc/elements/1.1/title> \"Resume form\" ;\n a ui:Form ;\n ui:parts (\n :CVGroup\n :SkillsHeading :SkillsForm\n :LanguagesHeading :LanguagesForm\n ).\n\n# Curriculum Vitae: membership of organizations\n\n:CVGroup a ui:Group; \n ui:weight 1; \n ui:parts ( \n :CVPrompt \n :involvementWithOrganizationsForm \n ).\n\n:CVPrompt a ui:Comment; ui:contents \"What organizations have you been involved with?\" .\n\n:involvementWithOrganizationsForm a ui:Multiple;\n ui:label \"Involvement with organization\";\n ui:property org:member; \n ui:reverse true; # link back from role to member\n ui:ordered false; # Allow user to order CV secions rather than force date order? No.\n ui:part :RoleMembershipForm.\n\norg:member owl:inverse [ ui:label \"Involvement with organization\" ]. # timelimited involvement\n\n# This is a big important form for one of a series of roles in the list.\n\n:RoleMembershipForm a ui:Group; \n ui:weight 3; \n ui:parts ( \n :MembershipFormHeading \n :roleNameField\n :escoOccupationField \n :orgField \n :RoleClassifier \n :RoleDatesForm \n :RoleDescriptionForm).\n\n:MembershipFormHeading a ui:Heading; \n ui:contents \"Details of the role\"@en, \"D\xE9tailes de ce r\xF4le\"@fr .\n\n:roleNameField a ui:SingleLineTextField; \n ui:property vcard:role .\n\n:escoOccupationField a ui:AutocompleteField;\n ui:label \"Occupation\";\n ui:property org:role;\n ui:dataSource :ESCO_Occupation_DataSource;\n ui:targetClass schema:Occupation .\n\n :ESCO_Occupation_DataSource a ui:DataSource;\n schema:name \"ESCO\";\n ui:targetClass schema:Occupation ;\n schema:logo <https://ec.europa.eu/esco/portal/static_resource2/images/logo/logo_en.gif>;\n ui:searchByNameURI \"https://ec.europa.eu/esco/api/search?language=$(language)&type=occupation&text=$(name)\".\n\n:orgField a ui:Choice; \n ui:label \"Organization\"@en, \"Organization\"@fr;\n ui:canMintNew true; \n ui:use :OrganizationCreationForm ;\n ui:property org:organization;\n ui:from vcard:Organization .\n\nvcard:Organization ui:creationForm :OrganizationCreationForm .\n\n###### eposodes in one's career - Roles\n\n:RoleClassifier a ui:Classifier; \n ui:label \"What sort of role?\"@en;\n ui:category solid:Role .\n\n:RoleDatesForm a ui:Options; \n ui:dependingOn rdf:type; \n ui:case\n [ ui:for solid:PastRole; ui:use :TwoDateForm ],\n [ ui:for solid:CurrentRole; ui:use :StartDateForm ],\n [ ui:for solid:FutureRole; ui:use :StartDateForm ].\n\n :TwoDateForm a ui:Group; \n ui:weight 0; \n ui:parts ( :StartDateForm :EndDateForm ) .\n :StartDateForm a ui:DateField; \n ui:label \"Start\"@en,\"D\xE9but\"@fr;\n ui:property schema:startDate .\n :EndDateForm a ui:DateField; \n ui:label \"End\"@en,\"Fin\"@fr;\n ui:property schema:endDate .\n\nsolid:Role a rdfs:Class;\n owl:disjointUnionOf ( solid:PastRole solid:CurrentRole solid:FutureRole ) ;\n owl:oneOf ( solid:CurrentRole solid:PastRole solid:FutureRole ). # Future Role too?\n\nsolid:PastRole a rdfs:Class; rdfs:label \"Former role\"@en, \"Ancien r\xF4le\"@fr, \"Vergangene Rolle\"@de, \"Rol anterior\"@es .\nsolid:CurrentRole a rdfs:Class; rdfs:label \"Current role\"@en, \"R\xF4le actuel\"@fr, \"Momentane Rolle\"@de , \"Rol actual\"@es .\nsolid:FutureRole a rdfs:Class; rdfs:label \"Future role\"@en, \"R\xF4le \xE0 venir\"@fr, \"Zuk\xFCnftige Rolle\"@de, \"Rol futuro\"@es .\n\n:RoleDescriptionForm a ui:MultiLineTextField; \n ui:property schema:description;\n ui:label \"Describe your role\" .\n\n###### Organizations\n\n:OrganizationCreationForm a ui:Form; \n schema:name \"Form for editing an organization using public data\" ;\n ui:parts ( \n :OrgClassifier \n :OrgSwitch \n :OrganizationNameField \n :homePageURIField ) .\n\n:OrgClassifier a ui:Classifier; \n ui:label \"Type of organization?\"@en;\n ui:category solid:InterestingOrganization .\n\n:OrgSwitch a ui:Options; \n ui:dependingOn rdf:type;\n ui:case\n [ ui:for schema:Corporation; ui:use :CorporationForm ],\n [ ui:for schema:GovernmentOrganization; ui:use :GovernmentOrganizationForm ],\n [ ui:for schema:PerformingGroup; ui:use :PerformingGroupForm ],\n [ ui:for schema:Project; ui:use :ProjectForm ],\n [ ui:for schema:NGO; ui:use :NGOForm ],\n [ ui:for schema:EducationalOrganization; ui:use :EducationalOrganizationForm ],\n [ ui:for schema:ResearchOrganization; ui:use :ResearchOrganizationForm ],\n [ ui:for schema:SportsOrganization; ui:use :SportsOrganizationForm ].\n\n:OrganizationNameField\n a ui:SingleLineTextField ;\n ui:label \"Name\";\n ui:maxLength \"200\" ;\n ui:property schema:name .\n\n:homePageURIField a ui:NamedNodeURIField;\n ui:label \"Homepage\"@en;\n ui:property schema:uri .\n\n# Ontology data to drive the :OrgClassifier classifier\nsolid:InterestingOrganization owl:disjointUnionOf (\n # Airline - a Corporation\n # Consortium - a Corporation or a NGO\n schema:Corporation\n schema:EducationalOrganization\n schema:ResearchOrganization # Proposed. https://github.com/schemaorg/schemaorg/issues/2877\n # FundingScheme - eh?\n schema:GovernmentOrganization\n # LibrarySystem\n # LocalBusiness - Corporation\n # MedicalOrganization - a Corporation or a NGO\n schema:NGO\n # NewsMediaOrganization - a Corporation or a NGO\n schema:PerformingGroup # a band\n schema:Project # like Solid\n schema:SportsOrganization) .\n\n# This until the schema.org ontology adopts it\nschema:ResearchOrganization a rdfs:Class; \n rdfs:label \"Research Organization\"@en, \"Organization de Recherche\"@fr ,\"organizaci\xF3n de investigaci\xF3n\"@es, \n \"\u0645\u0646\u0638\u0645\u0629 \u0627\u0644\u0628\u062D\u062B\"@ar, \"\u0905\u0928\u0941\u0938\u0902\u0927\u093E\u0928 \u0938\u0902\u0917\u0920\u0928\"@hi, \"Forschungsorganisation\"@de, \"shirika la utafiti\"@sw .\n\n##### Depending on the type of org, chose a different form\n\n#### Corporation\n:CorporationForm a ui:Group; \n ui:weight 0; \n ui:parts ( \n :CorporationPrompt \n :CorporationAutocomplete ) .\n\n :CorporationPrompt a ui:Comment; ui:contents \"Corporation details\".\n\n :CorporationAutocomplete a ui:AutocompleteField; \n ui:label \"Find in wikidata\";\n ui:targetClass <http://www.wikidata.org/entity/Q6881511>; # Enterprise\n ui:property solid:publicId; \n ui:dataSource :WikidataInstancesByName.\n\n :WikidataInstancesByName a ui:DataSource ;\n schema:name \"Wikidata instances by name\";\n ui:endpoint \"https://query.wikidata.org/sparql\" ;\n ui:searchByNameQuery \"\"\"SELECT ?subject ?name\n WHERE {\n ?klass wdt:P279* $(targetClass) .\n ?subject wdt:P31 ?klass .\n ?subject rdfs:label ?name.\n FILTER regex(?name, \"$(name)\", \"i\")\n } LIMIT $(limit) \"\"\" ;\n\n # Note this form of the query is very experimental\n ui:searchByName [ ui:construct { ?subject schema:name ?name } ;\n ui:where { ?klass wdt:P279 ?targetClass .\n ?subject wdt:P31 ?klass; rdfs:label ?name .\n };\n ].\n\n#### Gouvernment\n:GovernmentOrganizationForm a ui:Group; \n ui:weight 0; \n ui:parts ( \n :GovernmentOrganizationPrompt \n :GovernmentOrganizationAutocomplete ) .\n\n :GovernmentOrganizationPrompt a ui:Comment; ui:contents \"Government organization details\".\n\n :GovernmentOrganizationAutocomplete\n a ui:AutocompleteField; ui:label \"Find in wikidata\";\n ui:targetClass <http://www.wikidata.org/entity/Q327333>; # GovernmentOrganization\n ui:property solid:publicId; \n ui:dataSource :WikidataInstancesByName.\n\n#### Educational\n:EducationalOrganizationForm a ui:Group; \n ui:weight 1; \n ui:parts ( \n :EducationalOrganizationPrompt \n :EducationalOrganizationAutocomplete ) .\n\n :EducationalOrganizationPrompt a ui:Comment; ui:contents \"Educational organization details\".\n\n :EducationalOrganizationAutocomplete\n a ui:AutocompleteField; ui:label \"Find in wikidata\";\n ui:targetClass <http://www.wikidata.org/entity/Q2385804>; # EducationalOrganization\n ui:property solid:publicId; ui:dataSource :WikidataInstancesByName.\n\n#### Research Group\n:ResearchOrganizationForm a ui:Group; \n ui:weight 0; \n ui:parts ( \n :ResearchOrganizationPrompt \n :ResearchOrganizationAutocomplete ) .\n\n :ResearchOrganizationPrompt a ui:Comment; ui:contents \"Research organizationd details\".\n\n :ResearchOrganizationAutocomplete\n a ui:AutocompleteField; ui:label \"Find in wikidata\";\n ui:targetClass <http://www.wikidata.org/entity/Q31855>; # research institute\n ui:property solid:publicId; ui:dataSource :WikidataInstancesByName.\n\n#### NGO\n:NGOForm a ui:Group; ui:weight 0; \n ui:parts ( \n :NGOPrompt \n :NGOAutocomplete ) .\n\n :NGOPrompt a ui:Comment; ui:contents \"NGO details\".\n\n :NGOAutocomplete\n a ui:AutocompleteField; ui:label \"Find in wikidata\";\n ui:targetClass <http://www.wikidata.org/entity/Q163740>; # Non-profit org\n ui:property solid:publicId; ui:dataSource :WikidataInstancesByName.\n\n#### Performing group\n:PerformingGroupForm a ui:Group; \n ui:weight 0; \n ui:parts ( \n :PerformingGroupPrompt \n :PerformingGroupAutocomplete ) .\n\n :PerformingGroupPrompt a ui:Comment; ui:contents \"Performing group details\".\n\n :PerformingGroupAutocomplete\n a ui:AutocompleteField; ui:label \"Find in wikidata\";\n ui:targetClass <http://www.wikidata.org/entity/Q32178211>; # Music Org\n ui:property solid:publicId; ui:dataSource :WikidataInstancesByName.\n\n#### Project\n:ProjectForm a ui:Group; \n ui:weight 0; \n ui:parts ( \n :ProjectPrompt \n :ProjectAutocomplete ) . # :ProjectAutocomplete - no: supress, as not in WD\n\n :ProjectPrompt a ui:Comment; ui:contents \"Project details\".\n\n :ProjectAutocomplete\n a ui:AutocompleteField; ui:label \"Find in wikidata\";\n ui:targetClass <http://www.wikidata.org/entity/Q170584>; # Project\n ui:property solid:publicId; ui:dataSource :WikidataInstancesByName.\n\n#### Sports Organization\n:SportsOrganizationForm a ui:Group; \n ui:weight 0; \n ui:parts ( \n :SportsOrganizationPrompt \n :SportsOrganizationAutocomplete ) .\n\n:SportsOrganizationPrompt a ui:Comment; ui:contents \"Sports organization details\".\n\n:SportsOrganizationAutocomplete\n a ui:AutocompleteField; ui:label \"Find in wikidata\";\n ui:targetClass <http://www.wikidata.org/entity/Q4438121>; # SportsOrganization\n ui:property solid:publicId; ui:dataSource :WikidataInstancesByName.\n\n#################### Skills\n\n:SkillsHeading a ui:Heading; \n ui:contents \"Add your skills\" .\n\n:SkillsForm a ui:Multiple;\n ui:label \"Skills\";\n ui:property schema:skills;\n ui:ordered false; # Allow reader to order skills\n ui:part :SkillForm.\n\n:SkillForm a ui:Group; ui:weight 1; ui:parts ( :escoSkillField ).\n\n :escoSkillField a ui:AutocompleteField;\n ui:label \"Find in ESCO\";\n ui:property solid:publicId;\n ui:dataSource :ESCO_Skill_DataSource;\n ui:targetClass schema:Skill .\n\n :ESCO_Skill_DataSource a ui:DataSource;\n schema:name \"ESCO skill\";\n ui:targetClass esco:Skill ;\n schema:logo <https://ec.europa.eu/esco/portal/static_resource2/images/logo/logo_en.gif>;\n ui:searchByNameURI \"https://ec.europa.eu/esco/api/search?language=$(language)&limit=$(limit)&type=skill&text=$(name)\".\n\n#################### Languages\n\n:LanguagesHeading a ui:Heading; ui:contents \"Add your languages\" .\n\n:LanguagesForm a ui:Multiple;\n ui:label \"Languages\";\n ui:property schema:knowsLanguage; \n ui:ordered true; # Allow user to order languages most important first.\n ui:part :LanguageForm.\n\n:LanguageForm a ui:Group; ui:weight 1; ui:parts ( :WikidataLanguageField ).\n\n :WikidataLanguageField a ui:AutocompleteField;\n ui:label \"Language\";\n ui:property solid:publicId; \n ui:dataSource :WikidataLanguageDataSource;\n ui:targetClass schema:Language .\n\n :WikidataLanguageDataSource\n schema:name \"Find in wikidata\";\n ui:endpoint \"https://query.wikidata.org/sparql\" ;\n ui:objectURIBase <https://www.w3.org/ns/iana/language-code/>;\n # Add this to any literal string returned as ?subject\n ui:searchByNameQuery \"\"\"SELECT ?item ?subject ?name\n WHERE\n { ?item wdt:P305 ?subject .\n OPTIONAL {?item rdfs:label ?name}\n OPTIONAL {?item wdt:P1705 ?name}\n FILTER regex(?name, \"$(name)\", \"i\")\n FILTER regex(?subject, \"^..$\", \"i\")\n }\"\"\" .\n # Note we restrict code to two-letter codes with the second regex, so as to limit the deluge of languages\n # Hope there are not any important ones which have three-letter codes.\n # Omitted: SERVICE wikibase:label { bd:serviceParam wikibase:language \"$(languages)\". }";
|
|
32989
|
+
const resumeForm = "@prefix os: <http://www.w3.org/2000/10/swap/os#> .\n@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.\n@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.\n@prefix foaf: <http://xmlns.com/foaf/0.1/>.\n@prefix owl: <http://www.w3.org/2002/07/owl#>.\n@prefix solid: <http://www.w3.org/ns/solid/terms#>.\n@prefix ui: <http://www.w3.org/ns/ui#>.\n@prefix schema: <http://schema.org/>.\n@prefix vcard: <http://www.w3.org/2006/vcard/ns#>.\n@prefix org: <http://www.w3.org/ns/org#>.\n@prefix esco: <http://data.europa.eu/esco/model#>.\n@prefix wd: <http://www.wikidata.org/entity/>.\n@prefix wdt: <http://www.wikidata.org/prop/direct/>.\n\n@prefix : <#>.\n\n:this\n <http://purl.org/dc/elements/1.1/title> \"Resume form\" ;\n a ui:Form ;\n ui:parts (\n :CVGroup\n :SkillsHeading :SkillsForm\n :LanguagesHeading :LanguagesForm\n ).\n\n# Curriculum Vitae: membership of organizations\n\n:CVGroup a ui:Group; \n ui:weight 1; \n ui:parts ( \n :CVPrompt \n :involvementWithOrganizationsForm \n ).\n\n:CVPrompt a ui:Comment; ui:contents \"What organizations have you been involved with?\" .\n\n:involvementWithOrganizationsForm a ui:Multiple;\n ui:label \"Involvement with organization\";\n ui:property org:member; \n ui:reverse true; # link back from role to member\n ui:ordered false; # Allow user to order CV secions rather than force date order? No.\n ui:part :RoleMembershipForm.\n\norg:member owl:inverse [ ui:label \"Involvement with organization\" ]. # timelimited involvement\n\n# This is a big important form for one of a series of roles in the list.\n\n:RoleMembershipForm a ui:Group; \n ui:weight 3; \n ui:parts ( \n :MembershipFormHeading\n :RoleClassifier \n :roleNameField\n :escoOccupationField \n :orgField \n :RoleDatesForm \n :RoleDescriptionForm).\n\n:MembershipFormHeading a ui:Heading; \n ui:contents \"Details of the role\"@en, \"D\xE9tailes de ce r\xF4le\"@fr .\n\n:roleNameField a ui:SingleLineTextField;\n ui:label \"Job title\";\n ui:property vcard:role .\n\n:escoOccupationField a ui:AutocompleteField;\n ui:label \"Occupation in ESCO\";\n ui:property org:role;\n ui:dataSource :ESCO_Occupation_DataSource;\n ui:targetClass schema:Occupation .\n\n :ESCO_Occupation_DataSource a ui:DataSource;\n schema:name \"ESCO\";\n ui:targetClass schema:Occupation ;\n schema:logo <https://ec.europa.eu/esco/portal/static_resource2/images/logo/logo_en.gif>;\n ui:searchByNameURI \"https://ec.europa.eu/esco/api/search?language=$(language)&type=occupation&text=$(name)\".\n\n:orgField a ui:Choice; \n ui:label \"For organization\"@en, \"Pour l'organisation\"@fr;\n ui:canMintNew true; \n ui:use :OrganizationCreationForm ;\n ui:property org:organization;\n ui:from vcard:Organization .\n\nvcard:Organization ui:creationForm :OrganizationCreationForm .\n\n###### eposodes in one's career - Roles\n\n:RoleClassifier a ui:Classifier; \n ui:label \"Job type\"@en;\n ui:category solid:Role .\n\n:RoleDatesForm a ui:Options; \n ui:dependingOn rdf:type; \n ui:case\n [ ui:for solid:PastRole; ui:use :TwoDateForm ],\n [ ui:for solid:CurrentRole; ui:use :StartDateForm ],\n [ ui:for solid:FutureRole; ui:use :StartDateForm ].\n\n :TwoDateForm a ui:Group; \n ui:weight 0; \n ui:parts ( :StartDateForm :EndDateForm ) .\n :StartDateForm a ui:DateField; \n ui:label \"Start\"@en,\"D\xE9but\"@fr;\n ui:property schema:startDate .\n :EndDateForm a ui:DateField; \n ui:label \"End\"@en,\"Fin\"@fr;\n ui:property schema:endDate .\n\nsolid:Role a rdfs:Class;\n owl:disjointUnionOf ( solid:PastRole solid:CurrentRole solid:FutureRole ) ;\n owl:oneOf ( solid:CurrentRole solid:PastRole solid:FutureRole ). # Future Role too?\n\nsolid:PastRole a rdfs:Class; rdfs:label \"Former role\"@en, \"Ancien r\xF4le\"@fr, \"Vergangene Rolle\"@de, \"Rol anterior\"@es .\nsolid:CurrentRole a rdfs:Class; rdfs:label \"Current role\"@en, \"R\xF4le actuel\"@fr, \"Momentane Rolle\"@de , \"Rol actual\"@es .\nsolid:FutureRole a rdfs:Class; rdfs:label \"Future role\"@en, \"R\xF4le \xE0 venir\"@fr, \"Zuk\xFCnftige Rolle\"@de, \"Rol futuro\"@es .\n\n:RoleDescriptionForm a ui:MultiLineTextField; \n ui:property schema:description;\n ui:label \"Describe your role\" .\n\n###### Organizations\n\n:OrganizationCreationForm a ui:Form; \n schema:name \"Form for editing an organization using public data\" ;\n ui:parts ( \n :OrgClassifier \n :OrganizationNameField\n :OrgSwitch\n :homePageURIField ) .\n\n:OrgClassifier a ui:Classifier; \n ui:label \"Type\"@en;\n ui:category solid:InterestingOrganization .\n\n:OrgSwitch a ui:Options; \n ui:dependingOn rdf:type;\n ui:case\n [ ui:for schema:Corporation; ui:use :CorporationForm ],\n [ ui:for schema:GovernmentOrganization; ui:use :GovernmentOrganizationForm ],\n [ ui:for schema:PerformingGroup; ui:use :PerformingGroupForm ],\n [ ui:for schema:Project; ui:use :ProjectForm ],\n [ ui:for schema:NGO; ui:use :NGOForm ],\n [ ui:for schema:EducationalOrganization; ui:use :EducationalOrganizationForm ],\n [ ui:for schema:ResearchOrganization; ui:use :ResearchOrganizationForm ],\n [ ui:for schema:SportsOrganization; ui:use :SportsOrganizationForm ].\n\n:OrganizationNameField a ui:SingleLineTextField ;\n ui:label \"Name\";\n ui:maxLength \"200\" ;\n ui:property schema:name .\n\n:homePageURIField a ui:NamedNodeURIField;\n ui:label \"Homepage\"@en;\n ui:property schema:uri .\n\n# Ontology data to drive the :OrgClassifier classifier\nsolid:InterestingOrganization owl:disjointUnionOf (\n # Airline - a Corporation\n # Consortium - a Corporation or a NGO\n schema:Corporation\n schema:EducationalOrganization\n schema:ResearchOrganization # Proposed. https://github.com/schemaorg/schemaorg/issues/2877\n # FundingScheme - eh?\n schema:GovernmentOrganization\n # LibrarySystem\n # LocalBusiness - Corporation\n # MedicalOrganization - a Corporation or a NGO\n schema:NGO\n # NewsMediaOrganization - a Corporation or a NGO\n schema:PerformingGroup # a band\n schema:Project # like Solid\n schema:SportsOrganization) .\n\n# This until the schema.org ontology adopts it\nschema:ResearchOrganization a rdfs:Class; \n rdfs:label \"Research Organization\"@en, \"Organization de Recherche\"@fr ,\"organizaci\xF3n de investigaci\xF3n\"@es, \n \"\u0645\u0646\u0638\u0645\u0629 \u0627\u0644\u0628\u062D\u062B\"@ar, \"\u0905\u0928\u0941\u0938\u0902\u0927\u093E\u0928 \u0938\u0902\u0917\u0920\u0928\"@hi, \"Forschungsorganisation\"@de, \"shirika la utafiti\"@sw .\n\n##### Depending on the type of org, chose a different form\n\n#### Corporation\n:CorporationForm a ui:Group; \n ui:weight 0; \n ui:parts ( \n :CorporationAutocomplete ) .\n\n :CorporationAutocomplete a ui:AutocompleteField; \n ui:label \"Find in wikidata\";\n ui:targetClass <http://www.wikidata.org/entity/Q6881511>; # Enterprise\n ui:property solid:publicId; \n ui:dataSource :WikidataInstancesByName.\n\n :WikidataInstancesByName a ui:DataSource ;\n schema:name \"Wikidata instances by name\";\n ui:endpoint \"https://query.wikidata.org/sparql\" ;\n ui:searchByNameQuery \"\"\"SELECT ?subject ?name\n WHERE {\n ?klass wdt:P279* $(targetClass) .\n ?subject wdt:P31 ?klass .\n ?subject rdfs:label ?name.\n FILTER regex(?name, \"$(name)\", \"i\")\n } LIMIT $(limit) \"\"\" ;\n\n # Note this form of the query is very experimental\n ui:searchByName [ ui:construct { ?subject schema:name ?name } ;\n ui:where { ?klass wdt:P279 ?targetClass .\n ?subject wdt:P31 ?klass; rdfs:label ?name .\n };\n ].\n\n#### Gouvernment\n:GovernmentOrganizationForm a ui:Group; \n ui:weight 0; \n ui:parts ( \n :GovernmentOrganizationAutocomplete ) .\n\n :GovernmentOrganizationAutocomplete\n a ui:AutocompleteField; ui:label \"Find in wikidata\";\n ui:targetClass <http://www.wikidata.org/entity/Q327333>; # GovernmentOrganization\n ui:property solid:publicId; \n ui:dataSource :WikidataInstancesByName.\n\n#### Educational\n:EducationalOrganizationForm a ui:Group; \n ui:weight 1; \n ui:parts ( \n :EducationalOrganizationAutocomplete ) .\n\n :EducationalOrganizationAutocomplete\n a ui:AutocompleteField; ui:label \"Find in wikidata\";\n ui:targetClass <http://www.wikidata.org/entity/Q2385804>; # EducationalOrganization\n ui:property solid:publicId; ui:dataSource :WikidataInstancesByName.\n\n#### Research Group\n:ResearchOrganizationForm a ui:Group; \n ui:weight 0; \n ui:parts ( \n :ResearchOrganizationAutocomplete ) .\n\n :ResearchOrganizationAutocomplete\n a ui:AutocompleteField; ui:label \"Find in wikidata\";\n ui:targetClass <http://www.wikidata.org/entity/Q31855>; # research institute\n ui:property solid:publicId; ui:dataSource :WikidataInstancesByName.\n\n#### NGO\n:NGOForm a ui:Group; ui:weight 0; \n ui:parts ( \n :NGOAutocomplete ) .\n\n :NGOAutocomplete\n a ui:AutocompleteField; ui:label \"Find in wikidata\";\n ui:targetClass <http://www.wikidata.org/entity/Q163740>; # Non-profit org\n ui:property solid:publicId; ui:dataSource :WikidataInstancesByName.\n\n#### Performing group\n:PerformingGroupForm a ui:Group; \n ui:weight 0; \n ui:parts ( \n :PerformingGroupAutocomplete ) .\n\n :PerformingGroupAutocomplete\n a ui:AutocompleteField; ui:label \"Find in wikidata\";\n ui:targetClass <http://www.wikidata.org/entity/Q32178211>; # Music Org\n ui:property solid:publicId; ui:dataSource :WikidataInstancesByName.\n\n#### Project\n:ProjectForm a ui:Group; \n ui:weight 0; \n ui:parts ( \n :ProjectAutocomplete ) . # :ProjectAutocomplete - no: supress, as not in WD\n\n :ProjectAutocomplete\n a ui:AutocompleteField; ui:label \"Find in wikidata\";\n ui:targetClass <http://www.wikidata.org/entity/Q170584>; # Project\n ui:property solid:publicId; ui:dataSource :WikidataInstancesByName.\n\n#### Sports Organization\n :SportsOrganizationForm a ui:Group; \n ui:weight 0; \n ui:parts ( \n :SportsOrganizationAutocomplete ) .\n\n :SportsOrganizationAutocomplete\n a ui:AutocompleteField; ui:label \"Find in wikidata\";\n ui:targetClass <http://www.wikidata.org/entity/Q4438121>; # SportsOrganization\n ui:property solid:publicId; ui:dataSource :WikidataInstancesByName.\n\n#################### Skills\n\n:SkillsHeading a ui:Heading; \n ui:contents \"Add your skills\" .\n\n:SkillsForm a ui:Multiple;\n ui:label \"Skills\";\n ui:property schema:skills;\n ui:ordered false; # Allow reader to order skills\n ui:part :SkillForm.\n\n:SkillForm a ui:Group; ui:weight 1; ui:parts ( :escoSkillField ).\n\n :escoSkillField a ui:AutocompleteField;\n ui:label \"Find in ESCO\";\n ui:property solid:publicId;\n ui:dataSource :ESCO_Skill_DataSource;\n ui:targetClass schema:Skill .\n\n :ESCO_Skill_DataSource a ui:DataSource;\n schema:name \"ESCO skill\";\n ui:targetClass esco:Skill ;\n schema:logo <https://ec.europa.eu/esco/portal/static_resource2/images/logo/logo_en.gif>;\n ui:searchByNameURI \"https://ec.europa.eu/esco/api/search?language=$(language)&limit=$(limit)&type=skill&text=$(name)\".\n\n#################### Languages\n\n:LanguagesHeading a ui:Heading; ui:contents \"Add your languages\" .\n\n:LanguagesForm a ui:Multiple;\n ui:label \"Languages\";\n ui:property schema:knowsLanguage; \n ui:ordered true; # Allow user to order languages most important first.\n ui:part :LanguageForm.\n\n:LanguageForm a ui:Group; ui:weight 1; ui:parts ( :WikidataLanguageField ).\n\n :WikidataLanguageField a ui:AutocompleteField;\n ui:label \"Language\";\n ui:property solid:publicId; \n ui:dataSource :WikidataLanguageDataSource;\n ui:targetClass schema:Language .\n\n :WikidataLanguageDataSource\n schema:name \"Find in wikidata\";\n ui:endpoint \"https://query.wikidata.org/sparql\" ;\n ui:objectURIBase <https://www.w3.org/ns/iana/language-code/>;\n # Add this to any literal string returned as ?subject\n ui:searchByNameQuery \"\"\"SELECT ?item ?subject ?name\n WHERE\n { ?item wdt:P305 ?subject .\n OPTIONAL {?item rdfs:label ?name}\n OPTIONAL {?item wdt:P1705 ?name}\n FILTER regex(?name, \"$(name)\", \"i\")\n FILTER regex(?subject, \"^..$\", \"i\")\n }\"\"\" .\n # Note we restrict code to two-letter codes with the second regex, so as to limit the deluge of languages\n # Hope there are not any important ones which have three-letter codes.\n # Omitted: SERVICE wikibase:label { bd:serviceParam wikibase:language \"$(languages)\". }";
|
|
32767
32990
|
const resumeFormName = 'resumeForm.ttl'; // The name of the form file
|
|
32768
32991
|
|
|
32769
32992
|
function EditCVSection(context, me, editableProfile, store) {
|
|
@@ -33135,7 +33358,7 @@ var _rdfFormsHelper = _interopRequireDefault(__webpack_require__(7824));
|
|
|
33135
33358
|
var _texts = __webpack_require__(1363);
|
|
33136
33359
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
33137
33360
|
/* babel-plugin-inline-import '../ontology/socialMedia.ttl' */
|
|
33138
|
-
const socialMediaForm = "@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.\n@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.\n@prefix foaf: <http://xmlns.com/foaf/0.1/>.\n@prefix owl: <http://www.w3.org/2002/07/owl#>.\n@prefix solid: <http://www.w3.org/ns/solid/terms#>.\n@prefix ui: <http://www.w3.org/ns/ui#>.\n@prefix schema: <http://schema.org/>.\n@prefix vcard: <http://www.w3.org/2006/vcard/ns#>.\n@prefix org: <http://www.w3.org/ns/org#>.\n@prefix : <#>.\n\n########### ATTENTION - we cannot rename this ontology file name without migrating existing data on existing accounts\n\n########### Social Media - other accounts\n#\n# Twitter, linked In, Orkid, Mastodon, Matrix, Bluesky, Instagram, Facebook, Github,\n# Snapchat, TikTok, etc\n\n:this\n <http://purl.org/dc/elements/1.1/title> \"Social media form\" ;\n a ui:Form ;\n ui:parts (\n :SocialsForm\n ).\n\n:SocialsForm a ui:Multiple;\n ui:label \"online account\";\n ui:property foaf:account; # the triple is created with the foaf:acccounts predicate\n ui:ordered true; # Allow user to order occounts most important first.\n ui:part :AccountsForm.\n\n:AccountsForm a ui:Group; \n ui:weight 1; \n ui:parts ( \n :AccountField \n :AccountIdField ).\n\n:AccountField a ui:Classifier; \n ui:label \"Choose account\"@en;\n ui:multiple false ; \n ui:category foaf:Account. # the accounts are described by the foaf:Account predicate\n\n# this is what is needed to make a dropdown box\nfoaf:Account a rdfs:Class;\n rdfs:label \"Online Account Provider\";\n owl:disjointUnionOf ( \n :BlueSkyAccount :DiggAccount :FacebookAccount :GithubAccount :InstagramAccount\n :LinkedInAccount :MastodonAccount :MatrixAccount :MediumAccount :NostrAccount \n :OrcidAccount :PinterestAccount :RedditAccount :SnapchatAccount :StravaAccount \n :TiktokAccount :TumblrAccount :TwitterAccount :OtherAccount) .\n\n:AccountIdField a ui:Options; \n ui:dependingOn rdf:type; \n ui:case\n [ ui:for :BlueSkyAccount; ui:use :BlueSkyIdField ],\n [ ui:for :DiggAccount; ui:use :DiggIdField],\n [ ui:for :FacebookAccount; ui:use :FacebookIdField ],\n [ ui:for :GithubAccount; ui:use :GithubIdField ],\n [ ui:for :InstagramAccount; ui:use :InstagramIdField ],\n [ ui:for :LinkedInAccount; ui:use :LinkedInIdField ],\n [ ui:for :MastodonAccount; ui:use :MastodonIdField ],\n [ ui:for :MatrixAccount; ui:use :MatrixIdField ],\n [ ui:for :MediumAccount; ui:use :MediumIdField ],\n [ ui:for :NostrAccount; ui:use :NostrIdField ],\n [ ui:for :OrcidAccount; ui:use :OrcidIdField ],\n [ ui:for :PinterestAccount; ui:use :PinterestIdField ],\n [ ui:for :RedditAccount; ui:use :RedditIdField ],\n [ ui:for :StravaAccount; ui:use :StravaIdField ],\n [ ui:for :SnapchatAccount; ui:use :SnapchatIdField ],\n [ ui:for :TiktokAccount; ui:use :TiktokIdField ],\n [ ui:for :TumblrAccount; ui:use :TumblrIdField ],\n [ ui:for :TwitterAccount; ui:use :TwitterIdField ],\n [ ui:for :OtherAccount; ui:use :OtherIdForm ] .\n\n:BlueSkyAccount rdfs:subClassOf foaf:Account ;\n rdfs:label \"Bluesky\";\n foaf:userProfilePrefix \"https://bsky.app/profile/\";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/bluesky-1.svg>;\n foaf:homepage <https://bsky.app/> .\n\n:DiggAccount rdfs:subClassOf foaf:Account ;\n rdfs:label \"Digg\";\n foaf:userProfilePrefix \"https://www.digg.com/\";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/digg-icon.svg>;\n foaf:homepage <https://www.digg.com/> .\n\n:FacebookAccount rdfs:subClassOf foaf:Account ;\n rdfs:label \"Facebook\";\n foaf:userProfilePrefix \"https://www.facebook.com/\";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/facebook-2020-2-1.svg>;\n foaf:homepage <https://www.facebook.com/> .\n\n:GithubAccount rdfs:subClassOf foaf:Account ;\n rdfs:label \"Github\";\n foaf:userProfilePrefix \"https://www.github.com/\";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/github-icon.svg>;\n foaf:homepage <https://github.com/> .\n\n:InstagramAccount rdfs:subClassOf foaf:Account ;\n rdfs:label \"Instagram\";\n foaf:userProfilePrefix \"https://www.instagram.com/\";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/instagram-2016-5.svg>;\n foaf:homepage <https://www.instagram.com/> .\n\n:LinkedInAccount rdfs:subClassOf foaf:Account ;\n rdfs:label \"LinkedIn\";\n foaf:userProfilePrefix \"https://www.linkedin.com/in/\";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/linkedin-icon.svg>;\n foaf:homepage <https://linkedin.com/> .\n\n:MastodonAccount rdfs:subClassOf foaf:Account ;\n rdfs:label \"Mastodon\" ;\n foaf:userProfilePrefix \"https://mastodon.social/\";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/mastodon-2.svg>;\n foaf:homepage <https://joinmastodon.org/> .\n\n:MatrixAccount rdfs:subClassOf foaf:Account ;\n rdfs:label \"Matrix\" ;\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/matrix-logo-black.svg> ;\n foaf:userProfilePrefix \"https://matrix.to/#/\" ;\n foaf:homepage <https://matrix.org/> .\n\n:MediumAccount rdfs:subClassOf foaf:Account ;\n rdfs:label \"Medium\";\n foaf:userProfilePrefix \"https://medium.com/\";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/medium-logo-wordmark-black.svg>;\n foaf:homepage <https://medium.com/> .\n\n:NostrAccount rdfs:subClassOf foaf:Account ;\n rdfs:label \"Nostr\";\n foaf:userProfilePrefix \"https://primal.net/p/\";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/nostr-icon-purple-on-white.svg>;\n foaf:homepage <https://nostr.net/> .\n\n:OrcidAccount rdfs:subClassOf foaf:Account ;\n rdfs:label \"ORCiD\";\n foaf:userProfilePrefix \"https://orcid.org/\";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/ORCID-1.svg>;\n foaf:homepage <https://orcid.org/> .\n\n:PinterestAccount rdfs:subClassOf foaf:Account ;\n rdfs:label \"Pinterest\";\n foaf:userProfilePrefix \"https://pin.it/\";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/pinterest-2-1.svg>;\n foaf:homepage <https://pinterest.com/> .\n\n:RedditAccount rdfs:subClassOf foaf:Account ;\n rdfs:label \"Reddit\";\n foaf:userProfilePrefix \"https://www.reddit.com/user/\";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/reddit-4.svg>;\n foaf:homepage <https://reddit.com/> .\n\n:SnapchatAccount rdfs:subClassOf foaf:Account ;\n rdfs:label \"Snapchat\";\n foaf:userProfilePrefix \"https://www.snapchat.com/add/\";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/snapchat-1.svg>;\n foaf:homepage <https://www.snapchat.com/> .\n\n:StravaAccount rdfs:subClassOf foaf:Account ;\n rdfs:label \"Strava\";\n foaf:userProfilePrefix \"https://www.strava.com/athletes/\";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/strava-2.svg>;\n foaf:homepage <https://strava.com/> .\n\n:TiktokAccount rdfs:subClassOf foaf:Account ;\n rdfs:label \"TikTok\";\n foaf:userProfilePrefix \"https://www.tiktok.com/@\";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/tiktok-icon-2.svg>;\n foaf:homepage <https://www.tiktok.com/> .\n\n:TumblrAccount rdfs:subClassOf foaf:Account ;\n rdfs:label \"Tumblr\";\n foaf:userProfilePrefix \"https://www.tumblr.com/\";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/tumblr-icon.svg>;\n foaf:homepage <https://www.tumblr.com/> .\n\n:TwitterAccount rdfs:subClassOf foaf:Account ;\n rdfs:label \"X\";\n foaf:userProfilePrefix \"https://x.com/\";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/x-2.svg>;\n foaf:homepage <https://x.com/> .\n\n:OtherAccount rdfs:subClassOf foaf:Account ;\n rdfs:label \"Other\" ;\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/noun_1689339.svg> .\n\n:BlueSkyIdField\n a ui:SingleLineTextField ;\n ui:label \"Username\";\n ui:maxLength \"200\" ;\n ui:property foaf:accountName ; \n ui:pattern \"@[a-z0-9A-Z_-](.[a-z0-9A-Z_-])*\".\n\n:DiggIdField\n a ui:SingleLineTextField ;\n ui:label \"Username\";\n ui:maxLength \"200\" ;\n ui:property foaf:accountName ; \n ui:pattern \"@[a-z0-9A-Z_-](.[a-z0-9A-Z_-])*\".\n\n:FacebookIdField\n a ui:SingleLineTextField ;\n ui:label \"Username\";\n ui:property foaf:accountName ; \n ui:pattern \"[a-z0-9A-Z_-]*\".\n\n:GithubIdField\n a ui:SingleLineTextField ;\n ui:label \"Username\";\n ui:maxLength \"200\" ;\n ui:property foaf:accountName ; \n ui:pattern \"[a-z0-9A-Z_-]*\".\n\n:InstagramIdField\n a ui:SingleLineTextField ;\n ui:label \"Username\";\n ui:maxLength \"200\" ;\n ui:property foaf:accountName ; \n ui:pattern \"[a-z0-9A-Z_-]*\".\n\n:LinkedInIdField\n a ui:SingleLineTextField ;\n ui:label \"Username\";\n ui:maxLength \"200\" ;\n ui:property foaf:accountName ; \n ui:pattern \"[a-z0-9A-Z_-]*(.[a-z0-9A-Z_-])*\".\n\n:MastodonIdField\n a ui:SingleLineTextField ;\n ui:label \"Username\";\n ui:maxLength \"200\" ;\n ui:property foaf:accountName ; \n ui:pattern \"@[a-z0-9A-Z_-]*(.[a-z0-9A-Z_-])*\".\n\n:MatrixIdField\n a ui:SingleLineTextField ;\n ui:label \"Username\";\n ui:maxLength \"200\" ;\n ui:property foaf:accountName ; \n ui:pattern \"@[a-z0-9A-Z_-]*(.[a-z0-9A-Z_-])*\".\n\n:MediumIdField\n a ui:SingleLineTextField ;\n ui:label \"Username\";\n ui:maxLength \"200\" ;\n ui:property foaf:accountName ; \n ui:pattern \"@[a-z0-9A-Z_-]*(.[a-z0-9A-Z_-])*\".\n\n:NostrIdField\n a ui:SingleLineTextField ;\n ui:label \"Username\";\n ui:maxLength \"200\" ;\n ui:property foaf:accountName ; \n ui:pattern \"[a-z0-9A-Z_-]*(.[a-z0-9A-Z_-])*\".\n\n:OrcidIdField\n a ui:SingleLineTextField ;\n ui:label \"Username\";\n ui:maxLength \"200\" ;\n ui:property foaf:accountName ; \n ui:pattern \"[a-z0-9A-Z_-]*\".\n\n:PinterestIdField\n a ui:SingleLineTextField ;\n ui:label \"Username\";\n ui:maxLength \"200\" ;\n ui:property foaf:accountName ; \n ui:pattern \"[a-z0-9A-Z_-]*\".\n\n:RedditIdField\n a ui:SingleLineTextField ;\n ui:label \"Username\";\n ui:maxLength \"200\" ;\n ui:property foaf:accountName ; \n ui:pattern \"[a-z0-9A-Z_-]*\".\n\n:StravaIdField\n a ui:SingleLineTextField ;\n ui:label \"Username\";\n ui:maxLength \"200\" ;\n ui:property foaf:accountName ; \n ui:pattern \"[a-z0-9A-Z_-]*\".\n\n:SnapchatIdField\n a ui:SingleLineTextField ;\n ui:label \"Username\";\n ui:maxLength \"200\" ;\n ui:property foaf:accountName ; \n ui:pattern \"@[a-z0-9A-Z_-]*\".\n\n:TiktokIdField\n a ui:SingleLineTextField ;\n ui:label \"Username\";\n ui:maxLength \"200\" ;\n ui:property foaf:accountName ; \n ui:pattern \"@[a-z0-9A-Z_-]*\".\n\n:TumblrIdField\n a ui:SingleLineTextField ;\n ui:label \"Username\";\n ui:maxLength \"200\" ;\n ui:property foaf:accountName ; \n ui:pattern \"@[a-z0-9A-Z_-]*\".\n\n:TwitterIdField\n a ui:SingleLineTextField ;\n ui:label \"Username\";\n ui:maxLength \"200\" ;\n ui:property foaf:accountName ; \n ui:pattern \"@[a-z0-9A-Z_-]*\".\n\n# an unknown online account needs more info\n\n:OtherIdForm a ui:Group; \n ui:weight 0; \n ui:parts ( \n :OtherIdField \n :OtherIconField \n :OtherLabelField ).\n\n:OtherIdField\n a ui:NamedNodeURIField ;\n ui:label \"Account link\";\n ui:maxLength \"200\" ;\n ui:property foaf:homepage.\n\n:OtherIconField\n a ui:NamedNodeURIField ;\n ui:label \"Icon link\";\n ui:maxLength \"200\" ;\n ui:property foaf:icon.\n\n:OtherLabelField\n a ui:SingleLineTextField ;\n ui:label \"Name\";\n ui:maxLength \"200\" ;\n ui:property rdfs:label.\n\n# ends\n";
|
|
33361
|
+
const socialMediaForm = "@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.\n@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.\n@prefix foaf: <http://xmlns.com/foaf/0.1/>.\n@prefix owl: <http://www.w3.org/2002/07/owl#>.\n@prefix solid: <http://www.w3.org/ns/solid/terms#>.\n@prefix ui: <http://www.w3.org/ns/ui#>.\n@prefix schema: <http://schema.org/>.\n@prefix vcard: <http://www.w3.org/2006/vcard/ns#>.\n@prefix org: <http://www.w3.org/ns/org#>.\n@prefix : <#>.\n\n########### ATTENTION - we cannot rename this ontology file name without migrating existing data on existing accounts\n\n########### Social Media - other accounts\n#\n# Twitter, linked In, Orkid, Mastodon, Matrix, Bluesky, Instagram, Facebook, Github,\n# Snapchat, TikTok, etc\n\n:this\n <http://purl.org/dc/elements/1.1/title> \"Social media form\" ;\n a ui:Form ;\n ui:parts (\n :SocialsForm\n ).\n\n:SocialsForm a ui:Multiple;\n ui:label \"online account\";\n ui:property foaf:account; # the triple is created with the foaf:acccounts predicate\n ui:ordered true; # Allow user to order occounts most important first.\n ui:part :AccountsForm.\n\n:AccountsForm a ui:Group; \n ui:weight 1; \n ui:parts ( \n :AccountField \n :AccountIdField ).\n\n:AccountField a ui:Classifier; \n ui:label \"Account\"@en;\n ui:multiple false ; \n ui:category foaf:Account. # the accounts are described by the foaf:Account predicate\n\n# this is what is needed to make a dropdown box\nfoaf:Account a rdfs:Class;\n rdfs:label \"Online Account Provider\";\n owl:disjointUnionOf ( \n :BlueSkyAccount :DiggAccount :FacebookAccount :GithubAccount :InstagramAccount\n :LinkedInAccount :MastodonAccount :MatrixAccount :MediumAccount :NostrAccount \n :OrcidAccount :PinterestAccount :RedditAccount :SnapchatAccount :StravaAccount \n :TiktokAccount :TumblrAccount :TwitterAccount :OtherAccount) .\n\n:AccountIdField a ui:Options; \n ui:dependingOn rdf:type; \n ui:case\n [ ui:for :BlueSkyAccount; ui:use :BlueSkyIdField ],\n [ ui:for :DiggAccount; ui:use :DiggIdField],\n [ ui:for :FacebookAccount; ui:use :FacebookIdField ],\n [ ui:for :GithubAccount; ui:use :GithubIdField ],\n [ ui:for :InstagramAccount; ui:use :InstagramIdField ],\n [ ui:for :LinkedInAccount; ui:use :LinkedInIdField ],\n [ ui:for :MastodonAccount; ui:use :MastodonIdField ],\n [ ui:for :MatrixAccount; ui:use :MatrixIdField ],\n [ ui:for :MediumAccount; ui:use :MediumIdField ],\n [ ui:for :NostrAccount; ui:use :NostrIdField ],\n [ ui:for :OrcidAccount; ui:use :OrcidIdField ],\n [ ui:for :PinterestAccount; ui:use :PinterestIdField ],\n [ ui:for :RedditAccount; ui:use :RedditIdField ],\n [ ui:for :StravaAccount; ui:use :StravaIdField ],\n [ ui:for :SnapchatAccount; ui:use :SnapchatIdField ],\n [ ui:for :TiktokAccount; ui:use :TiktokIdField ],\n [ ui:for :TumblrAccount; ui:use :TumblrIdField ],\n [ ui:for :TwitterAccount; ui:use :TwitterIdField ],\n [ ui:for :OtherAccount; ui:use :OtherIdForm ] .\n\n:BlueSkyAccount rdfs:subClassOf foaf:Account ;\n rdfs:label \"Bluesky\";\n foaf:userProfilePrefix \"https://bsky.app/profile/\";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/bluesky-1.svg>;\n foaf:homepage <https://bsky.app/> .\n\n:DiggAccount rdfs:subClassOf foaf:Account ;\n rdfs:label \"Digg\";\n foaf:userProfilePrefix \"https://www.digg.com/\";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/digg-icon.svg>;\n foaf:homepage <https://www.digg.com/> .\n\n:FacebookAccount rdfs:subClassOf foaf:Account ;\n rdfs:label \"Facebook\";\n foaf:userProfilePrefix \"https://www.facebook.com/\";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/facebook-2020-2-1.svg>;\n foaf:homepage <https://www.facebook.com/> .\n\n:GithubAccount rdfs:subClassOf foaf:Account ;\n rdfs:label \"Github\";\n foaf:userProfilePrefix \"https://www.github.com/\";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/github-icon.svg>;\n foaf:homepage <https://github.com/> .\n\n:InstagramAccount rdfs:subClassOf foaf:Account ;\n rdfs:label \"Instagram\";\n foaf:userProfilePrefix \"https://www.instagram.com/\";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/instagram-2016-5.svg>;\n foaf:homepage <https://www.instagram.com/> .\n\n:LinkedInAccount rdfs:subClassOf foaf:Account ;\n rdfs:label \"LinkedIn\";\n foaf:userProfilePrefix \"https://www.linkedin.com/in/\";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/linkedin-icon.svg>;\n foaf:homepage <https://linkedin.com/> .\n\n:MastodonAccount rdfs:subClassOf foaf:Account ;\n rdfs:label \"Mastodon\" ;\n foaf:userProfilePrefix \"https://mastodon.social/\";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/mastodon-2.svg>;\n foaf:homepage <https://joinmastodon.org/> .\n\n:MatrixAccount rdfs:subClassOf foaf:Account ;\n rdfs:label \"Matrix\" ;\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/matrix-logo-black.svg> ;\n foaf:userProfilePrefix \"https://matrix.to/#/\" ;\n foaf:homepage <https://matrix.org/> .\n\n:MediumAccount rdfs:subClassOf foaf:Account ;\n rdfs:label \"Medium\";\n foaf:userProfilePrefix \"https://medium.com/\";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/medium-logo-wordmark-black.svg>;\n foaf:homepage <https://medium.com/> .\n\n:NostrAccount rdfs:subClassOf foaf:Account ;\n rdfs:label \"Nostr\";\n foaf:userProfilePrefix \"https://primal.net/p/\";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/nostr-icon-purple-on-white.svg>;\n foaf:homepage <https://nostr.net/> .\n\n:OrcidAccount rdfs:subClassOf foaf:Account ;\n rdfs:label \"ORCiD\";\n foaf:userProfilePrefix \"https://orcid.org/\";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/ORCID-1.svg>;\n foaf:homepage <https://orcid.org/> .\n\n:PinterestAccount rdfs:subClassOf foaf:Account ;\n rdfs:label \"Pinterest\";\n foaf:userProfilePrefix \"https://pin.it/\";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/pinterest-2-1.svg>;\n foaf:homepage <https://pinterest.com/> .\n\n:RedditAccount rdfs:subClassOf foaf:Account ;\n rdfs:label \"Reddit\";\n foaf:userProfilePrefix \"https://www.reddit.com/user/\";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/reddit-4.svg>;\n foaf:homepage <https://reddit.com/> .\n\n:SnapchatAccount rdfs:subClassOf foaf:Account ;\n rdfs:label \"Snapchat\";\n foaf:userProfilePrefix \"https://www.snapchat.com/add/\";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/snapchat-1.svg>;\n foaf:homepage <https://www.snapchat.com/> .\n\n:StravaAccount rdfs:subClassOf foaf:Account ;\n rdfs:label \"Strava\";\n foaf:userProfilePrefix \"https://www.strava.com/athletes/\";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/strava-2.svg>;\n foaf:homepage <https://strava.com/> .\n\n:TiktokAccount rdfs:subClassOf foaf:Account ;\n rdfs:label \"TikTok\";\n foaf:userProfilePrefix \"https://www.tiktok.com/@\";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/tiktok-icon-2.svg>;\n foaf:homepage <https://www.tiktok.com/> .\n\n:TumblrAccount rdfs:subClassOf foaf:Account ;\n rdfs:label \"Tumblr\";\n foaf:userProfilePrefix \"https://www.tumblr.com/\";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/tumblr-icon.svg>;\n foaf:homepage <https://www.tumblr.com/> .\n\n:TwitterAccount rdfs:subClassOf foaf:Account ;\n rdfs:label \"X\";\n foaf:userProfilePrefix \"https://x.com/\";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/x-2.svg>;\n foaf:homepage <https://x.com/> .\n\n:OtherAccount rdfs:subClassOf foaf:Account ;\n rdfs:label \"Other\" ;\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/noun_1689339.svg> .\n\n:BlueSkyIdField\n a ui:SingleLineTextField ;\n ui:label \"Username\";\n ui:maxLength \"200\" ;\n ui:property foaf:accountName ; \n ui:pattern \"@[a-z0-9A-Z_-](.[a-z0-9A-Z_-])*\".\n\n:DiggIdField\n a ui:SingleLineTextField ;\n ui:label \"Username\";\n ui:maxLength \"200\" ;\n ui:property foaf:accountName ; \n ui:pattern \"@[a-z0-9A-Z_-](.[a-z0-9A-Z_-])*\".\n\n:FacebookIdField\n a ui:SingleLineTextField ;\n ui:label \"Username\";\n ui:property foaf:accountName ; \n ui:pattern \"[a-z0-9A-Z_-]*\".\n\n:GithubIdField\n a ui:SingleLineTextField ;\n ui:label \"Username\";\n ui:maxLength \"200\" ;\n ui:property foaf:accountName ; \n ui:pattern \"[a-z0-9A-Z_-]*\".\n\n:InstagramIdField\n a ui:SingleLineTextField ;\n ui:label \"Username\";\n ui:maxLength \"200\" ;\n ui:property foaf:accountName ; \n ui:pattern \"[a-z0-9A-Z_-]*\".\n\n:LinkedInIdField\n a ui:SingleLineTextField ;\n ui:label \"Username\";\n ui:maxLength \"200\" ;\n ui:property foaf:accountName ; \n ui:pattern \"[a-z0-9A-Z_-]*(.[a-z0-9A-Z_-])*\".\n\n:MastodonIdField\n a ui:SingleLineTextField ;\n ui:label \"Username\";\n ui:maxLength \"200\" ;\n ui:property foaf:accountName ; \n ui:pattern \"@[a-z0-9A-Z_-]*(.[a-z0-9A-Z_-])*\".\n\n:MatrixIdField\n a ui:SingleLineTextField ;\n ui:label \"Username\";\n ui:maxLength \"200\" ;\n ui:property foaf:accountName ; \n ui:pattern \"@[a-z0-9A-Z_-]*(.[a-z0-9A-Z_-])*\".\n\n:MediumIdField\n a ui:SingleLineTextField ;\n ui:label \"Username\";\n ui:maxLength \"200\" ;\n ui:property foaf:accountName ; \n ui:pattern \"@[a-z0-9A-Z_-]*(.[a-z0-9A-Z_-])*\".\n\n:NostrIdField\n a ui:SingleLineTextField ;\n ui:label \"Username\";\n ui:maxLength \"200\" ;\n ui:property foaf:accountName ; \n ui:pattern \"[a-z0-9A-Z_-]*(.[a-z0-9A-Z_-])*\".\n\n:OrcidIdField\n a ui:SingleLineTextField ;\n ui:label \"Username\";\n ui:maxLength \"200\" ;\n ui:property foaf:accountName ; \n ui:pattern \"[a-z0-9A-Z_-]*\".\n\n:PinterestIdField\n a ui:SingleLineTextField ;\n ui:label \"Username\";\n ui:maxLength \"200\" ;\n ui:property foaf:accountName ; \n ui:pattern \"[a-z0-9A-Z_-]*\".\n\n:RedditIdField\n a ui:SingleLineTextField ;\n ui:label \"Username\";\n ui:maxLength \"200\" ;\n ui:property foaf:accountName ; \n ui:pattern \"[a-z0-9A-Z_-]*\".\n\n:StravaIdField\n a ui:SingleLineTextField ;\n ui:label \"Username\";\n ui:maxLength \"200\" ;\n ui:property foaf:accountName ; \n ui:pattern \"[a-z0-9A-Z_-]*\".\n\n:SnapchatIdField\n a ui:SingleLineTextField ;\n ui:label \"Username\";\n ui:maxLength \"200\" ;\n ui:property foaf:accountName ; \n ui:pattern \"@[a-z0-9A-Z_-]*\".\n\n:TiktokIdField\n a ui:SingleLineTextField ;\n ui:label \"Username\";\n ui:maxLength \"200\" ;\n ui:property foaf:accountName ; \n ui:pattern \"@[a-z0-9A-Z_-]*\".\n\n:TumblrIdField\n a ui:SingleLineTextField ;\n ui:label \"Username\";\n ui:maxLength \"200\" ;\n ui:property foaf:accountName ; \n ui:pattern \"@[a-z0-9A-Z_-]*\".\n\n:TwitterIdField\n a ui:SingleLineTextField ;\n ui:label \"Username\";\n ui:maxLength \"200\" ;\n ui:property foaf:accountName ; \n ui:pattern \"@[a-z0-9A-Z_-]*\".\n\n# an unknown online account needs more info\n\n:OtherIdForm a ui:Group; \n ui:weight 0; \n ui:parts ( \n :OtherIdField \n :OtherIconField \n :OtherLabelField ).\n\n:OtherIdField\n a ui:NamedNodeURIField ;\n ui:label \"Account link\";\n ui:maxLength \"200\" ;\n ui:property foaf:homepage.\n\n:OtherIconField\n a ui:NamedNodeURIField ;\n ui:label \"Icon link\";\n ui:maxLength \"200\" ;\n ui:property foaf:icon.\n\n:OtherLabelField\n a ui:SingleLineTextField ;\n ui:label \"Name\";\n ui:maxLength \"200\" ;\n ui:property rdfs:label.\n\n# ends\n";
|
|
33139
33362
|
const socialMediaFormName = 'socialMedia.ttl'; // The name of the form file
|
|
33140
33363
|
|
|
33141
33364
|
function EditSocialSection(context, me, editableProfile, store) {
|
|
@@ -33405,12 +33628,12 @@ const friendExistsAlreadyButtonText = exports.friendExistsAlreadyButtonText = 'A
|
|
|
33405
33628
|
const chatWithMeButtonText = exports.chatWithMeButtonText = 'Chat with me';
|
|
33406
33629
|
|
|
33407
33630
|
// Profile & Edit profile texts
|
|
33408
|
-
const yourContactInformationHeading = exports.yourContactInformationHeading = '
|
|
33409
|
-
const otherPreferencesHeadingText = exports.otherPreferencesHeadingText = 'Other
|
|
33410
|
-
const communitiesHeadingText = exports.communitiesHeadingText = '
|
|
33631
|
+
const yourContactInformationHeading = exports.yourContactInformationHeading = 'Your profile';
|
|
33632
|
+
const otherPreferencesHeadingText = exports.otherPreferencesHeadingText = 'Other preferences';
|
|
33633
|
+
const communitiesHeadingText = exports.communitiesHeadingText = 'Your communities';
|
|
33411
33634
|
const resumeHeadingText = exports.resumeHeadingText = 'Resume';
|
|
33412
|
-
const socialAccountsHeadingText = exports.socialAccountsHeadingText = 'Social
|
|
33413
|
-
const sharedItemsHeadingText = exports.sharedItemsHeadingText = 'Shared
|
|
33635
|
+
const socialAccountsHeadingText = exports.socialAccountsHeadingText = 'Social accounts';
|
|
33636
|
+
const sharedItemsHeadingText = exports.sharedItemsHeadingText = 'Shared items';
|
|
33414
33637
|
const friendsHeadingText = exports.friendsHeadingText = 'Friends';
|
|
33415
33638
|
const contactHeadingText = exports.contactHeadingText = 'Contact';
|
|
33416
33639
|
|
|
@@ -81176,10 +81399,10 @@ Object.defineProperty(exports, "__esModule", ({
|
|
|
81176
81399
|
}));
|
|
81177
81400
|
exports["default"] = void 0;
|
|
81178
81401
|
var _default = exports["default"] = {
|
|
81179
|
-
buildTime: '2026-02-
|
|
81180
|
-
commit: '
|
|
81402
|
+
buildTime: '2026-02-24T22:12:20Z',
|
|
81403
|
+
commit: 'dfd8ed6d211c4df3ce43c2bd2b220ba2dab03a61',
|
|
81181
81404
|
npmInfo: {
|
|
81182
|
-
'solid-panes': '4.2.
|
|
81405
|
+
'solid-panes': '4.2.3',
|
|
81183
81406
|
npm: '11.10.1',
|
|
81184
81407
|
node: '20.20.0',
|
|
81185
81408
|
acorn: '8.15.0',
|
|
@@ -85350,7 +85573,7 @@ function attachmentList(dom, subject, div) {
|
|
|
85350
85573
|
var attachmentRight = attachmentOne.appendChild(dom.createElement('td'));
|
|
85351
85574
|
var attachmentTable = attachmentRight.appendChild(dom.createElement('table'));
|
|
85352
85575
|
attachmentTable.appendChild(dom.createElement('tr')) // attachmentTableTop
|
|
85353
|
-
|
|
85576
|
+
;
|
|
85354
85577
|
attachmentOuter.refresh = refresh; // Participate in downstream changes
|
|
85355
85578
|
// ;(attachmentTable as any).refresh = refresh <- outer should be best?
|
|
85356
85579
|
|
|
@@ -86195,7 +86418,7 @@ function basicField(dom, container, already, subject, form, doc, callbackFunctio
|
|
|
86195
86418
|
}
|
|
86196
86419
|
if (!kb.updater.editable(doc.uri)) {
|
|
86197
86420
|
field.readOnly = true // was: disabled. readOnly is better
|
|
86198
|
-
|
|
86421
|
+
;
|
|
86199
86422
|
field.style = style.textInputStyleUneditable + paramStyle;
|
|
86200
86423
|
if (suppressEmptyUneditable && field.value === '') {
|
|
86201
86424
|
box.style.display = 'none'; // clutter
|
|
@@ -89523,9 +89746,31 @@ field[src_ns.ui('Classifier').uri] = function (dom, container, already, subject,
|
|
|
89523
89746
|
if (!ok) return callbackFunction(ok, body);
|
|
89524
89747
|
return callbackFunction(ok, body);
|
|
89525
89748
|
};
|
|
89526
|
-
|
|
89527
|
-
|
|
89528
|
-
|
|
89749
|
+
// Create container for label and select
|
|
89750
|
+
var outerBox = dom.createElement('div');
|
|
89751
|
+
outerBox.setAttribute('class', 'classifierBox');
|
|
89752
|
+
// Render label
|
|
89753
|
+
var labelDiv = dom.createElement('div');
|
|
89754
|
+
labelDiv.setAttribute('class', 'formFieldName classifierBox-label');
|
|
89755
|
+
// Use fieldLabel to render ui:label if present
|
|
89756
|
+
labelDiv.appendChild(fieldLabel(dom, category, form));
|
|
89757
|
+
outerBox.appendChild(labelDiv);
|
|
89758
|
+
// Render select
|
|
89759
|
+
var selectBox = dom.createElement('div');
|
|
89760
|
+
selectBox.setAttribute('class', 'formFieldValue classifierBox-selectBox');
|
|
89761
|
+
var selectElement = makeSelectForNestedCategory(dom, kb, subject, category, dataDoc, checkOptions);
|
|
89762
|
+
// Set readonly if not editable
|
|
89763
|
+
if (selectElement && selectElement.querySelector && selectElement.querySelector('select')) {
|
|
89764
|
+
var select = selectElement.querySelector('select');
|
|
89765
|
+
if (select && !kb.updater.editable(dataDoc.uri)) {
|
|
89766
|
+
select.readOnly = true;
|
|
89767
|
+
select.style = style.textInputStyleUneditable;
|
|
89768
|
+
}
|
|
89769
|
+
}
|
|
89770
|
+
selectBox.appendChild(selectElement);
|
|
89771
|
+
outerBox.appendChild(selectBox);
|
|
89772
|
+
if (container) container.appendChild(outerBox);
|
|
89773
|
+
return outerBox;
|
|
89529
89774
|
};
|
|
89530
89775
|
|
|
89531
89776
|
/** Choice field
|
|
@@ -94085,7 +94330,7 @@ function cameraCaptureControl(dom, store, getImageDoc, doneCallback) {
|
|
|
94085
94330
|
// if (!confirm('Save picture to ' + destination + ' ?')) return
|
|
94086
94331
|
src_debug/* log */.Rm('Putting ' + blob.size + ' bytes of ' + contentType + ' to ' + destination)
|
|
94087
94332
|
// @@ TODO Remove casting
|
|
94088
|
-
|
|
94333
|
+
;
|
|
94089
94334
|
store.fetcher.webOperation('PUT', destination.uri, {
|
|
94090
94335
|
data: blob,
|
|
94091
94336
|
contentType: contentType
|
|
@@ -105379,7 +105624,7 @@ function tabWidget(options) {
|
|
|
105379
105624
|
_getColors2 = _slicedToArray(_getColors, 2),
|
|
105380
105625
|
selectedColor = _getColors2[0],
|
|
105381
105626
|
color = _getColors2[1];
|
|
105382
|
-
var bodyMainStyle = "
|
|
105627
|
+
var bodyMainStyle = "display: grid; width: auto; height: 100%; border: 0.1em; border-style: solid; border-color: ".concat(selectedColor, "; padding: 1em;");
|
|
105383
105628
|
var rootElement = dom.createElement('div'); // 20200117a
|
|
105384
105629
|
|
|
105385
105630
|
rootElement.setAttribute('style', style.tabsRootElement);
|
|
@@ -107349,7 +107594,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
107349
107594
|
/* harmony export */ walkTokens: () => (/* binding */ Xt)
|
|
107350
107595
|
/* harmony export */ });
|
|
107351
107596
|
/**
|
|
107352
|
-
* marked v17.0.
|
|
107597
|
+
* marked v17.0.3 - a markdown parser
|
|
107353
107598
|
* Copyright (c) 2018-2026, MarkedJS. (MIT License)
|
|
107354
107599
|
* Copyright (c) 2011-2018, Christopher Jeffrey. (MIT License)
|
|
107355
107600
|
* https://github.com/markedjs/marked
|
|
@@ -107417,7 +107662,7 @@ ${this.parser.parse(e)}</blockquote>
|
|
|
107417
107662
|
`}tablerow({text:e}){return`<tr>
|
|
107418
107663
|
${e}</tr>
|
|
107419
107664
|
`}tablecell(e){let t=this.parser.parseInline(e.tokens),n=e.header?"th":"td";return(e.align?`<${n} align="${e.align}">`:`<${n}>`)+t+`</${n}>
|
|
107420
|
-
`}strong({tokens:e}){return`<strong>${this.parser.parseInline(e)}</strong>`}em({tokens:e}){return`<em>${this.parser.parseInline(e)}</em>`}codespan({text:e}){return`<code>${O(e,!0)}</code>`}br(e){return"<br>"}del({tokens:e}){return`<del>${this.parser.parseInline(e)}</del>`}link({href:e,title:t,tokens:n}){let r=this.parser.parseInline(n),i=X(e);if(i===null)return r;e=i;let s='<a href="'+e+'"';return t&&(s+=' title="'+O(t)+'"'),s+=">"+r+"</a>",s}image({href:e,title:t,text:n,tokens:r}){r&&(n=this.parser.parseInline(r,this.parser.textRenderer));let i=X(e);if(i===null)return O(n);e=i;let s=`<img src="${e}" alt="${n}"`;return t&&(s+=` title="${O(t)}"`),s+=">",s}text(e){return"tokens"in e&&e.tokens?this.parser.parseInline(e.tokens):"escaped"in e&&e.escaped?e.text:O(e.text)}};var $=class{strong({text:e}){return e}em({text:e}){return e}codespan({text:e}){return e}del({text:e}){return e}html({text:e}){return e}text({text:e}){return e}link({text:e}){return""+e}image({text:e}){return""+e}br(){return""}checkbox({raw:e}){return e}};var b=class u{options;renderer;textRenderer;constructor(e){this.options=e||T,this.options.renderer=this.options.renderer||new y,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new $}static parse(e,t){return new u(t).parse(e)}static parseInline(e,t){return new u(t).parseInline(e)}parse(e){let t="";for(let n=0;n<e.length;n++){let r=e[n];if(this.options.extensions?.renderers?.[r.type]){let s=r,a=this.options.extensions.renderers[s.type].call({parser:this},s);if(a!==!1||!["space","hr","heading","code","table","blockquote","list","html","def","paragraph","text"].includes(s.type)){t+=a||"";continue}}let i=r;switch(i.type){case"space":{t+=this.renderer.space(i);break}case"hr":{t+=this.renderer.hr(i);break}case"heading":{t+=this.renderer.heading(i);break}case"code":{t+=this.renderer.code(i);break}case"table":{t+=this.renderer.table(i);break}case"blockquote":{t+=this.renderer.blockquote(i);break}case"list":{t+=this.renderer.list(i);break}case"checkbox":{t+=this.renderer.checkbox(i);break}case"html":{t+=this.renderer.html(i);break}case"def":{t+=this.renderer.def(i);break}case"paragraph":{t+=this.renderer.paragraph(i);break}case"text":{t+=this.renderer.text(i);break}default:{let s='Token with "'+i.type+'" type was not found.';if(this.options.silent)return console.error(s),"";throw new Error(s)}}}return t}parseInline(e,t=this.renderer){let n="";for(let r=0;r<e.length;r++){let i=e[r];if(this.options.extensions?.renderers?.[i.type]){let a=this.options.extensions.renderers[i.type].call({parser:this},i);if(a!==!1||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(i.type)){n+=a||"";continue}}let s=i;switch(s.type){case"escape":{n+=t.text(s);break}case"html":{n+=t.html(s);break}case"link":{n+=t.link(s);break}case"image":{n+=t.image(s);break}case"checkbox":{n+=t.checkbox(s);break}case"strong":{n+=t.strong(s);break}case"em":{n+=t.em(s);break}case"codespan":{n+=t.codespan(s);break}case"br":{n+=t.br(s);break}case"del":{n+=t.del(s);break}case"text":{n+=t.text(s);break}default:{let a='Token with "'+s.type+'" type was not found.';if(this.options.silent)return console.error(a),"";throw new Error(a)}}}return n}};var P=class{options;block;constructor(e){this.options=e||T}static passThroughHooks=new Set(["preprocess","postprocess","processAllTokens","emStrongMask"]);static passThroughHooksRespectAsync=new Set(["preprocess","postprocess","processAllTokens"]);preprocess(e){return e}postprocess(e){return e}processAllTokens(e){return e}emStrongMask(e){return e}provideLexer(){return this.block?x.lex:x.lexInline}provideParser(){return this.block?b.parse:b.parseInline}};var B=class{defaults=M();options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=b;Renderer=y;TextRenderer=$;Lexer=x;Tokenizer=w;Hooks=P;constructor(...e){this.use(...e)}walkTokens(e,t){let n=[];for(let r of e)switch(n=n.concat(t.call(this,r)),r.type){case"table":{let i=r;for(let s of i.header)n=n.concat(this.walkTokens(s.tokens,t));for(let s of i.rows)for(let a of s)n=n.concat(this.walkTokens(a.tokens,t));break}case"list":{let i=r;n=n.concat(this.walkTokens(i.items,t));break}default:{let i=r;this.defaults.extensions?.childTokens?.[i.type]?this.defaults.extensions.childTokens[i.type].forEach(s=>{let a=i[s].flat(1/0);n=n.concat(this.walkTokens(a,t))}):i.tokens&&(n=n.concat(this.walkTokens(i.tokens,t)))}}return n}use(...e){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(n=>{let r={...n};if(r.async=this.defaults.async||r.async||!1,n.extensions&&(n.extensions.forEach(i=>{if(!i.name)throw new Error("extension name required");if("renderer"in i){let s=t.renderers[i.name];s?t.renderers[i.name]=function(...a){let o=i.renderer.apply(this,a);return o===!1&&(o=s.apply(this,a)),o}:t.renderers[i.name]=i.renderer}if("tokenizer"in i){if(!i.level||i.level!=="block"&&i.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let s=t[i.level];s?s.unshift(i.tokenizer):t[i.level]=[i.tokenizer],i.start&&(i.level==="block"?t.startBlock?t.startBlock.push(i.start):t.startBlock=[i.start]:i.level==="inline"&&(t.startInline?t.startInline.push(i.start):t.startInline=[i.start]))}"childTokens"in i&&i.childTokens&&(t.childTokens[i.name]=i.childTokens)}),r.extensions=t),n.renderer){let i=this.defaults.renderer||new y(this.defaults);for(let s in n.renderer){if(!(s in i))throw new Error(`renderer '${s}' does not exist`);if(["options","parser"].includes(s))continue;let a=s,o=n.renderer[a],l=i[a];i[a]=(...p)=>{let c=o.apply(i,p);return c===!1&&(c=l.apply(i,p)),c||""}}r.renderer=i}if(n.tokenizer){let i=this.defaults.tokenizer||new w(this.defaults);for(let s in n.tokenizer){if(!(s in i))throw new Error(`tokenizer '${s}' does not exist`);if(["options","rules","lexer"].includes(s))continue;let a=s,o=n.tokenizer[a],l=i[a];i[a]=(...p)=>{let c=o.apply(i,p);return c===!1&&(c=l.apply(i,p)),c}}r.tokenizer=i}if(n.hooks){let i=this.defaults.hooks||new P;for(let s in n.hooks){if(!(s in i))throw new Error(`hook '${s}' does not exist`);if(["options","block"].includes(s))continue;let a=s,o=n.hooks[a],l=i[a];P.passThroughHooks.has(s)?i[a]=p=>{if(this.defaults.async&&P.passThroughHooksRespectAsync.has(s))return(async()=>{let d=await o.call(i,p);return l.call(i,d)})();let c=o.call(i,p);return l.call(i,c)}:i[a]=(...p)=>{if(this.defaults.async)return(async()=>{let d=await o.apply(i,p);return d===!1&&(d=await l.apply(i,p)),d})();let c=o.apply(i,p);return c===!1&&(c=l.apply(i,p)),c}}r.hooks=i}if(n.walkTokens){let i=this.defaults.walkTokens,s=n.walkTokens;r.walkTokens=function(a){let o=[];return o.push(s.call(this,a)),i&&(o=o.concat(i.call(this,a))),o}}this.defaults={...this.defaults,...r}}),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,t){return x.lex(e,t??this.defaults)}parser(e,t){return b.parse(e,t??this.defaults)}parseMarkdown(e){return(n,r)=>{let i={...r},s={...this.defaults,...i},a=this.onError(!!s.silent,!!s.async);if(this.defaults.async===!0&&i.async===!1)return a(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof n>"u"||n===null)return a(new Error("marked(): input parameter is undefined or null"));if(typeof n!="string")return a(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(n)+", string expected"));if(s.hooks&&(s.hooks.options=s,s.hooks.block=e),s.async)return(async()=>{let o=s.hooks?await s.hooks.preprocess(n):n,p=await(s.hooks?await s.hooks.provideLexer():e?x.lex:x.lexInline)(o,s),c=s.hooks?await s.hooks.processAllTokens(p):p;s.walkTokens&&await Promise.all(this.walkTokens(c,s.walkTokens));let h=await(s.hooks?await s.hooks.provideParser():e?b.parse:b.parseInline)(c,s);return s.hooks?await s.hooks.postprocess(h):h})().catch(a);try{s.hooks&&(n=s.hooks.preprocess(n));let l=(s.hooks?s.hooks.provideLexer():e?x.lex:x.lexInline)(n,s);s.hooks&&(l=s.hooks.processAllTokens(l)),s.walkTokens&&this.walkTokens(l,s.walkTokens);let c=(s.hooks?s.hooks.provideParser():e?b.parse:b.parseInline)(l,s);return s.hooks&&(c=s.hooks.postprocess(c)),c}catch(o){return a(o)}}}onError(e,t){return n=>{if(n.message+=`
|
|
107665
|
+
`}strong({tokens:e}){return`<strong>${this.parser.parseInline(e)}</strong>`}em({tokens:e}){return`<em>${this.parser.parseInline(e)}</em>`}codespan({text:e}){return`<code>${O(e,!0)}</code>`}br(e){return"<br>"}del({tokens:e}){return`<del>${this.parser.parseInline(e)}</del>`}link({href:e,title:t,tokens:n}){let r=this.parser.parseInline(n),i=X(e);if(i===null)return r;e=i;let s='<a href="'+e+'"';return t&&(s+=' title="'+O(t)+'"'),s+=">"+r+"</a>",s}image({href:e,title:t,text:n,tokens:r}){r&&(n=this.parser.parseInline(r,this.parser.textRenderer));let i=X(e);if(i===null)return O(n);e=i;let s=`<img src="${e}" alt="${O(n)}"`;return t&&(s+=` title="${O(t)}"`),s+=">",s}text(e){return"tokens"in e&&e.tokens?this.parser.parseInline(e.tokens):"escaped"in e&&e.escaped?e.text:O(e.text)}};var $=class{strong({text:e}){return e}em({text:e}){return e}codespan({text:e}){return e}del({text:e}){return e}html({text:e}){return e}text({text:e}){return e}link({text:e}){return""+e}image({text:e}){return""+e}br(){return""}checkbox({raw:e}){return e}};var b=class u{options;renderer;textRenderer;constructor(e){this.options=e||T,this.options.renderer=this.options.renderer||new y,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new $}static parse(e,t){return new u(t).parse(e)}static parseInline(e,t){return new u(t).parseInline(e)}parse(e){let t="";for(let n=0;n<e.length;n++){let r=e[n];if(this.options.extensions?.renderers?.[r.type]){let s=r,a=this.options.extensions.renderers[s.type].call({parser:this},s);if(a!==!1||!["space","hr","heading","code","table","blockquote","list","html","def","paragraph","text"].includes(s.type)){t+=a||"";continue}}let i=r;switch(i.type){case"space":{t+=this.renderer.space(i);break}case"hr":{t+=this.renderer.hr(i);break}case"heading":{t+=this.renderer.heading(i);break}case"code":{t+=this.renderer.code(i);break}case"table":{t+=this.renderer.table(i);break}case"blockquote":{t+=this.renderer.blockquote(i);break}case"list":{t+=this.renderer.list(i);break}case"checkbox":{t+=this.renderer.checkbox(i);break}case"html":{t+=this.renderer.html(i);break}case"def":{t+=this.renderer.def(i);break}case"paragraph":{t+=this.renderer.paragraph(i);break}case"text":{t+=this.renderer.text(i);break}default:{let s='Token with "'+i.type+'" type was not found.';if(this.options.silent)return console.error(s),"";throw new Error(s)}}}return t}parseInline(e,t=this.renderer){let n="";for(let r=0;r<e.length;r++){let i=e[r];if(this.options.extensions?.renderers?.[i.type]){let a=this.options.extensions.renderers[i.type].call({parser:this},i);if(a!==!1||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(i.type)){n+=a||"";continue}}let s=i;switch(s.type){case"escape":{n+=t.text(s);break}case"html":{n+=t.html(s);break}case"link":{n+=t.link(s);break}case"image":{n+=t.image(s);break}case"checkbox":{n+=t.checkbox(s);break}case"strong":{n+=t.strong(s);break}case"em":{n+=t.em(s);break}case"codespan":{n+=t.codespan(s);break}case"br":{n+=t.br(s);break}case"del":{n+=t.del(s);break}case"text":{n+=t.text(s);break}default:{let a='Token with "'+s.type+'" type was not found.';if(this.options.silent)return console.error(a),"";throw new Error(a)}}}return n}};var P=class{options;block;constructor(e){this.options=e||T}static passThroughHooks=new Set(["preprocess","postprocess","processAllTokens","emStrongMask"]);static passThroughHooksRespectAsync=new Set(["preprocess","postprocess","processAllTokens"]);preprocess(e){return e}postprocess(e){return e}processAllTokens(e){return e}emStrongMask(e){return e}provideLexer(){return this.block?x.lex:x.lexInline}provideParser(){return this.block?b.parse:b.parseInline}};var B=class{defaults=M();options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=b;Renderer=y;TextRenderer=$;Lexer=x;Tokenizer=w;Hooks=P;constructor(...e){this.use(...e)}walkTokens(e,t){let n=[];for(let r of e)switch(n=n.concat(t.call(this,r)),r.type){case"table":{let i=r;for(let s of i.header)n=n.concat(this.walkTokens(s.tokens,t));for(let s of i.rows)for(let a of s)n=n.concat(this.walkTokens(a.tokens,t));break}case"list":{let i=r;n=n.concat(this.walkTokens(i.items,t));break}default:{let i=r;this.defaults.extensions?.childTokens?.[i.type]?this.defaults.extensions.childTokens[i.type].forEach(s=>{let a=i[s].flat(1/0);n=n.concat(this.walkTokens(a,t))}):i.tokens&&(n=n.concat(this.walkTokens(i.tokens,t)))}}return n}use(...e){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(n=>{let r={...n};if(r.async=this.defaults.async||r.async||!1,n.extensions&&(n.extensions.forEach(i=>{if(!i.name)throw new Error("extension name required");if("renderer"in i){let s=t.renderers[i.name];s?t.renderers[i.name]=function(...a){let o=i.renderer.apply(this,a);return o===!1&&(o=s.apply(this,a)),o}:t.renderers[i.name]=i.renderer}if("tokenizer"in i){if(!i.level||i.level!=="block"&&i.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let s=t[i.level];s?s.unshift(i.tokenizer):t[i.level]=[i.tokenizer],i.start&&(i.level==="block"?t.startBlock?t.startBlock.push(i.start):t.startBlock=[i.start]:i.level==="inline"&&(t.startInline?t.startInline.push(i.start):t.startInline=[i.start]))}"childTokens"in i&&i.childTokens&&(t.childTokens[i.name]=i.childTokens)}),r.extensions=t),n.renderer){let i=this.defaults.renderer||new y(this.defaults);for(let s in n.renderer){if(!(s in i))throw new Error(`renderer '${s}' does not exist`);if(["options","parser"].includes(s))continue;let a=s,o=n.renderer[a],l=i[a];i[a]=(...p)=>{let c=o.apply(i,p);return c===!1&&(c=l.apply(i,p)),c||""}}r.renderer=i}if(n.tokenizer){let i=this.defaults.tokenizer||new w(this.defaults);for(let s in n.tokenizer){if(!(s in i))throw new Error(`tokenizer '${s}' does not exist`);if(["options","rules","lexer"].includes(s))continue;let a=s,o=n.tokenizer[a],l=i[a];i[a]=(...p)=>{let c=o.apply(i,p);return c===!1&&(c=l.apply(i,p)),c}}r.tokenizer=i}if(n.hooks){let i=this.defaults.hooks||new P;for(let s in n.hooks){if(!(s in i))throw new Error(`hook '${s}' does not exist`);if(["options","block"].includes(s))continue;let a=s,o=n.hooks[a],l=i[a];P.passThroughHooks.has(s)?i[a]=p=>{if(this.defaults.async&&P.passThroughHooksRespectAsync.has(s))return(async()=>{let d=await o.call(i,p);return l.call(i,d)})();let c=o.call(i,p);return l.call(i,c)}:i[a]=(...p)=>{if(this.defaults.async)return(async()=>{let d=await o.apply(i,p);return d===!1&&(d=await l.apply(i,p)),d})();let c=o.apply(i,p);return c===!1&&(c=l.apply(i,p)),c}}r.hooks=i}if(n.walkTokens){let i=this.defaults.walkTokens,s=n.walkTokens;r.walkTokens=function(a){let o=[];return o.push(s.call(this,a)),i&&(o=o.concat(i.call(this,a))),o}}this.defaults={...this.defaults,...r}}),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,t){return x.lex(e,t??this.defaults)}parser(e,t){return b.parse(e,t??this.defaults)}parseMarkdown(e){return(n,r)=>{let i={...r},s={...this.defaults,...i},a=this.onError(!!s.silent,!!s.async);if(this.defaults.async===!0&&i.async===!1)return a(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof n>"u"||n===null)return a(new Error("marked(): input parameter is undefined or null"));if(typeof n!="string")return a(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(n)+", string expected"));if(s.hooks&&(s.hooks.options=s,s.hooks.block=e),s.async)return(async()=>{let o=s.hooks?await s.hooks.preprocess(n):n,p=await(s.hooks?await s.hooks.provideLexer():e?x.lex:x.lexInline)(o,s),c=s.hooks?await s.hooks.processAllTokens(p):p;s.walkTokens&&await Promise.all(this.walkTokens(c,s.walkTokens));let h=await(s.hooks?await s.hooks.provideParser():e?b.parse:b.parseInline)(c,s);return s.hooks?await s.hooks.postprocess(h):h})().catch(a);try{s.hooks&&(n=s.hooks.preprocess(n));let l=(s.hooks?s.hooks.provideLexer():e?x.lex:x.lexInline)(n,s);s.hooks&&(l=s.hooks.processAllTokens(l)),s.walkTokens&&this.walkTokens(l,s.walkTokens);let c=(s.hooks?s.hooks.provideParser():e?b.parse:b.parseInline)(l,s);return s.hooks&&(c=s.hooks.postprocess(c)),c}catch(o){return a(o)}}}onError(e,t){return n=>{if(n.message+=`
|
|
107421
107666
|
Please report this to https://github.com/markedjs/marked.`,e){let r="<p>An error occurred:</p><pre>"+O(n.message+"",!0)+"</pre>";return t?Promise.resolve(r):r}if(t)return Promise.reject(n);throw n}}};var L=new B;function g(u,e){return L.parse(u,e)}g.options=g.setOptions=function(u){return L.setOptions(u),g.defaults=L.defaults,H(g.defaults),g};g.getDefaults=M;g.defaults=T;g.use=function(...u){return L.use(...u),g.defaults=L.defaults,H(g.defaults),g};g.walkTokens=function(u,e){return L.walkTokens(u,e)};g.parseInline=L.parseInline;g.Parser=b;g.parser=b.parse;g.Renderer=y;g.TextRenderer=$;g.Lexer=x;g.lexer=x.lex;g.Tokenizer=w;g.Hooks=P;g.parse=g;var Ut=g.options,Kt=g.setOptions,Wt=g.use,Xt=g.walkTokens,Jt=g.parseInline,Vt=g,Yt=b.parse,en=x.lex;
|
|
107422
107667
|
//# sourceMappingURL=marked.esm.js.map
|
|
107423
107668
|
|
|
@@ -115191,10 +115436,10 @@ var dist = __webpack_require__(7523);
|
|
|
115191
115436
|
var solid_logic_esm = __webpack_require__(9332);
|
|
115192
115437
|
;// ./src/versionInfo.ts
|
|
115193
115438
|
/* harmony default export */ const versionInfo = ({
|
|
115194
|
-
buildTime: '2026-02-
|
|
115195
|
-
commit: '
|
|
115439
|
+
buildTime: '2026-02-24T22:13:06Z',
|
|
115440
|
+
commit: 'e1941a6329a0d2666cfebf1fca9a73fdd04fd20e',
|
|
115196
115441
|
npmInfo: {
|
|
115197
|
-
'mashlib': '2.1.
|
|
115442
|
+
'mashlib': '2.1.3',
|
|
115198
115443
|
'npm': '11.10.1',
|
|
115199
115444
|
'node': '20.20.0',
|
|
115200
115445
|
'acorn': '8.15.0',
|