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.
Files changed (116) hide show
  1. package/CHANGELOG.md +261 -0
  2. package/README.md +97 -14
  3. package/changed-features.md +99 -0
  4. package/dist/lforms/LICENSE.md +70 -0
  5. package/dist/lforms/README.md +100 -0
  6. package/dist/lforms/fhir/R4/lformsFHIR.min.js +2 -0
  7. package/dist/lforms/fhir/R4/lformsFHIR.min.js.map +1 -0
  8. package/dist/lforms/fhir/STU3/lformsFHIR.min.js +2 -0
  9. package/dist/lforms/fhir/STU3/lformsFHIR.min.js.map +1 -0
  10. package/dist/lforms/fhir/lformsFHIRAll.min.js +2 -0
  11. package/dist/lforms/fhir/lformsFHIRAll.min.js.map +1 -0
  12. package/dist/lforms/webcomponent/assets/lib/zone.min.js +134 -0
  13. package/dist/lforms/webcomponent/down_arrow_gray_10_10.png +0 -0
  14. package/dist/lforms/webcomponent/favicon.ico +0 -0
  15. package/dist/lforms/webcomponent/index.html +9 -0
  16. package/dist/lforms/webcomponent/lhc-forms.js +2471 -0
  17. package/dist/lforms/webcomponent/magnifying_glass.png +0 -0
  18. package/dist/lforms/webcomponent/main.js +2464 -0
  19. package/dist/lforms/webcomponent/main.js.map +1 -0
  20. package/dist/lforms/webcomponent/polyfills.js +2 -0
  21. package/dist/lforms/webcomponent/polyfills.js.map +1 -0
  22. package/dist/lforms/webcomponent/runtime.js +2 -0
  23. package/dist/lforms/webcomponent/runtime.js.map +1 -0
  24. package/dist/lforms/webcomponent/scripts.js +3 -0
  25. package/dist/lforms/webcomponent/scripts.js.map +1 -0
  26. package/dist/lforms/webcomponent/styles.css +3 -0
  27. package/dist/lforms/webcomponent/styles.css.map +1 -0
  28. package/form_definition.md +382 -0
  29. package/lforms-33.2.0.tgz +0 -0
  30. package/package.json +94 -88
  31. package/r4-support.md +147 -0
  32. package/sdc-support.md +127 -0
  33. package/app/.npmignore +0 -3
  34. package/app/images/blank.gif +0 -0
  35. package/app/images/signal-stop.png +0 -0
  36. package/app/index.html +0 -10
  37. package/app/lforms.js +0 -56
  38. package/app/lforms.tpl.js +0 -964
  39. package/app/scripts/angular-packages.js +0 -11
  40. package/app/scripts/bootstrap-decorators.js +0 -31
  41. package/app/scripts/bower-index.js +0 -14
  42. package/app/scripts/fhir/R4/export.js +0 -33
  43. package/app/scripts/fhir/R4/fhirRequire.js +0 -36
  44. package/app/scripts/fhir/R4/lformsFHIR.js +0 -27260
  45. package/app/scripts/fhir/R4/sdc-export.js +0 -455
  46. package/app/scripts/fhir/R4/sdc-import.js +0 -483
  47. package/app/scripts/fhir/STU3/export.js +0 -27
  48. package/app/scripts/fhir/STU3/fhirRequire.js +0 -36
  49. package/app/scripts/fhir/STU3/lformsFHIR.js +0 -27291
  50. package/app/scripts/fhir/STU3/sdc-export.js +0 -493
  51. package/app/scripts/fhir/STU3/sdc-import.js +0 -494
  52. package/app/scripts/fhir/diagnostic-report.js +0 -707
  53. package/app/scripts/fhir/export-common.js +0 -209
  54. package/app/scripts/fhir/expression-processor.js +0 -670
  55. package/app/scripts/fhir/extensions/rendering-style.js +0 -23
  56. package/app/scripts/fhir/fhir-common.js +0 -3
  57. package/app/scripts/fhir/obs-prepop.mjs +0 -97
  58. package/app/scripts/fhir/runtime-common.js +0 -33
  59. package/app/scripts/fhir/sdc-common.js +0 -334
  60. package/app/scripts/fhir/sdc-export-common.js +0 -1046
  61. package/app/scripts/fhir/sdc-import-common.js +0 -1343
  62. package/app/scripts/fhir/versions.js +0 -8
  63. package/app/scripts/index.js +0 -20
  64. package/app/scripts/lforms-config.js +0 -12
  65. package/app/scripts/lforms-constants.js +0 -10
  66. package/app/scripts/lforms-controllers.js +0 -1196
  67. package/app/scripts/lforms-directives.js +0 -424
  68. package/app/scripts/lforms-index.js +0 -20
  69. package/app/scripts/lib/cross_browser.js +0 -21
  70. package/app/scripts/lib/lforms-data.js +0 -3591
  71. package/app/scripts/lib/lforms-hl7.js +0 -525
  72. package/app/scripts/lib/lforms-util.js +0 -1122
  73. package/app/scripts/lib/lforms-validate.js +0 -277
  74. package/app/scripts/lib/polyfill.js +0 -81
  75. package/app/scripts/themeList.js +0 -17
  76. package/app/styles/lforms.css +0 -1219
  77. package/app/styles/redmond-theme/README.txt +0 -2
  78. package/app/styles/redmond-theme/images/ui-bg_glass_75_d0e5f5_1x400.png +0 -0
  79. package/app/styles/redmond-theme/images/ui-bg_glass_85_dfeffc_1x400.png +0 -0
  80. package/app/styles/redmond-theme/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  81. package/app/styles/redmond-theme/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png +0 -0
  82. package/app/styles/redmond-theme/images/ui-bg_inset-hard_100_f5f8f9_1x100.png +0 -0
  83. package/app/styles/redmond-theme/images/ui-bg_inset-hard_100_fcfdfd_1x100.png +0 -0
  84. package/app/styles/redmond-theme/images/ui-icons_217bc0_256x240.png +0 -0
  85. package/app/styles/redmond-theme/images/ui-icons_2e83ff_256x240.png +0 -0
  86. package/app/styles/redmond-theme/images/ui-icons_469bdd_256x240.png +0 -0
  87. package/app/styles/redmond-theme/images/ui-icons_6da8d5_256x240.png +0 -0
  88. package/app/styles/redmond-theme/images/ui-icons_cd0a0a_256x240.png +0 -0
  89. package/app/styles/redmond-theme/images/ui-icons_d8e7f3_256x240.png +0 -0
  90. package/app/styles/redmond-theme/images/ui-icons_f9bd01_256x240.png +0 -0
  91. package/app/styles/redmond-theme/jquery-ui.css +0 -1311
  92. package/app/styles/redmond-theme/jquery-ui.min.css +0 -7
  93. package/app/styles/redmond-theme/theme.css +0 -443
  94. package/app/styles/themes.css +0 -1541
  95. package/app/styles/themes.css.map +0 -9
  96. package/app/styles/themes.scss +0 -411
  97. package/app/version.json +0 -1
  98. package/app/views/partials/attachment.html +0 -38
  99. package/app/views/partials/field-answers.html +0 -67
  100. package/app/views/partials/field-units.html +0 -24
  101. package/app/views/partials/form-controls.html +0 -19
  102. package/app/views/partials/form-header.html +0 -35
  103. package/app/views/partials/form-options.html +0 -50
  104. package/app/views/partials/form-title.html +0 -20
  105. package/app/views/partials/form-view.html +0 -13
  106. package/app/views/partials/item-options.html +0 -48
  107. package/app/views/partials/item.html +0 -126
  108. package/app/views/partials/itemPrefixAndText.html +0 -4
  109. package/app/views/partials/layout-horizontal.html +0 -156
  110. package/app/views/partials/layout-matrix.html +0 -145
  111. package/app/views/partials/popover-content.html +0 -1
  112. package/app/views/partials/repeating-button.html +0 -16
  113. package/app/views/partials/table-item.html +0 -30
  114. package/app/views/partials/template-table.html +0 -69
  115. package/app/views/partials/uib-popover-templates/uib-popover-template.html +0 -13
  116. 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,4 +0,0 @@
1
- <span ng-if="item.prefix" class="prefix"
2
- style="{{item._obj_prefixCSS}}">{{item.prefix}}</span><span
3
- class="question" style={{item._obj_textCSS}}>{{item.question}}<span
4
- ng-if="item._answerRequired" class="required" title="Required">&nbsp;*</span></span>
@@ -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>