Dropdown foreign implementation

This commit is contained in:
Sebastian Seedorf
2017-06-09 14:56:35 +02:00
parent 1db9e839d3
commit cc49a89ea4
8 changed files with 410 additions and 271 deletions

603
.idea/workspace.xml generated
View File

@@ -1,9 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ChangeListManager">
<list default="true" id="77c12afa-55f1-462c-96eb-1733ba14cab9" name="Default" comment="">
<list default="true" id="77c12afa-55f1-462c-96eb-1733ba14cab9" name="Default" comment="Dropdown foreign implementation">
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/app/modules/dyn-form/services/value.service.ts" afterPath="$PROJECT_DIR$/src/app/modules/dyn-form/services/value.service.ts" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/app/app.component.html" afterPath="$PROJECT_DIR$/src/app/app.component.html" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/app/app.component.ts" afterPath="$PROJECT_DIR$/src/app/app.component.ts" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/app/modules/dyn-form/dyn-question.component.ts" afterPath="$PROJECT_DIR$/src/app/modules/dyn-form/dyn-question.component.ts" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/app/modules/dyn-form/inputs/checkbox-input.component.ts" afterPath="$PROJECT_DIR$/src/app/modules/dyn-form/inputs/checkbox-input.component.ts" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/app/modules/dyn-form/inputs/dropdown-input.component.ts" afterPath="$PROJECT_DIR$/src/app/modules/dyn-form/inputs/dropdown-input.component.ts" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/app/modules/dyn-form/inputs/textarea-input.component.ts" afterPath="$PROJECT_DIR$/src/app/modules/dyn-form/inputs/textarea-input.component.ts" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/app/modules/dyn-form/inputs/textbox-input.component.ts" afterPath="$PROJECT_DIR$/src/app/modules/dyn-form/inputs/textbox-input.component.ts" />
</list>
<ignored path="$PROJECT_DIR$/.tmp/" />
<ignored path="$PROJECT_DIR$/temp/" />
@@ -21,111 +27,124 @@
<file leaf-file-name="app.component.ts" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/app/app.component.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="493">
<caret line="32" column="44" lean-forward="false" selection-start-line="32" selection-start-column="44" selection-end-line="32" selection-end-column="44" />
<state relative-caret-position="119">
<caret line="10" column="25" lean-forward="false" selection-start-line="10" selection-start-column="25" selection-end-line="10" selection-end-column="25" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="dyn-form.module.ts" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/app/modules/dyn-form/dyn-form.module.ts">
<file leaf-file-name="textarea-input.component.ts" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/app/modules/dyn-form/inputs/textarea-input.component.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="221">
<caret line="27" column="13" lean-forward="false" selection-start-line="27" selection-start-column="13" selection-end-line="27" selection-end-column="13" />
<state relative-caret-position="763">
<caret line="49" column="40" lean-forward="false" selection-start-line="49" selection-start-column="40" selection-end-line="49" selection-end-column="40" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="app.component.js" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/app/app.component.js">
<file leaf-file-name="textbox-input.component.ts" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/src/app/modules/dyn-form/inputs/textbox-input.component.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="408">
<caret line="24" column="32" lean-forward="false" selection-start-line="24" selection-start-column="32" selection-end-line="24" selection-end-column="32" />
<state relative-caret-position="627">
<caret line="58" column="36" lean-forward="true" selection-start-line="58" selection-start-column="36" selection-end-line="58" selection-end-column="36" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="form.service.ts" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/app/modules/dyn-form/services/form.service.ts">
<file leaf-file-name="checkbox-input.component.ts" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/app/modules/dyn-form/inputs/checkbox-input.component.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="51">
<caret line="8" column="26" lean-forward="false" selection-start-line="8" selection-start-column="26" selection-end-line="8" selection-end-column="26" />
<state relative-caret-position="17">
<caret line="11" column="29" lean-forward="false" selection-start-line="11" selection-start-column="29" selection-end-line="11" selection-end-column="29" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="counter-input.component.ts" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/app/modules/dyn-form/inputs/counter-input.component.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="202">
<caret line="43" column="6" lean-forward="true" selection-start-line="43" selection-start-column="6" selection-end-line="43" selection-end-column="6" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="custom-input.component.ts" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/app/modules/dyn-form/inputs/custom-input.component.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="136">
<caret line="36" column="25" lean-forward="false" selection-start-line="36" selection-start-column="25" selection-end-line="36" selection-end-column="25" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="hidden-input.component.ts" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/app/modules/dyn-form/inputs/hidden-input.component.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="270">
<caret line="26" column="3" lean-forward="true" selection-start-line="26" selection-start-column="3" selection-end-line="26" selection-end-column="3" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="tag-input.component.ts" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/app/modules/dyn-form/inputs/tag-input.component.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="253">
<caret line="69" column="33" lean-forward="false" selection-start-line="69" selection-start-column="33" selection-end-line="69" selection-end-column="33" />
<folding>
<element signature="e#0#43#0" expanded="true" />
<marker date="1496824450537" expanded="true" signature="404:466" ph="..." />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="http.service.ts" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/app/services/http.service.ts">
<file leaf-file-name="dropdown-input.component.ts" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/app/modules/dyn-form/inputs/dropdown-input.component.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="272">
<caret line="18" column="1" lean-forward="false" selection-start-line="18" selection-start-column="1" selection-end-line="18" selection-end-column="1" />
<state relative-caret-position="-750">
<caret line="43" column="37" lean-forward="false" selection-start-line="43" selection-start-column="37" selection-end-line="43" selection-end-column="37" />
<folding>
<element signature="e#0#51#0" expanded="true" />
<element signature="e#0#85#0" expanded="true" />
<marker date="1497012606025" expanded="true" signature="513:626" ph="..." />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="value.service.ts" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/src/app/modules/dyn-form/services/value.service.ts">
<file leaf-file-name="dropdown-input.component.js" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/app/modules/dyn-form/inputs/dropdown-input.component.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="306">
<caret line="48" column="15" lean-forward="true" selection-start-line="48" selection-start-column="15" selection-end-line="48" selection-end-column="15" />
<state relative-caret-position="185">
<caret line="79" column="38" lean-forward="false" selection-start-line="79" selection-start-column="38" selection-end-line="79" selection-end-column="38" />
<folding>
<element signature="e#0#43#0" expanded="true" />
<marker date="1497012610279" expanded="true" signature="1304:4237" ph="{...}" />
<marker date="1497012610279" expanded="true" signature="1768:1778" ph="{...}" />
<marker date="1497012610279" expanded="true" signature="3843:4008" ph="{...}" />
<marker date="1497012610279" expanded="true" signature="3859:4001" ph="{...}" />
<marker date="1497012610279" expanded="true" signature="3875:3999" ph="{&quot;message&quot;: &quot;This value is invalid. Please select another value!&quot;...}" />
<marker date="1497012610279" expanded="true" signature="4098:4199" ph="{...}" />
<marker date="1497012610279" expanded="true" signature="4298:4360" ph="[...]" />
<marker date="1497012610279" expanded="true" signature="4428:4490" ph="[...]" />
<marker date="1497012610279" expanded="true" signature="4558:4618" ph="[...]" />
<marker date="1497012610279" expanded="true" signature="4683:4744" ph="[...]" />
<marker date="1497012610279" expanded="true" signature="4863:5777" ph="[...]" />
<marker date="1497012610279" expanded="true" signature="4886:5705" ph="{&quot;selector&quot;: 'dropdown-input'...}" />
<marker date="1497012610279" expanded="true" signature="5235:5699" ph="[...]" />
<marker date="1497012610279" expanded="true" signature="5249:5443" ph="{&quot;provide&quot;: forms_1.NG_VALUE_ACCESSOR...}" />
<marker date="1497012610279" expanded="true" signature="5457:5647" ph="{&quot;provide&quot;: forms_1.NG_VALIDATORS...}" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="http-cached.service.ts" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/app/services/http-cached.service.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="323">
<caret line="22" column="41" lean-forward="false" selection-start-line="22" selection-start-column="41" selection-end-line="22" selection-end-column="41" />
<folding>
<element signature="e#0#51#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="http-base.service.ts" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/app/services/http-base.service.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1496">
<caret line="94" column="38" lean-forward="false" selection-start-line="94" selection-start-column="38" selection-end-line="94" selection-end-column="38" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="response.interface.ts" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/app/services/response.interface.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="app.component.html" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/app/app.component.html">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="34">
<caret line="2" column="17" lean-forward="false" selection-start-line="2" selection-start-column="17" selection-end-line="2" selection-end-column="17" />
<folding />
</state>
</provider>
</entry>
</file>
</leaf>
</component>
<component name="FileTemplateManagerImpl">
@@ -147,24 +166,25 @@
<option value="$PROJECT_DIR$/src/app/app.module.ts" />
<option value="$PROJECT_DIR$/src/app/modules/dyn-form/inputs/counter-input.component.ts" />
<option value="$PROJECT_DIR$/src/app/modules/dyn-form/types/keys.pipe.ts" />
<option value="$PROJECT_DIR$/src/app/modules/dyn-form/inputs/textarea-input.component.ts" />
<option value="$PROJECT_DIR$/src/app/modules/dyn-form/inputs/textbox-input.component.ts" />
<option value="$PROJECT_DIR$/src/app/modules/dyn-form/types/question.interface.ts" />
<option value="$PROJECT_DIR$/src/app/modules/dyn-form/dyn-form.module.ts" />
<option value="$PROJECT_DIR$/src/app/modules/dyn-form/dyn-question.component.ts" />
<option value="$PROJECT_DIR$/src/app/modules/dyn-form/inputs/dropdown-input.component.ts" />
<option value="$PROJECT_DIR$/src/app/modules/dyn-form/inputs/tag-input.component.ts" />
<option value="$PROJECT_DIR$/src/app/modules/dyn-form/inputs/custom-input.component.ts" />
<option value="$PROJECT_DIR$/src/app/modules/dyn-form/inputs/checkbox-input.component.ts" />
<option value="$PROJECT_DIR$/src/app/modules/dyn-form/dyn-form.component.ts" />
<option value="$PROJECT_DIR$/src/app/services/http-cached.service.ts" />
<option value="$PROJECT_DIR$/src/app/modules/dyn-form/services/question.service.ts" />
<option value="$PROJECT_DIR$/src/app/modules/dyn-form/types/form.interface.ts" />
<option value="$PROJECT_DIR$/src/app/services/http.service.ts" />
<option value="$PROJECT_DIR$/src/app/app.component.html" />
<option value="$PROJECT_DIR$/src/app/modules/dyn-form/services/form.service.ts" />
<option value="$PROJECT_DIR$/src/app/app.component.ts" />
<option value="$PROJECT_DIR$/src/app/modules/dyn-form/services/value.service.ts" />
<option value="$PROJECT_DIR$/src/app/modules/dyn-form/dyn-question.component.ts" />
<option value="$PROJECT_DIR$/src/app/app.component.html" />
<option value="$PROJECT_DIR$/src/index.html" />
<option value="$PROJECT_DIR$/src/app/app.component.ts" />
<option value="$PROJECT_DIR$/src/app/modules/dyn-form/inputs/textbox-input.component.ts" />
<option value="$PROJECT_DIR$/src/app/modules/dyn-form/inputs/checkbox-input.component.ts" />
<option value="$PROJECT_DIR$/src/app/modules/dyn-form/inputs/dropdown-input.component.ts" />
<option value="$PROJECT_DIR$/src/app/modules/dyn-form/inputs/textarea-input.component.ts" />
</list>
</option>
</component>
@@ -214,8 +234,8 @@
<foldersAlwaysOnTop value="true" />
</navigator>
<panes>
<pane id="Scope" />
<pane id="Scratches" />
<pane id="Scope" />
<pane id="ProjectPane">
<subPane>
<PATH>
@@ -368,6 +388,70 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="AngularDynFormModule" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="AngularDynFormModule" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="src" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="app" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="modules" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="dyn-form" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="inputs" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="AngularDynFormModule" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="AngularDynFormModule" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="src" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="app" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="modules" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="dyn-form" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="inputs" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="dropdown-input.component.ts" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.NestingTreeNode" />
</PATH_ELEMENT>
</PATH>
</subPane>
</pane>
</panes>
@@ -497,7 +581,8 @@
<workItem from="1496408793177" duration="9778000" />
<workItem from="1496731076030" duration="19887000" />
<workItem from="1496819656295" duration="18241000" />
<workItem from="1496903500356" duration="16941000" />
<workItem from="1496903500356" duration="17940000" />
<workItem from="1496989834889" duration="12244000" />
</task>
<task id="LOCAL-00001" summary="Merging">
<created>1496129612668</created>
@@ -562,11 +647,18 @@
<option name="project" value="LOCAL" />
<updated>1496928290088</updated>
</task>
<option name="localTasksCounter" value="10" />
<task id="LOCAL-00010" summary="Finished value service">
<created>1496928461665</created>
<option name="number" value="00010" />
<option name="presentableId" value="LOCAL-00010" />
<option name="project" value="LOCAL" />
<updated>1496928461665</updated>
</task>
<option name="localTasksCounter" value="11" />
<servers />
</component>
<component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="127222000" />
<option name="totallyTimeSpent" value="140465000" />
</component>
<component name="TodoView">
<todo-panel id="selected-file">
@@ -579,17 +671,17 @@
</component>
<component name="ToolWindowManager">
<frame x="-8" y="-8" width="1456" height="876" extended-state="6" />
<editor active="true" />
<layout>
<window_info id="TypeScript" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25403225" sideWeight="0.49435824" order="11" side_tool="false" content_ui="tabs" />
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.25599435" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
<window_info id="TypeScript" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25403225" sideWeight="0.49083215" order="11" side_tool="false" content_ui="tabs" />
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.25599435" sideWeight="0.71543086" order="0" side_tool="false" content_ui="combo" />
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3293011" sideWeight="0.49717912" order="6" side_tool="false" content_ui="tabs" />
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3293011" sideWeight="0.5070522" order="7" side_tool="true" content_ui="tabs" />
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25403225" sideWeight="0.50916785" order="7" side_tool="true" content_ui="tabs" />
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3293011" sideWeight="0.49153736" order="8" side_tool="false" content_ui="tabs" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3293011" sideWeight="0.49717912" order="2" side_tool="false" content_ui="tabs" />
<window_info id="npm" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.3293011" sideWeight="0.49717912" order="2" side_tool="false" content_ui="tabs" />
<window_info id="npm" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.25599435" sideWeight="0.28456914" order="2" side_tool="true" content_ui="tabs" />
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Terminal" active="true" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.3293011" sideWeight="0.49294782" order="9" side_tool="false" content_ui="tabs" />
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3293011" sideWeight="0.49294782" order="9" side_tool="false" content_ui="tabs" />
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="true" content_ui="tabs" />
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
@@ -598,6 +690,7 @@
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
</layout>
</component>
@@ -664,7 +757,8 @@
<MESSAGE value="Added checkbox input" />
<MESSAGE value="Remote question and value service" />
<MESSAGE value="Finished value service" />
<option name="LAST_COMMIT_MESSAGE" value="Finished value service" />
<MESSAGE value="Dropdown foreign implementation" />
<option name="LAST_COMMIT_MESSAGE" value="Dropdown foreign implementation" />
</component>
<component name="XDebuggerManager">
<breakpoint-manager>
@@ -679,21 +773,13 @@
<watches-manager />
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/src/app/modules/dyn-form/dyn-form.module.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="85">
<caret line="14" column="17" lean-forward="false" selection-start-line="14" selection-start-column="17" selection-end-line="14" selection-end-column="17" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/app/modules/dyn-form/inputs/dropdown-input.component.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="816">
<caret line="51" column="38" lean-forward="false" selection-start-line="51" selection-start-column="38" selection-end-line="51" selection-end-column="38" />
<folding>
<element signature="e#0#85#0" expanded="true" />
<marker date="1496823666184" expanded="true" signature="399:512" ph="..." />
<marker date="1497012606025" expanded="true" signature="513:626" ph="..." />
</folding>
</state>
</provider>
@@ -710,7 +796,7 @@
<state relative-caret-position="799">
<caret line="47" column="7" lean-forward="true" selection-start-line="47" selection-start-column="7" selection-end-line="47" selection-end-column="7" />
<folding>
<element signature="e#0#43#0" expanded="true" />
<element signature="e#0#43#0" expanded="false" />
</folding>
</state>
</provider>
@@ -756,15 +842,14 @@
<state relative-caret-position="357">
<caret line="21" column="27" lean-forward="true" selection-start-line="21" selection-start-column="27" selection-end-line="21" selection-end-column="27" />
<folding>
<element signature="e#0#69#0" expanded="false" />
<marker date="1496823207959" expanded="true" signature="330:3061" ph="..." />
<marker date="1496823207959" expanded="true" signature="792:1097" ph="..." />
<marker date="1496823207959" expanded="true" signature="1147:1405" ph="..." />
<marker date="1496823207959" expanded="true" signature="1459:1789" ph="..." />
<marker date="1496823207959" expanded="true" signature="1843:2109" ph="..." />
<marker date="1496823207959" expanded="true" signature="2161:2592" ph="..." />
<marker date="1496823207959" expanded="true" signature="2646:2912" ph="..." />
<marker date="1496823207959" expanded="true" signature="2967:3048" ph="..." />
<marker date="1496999757978" expanded="true" signature="330:3101" ph="..." />
<marker date="1496999757978" expanded="true" signature="792:1097" ph="..." />
<marker date="1496999757978" expanded="true" signature="1147:1405" ph="..." />
<marker date="1496999757978" expanded="true" signature="1459:1829" ph="..." />
<marker date="1496999757978" expanded="true" signature="1883:2149" ph="..." />
<marker date="1496999757978" expanded="true" signature="2201:2632" ph="..." />
<marker date="1496999757978" expanded="true" signature="2686:2952" ph="..." />
<marker date="1496999757978" expanded="true" signature="3007:3088" ph="..." />
</folding>
</state>
</provider>
@@ -791,7 +876,7 @@
<caret line="51" column="38" lean-forward="false" selection-start-line="51" selection-start-column="38" selection-end-line="51" selection-end-column="38" />
<folding>
<element signature="e#0#85#0" expanded="true" />
<marker date="1496823666184" expanded="true" signature="399:512" ph="..." />
<marker date="1497012606025" expanded="true" signature="513:626" ph="..." />
</folding>
</state>
</provider>
@@ -849,13 +934,6 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/app/modules/dyn-form/inputs/hidden-input.component.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="168">
<caret line="17" column="6" lean-forward="false" selection-start-line="17" selection-start-column="6" selection-end-line="17" selection-end-column="6" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/app/modules/dyn-form/types/keys.pipe.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="17">
@@ -863,13 +941,6 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/app/app.module.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/styles.css">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
@@ -913,80 +984,6 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/index.html">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="255">
<caret line="15" column="46" lean-forward="false" selection-start-line="15" selection-start-column="46" selection-end-line="15" selection-end-column="46" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/app/modules/dyn-form/inputs/textarea-input.component.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="612">
<caret line="38" column="18" lean-forward="false" selection-start-line="38" selection-start-column="18" selection-end-line="38" selection-end-column="18" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/app/modules/dyn-form/inputs/textbox-input.component.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="17">
<caret line="14" column="5" lean-forward="false" selection-start-line="14" selection-start-column="5" selection-end-line="14" selection-end-column="5" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/app/modules/dyn-form/inputs/counter-input.component.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="867">
<caret line="51" column="16" lean-forward="false" selection-start-line="51" selection-start-column="10" selection-end-line="51" selection-end-column="16" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/app/modules/dyn-form/inputs/dropdown-input.component.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="423">
<caret line="89" column="0" lean-forward="false" selection-start-line="89" selection-start-column="0" selection-end-line="89" selection-end-column="0" />
<folding>
<element signature="e#0#85#0" expanded="true" />
<marker date="1496823666184" expanded="true" signature="399:512" ph="..." />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/app/modules/dyn-form/inputs/tag-input.component.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="525">
<caret line="77" column="8" lean-forward="false" selection-start-line="77" selection-start-column="8" selection-end-line="77" selection-end-column="8" />
<folding>
<element signature="e#0#59#0" expanded="false" />
<marker date="1496824450537" expanded="true" signature="404:466" ph="..." />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/app/modules/dyn-form/inputs/custom-input.component.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="117">
<caret line="36" column="25" lean-forward="false" selection-start-line="36" selection-start-column="25" selection-end-line="36" selection-end-column="25" />
<folding>
<element signature="e#0#94#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/app/modules/dyn-form/inputs/checkbox-input.component.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="136">
<caret line="10" column="48" lean-forward="false" selection-start-line="10" selection-start-column="48" selection-end-line="10" selection-end-column="48" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/app/modules/dyn-form/types/question.interface.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="36" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/app/modules/dyn-form/dyn-form.component.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="340">
@@ -1001,24 +998,6 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/app/modules/dyn-form/dyn-question.component.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1001">
<caret line="61" column="26" lean-forward="false" selection-start-line="61" selection-start-column="26" selection-end-line="61" selection-end-column="26" />
<folding>
<element signature="e#0#69#0" expanded="false" />
<marker date="1496823207959" expanded="true" signature="330:3061" ph="..." />
<marker date="1496823207959" expanded="true" signature="792:1097" ph="..." />
<marker date="1496823207959" expanded="true" signature="1147:1405" ph="..." />
<marker date="1496823207959" expanded="true" signature="1459:1789" ph="..." />
<marker date="1496823207959" expanded="true" signature="1843:2109" ph="..." />
<marker date="1496823207959" expanded="true" signature="2161:2592" ph="..." />
<marker date="1496823207959" expanded="true" signature="2646:2912" ph="..." />
<marker date="1496823207959" expanded="true" signature="2967:3048" ph="..." />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/app/modules/dyn-form/types/form.interface.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="119">
@@ -1055,27 +1034,11 @@
<state relative-caret-position="51">
<caret line="8" column="26" lean-forward="false" selection-start-line="8" selection-start-column="26" selection-end-line="8" selection-end-column="26" />
<folding>
<element signature="e#0#43#0" expanded="true" />
<element signature="e#0#43#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/app/app.component.html">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="34">
<caret line="2" column="17" lean-forward="false" selection-start-line="2" selection-start-column="17" selection-end-line="2" selection-end-column="17" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/app/app.component.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="493">
<caret line="32" column="44" lean-forward="false" selection-start-line="32" selection-start-column="44" selection-end-line="32" selection-end-column="44" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/app/modules/dyn-form/dyn-form.module.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="221">
@@ -1089,30 +1052,180 @@
<state relative-caret-position="272">
<caret line="18" column="1" lean-forward="false" selection-start-line="18" selection-start-column="1" selection-end-line="18" selection-end-column="1" />
<folding>
<element signature="e#0#51#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/app/services/http-cached.service.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="323">
<caret line="22" column="41" lean-forward="false" selection-start-line="22" selection-start-column="41" selection-end-line="22" selection-end-column="41" />
<folding>
<element signature="e#0#51#0" expanded="true" />
<element signature="e#0#51#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/app/modules/dyn-form/services/value.service.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="306">
<caret line="48" column="15" lean-forward="true" selection-start-line="48" selection-start-column="15" selection-end-line="48" selection-end-column="15" />
<state relative-caret-position="153">
<caret line="63" column="7" lean-forward="false" selection-start-line="63" selection-start-column="7" selection-end-line="63" selection-end-column="7" />
<folding>
<element signature="e#0#43#0" expanded="true" />
<element signature="e#0#43#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/app/services/http-cached.service.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="17">
<caret line="22" column="41" lean-forward="false" selection-start-line="22" selection-start-column="41" selection-end-line="22" selection-end-column="41" />
<folding>
<element signature="e#0#51#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/app/modules/dyn-form/types/question.interface.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="272">
<caret line="16" column="99" lean-forward="false" selection-start-line="16" selection-start-column="14" selection-end-line="16" selection-end-column="99" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/app/app.module.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/app/modules/dyn-form/dyn-question.component.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="205">
<caret line="60" column="22" lean-forward="true" selection-start-line="60" selection-start-column="22" selection-end-line="60" selection-end-column="22" />
<folding>
<marker date="1496999757978" expanded="true" signature="330:3101" ph="..." />
<marker date="1496999757978" expanded="true" signature="792:1097" ph="..." />
<marker date="1496999757978" expanded="true" signature="1147:1405" ph="..." />
<marker date="1496999757978" expanded="true" signature="1459:1829" ph="..." />
<marker date="1496999757978" expanded="true" signature="1883:2149" ph="..." />
<marker date="1496999757978" expanded="true" signature="2201:2632" ph="..." />
<marker date="1496999757978" expanded="true" signature="2686:2952" ph="..." />
<marker date="1496999757978" expanded="true" signature="3007:3088" ph="..." />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/app/app.component.html">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="34">
<caret line="2" column="0" lean-forward="false" selection-start-line="2" selection-start-column="0" selection-end-line="2" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/index.html">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="374">
<caret line="22" column="11" lean-forward="false" selection-start-line="22" selection-start-column="11" selection-end-line="22" selection-end-column="11" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/app/app.component.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="119">
<caret line="10" column="25" lean-forward="false" selection-start-line="10" selection-start-column="25" selection-end-line="10" selection-end-column="25" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/app/modules/dyn-form/inputs/dropdown-input.component.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="185">
<caret line="79" column="38" lean-forward="false" selection-start-line="79" selection-start-column="38" selection-end-line="79" selection-end-column="38" />
<folding>
<marker date="1497012610279" expanded="true" signature="1304:4237" ph="{...}" />
<marker date="1497012610279" expanded="true" signature="1768:1778" ph="{...}" />
<marker date="1497012610279" expanded="true" signature="3843:4008" ph="{...}" />
<marker date="1497012610279" expanded="true" signature="3859:4001" ph="{...}" />
<marker date="1497012610279" expanded="true" signature="3875:3999" ph="{&quot;message&quot;: &quot;This value is invalid. Please select another value!&quot;...}" />
<marker date="1497012610279" expanded="true" signature="4098:4199" ph="{...}" />
<marker date="1497012610279" expanded="true" signature="4298:4360" ph="[...]" />
<marker date="1497012610279" expanded="true" signature="4428:4490" ph="[...]" />
<marker date="1497012610279" expanded="true" signature="4558:4618" ph="[...]" />
<marker date="1497012610279" expanded="true" signature="4683:4744" ph="[...]" />
<marker date="1497012610279" expanded="true" signature="4863:5777" ph="[...]" />
<marker date="1497012610279" expanded="true" signature="4886:5705" ph="{&quot;selector&quot;: 'dropdown-input'...}" />
<marker date="1497012610279" expanded="true" signature="5235:5699" ph="[...]" />
<marker date="1497012610279" expanded="true" signature="5249:5443" ph="{&quot;provide&quot;: forms_1.NG_VALUE_ACCESSOR...}" />
<marker date="1497012610279" expanded="true" signature="5457:5647" ph="{&quot;provide&quot;: forms_1.NG_VALIDATORS...}" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/app/modules/dyn-form/inputs/dropdown-input.component.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-750">
<caret line="43" column="37" lean-forward="false" selection-start-line="43" selection-start-column="37" selection-end-line="43" selection-end-column="37" />
<folding>
<element signature="e#0#85#0" expanded="true" />
<marker date="1497012606025" expanded="true" signature="513:626" ph="..." />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/app/modules/dyn-form/inputs/checkbox-input.component.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="17">
<caret line="11" column="29" lean-forward="false" selection-start-line="11" selection-start-column="29" selection-end-line="11" selection-end-column="29" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/app/modules/dyn-form/inputs/counter-input.component.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="202">
<caret line="43" column="6" lean-forward="true" selection-start-line="43" selection-start-column="6" selection-end-line="43" selection-end-column="6" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/app/modules/dyn-form/inputs/custom-input.component.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="136">
<caret line="36" column="25" lean-forward="false" selection-start-line="36" selection-start-column="25" selection-end-line="36" selection-end-column="25" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/app/modules/dyn-form/inputs/hidden-input.component.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="270">
<caret line="26" column="3" lean-forward="true" selection-start-line="26" selection-start-column="3" selection-end-line="26" selection-end-column="3" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/app/modules/dyn-form/inputs/tag-input.component.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="253">
<caret line="69" column="33" lean-forward="false" selection-start-line="69" selection-start-column="33" selection-end-line="69" selection-end-column="33" />
<folding>
<marker date="1496824450537" expanded="true" signature="404:466" ph="..." />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/app/modules/dyn-form/inputs/textarea-input.component.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="763">
<caret line="49" column="40" lean-forward="false" selection-start-line="49" selection-start-column="40" selection-end-line="49" selection-end-column="40" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/app/modules/dyn-form/inputs/textbox-input.component.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="627">
<caret line="58" column="36" lean-forward="true" selection-start-line="58" selection-start-column="36" selection-end-line="58" selection-end-column="36" />
<folding />
</state>
</provider>
</entry>
</component>
</project>

