lforms 29.3.0 → 33.2.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/CHANGELOG.md +261 -0
- package/README.md +97 -14
- package/changed-features.md +99 -0
- package/dist/lforms/LICENSE.md +70 -0
- package/dist/lforms/README.md +100 -0
- package/dist/lforms/fhir/R4/lformsFHIR.min.js +2 -0
- package/dist/lforms/fhir/R4/lformsFHIR.min.js.map +1 -0
- package/dist/lforms/fhir/STU3/lformsFHIR.min.js +2 -0
- package/dist/lforms/fhir/STU3/lformsFHIR.min.js.map +1 -0
- package/dist/lforms/fhir/lformsFHIRAll.min.js +2 -0
- package/dist/lforms/fhir/lformsFHIRAll.min.js.map +1 -0
- package/dist/lforms/webcomponent/assets/lib/zone.min.js +134 -0
- package/dist/lforms/webcomponent/down_arrow_gray_10_10.png +0 -0
- package/dist/lforms/webcomponent/favicon.ico +0 -0
- package/dist/lforms/webcomponent/index.html +9 -0
- package/dist/lforms/webcomponent/lhc-forms.js +2471 -0
- package/dist/lforms/webcomponent/magnifying_glass.png +0 -0
- package/dist/lforms/webcomponent/main.js +2464 -0
- package/dist/lforms/webcomponent/main.js.map +1 -0
- package/dist/lforms/webcomponent/polyfills.js +2 -0
- package/dist/lforms/webcomponent/polyfills.js.map +1 -0
- package/dist/lforms/webcomponent/runtime.js +2 -0
- package/dist/lforms/webcomponent/runtime.js.map +1 -0
- package/dist/lforms/webcomponent/scripts.js +3 -0
- package/dist/lforms/webcomponent/scripts.js.map +1 -0
- package/dist/lforms/webcomponent/styles.css +3 -0
- package/dist/lforms/webcomponent/styles.css.map +1 -0
- package/form_definition.md +382 -0
- package/lforms-33.2.0.tgz +0 -0
- package/package.json +94 -88
- package/r4-support.md +147 -0
- package/sdc-support.md +127 -0
- package/app/.npmignore +0 -3
- package/app/images/blank.gif +0 -0
- package/app/images/signal-stop.png +0 -0
- package/app/index.html +0 -10
- package/app/lforms.js +0 -56
- package/app/lforms.tpl.js +0 -964
- package/app/scripts/angular-packages.js +0 -11
- package/app/scripts/bootstrap-decorators.js +0 -31
- package/app/scripts/bower-index.js +0 -14
- package/app/scripts/fhir/R4/export.js +0 -33
- package/app/scripts/fhir/R4/fhirRequire.js +0 -36
- package/app/scripts/fhir/R4/lformsFHIR.js +0 -27260
- package/app/scripts/fhir/R4/sdc-export.js +0 -455
- package/app/scripts/fhir/R4/sdc-import.js +0 -483
- package/app/scripts/fhir/STU3/export.js +0 -27
- package/app/scripts/fhir/STU3/fhirRequire.js +0 -36
- package/app/scripts/fhir/STU3/lformsFHIR.js +0 -27291
- package/app/scripts/fhir/STU3/sdc-export.js +0 -493
- package/app/scripts/fhir/STU3/sdc-import.js +0 -494
- package/app/scripts/fhir/diagnostic-report.js +0 -707
- package/app/scripts/fhir/export-common.js +0 -209
- package/app/scripts/fhir/expression-processor.js +0 -670
- package/app/scripts/fhir/extensions/rendering-style.js +0 -23
- package/app/scripts/fhir/fhir-common.js +0 -3
- package/app/scripts/fhir/obs-prepop.mjs +0 -97
- package/app/scripts/fhir/runtime-common.js +0 -33
- package/app/scripts/fhir/sdc-common.js +0 -334
- package/app/scripts/fhir/sdc-export-common.js +0 -1046
- package/app/scripts/fhir/sdc-import-common.js +0 -1343
- package/app/scripts/fhir/versions.js +0 -8
- package/app/scripts/index.js +0 -20
- package/app/scripts/lforms-config.js +0 -12
- package/app/scripts/lforms-constants.js +0 -10
- package/app/scripts/lforms-controllers.js +0 -1196
- package/app/scripts/lforms-directives.js +0 -424
- package/app/scripts/lforms-index.js +0 -20
- package/app/scripts/lib/cross_browser.js +0 -21
- package/app/scripts/lib/lforms-data.js +0 -3591
- package/app/scripts/lib/lforms-hl7.js +0 -525
- package/app/scripts/lib/lforms-util.js +0 -1122
- package/app/scripts/lib/lforms-validate.js +0 -277
- package/app/scripts/lib/polyfill.js +0 -81
- package/app/scripts/themeList.js +0 -17
- package/app/styles/lforms.css +0 -1219
- package/app/styles/redmond-theme/README.txt +0 -2
- package/app/styles/redmond-theme/images/ui-bg_glass_75_d0e5f5_1x400.png +0 -0
- package/app/styles/redmond-theme/images/ui-bg_glass_85_dfeffc_1x400.png +0 -0
- package/app/styles/redmond-theme/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
- package/app/styles/redmond-theme/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png +0 -0
- package/app/styles/redmond-theme/images/ui-bg_inset-hard_100_f5f8f9_1x100.png +0 -0
- package/app/styles/redmond-theme/images/ui-bg_inset-hard_100_fcfdfd_1x100.png +0 -0
- package/app/styles/redmond-theme/images/ui-icons_217bc0_256x240.png +0 -0
- package/app/styles/redmond-theme/images/ui-icons_2e83ff_256x240.png +0 -0
- package/app/styles/redmond-theme/images/ui-icons_469bdd_256x240.png +0 -0
- package/app/styles/redmond-theme/images/ui-icons_6da8d5_256x240.png +0 -0
- package/app/styles/redmond-theme/images/ui-icons_cd0a0a_256x240.png +0 -0
- package/app/styles/redmond-theme/images/ui-icons_d8e7f3_256x240.png +0 -0
- package/app/styles/redmond-theme/images/ui-icons_f9bd01_256x240.png +0 -0
- package/app/styles/redmond-theme/jquery-ui.css +0 -1311
- package/app/styles/redmond-theme/jquery-ui.min.css +0 -7
- package/app/styles/redmond-theme/theme.css +0 -443
- package/app/styles/themes.css +0 -1541
- package/app/styles/themes.css.map +0 -9
- package/app/styles/themes.scss +0 -411
- package/app/version.json +0 -1
- package/app/views/partials/attachment.html +0 -38
- package/app/views/partials/field-answers.html +0 -67
- package/app/views/partials/field-units.html +0 -24
- package/app/views/partials/form-controls.html +0 -19
- package/app/views/partials/form-header.html +0 -35
- package/app/views/partials/form-options.html +0 -50
- package/app/views/partials/form-title.html +0 -20
- package/app/views/partials/form-view.html +0 -13
- package/app/views/partials/item-options.html +0 -48
- package/app/views/partials/item.html +0 -126
- package/app/views/partials/itemPrefixAndText.html +0 -4
- package/app/views/partials/layout-horizontal.html +0 -156
- package/app/views/partials/layout-matrix.html +0 -145
- package/app/views/partials/popover-content.html +0 -1
- package/app/views/partials/repeating-button.html +0 -16
- package/app/views/partials/table-item.html +0 -30
- package/app/views/partials/template-table.html +0 -69
- package/app/views/partials/uib-popover-templates/uib-popover-template.html +0 -13
- package/app/views/partials/uib-popover-templates/uib-popover.html +0 -11
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
<div class="lf-form-header" ng-if="lfData.templateOptions.showFormHeader">
|
|
2
|
-
<div class="lf-header-de" ng-style="getHeaderItemStyle(item)"
|
|
3
|
-
ng-repeat="item in lfData.templateOptions.formHeaderItems">
|
|
4
|
-
<div class="lf-header-de-label">
|
|
5
|
-
<span class="lf-question"><label for="{{item.questionCode}}">{{item.question}}</label></span>
|
|
6
|
-
</div>
|
|
7
|
-
<div class="lf-header-de-input" ng-switch on="item.dataType">
|
|
8
|
-
<ng-form name="innerForm">
|
|
9
|
-
<div class="lf-form-item-data tooltipContainer">
|
|
10
|
-
<div class="tooltipContent" lf-validate="item" ng-model="item.value"></div>
|
|
11
|
-
<input ng-switch-when="CWE" name="{{item.question}}" type="text"
|
|
12
|
-
placeholder="Select or type a value"
|
|
13
|
-
ng-model="item.value"
|
|
14
|
-
autocomplete-lhc="item._autocompOptions"
|
|
15
|
-
id="{{item.questionCode}}"
|
|
16
|
-
ng-blur="activeRowOnBlur(item)">
|
|
17
|
-
<input ng-switch-when="DT" name="{{item.question}}" type="text"
|
|
18
|
-
ng-model="item.value" lf-date="dateOptions"
|
|
19
|
-
placeholder="MM/DD/YYYY"
|
|
20
|
-
id="{{item.questionCode}}"
|
|
21
|
-
ng-blur="activeRowOnBlur(item)">
|
|
22
|
-
<input ng-switch-default name="{{item.question}}" type="text"
|
|
23
|
-
ng-model="item.value" placeholder="Type a value"
|
|
24
|
-
id="{{item.questionCode}}"
|
|
25
|
-
ng-blur="activeRowOnBlur(item)">
|
|
26
|
-
<textarea ng-switch-when="TX" name="{{item.question}}"
|
|
27
|
-
ng-model="item.value" placeholder="Type a value"
|
|
28
|
-
id="{{item.questionCode}}" ng-keyup="autoExpand($event)" ng-blur="autoExpand($event)" rows="1"
|
|
29
|
-
ng-blur="activeRowOnBlur(item)">
|
|
30
|
-
</textarea>
|
|
31
|
-
</div>
|
|
32
|
-
</ng-form>
|
|
33
|
-
</div>
|
|
34
|
-
</div>
|
|
35
|
-
</div>
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
<div class="lf-form-options" ng-if="lfData.templateOptions.showFormOptionPanel">
|
|
2
|
-
|
|
3
|
-
<div class="lf-form-option">
|
|
4
|
-
<label><input type="checkbox" value="" ng-model="lfData.templateOptions.showQuestionCode">Display question code</label>
|
|
5
|
-
</div>
|
|
6
|
-
<div class="lf-form-option">
|
|
7
|
-
<label><input type="checkbox" value="" ng-model="lfData.templateOptions.showCodingInstruction">Show help/description</label>
|
|
8
|
-
</div>
|
|
9
|
-
<div class="lf-form-option">
|
|
10
|
-
<label><input type="checkbox" value="" ng-model="lfData.templateOptions.hideFormControls">Hide form controls</label>
|
|
11
|
-
</div>
|
|
12
|
-
<div class="lf-form-option">
|
|
13
|
-
<label><input type="checkbox" value="" ng-model="lfData.templateOptions.showFormOptionPanelButton">Display form's option button</label>
|
|
14
|
-
</div>
|
|
15
|
-
<div class="lf-form-option">
|
|
16
|
-
<label><input type="checkbox" value="" ng-model="lfData.templateOptions.showFormOptionPanel">Display form's option panel</label>
|
|
17
|
-
</div>
|
|
18
|
-
<div class="lf-form-option">
|
|
19
|
-
<label><input type="checkbox" value="" ng-model="lfData.templateOptions.showItemOptionPanelButton">Display item's option button</label>
|
|
20
|
-
</div>
|
|
21
|
-
<div class="lf-form-option">
|
|
22
|
-
<label><input type="checkbox" value="" ng-model="lfData.templateOptions.hideUnits">Hide units</label>
|
|
23
|
-
</div>
|
|
24
|
-
<div class="lf-form-option">
|
|
25
|
-
<label><input type="checkbox" value="" ng-model="lfData.templateOptions.allowMultipleEmptyRepeatingItems">Allow multiple empty repeating questions/sections</label>
|
|
26
|
-
</div>
|
|
27
|
-
<div class="lf-form-option">
|
|
28
|
-
<label><input type="checkbox" value="" ng-model="lfData.templateOptions.allowHTMLInInstructions">Allow HTML content in instructions</label>
|
|
29
|
-
</div>
|
|
30
|
-
<div class="lf-form-option">
|
|
31
|
-
<label><input type="checkbox" value="" ng-model="lfData.templateOptions.showFormHeader">Display form header questions</label>
|
|
32
|
-
</div>
|
|
33
|
-
<div class="lf-form-option">
|
|
34
|
-
<label><input type="checkbox" value="" ng-model="lfData.templateOptions.showColumnHeaders">Display column headers</label>
|
|
35
|
-
</div>
|
|
36
|
-
<div class="lf-form-option">
|
|
37
|
-
<label><input type="checkbox" value="" ng-model="lfData.templateOptions.useTreeLineStyle">Tree line style</label>
|
|
38
|
-
</div>
|
|
39
|
-
<div class="lf-form-option">
|
|
40
|
-
<label for="viewMode">View mode</label>
|
|
41
|
-
<select name="viewMode" ng-model="lfData.templateOptions.viewMode">
|
|
42
|
-
<option value="auto">Responsive [auto]</option>
|
|
43
|
-
<option value="lg">For large screen [lg]</option>
|
|
44
|
-
<option value="md">For medium screen [md]</option>
|
|
45
|
-
<option value="sm">For small screen [sm]</option>
|
|
46
|
-
</select>
|
|
47
|
-
|
|
48
|
-
</div>
|
|
49
|
-
|
|
50
|
-
</div>
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
<div class="lf-form-title" role="heading" aria-level=1>
|
|
2
|
-
<span id="label-{{ lfData.code }}" class="lf-question"
|
|
3
|
-
style="{{lfData._obj_titleCSS}}">{{lfData.name || lfData.fhirQName}}</span>
|
|
4
|
-
<span class="lf-item-code" ng-if="lfData.templateOptions.showQuestionCode">
|
|
5
|
-
<a ng-if="lfData._linkToDef" href="{{ lfData._linkToDef }}" target="_blank" rel="noopener noreferrer">[{{ lfData.code }}]</a>
|
|
6
|
-
<span ng-if="!lfData._linkToDef">[{{ lfData.code }}]</span>
|
|
7
|
-
</span>
|
|
8
|
-
<button ng-if="lfData.copyrightNotice" id="copyright-{{lfData.code}}" type="button"
|
|
9
|
-
class="lf-copyright-button btn-sm" uib-popover="{{lfData.copyrightNotice}}"
|
|
10
|
-
popover-trigger="focus" popover-placement="right"
|
|
11
|
-
popover-title="Copyright" aria-label="Copyright notice"
|
|
12
|
-
aria-describedby="label-{{ lfData.code }}">
|
|
13
|
-
<span class="glyphicon glyphicon-copyright-mark" aria-hidden="true"></span>
|
|
14
|
-
</button>
|
|
15
|
-
<button ng-if="lfData.templateOptions.showFormOptionPanelButton" type="button" class="lf-control-button btn-sm"
|
|
16
|
-
ng-click="hideShowFormOptionPanel()" aria-label="Form Option Panel">
|
|
17
|
-
<span class="glyphicon glyphicon-cog" aria-hidden="true"></span>
|
|
18
|
-
</button>
|
|
19
|
-
|
|
20
|
-
</div>
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
<div class="lf-form-view {{getViewModeClass()}}" ng-controller="LFormsCtrl" ng-switch on="lfData.template">
|
|
2
|
-
<div ng-switch-when="table">
|
|
3
|
-
<div ng-include="'template-table.html'"></div>
|
|
4
|
-
</div>
|
|
5
|
-
<!-- default is 'table' -->
|
|
6
|
-
<div ng-switch-default>
|
|
7
|
-
<div ng-include="'template-table.html'"></div>
|
|
8
|
-
</div>
|
|
9
|
-
|
|
10
|
-
<!--debugging-->
|
|
11
|
-
<button type="button" ng-if="debug" ng-click="onclick()">Click to debug Panel Controller</button>
|
|
12
|
-
|
|
13
|
-
</div>
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
<div ng-if="item._showItemOptionPanel">
|
|
2
|
-
|
|
3
|
-
<div class="lf-item-options lf-section-options" ng-if="item.dataType==='SECTION'">
|
|
4
|
-
<div class="lf-item-option">
|
|
5
|
-
<input class="lf-answer-button" type="radio" id="{{item._elementId + 'vertical'}}"
|
|
6
|
-
ng-model="item.displayControl.questionLayout" value="vertical" name="{{item._elementId}} +'option'">
|
|
7
|
-
<label class="lf-answer-label" for="{{item._elementId + 'vertical'}}">Vertical</label>
|
|
8
|
-
</div>
|
|
9
|
-
<div class="lf-item-option" ng-if="isQuestionLayoutAllowed(item, 'horizontal')">
|
|
10
|
-
<input class="lf-answer-button" type="radio" id="{{item._elementId + 'horizontal'}}"
|
|
11
|
-
ng-model="item.displayControl.questionLayout" value="horizontal" name="{{item._elementId}} +'option'">
|
|
12
|
-
<label class="lf-answer-label" for="{{item._elementId + 'horizontal'}}">Horizontal</label>
|
|
13
|
-
</div>
|
|
14
|
-
<div class="lf-item-option" ng-if="isQuestionLayoutAllowed(item, 'matrix')">
|
|
15
|
-
<input class="lf-answer-button" type="radio" id="{{item._elementId + 'matrix'}}"
|
|
16
|
-
ng-model="item.displayControl.questionLayout" value="matrix" name="{{item._elementId}} +'option'">
|
|
17
|
-
<label class="lf-answer-label" for="{{item._elementId + 'matrix'}}">Matrix</label>
|
|
18
|
-
</div>
|
|
19
|
-
|
|
20
|
-
</div>
|
|
21
|
-
|
|
22
|
-
<div class="lf-item-options" ng-if="item.answers && (item.dataType==='CWE' || item.dataType==='CNE')">
|
|
23
|
-
<div class="lf-item-option">
|
|
24
|
-
<input class="lf-answer-button" type="radio" id="{{item._elementId + 'combo'}}"
|
|
25
|
-
ng-model="item.displayControl.answerLayout.type" value="COMBO_BOX" name="{{item._elementId}} +'option'">
|
|
26
|
-
<label class="lf-answer-label" for="{{item._elementId + 'combo'}}">Combo box</label>
|
|
27
|
-
</div>
|
|
28
|
-
<div class="lf-item-option">
|
|
29
|
-
<input class="lf-answer-button" type="radio" id="{{item._elementId + 'list'}}"
|
|
30
|
-
ng-model="item.displayControl.answerLayout.type" value="RADIO_CHECKBOX" name="{{item._elementId}} +'option'">
|
|
31
|
-
<label class="lf-answer-label" for="{{item._elementId + 'list'}}">{{item._multipleAnswers ? "Checkboxes" : "Radio buttons"}}</label>
|
|
32
|
-
</div>
|
|
33
|
-
<div class="lf-item-option" ng-if="item.displayControl.answerLayout.type==='RADIO_CHECKBOX'">
|
|
34
|
-
<label for="{{item._elementId + 'columns'}}"> Display format:</label>
|
|
35
|
-
<select name="{{item._elementId + 'columns'}}" id="{{item._elementId + 'columns'}}" ng-model="item.displayControl.answerLayout.columns">
|
|
36
|
-
<option value="">---Please select---</option> <!-- not selected / blank option -->
|
|
37
|
-
<option value="0">Compact</option>
|
|
38
|
-
<option value="1">In 1 column</option>
|
|
39
|
-
<option value="2">In 2 columns</option>
|
|
40
|
-
<option value="3">In 3 columns</option>
|
|
41
|
-
<option value="4">In 4 columns</option>
|
|
42
|
-
<option value="5">In 5 columns</option>
|
|
43
|
-
<option value="6">In 6 columns</option>
|
|
44
|
-
</select>
|
|
45
|
-
</div>
|
|
46
|
-
</div>
|
|
47
|
-
|
|
48
|
-
</div>
|
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
<div ng-attr-role="{{item.header ? 'heading' : undefined}}"
|
|
2
|
-
ng-attr-aria-level="{{item.header ? item._displayLevel+1 : undefined}}"
|
|
3
|
-
class="lf-form-table-row lf-de {{getSiblingStatus(item)}} {{getRowClass(item)}}
|
|
4
|
-
{{getSkipLogicClass(item)}} {{getActiveRowClass(item)}}" ng-click="setActiveRow(item)">
|
|
5
|
-
<div class="lf-de-label-button">
|
|
6
|
-
<!-- label -->
|
|
7
|
-
<div class="lf-de-label">
|
|
8
|
-
<span ng-show="item._questionRepeatable" class="lf-sn">{{getRepeatingSN(item) }}</span>
|
|
9
|
-
<span class="lf-question"><label id="label-{{ item._elementId }}"
|
|
10
|
-
for="{{item._elementId}}"><ng-include src="'itemPrefixAndText.html'"></label></span>
|
|
11
|
-
<span class="lf-item-code" ng-show="lfData.templateOptions.showQuestionCode">
|
|
12
|
-
<a ng-if="item._linkToDef" href="{{ item._linkToDef }}" target="_blank" rel="noopener noreferrer">[{{ item.questionCode }}]</a>
|
|
13
|
-
<span ng-if="!item._linkToDef">[{{ item.questionCode }}]</span>
|
|
14
|
-
</span>
|
|
15
|
-
<span ng-switch on="getCodingInstructionsDisplayType(item)" ng-if="item.codingInstructions">
|
|
16
|
-
<span ng-switch-when="inline-html" id="help-{{ item._elementId }}"
|
|
17
|
-
class="lf-prompt" ng-bind-html="getTrustedCodingInstructions(item)"></span>
|
|
18
|
-
<span ng-switch-when="inline-escaped" id="help-{{ item._elementId }}"
|
|
19
|
-
class="lf-prompt" ng-bind="item.codingInstructions"></span>
|
|
20
|
-
<button ng-switch-when="popover-html" id="helpButton-{{ item._elementId }}"
|
|
21
|
-
class="lf-help-button btn-sm" uib-popover-template="'popover-content.html'"
|
|
22
|
-
popover-trigger="focus" popover-placement="right" popover-title="Instruction"
|
|
23
|
-
type="button" aria-label="Help"
|
|
24
|
-
aria-describedby="label-{{ item._elementId }}">
|
|
25
|
-
<span class="glyphicon glyphicon-question-sign" aria-hidden="true"></span>
|
|
26
|
-
</button>
|
|
27
|
-
<button ng-switch-when="popover-escaped" id="helpButton-{{ item._elementId }}"
|
|
28
|
-
class="lf-help-button btn-sm" uib-popover="{{item.codingInstructions}}"
|
|
29
|
-
popover-trigger="focus" popover-placement="right" popover-title="Instruction"
|
|
30
|
-
type="button" aria-label="Help"
|
|
31
|
-
aria-describedby="label-{{ item._elementId }}">
|
|
32
|
-
<span class="glyphicon glyphicon-question-sign" aria-hidden="true"></span>
|
|
33
|
-
</button>
|
|
34
|
-
</span>
|
|
35
|
-
<button ng-if="item.copyrightNotice" id="copyright-{{item._elementId}}" type="button"
|
|
36
|
-
class="lf-copyright-button btn-sm" uib-popover="{{item.copyrightNotice}}"
|
|
37
|
-
popover-trigger="focus" popover-placement="right" popover-title="Copyright"
|
|
38
|
-
aria-label="Copyright notice" aria-describedby="label-{{ item._elementId }}">
|
|
39
|
-
<span class="glyphicon glyphicon-copyright-mark" aria-hidden="true"></span>
|
|
40
|
-
</button>
|
|
41
|
-
<button ng-if="isItemOptionPanelButtonShown(item)" type="button" class="lf-control-button btn-sm"
|
|
42
|
-
ng-click="hideShowItemOptionPanel(item)" aria-label="Item controls"
|
|
43
|
-
aria-describedby="label-{{ item._elementId }}">
|
|
44
|
-
<span class="glyphicon glyphicon-cog" aria-hidden="true"></span>
|
|
45
|
-
</button>
|
|
46
|
-
<!-- TBD -->
|
|
47
|
-
<lf-item-options></lf-item-options>
|
|
48
|
-
</div>
|
|
49
|
-
|
|
50
|
-
<!-- button -->
|
|
51
|
-
<div class="lf-de-button">
|
|
52
|
-
<button ng-if="!hasOneRepeatingItem(item)" class="lf-float-button" type="button"
|
|
53
|
-
ng-click="removeOneRepeatingItem(item)" id="del-{{item._elementId}}"
|
|
54
|
-
title='Remove this "{{ item._text }}"'>-</button>
|
|
55
|
-
</div>
|
|
56
|
-
</div>
|
|
57
|
-
|
|
58
|
-
<div ng-if="item.dataType !=='TITLE' && !item.header" class="lf-de-input-unit" ng-style="getFieldWidth(item)">
|
|
59
|
-
<!-- input field -->
|
|
60
|
-
<div ng-switch on="item.dataType" class="lf-de-input values hasTooltip">
|
|
61
|
-
<ng-form name="innerForm2">
|
|
62
|
-
<div class="lf-form-item-data tooltipContainer">
|
|
63
|
-
<div class="tooltipContent" lf-validate="item" ng-model="item.value" ng-if="item._hasValidation"></div>
|
|
64
|
-
<div ng-switch-when="CNE">
|
|
65
|
-
<lf-answers item="item"></lf-answers>
|
|
66
|
-
</div>
|
|
67
|
-
<div ng-switch-when="CWE">
|
|
68
|
-
<lf-answers item="item"></lf-answers>
|
|
69
|
-
</div>
|
|
70
|
-
|
|
71
|
-
<input ng-switch-when="DT" name="{{item._text}}" type="text"
|
|
72
|
-
ng-model="item.value" lf-date="dateOptions" placeholder="{{item._toolTip}}"
|
|
73
|
-
ng-disabled="item._readOnly" id="{{item._elementId}}" ng-focus="setActiveRow(item)"
|
|
74
|
-
ng-blur="activeRowOnBlur(item)" aria-describedby="help-{{ item._elementId }}"
|
|
75
|
-
aria-required="{{ item._answerRequired }}">
|
|
76
|
-
|
|
77
|
-
<!-- Gillardo boostrap datetime picker -->
|
|
78
|
-
<div ng-switch-when="DTM" class="lf-dtm-picker-block">
|
|
79
|
-
<input name="{{item._text}}" type="text" class="form-control"
|
|
80
|
-
ng-model="item.value" placeholder="{{item._toolTip}}"
|
|
81
|
-
datetime-picker="{{uibDateTimePickerFormat}}" alt-input-formats="uibDatePickerAltFormats"
|
|
82
|
-
is-open="isOpen" enable-time="true" close-on-date-selection="true" button-bar="uibDtmPickerButtonBar"
|
|
83
|
-
datepicker-options="uibDatePickerOptions" timepicker-options="uibTimePickerOptions"
|
|
84
|
-
ng-disabled="item._readOnly" id="{{item._elementId}}" ng-focus="setActiveRow(item)"
|
|
85
|
-
ng-blur="activeRowOnBlur(item); uibDtmPickerOnBlur('input')" aria-describedby="help-{{ item._elementId }}"
|
|
86
|
-
aria-required="{{ item._answerRequired }}">
|
|
87
|
-
<button type="button" class="ui-datepicker-trigger" ng-click="openUibDtmPicker($event)"></button>
|
|
88
|
-
</div>
|
|
89
|
-
|
|
90
|
-
<textarea ng-switch-when="TX" name="{{item._text}}"
|
|
91
|
-
ng-model="item.value" ng-attr-placeholder="{{item._toolTip}}" ng-disabled="item._readOnly"
|
|
92
|
-
id="{{item._elementId}}" ng-keyup="autoExpand($event)" ng-blur="activeRowOnBlur(item);autoExpand($event)" rows="1"
|
|
93
|
-
ng-focus="setActiveRow(item)" aria-describedby="help-{{ item._elementId }}"
|
|
94
|
-
aria-required="{{ item._answerRequired }}">
|
|
95
|
-
</textarea>
|
|
96
|
-
<input ng-switch-when="BL" name="{{item._text}}" type="checkbox"
|
|
97
|
-
ng-model="item.value" placeholder="{{item._toolTip}}" ng-disabled="item._readOnly"
|
|
98
|
-
id="{{item._elementId}}" ng-focus="setActiveRow(item)"
|
|
99
|
-
ng-true-value="true" ng-false-value="false"
|
|
100
|
-
ng-blur="activeRowOnBlur(item)" aria-describedby="help-{{ item._elementId }}">
|
|
101
|
-
<lf-attachment ng-switch-when="attachment" item="item"
|
|
102
|
-
create-attachment="createAttachment(item)" id="item._elementId"></lf-attachment>
|
|
103
|
-
<input ng-switch-default name="{{item._text}}" type="text"
|
|
104
|
-
ng-model="item.value" placeholder="{{item._toolTip}}" ng-disabled="item._readOnly"
|
|
105
|
-
id="{{item._elementId}}" ng-focus="setActiveRow(item)"
|
|
106
|
-
ng-blur="activeRowOnBlur(item)" aria-describedby="help-{{ item._elementId }}"
|
|
107
|
-
aria-required="{{ item._answerRequired }}">
|
|
108
|
-
</div>
|
|
109
|
-
</ng-form>
|
|
110
|
-
</div>
|
|
111
|
-
|
|
112
|
-
<!--unit-->
|
|
113
|
-
<div ng-if="!lfData.templateOptions.hideUnits && checkUnits(item)" class="lf-de-unit">
|
|
114
|
-
<lf-units item="item"></lf-units>
|
|
115
|
-
</div>
|
|
116
|
-
|
|
117
|
-
<!-- extra question -->
|
|
118
|
-
<div ng-if="needExtra(item)" class="lf-de-unit">
|
|
119
|
-
<input class="lf-extra-field" ng-model="item.valueOther" placeholder="Please specify"
|
|
120
|
-
ng-disabled="item._readOnly" type="text" ng-focus="setActiveRow(item)">
|
|
121
|
-
</div>
|
|
122
|
-
</div>
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
</div>
|
|
126
|
-
|
|
@@ -1,156 +0,0 @@
|
|
|
1
|
-
<div class="lf-layout-horizontal lf-table-item {{getSiblingStatus(item)}} " ng-if="item._horizontalTableHeader && lfData._horizontalTableInfo[item._horizontalTableId]">
|
|
2
|
-
<div ng-attr-role="{{item.header ? 'heading' : undefined}}"
|
|
3
|
-
ng-attr-aria-level="{{item.header ? item._displayLevel+1 : undefined}}"
|
|
4
|
-
class="lf-form-horizontal-table-title lf-de-label">
|
|
5
|
-
<span class="lf-question"><label id="label-{{ item._elementId }}"><ng-include src="'itemPrefixAndText.html'"></label></span>
|
|
6
|
-
<span class="lf-item-code" ng-show="lfData.templateOptions.showQuestionCode">
|
|
7
|
-
<a ng-if="item._linkToDef" href="{{ item._linkToDef }}" target="_blank" rel="noopener noreferrer">[{{ item.questionCode }}]</a>
|
|
8
|
-
<span ng-if="!item._linkToDef">[{{ item.questionCode }}]</span>
|
|
9
|
-
</span>
|
|
10
|
-
<span ng-switch on="getCodingInstructionsDisplayType(item)" ng-if="item.codingInstructions">
|
|
11
|
-
<span ng-switch-when="inline-html" class="lf-prompt" ng-bind-html="getTrustedCodingInstructions(item)"></span>
|
|
12
|
-
<span ng-switch-when="inline-escaped" class="lf-prompt" ng-bind="item.codingInstructions"></span>
|
|
13
|
-
<button ng-switch-when="popover-html" class="lf-help-button btn-sm" uib-popover-template="'popover.html'"
|
|
14
|
-
popover-trigger="focus" popover-placement="right" popover-title="Instruction"
|
|
15
|
-
type="button" id="help-{{item._elementId}}" aria-label="Help"
|
|
16
|
-
aria-describedby="label-{{ item._elementId }}">
|
|
17
|
-
<span class="glyphicon glyphicon-question-sign" aria-hidden="true"></span>
|
|
18
|
-
</button>
|
|
19
|
-
<button ng-switch-when="popover-escaped" class="lf-help-button btn-sm" uib-popover="{{item.codingInstructions}}"
|
|
20
|
-
popover-trigger="focus" popover-placement="right" popover-title="Instruction"
|
|
21
|
-
type="button" id="help-{{item._elementId}}" aria-label="Help"
|
|
22
|
-
aria-describedby="label-{{ item._elementId }}">
|
|
23
|
-
<span class="glyphicon glyphicon-question-sign" aria-hidden="true"></span>
|
|
24
|
-
</button>
|
|
25
|
-
</span>
|
|
26
|
-
<button ng-if="item.copyrightNotice" id="copyright-{{item._elementId}}" type="button"
|
|
27
|
-
class="lf-copyright-button btn-sm" uib-popover="{{item.copyrightNotice}}"
|
|
28
|
-
popover-trigger="focus" popover-placement="right" popover-title="Copyright"
|
|
29
|
-
aria-label="Copyright notice" aria-describedby="label-{{ item._elementId }}">
|
|
30
|
-
<span class="glyphicon glyphicon-copyright-mark" aria-hidden="true"></span>
|
|
31
|
-
</button>
|
|
32
|
-
<button ng-if="isItemOptionPanelButtonShown(item)" type="button" class="lf-control-button btn-sm"
|
|
33
|
-
ng-click="hideShowItemOptionPanel(item)" aria-label="Item controls"
|
|
34
|
-
aria-describedby="label-{{ item._elementId }}">
|
|
35
|
-
<span class="glyphicon glyphicon-cog" aria-hidden="true"></span>
|
|
36
|
-
</button>
|
|
37
|
-
<!-- TBD -->
|
|
38
|
-
<lf-item-options></lf-item-options>
|
|
39
|
-
</div>
|
|
40
|
-
|
|
41
|
-
<table class="lf-form-horizontal-table">
|
|
42
|
-
<colgroup>
|
|
43
|
-
<col class="lf-de-button" ng-if="item._questionRepeatable && lfData._horizontalTableInfo[item._horizontalTableId].tableRows.length>1">
|
|
44
|
-
<col ng-repeat="col in lfData._horizontalTableInfo[item._horizontalTableId].columnHeaders"
|
|
45
|
-
ng-style="getTableColumnStyle(col)">
|
|
46
|
-
</colgroup>
|
|
47
|
-
<thead>
|
|
48
|
-
<tr>
|
|
49
|
-
<th class="lf-form-horizontal-table-header" ng-if="item._questionRepeatable && lfData._horizontalTableInfo[item._horizontalTableId].tableRows.length>1"></th>
|
|
50
|
-
<th ng-repeat="col in lfData._horizontalTableInfo[item._horizontalTableId].columnHeaders"
|
|
51
|
-
ng-init="item = col.item" class="lf-form-horizontal-table-header"
|
|
52
|
-
id="{{col.id}}"><ng-include src="'itemPrefixAndText.html'"></th>
|
|
53
|
-
</tr>
|
|
54
|
-
</thead>
|
|
55
|
-
<tbody id="" class="">
|
|
56
|
-
<tr ng-repeat="row in lfData._horizontalTableInfo[item._horizontalTableId].tableRows track by $index"
|
|
57
|
-
class="data-row has-ng-animate">
|
|
58
|
-
<td class="lf-de-button" ng-if="item._questionRepeatable && lfData._horizontalTableInfo[item._horizontalTableId].tableRows.length>1">
|
|
59
|
-
<button ng-if="!hasOneRepeatingItem(item)" type="button"
|
|
60
|
-
id="del-{{row.header._elementId}}"
|
|
61
|
-
class="lf-float-button" ng-click="removeOneRepeatingItem(row.header)"
|
|
62
|
-
title='Remove this row of "{{ row.header.question }}"'>-</button>
|
|
63
|
-
</td>
|
|
64
|
-
|
|
65
|
-
<td ng-repeat="cell in row.cells"
|
|
66
|
-
class="hasTooltip {{getRowClass(cell)}} {{getSkipLogicClass(cell)}} {{getActiveRowClass(cell)}}"
|
|
67
|
-
ng-switch on="(!lfData._expressionProcessor._firstExpressionRunComplete && cell._hasListExpr) ? 'Loading List' : cell.dataType">
|
|
68
|
-
<ng-form name="innerForm2">
|
|
69
|
-
<div class="lf-form-item-data tooltipContainer">
|
|
70
|
-
<div class="tooltipContent" lf-validate="cell" ng-model="cell.value" ng-if="cell._hasValidation"></div>
|
|
71
|
-
<span ng-switch-when="" > </span>
|
|
72
|
-
<span ng-switch-when="Loading List">Loading list data...</span>
|
|
73
|
-
<input ng-switch-when="CNE" name="{{cell.question + '_' + $id}}" type="text"
|
|
74
|
-
ng-model="cell.value"
|
|
75
|
-
autocomplete-lhc="cell._autocompOptions"
|
|
76
|
-
ng-disabled="cell._readOnly" placeholder="{{cell._toolTip}}"
|
|
77
|
-
id="{{cell._elementId}}"
|
|
78
|
-
aria-labelledby="{{lfData._horizontalTableInfo[item._horizontalTableId].columnHeaders[$index].id}}"
|
|
79
|
-
ng-focus="setActiveRow(cell)" ng-blur="activeRowOnBlur(cell)">
|
|
80
|
-
<input ng-switch-when="CWE" name="{{cell.question + '_' + $id}}" type="text"
|
|
81
|
-
ng-model="cell.value"
|
|
82
|
-
autocomplete-lhc="cell._autocompOptions"
|
|
83
|
-
ng-disabled="cell._readOnly" placeholder="{{cell._toolTip}}"
|
|
84
|
-
id="{{cell._elementId}}"
|
|
85
|
-
aria-labelledby="{{lfData._horizontalTableInfo[item._horizontalTableId].columnHeaders[$index].id}}"
|
|
86
|
-
ng-focus="setActiveRow(cell)" ng-blur="activeRowOnBlur(cell)">
|
|
87
|
-
<input ng-switch-when="REAL" name="{{cell.question}}" type="text"
|
|
88
|
-
ng-model="cell.value"
|
|
89
|
-
placeholder="{{cell._toolTip}}" ng-disabled="cell._readOnly"
|
|
90
|
-
id="{{cell._elementId}}"
|
|
91
|
-
aria-labelledby="{{lfData._horizontalTableInfo[item._horizontalTableId].columnHeaders[$index].id}}"
|
|
92
|
-
ng-focus="setActiveRow(cell)" ng-blur="activeRowOnBlur(cell)">
|
|
93
|
-
<input ng-switch-when="INT" name="{{cell.question}}" type="text"
|
|
94
|
-
ng-model="cell.value"
|
|
95
|
-
placeholder="{{cell._toolTip}}" ng-disabled="cell._readOnly"
|
|
96
|
-
id="{{cell._elementId}}"
|
|
97
|
-
aria-labelledby="{{lfData._horizontalTableInfo[item._horizontalTableId].columnHeaders[$index].id}}"
|
|
98
|
-
ng-focus="setActiveRow(cell)" ng-blur="activeRowOnBlur(cell)">
|
|
99
|
-
<input ng-switch-when="DT" name="{{cell.question}}" type="text"
|
|
100
|
-
ng-model="cell.value"
|
|
101
|
-
lf-date="dateOptions" placeholder="{{cell._toolTip}}" ng-disabled="cell._readOnly"
|
|
102
|
-
id="{{cell._elementId}}"
|
|
103
|
-
aria-labelledby="{{lfData._horizontalTableInfo[item._horizontalTableId].columnHeaders[$index].id}}"
|
|
104
|
-
ng-focus="setActiveRow(cell)" ng-blur="activeRowOnBlur(cell)">
|
|
105
|
-
<!-- Gillardo boostrap datetime picker -->
|
|
106
|
-
<div ng-switch-when="DTM" class="lf-dtm-picker-block">
|
|
107
|
-
<input name="{{cell.question}}" type="text" class="form-control"
|
|
108
|
-
ng-model="cell.value"
|
|
109
|
-
datetime-picker="{{uibDateTimePickerFormat}}" alt-input-formats="uibDatePickerAltFormats"
|
|
110
|
-
is-open="isOpen" enable-time="true" close-on-date-selection="true" button-bar="uibDtmPickerButtonBar"
|
|
111
|
-
datepicker-options="uibDatePickerOptions" timepicker-options="uibTimePickerOptions"
|
|
112
|
-
placeholder="{{cell._toolTip}}" ng-disabled="cell._readOnly"
|
|
113
|
-
id="{{cell._elementId}}"
|
|
114
|
-
aria-labelledby="{{lfData._horizontalTableInfo[item._horizontalTableId].columnHeaders[$index].id}}"
|
|
115
|
-
ng-focus="setActiveRow(cell)" ng-blur="activeRowOnBlur(cell); uibDtmPickerOnBlur('input')">
|
|
116
|
-
<button type="button" class="ui-datepicker-trigger" ng-click="openUibDtmPicker($event)"></button>
|
|
117
|
-
</div>
|
|
118
|
-
<textarea ng-switch-when="TX" name="{{cell.question}}"
|
|
119
|
-
ng-model="cell.value" ng-attr-placeholder="{{cell._toolTip}}" ng-disabled="cell._readOnly"
|
|
120
|
-
id="{{cell._elementId}}"
|
|
121
|
-
aria-labelledby="{{lfData._horizontalTableInfo[item._horizontalTableId].columnHeaders[$index].id}}"
|
|
122
|
-
ng-keyup="autoExpand($event)" rows="1"
|
|
123
|
-
ng-focus="setActiveRow(cell)" ng-blur="activeRowOnBlur(cell)"></textarea>
|
|
124
|
-
<lf-attachment ng-switch-when="attachment" item="cell"
|
|
125
|
-
create-attachment="createAttachment(item)"
|
|
126
|
-
labelled-by=lfData._horizontalTableInfo[item._horizontalTableId].columnHeaders[$index].id
|
|
127
|
-
></lf-attachment>
|
|
128
|
-
<input ng-switch-default name="{{cell.question}}" type="text"
|
|
129
|
-
ng-model="cell.value" placeholder="{{cell._toolTip}}" ng-disabled="cell._readOnly"
|
|
130
|
-
id="{{cell._elementId}}"
|
|
131
|
-
aria-labelledby="{{lfData._horizontalTableInfo[item._horizontalTableId].columnHeaders[$index].id}}"
|
|
132
|
-
ng-focus="setActiveRow(cell)" ng-blur="activeRowOnBlur(cell)">
|
|
133
|
-
</div>
|
|
134
|
-
</ng-form>
|
|
135
|
-
</td>
|
|
136
|
-
</tr>
|
|
137
|
-
</tbody>
|
|
138
|
-
</table>
|
|
139
|
-
|
|
140
|
-
<div ng-if="item._questionRepeatable && targetShown(item) "
|
|
141
|
-
class="lf-form-table-row button-row {{getSkipLogicClass(item)}}">
|
|
142
|
-
<div class="has-popover-warning">
|
|
143
|
-
<button type="button"
|
|
144
|
-
class="lf-float-button" id="add-{{item._elementId}}"
|
|
145
|
-
ng-click="addOneRepeatingItem(item, true)"
|
|
146
|
-
ng-blur="hideUnusedItemWarning(item)"
|
|
147
|
-
uib-popover='Please enter info in the blank "{{ item._text }}".'
|
|
148
|
-
popover-placement="top-left"
|
|
149
|
-
popover-trigger="none"
|
|
150
|
-
popover-is-open="item._showUnusedItemWarning">
|
|
151
|
-
+ Add another "{{item._text}}"
|
|
152
|
-
</button>
|
|
153
|
-
</div>
|
|
154
|
-
</div>
|
|
155
|
-
</div>
|
|
156
|
-
|
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
<div class="lf-layout-matrix lf-table-item {{getSiblingStatus(item)}}">
|
|
2
|
-
<div ng-attr-role="{{item.header ? 'heading' : undefined}}"
|
|
3
|
-
ng-attr-aria-level="{{item.header ? item._displayLevel+1 : undefined}}"
|
|
4
|
-
class="lf-form-matrix-table-title lf-de-label">
|
|
5
|
-
<span class="lf-question"><label id="label-{{ item._elementId }}"><ng-include src="'itemPrefixAndText.html'"></label></span>
|
|
6
|
-
<span class="lf-item-code" ng-show="lfData.templateOptions.showQuestionCode">
|
|
7
|
-
<a ng-if="item._linkToDef" href="{{ item._linkToDef }}" target="_blank" rel="noopener noreferrer">[{{ item.questionCode }}]</a>
|
|
8
|
-
<span ng-if="!item._linkToDef">[{{ item.questionCode }}]</span>
|
|
9
|
-
</span>
|
|
10
|
-
<span ng-switch on="getCodingInstructionsDisplayType(item)" ng-if="item.codingInstructions">
|
|
11
|
-
<span ng-switch-when="inline-html" class="lf-prompt" ng-bind-html="getTrustedCodingInstructions(item)"
|
|
12
|
-
id="help-{{ item._elementId }}"></span>
|
|
13
|
-
<span ng-switch-when="inline-escaped" class="lf-prompt" ng-bind="item.codingInstructions"
|
|
14
|
-
id="help-{{ item._elementId }}"></span>
|
|
15
|
-
<button ng-switch-when="popover-html" class="lf-help-button btn-sm" uib-popover-template="'popover.html'"
|
|
16
|
-
popover-trigger="focus" popover-placement="right" popover-title="Instruction"
|
|
17
|
-
type="button" id="helpButton-{{item._elementId}}" aria-label="Help"
|
|
18
|
-
aria-describedby="label-{{ item._elementId }}">
|
|
19
|
-
<span class="glyphicon glyphicon-question-sign" aria-hidden="true"></span>
|
|
20
|
-
</button>
|
|
21
|
-
<button ng-switch-when="popover-escaped" class="lf-help-button btn-sm" uib-popover="{{item.codingInstructions}}"
|
|
22
|
-
popover-trigger="focus" popover-placement="right" popover-title="Instruction"
|
|
23
|
-
type="button" id="helpButton-{{item._elementId}}" aria-label="Help"
|
|
24
|
-
aria-describedby="label-{{ item._elementId }}">
|
|
25
|
-
<span class="glyphicon glyphicon-question-sign" aria-hidden="true"></span>
|
|
26
|
-
</button>
|
|
27
|
-
</span>
|
|
28
|
-
<button ng-if="item.copyrightNotice" id="copyright-{{item._elementId}}" type="button"
|
|
29
|
-
class="lf-copyright-button btn-sm" uib-popover="{{item.copyrightNotice}}"
|
|
30
|
-
popover-trigger="focus" popover-placement="right" popover-title="Copyright"
|
|
31
|
-
aria-label="Copyright notice" aria-describedby="label-{{ item._elementId }}">
|
|
32
|
-
<span class="glyphicon glyphicon-copyright-mark" aria-hidden="true"></span>
|
|
33
|
-
</button>
|
|
34
|
-
<button ng-if="isItemOptionPanelButtonShown(item)" type="button" class="lf-control-button btn-sm"
|
|
35
|
-
ng-click="hideShowItemOptionPanel(item)" aria-label="Item controls"
|
|
36
|
-
aria-describedby="label-{{item._elementId}}">
|
|
37
|
-
<span class="glyphicon glyphicon-cog" aria-hidden="true"></span>
|
|
38
|
-
</button>
|
|
39
|
-
<!-- TBD -->
|
|
40
|
-
<lf-item-options></lf-item-options>
|
|
41
|
-
</div>
|
|
42
|
-
<table class="lf-form-matrix-table lf-form-table">
|
|
43
|
-
<colgroup>
|
|
44
|
-
<col class="lf-question">
|
|
45
|
-
<col ng-repeat="answer in item.items[0].answers">
|
|
46
|
-
<col class="other-answer" ng-if="item.items[0].dataType ==='CWE'">
|
|
47
|
-
</colgroup>
|
|
48
|
-
<thead>
|
|
49
|
-
<tr class="lf-">
|
|
50
|
-
<th class="lf-question lf-form-table-header"></th>
|
|
51
|
-
<th ng-repeat="answer in item.items[0].answers"
|
|
52
|
-
class="lf-form-matrix-cell lf-form-table-header"
|
|
53
|
-
id="answer-{{$index}}">{{answer.text}}</th>
|
|
54
|
-
<th class="lf-form-matrix-cell-other lf-form-table-header" ng-if="item.items[0].dataType ==='CWE'"
|
|
55
|
-
id="otherAnswer">Other</th>
|
|
56
|
-
</tr>
|
|
57
|
-
</thead>
|
|
58
|
-
<tbody>
|
|
59
|
-
<tr ng-repeat="subItem in item.items" role="radiogroup"
|
|
60
|
-
ng-init="firstItem = item.items[0] ; item = subItem"
|
|
61
|
-
aria-labeledby="label-{{subItem._elementId }}"
|
|
62
|
-
aria-describedby="help-{{ subItem._parentItem._elementId }} help-{{ subItem._elementId }}">
|
|
63
|
-
<td class="lf-question">
|
|
64
|
-
<div class="lf-de-label">
|
|
65
|
-
<span class="lf-question"><label id="label-{{ subItem._elementId }}"
|
|
66
|
-
for="{{subItem._elementId}}"><ng-include src="'itemPrefixAndText.html'"></label></span>
|
|
67
|
-
<span class="lf-item-code" ng-show="lfData.templateOptions.showQuestionCode">
|
|
68
|
-
<a ng-if="subItem._linkToDef" href="{{ subItem._linkToDef }}" target="_blank" rel="noopener noreferrer">[{{ subItem.questionCode }}]</a>
|
|
69
|
-
<span ng-if="!subItem._linkToDef">[{{ subItem.questionCode }}]</span>
|
|
70
|
-
</span>
|
|
71
|
-
<span ng-switch on="getCodingInstructionsDisplayType(subItem)" ng-if="subItem.codingInstructions">
|
|
72
|
-
<span ng-switch-when="inline-html" id="help-{{subItem._elementId}}"
|
|
73
|
-
class="lf-prompt" ng-bind-html="getTrustedCodingInstructions(subItem)"></span>
|
|
74
|
-
<span ng-switch-when="inline-escaped" id="help-{{subItem._elementId}}"
|
|
75
|
-
class="lf-prompt" ng-bind="subItem.codingInstructions"></span>
|
|
76
|
-
<button ng-switch-when="popover-html" class="lf-help-button btn-sm" uib-popover-template="'popover.html'"
|
|
77
|
-
popover-trigger="focus" popover-placement="right" popover-title="Instruction"
|
|
78
|
-
type="button" id="helpButton-{{subItem._elementId}}"
|
|
79
|
-
aria-label="Help" aria-describedby="label-{{ subItem._elementId }}">
|
|
80
|
-
<span class="glyphicon glyphicon-question-sign" aria-hidden="true"></span>
|
|
81
|
-
</button>
|
|
82
|
-
<button ng-switch-when="popover-escaped" class="lf-help-button btn-sm" uib-popover="{{subItem.codingInstructions}}"
|
|
83
|
-
popover-trigger="focus" popover-placement="right" popover-title="Instruction"
|
|
84
|
-
type="button" id="helpButton-{{subItem._elementId}}" aria-label="Help"
|
|
85
|
-
aria-describedby="label-{{ subItem._elementId }}">
|
|
86
|
-
<span class="glyphicon glyphicon-question-sign" aria-hidden="true"></span>
|
|
87
|
-
</button>
|
|
88
|
-
</span>
|
|
89
|
-
<button ng-if="subItem.copyrightNotice" id="copyright-{{subItem._elementId}}" type="button"
|
|
90
|
-
class="lf-copyright-button btn-sm" uib-popover="{{subItem.copyrightNotice}}"
|
|
91
|
-
popover-trigger="focus" popover-placement="right" popover-title="Copyright"
|
|
92
|
-
aria-label="Copyright notice"
|
|
93
|
-
aria-describedby="label-{{ subItem._elementId }}">
|
|
94
|
-
<span class="glyphicon glyphicon-copyright-mark" aria-hidden="true"></span>
|
|
95
|
-
</button>
|
|
96
|
-
</div>
|
|
97
|
-
</td>
|
|
98
|
-
<td ng-repeat="answer in firstItem.answers"
|
|
99
|
-
class="lf-form-matrix-cell">
|
|
100
|
-
<span class="lf-form-matrix-answer">
|
|
101
|
-
<label ng-if="subItem._multipleAnswers">
|
|
102
|
-
<input type="checkbox" id="{{subItem._elementId + answer.code}}"
|
|
103
|
-
ng-click="updateCheckboxList(subItem, answer)" aria-labeledby="answer-{{$index}}">
|
|
104
|
-
</label>
|
|
105
|
-
<label ng-if="!subItem._multipleAnswers">
|
|
106
|
-
<input type="radio" id="{{subItem._elementId + answer.code}}"
|
|
107
|
-
aria-labeledby="answer-{{$index}}" ng-model="subItem.value" ng-value="answer"
|
|
108
|
-
name="{{subItem._elementId}}" ng-change="updateRadioList(subItem)">
|
|
109
|
-
</label>
|
|
110
|
-
</span>
|
|
111
|
-
</td>
|
|
112
|
-
<td class="lf-form-matrix-cell-other" ng-if="subItem.dataType ==='CWE'"
|
|
113
|
-
aria-labeledby=otherAnswer>
|
|
114
|
-
<!--for multiple answers-->
|
|
115
|
-
<span ng-if="subItem._multipleAnswers" class="lf-form-matrix-answer">
|
|
116
|
-
<label>
|
|
117
|
-
<input type="checkbox" ng-model="subItem._otherValueChecked"
|
|
118
|
-
id="{{subItem._elementId + '_other'}}"
|
|
119
|
-
ng-change="updateCheckboxListForOther(subItem, subitem._answerOther)">
|
|
120
|
-
</label>
|
|
121
|
-
<label>
|
|
122
|
-
<input type="text" ng-model="subitem._answerOther"
|
|
123
|
-
id="{{subItem._elementId + '_otherValue'}}"
|
|
124
|
-
ng-change="updateCheckboxListForOther(subItem, subitem._answerOther)">
|
|
125
|
-
</label>
|
|
126
|
-
</span>
|
|
127
|
-
<!--for single answer-->
|
|
128
|
-
<span ng-if="!subItem._multipleAnswers" class="lf-form-matrix-answer">
|
|
129
|
-
<label>
|
|
130
|
-
<input type="radio" id="{{subItem._elementId + '_other'}}" ng-model="subItem._otherValueChecked"
|
|
131
|
-
ng-value="true" name="{{subItem._elementId}}"
|
|
132
|
-
ng-change="updateRadioListForOther(subItem, subitem._answerOther)">
|
|
133
|
-
</label>
|
|
134
|
-
<label>
|
|
135
|
-
<input type="text" id="{{subItem._elementId + '_otherValue'}}" ng-model="subitem._answerOther"
|
|
136
|
-
ng-change="updateRadioListForOther(subItem, subitem._answerOther)">
|
|
137
|
-
</label>
|
|
138
|
-
</span>
|
|
139
|
-
</td>
|
|
140
|
-
</tr>
|
|
141
|
-
</tbody>
|
|
142
|
-
</table>
|
|
143
|
-
<lf-repeating-button></lf-repeating-button>
|
|
144
|
-
</div>
|
|
145
|
-
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<div class="lf-popover" ng-bind-html="getTrustedCodingInstructions(item)"></div>
|