UNPKG

@docfab/formviewer

Version:

Component for displaying ServeyJS survey

73 lines (56 loc) 2.07 kB
"use strict"; 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;