View File

@@ -1,3 +1,5 @@
<button (click)="loadValues()">Refesh</button>
<hr>
<h1>{{formName}}</h1>
<p>{{formDescription}}</p>
<dyn-form [questions]="formQuestions" (onSubmit)="submit($event)" [value]="formValue" [type]="'insert'"></dyn-form>
<dyn-form [questions]="formQuestions" (onSubmit)="submit($event)" [value]="formValue" [type]="'insert'"></dyn-form>

View File

@@ -1,4 +1,4 @@
import {Component} from '@angular/core';
import {Component, Input, OnChanges, SimpleChanges} from '@angular/core';
import {QuestionInterface} from './modules/dyn-form/types/question.interface';
import {FormService} from './modules/dyn-form/services/form.service';
import {ValueService} from './modules/dyn-form/services/value.service';
@@ -8,14 +8,20 @@ import {ValueService} from './modules/dyn-form/services/value.service';
templateUrl: './app.component.html'
})
export class AppComponent {
export class AppComponent {
public formQuestions: QuestionInterface[] = null;
public formValue: Object = null;
public formName: string = "";
public formDescription ="";
private uri: string = '/crf/fields';
constructor(private questionService: FormService, private valueService: ValueService) {
this.questionService.getForm('/crf/domains', (res, err) => {
this.loadValues();
}
private loadValues() {
console.log(this.uri);
this.questionService.getForm(this.uri, (res, err) => {
if (err)
console.error(err);
else {
@@ -25,7 +31,7 @@ export class AppComponent {
console.log("questions", this.formQuestions);
}
});
this.valueService.getValue('/crf/domains', 3, (res, err) => {
this.valueService.getValue(this.uri, 3, (res, err) => {
if (err)
console.error(err);
else {
@@ -35,7 +41,7 @@ export class AppComponent {
});
}
submit(value: any) {
public submit(value: any) {
console.log('send', value);
}
}

View File

@@ -22,7 +22,7 @@ import {FormGroup, ValidationErrors} from '@angular/forms';
<dropdown-input *ngSwitchCase="'dropdown'"
[formControlName]="question.properties.key" [id]="question.properties.key"
[nullable]="question.constraints.optional" [readonly]="type=='view'"
[items]="question.properties.options"
[items]="question.properties.options" [foreign]="question.properties.foreign"
(ngModelChange)="change()"></dropdown-input>
<textarea-input *ngSwitchCase="'textarea'"
[formControlName]="question.properties.key" [id]="question.properties.key"
@@ -61,7 +61,6 @@ export class DynQuestionComponent {
setTimeout(() => {
this.errorList = [];
let control = this.form.controls[this.question.properties.key];
console.log("XX", this.question.properties.key, control.untouched, control.valid);
if (control.untouched || control.valid)
return null;
let errors: ValidationErrors = control.errors;

View File

@@ -6,9 +6,9 @@ import {CustomInputComponent} from "./custom-input.component";
selector: 'checkbox-input',
template:
`
<label><input *ngIf="!readonly" type="radio" [checked]="value===true" (change)="onChange(true)">Yes</label><br/>
<label><input *ngIf="!readonly" type="radio" [checked]="value===false" (change)="onChange(false)">No</label><br/>
<label><input *ngIf="!readonly && nullable" type="radio" [checked]="value===null" (change)="onChange(null)">N/A</label><br/>
<label *ngIf="!readonly"><input type="radio" [checked]="value===true" (change)="onChange(true)">Yes</label><br/>
<label *ngIf="!readonly"><input type="radio" [checked]="value===false" (change)="onChange(false)">No</label><br/>
<label *ngIf="!readonly && nullable"><input type="radio" [checked]="value===null" (change)="onChange(null)">N/A</label><br/>
<span *ngIf="readonly">{{value ? "Yes" : (value===false ? "No" : "N/A")}}</span>
`,
providers: [

View File

@@ -1,6 +1,8 @@
import {Component, forwardRef, Input, OnChanges, SimpleChanges} from '@angular/core';
import { NG_VALUE_ACCESSOR, NG_VALIDATORS, FormControl, ValidationErrors } from '@angular/forms';
import {CustomInputComponent} from "./custom-input.component";
import {ValueService} from '../services/value.service';
import {consoleTestResultHandler} from 'tslint/lib/test';
@Component({
selector: 'dropdown-input',
@@ -21,34 +23,51 @@ import {CustomInputComponent} from "./custom-input.component";
provide: NG_VALIDATORS,
useExisting: forwardRef(() => DropdownInputComponent),
multi: true,
}]
},
ValueService
]
})
export class DropdownInputComponent extends CustomInputComponent implements OnChanges {
@Input() readonly: boolean = false;
@Input() nullable: boolean = false;
@Input() items: Array<{key: string, value: string}> = [];
@Input() foreign: {uri: string, keys: string, values: string, options?: {key: string, value: string}[]};
private listedItems: Array<{key: string, value: string}> = [];
private foreignItems: Array<{key: string, value: string}> = [];
private constVal: string;
constructor(private valueService: ValueService) {
super();
}
// set initial value
public writeValue(obj: any): void {
console.log("init: ", obj);
this.value = obj;
this.updateConst();
}
public ngOnChanges(changes: SimpleChanges) {
console.log("onchnage: ", this.value);
if (changes['items'] || changes['nullable'] || changes['readonly']) {
if (this.nullable)
this.listedItems = [{key: "", value: "N/A"}, {key: null, value: "N/A"}].concat(this.items);
else
this.listedItems = this.items;
this.updateConst();
this.setListedItems();
}
if (changes['foreign'] && this.foreign) {
this.valueService.getValues(this.foreign.uri, {}, (res, err) => {
this.foreignItems = [];
for (let item of res as any) {
this.foreignItems.push({key: item[this.foreign.keys], value: item[this.foreign.values]});
}
this.setListedItems();
});
}
}
private setListedItems() {
if (this.nullable)
this.listedItems = [{key: "", value: "N/A"}, {key: null, value: "N/A"}].concat(this.items || []).concat(this.foreignItems || []);
else
this.listedItems = [].concat(this.items || []).concat(this.foreignItems || []);
this.updateConst();
}
private updateConst() {
if (this.readonly) {
@@ -63,7 +82,6 @@ export class DropdownInputComponent extends CustomInputComponent implements OnCh
// validates the form, returns null when valid else the validation object
public validate(c: FormControl): ValidationErrors {
console.log("validate", this.value, this.initComplete, this.nullable, this.items);
if (!this.initComplete)
return null;
if (this.value===null) {
@@ -72,12 +90,10 @@ export class DropdownInputComponent extends CustomInputComponent implements OnCh
message: "This field is required!"
}};
}
for (let i=0; i<this.items.length; i++) {
console.log(this.items[i].key, this.value);
if (this.items[i].key==this.value)
for (let i=0; i<this.listedItems.length; i++) {
if (this.listedItems[i].key==this.value)
return null;
}
console.log("ret invalid");
return {invalidValue: {
valid: false,
message: "This value is invalid. Please select another value!"

View File

@@ -30,6 +30,8 @@ export class TextareaInputComponent extends CustomInputComponent {
public writeValue(obj: any): void {
if (obj) {
this.value = obj + '';
} else {
this.value = '';
}
}
@@ -46,7 +48,6 @@ export class TextareaInputComponent extends CustomInputComponent {
// on button click
protected onChange($event: KeyboardEvent): void {
this.value = $event.target['value'];
console.log("NEW:", this.value, $event.target, $event.target['value']);
super.change();
}

View File

@@ -34,6 +34,8 @@ export class TextboxInputComponent extends CustomInputComponent {
public writeValue(obj: any): void {
if (obj) {
this.value = obj + '';
} else {
this.value = '';
}
}