@docfab/formviewer
Version:
Component for displaying ServeyJS survey
73 lines (56 loc) • 2.07 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _api = _interopRequireDefault(require("./../wrappers/api"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const getDefinition = (apiBaseUrl, uuid) => _api.default.get("".concat(apiBaseUrl, "api/form-definition/").concat(uuid));
const updateRecord = (apiBaseUrl, uuid, data) => _api.default.put("".concat(apiBaseUrl, "api/record-content/").concat(uuid), data);
const getRecord = (apiBaseUrl, uuid) => _api.default.get("".concat(apiBaseUrl, "api/record-content/").concat(uuid));
const makeTabs = (survey, _ref) => {
let {
apiBaseUrl,
recordUuid
} = _ref;
const selectActiveTab = survey => {
const ulEl = document.getElementById("pages");
if (!ulEl) return;
const index = survey.visiblePages.indexOf(survey.currentPage);
const lis = ulEl.getElementsByTagName("li");
for (let i = 0; i < lis.length; i++) {
const liEl = ulEl.children[i];
liEl.className = index === i ? "active" : "";
}
};
const selectPage = (survey, page) => {
updateRecord(apiBaseUrl, recordUuid, survey.data);
survey.currentPage = page;
};
const createTabs = survey => {
const ulEl = document.getElementById("pages");
if (!ulEl) return;
ulEl.innerHTML = "";
for (let i = 0; i < survey.visiblePages.length; i++) {
const page = survey.visiblePages[i];
const liEl = document.createElement("li");
const aEl = document.createElement("a");
aEl.innerText = page.title ? page.title : "Page " + (i + 1);
aEl.onclick = () => selectPage(survey, page);
liEl.appendChild(aEl);
ulEl.appendChild(liEl);
}
selectActiveTab(survey);
};
survey.onCurrentPageChanged.add(survey => selectActiveTab(survey));
createTabs(survey);
survey.onValueChanged.add(() => createTabs(survey));
};
const service = {
getDefinition,
updateRecord,
getRecord,
makeTabs
};
var _default = service;
exports.default = _default;