├── .babelrc
├── .eslintrc
├── .gitignore
├── .vscode
├── launch.json
└── settings.json
├── ISSUE_TEMPLATE.md
├── LICENSE
├── README.md
├── README_TOO.md
├── RELEASE_NOTES.md
├── dist
├── dragDropWay.html
├── eda.dragdropway.css
├── eda.dragdropway.css.map
├── eda.dragdropway.js
├── eda.dragdropway.min.js
├── eda.dragdropway.min.js.map
├── eda.easyFormViewer.js
├── eda.easyFormViewer.min.js
├── eda.easyFormViewer.min.js.map
├── eda.formviewer.css
├── eda.formviewer.css.map
├── eda.stepway.css
├── eda.stepway.css.map
├── eda.stepway.js
├── eda.stepway.min.js
├── eda.stepway.min.js.map
├── formviewer.html
├── stepway.html
└── vendors
│ ├── css
│ ├── animate.min.css
│ ├── bootstrap.min.css
│ ├── font-awesome.min.css
│ ├── loading-bar.min.css
│ ├── nya-bs-select.min.css
│ ├── textAngular.min.css
│ └── toaster.min.css
│ ├── fonts
│ ├── FontAwesome.otf
│ ├── fontawesome-webfont.eot
│ ├── fontawesome-webfont.svg
│ ├── fontawesome-webfont.ttf
│ ├── fontawesome-webfont.woff
│ ├── fontawesome-webfont.woff2
│ ├── glyphicons-halflings-regular.eot
│ ├── glyphicons-halflings-regular.svg
│ ├── glyphicons-halflings-regular.ttf
│ ├── glyphicons-halflings-regular.woff
│ └── glyphicons-halflings-regular.woff2
│ └── js
│ ├── angular-animate.min.js
│ ├── angular-animate.min.js.map
│ ├── angular-messages.min.js.map
│ ├── angular-resource.min.js
│ ├── angular-resource.min.js.map
│ ├── angular-strap.min.js
│ ├── angular-strap.min.js.map
│ ├── angular-strap.tpl.min.js
│ ├── angular-translate.min.js
│ ├── angular.min.js
│ ├── angular.min.js.map
│ ├── bootstrap.min.js
│ ├── html5shiv.min.js
│ ├── jquery.min.js
│ ├── jquery.min.map
│ ├── loading-bar.min.js
│ ├── lodash.min.js
│ ├── modernizr.js
│ ├── nya-bs-select.min.js
│ ├── respond.min.js
│ ├── textAngular-rangy.min.js
│ ├── textAngular-sanitize.min.js
│ ├── textAngular.min.js
│ ├── toaster.min.js
│ └── ui-bootstrap-tpls.min.js
├── images
├── Paypal-button.png
├── Paypal-button@2x.png
├── Paypal-button@3x.png
├── dragdropway_preview.png
├── easyFormViewerPreview.png
├── emailAndValidation.png
├── languages.png
└── preview.png
├── jsconfig.json
├── karma.conf.js
├── package.json
├── preview
├── dist
│ ├── eda.dragdropway.css
│ ├── eda.dragdropway.css.map
│ ├── eda.dragdropway.js
│ ├── eda.dragdropway.js.map
│ ├── eda.easyFormViewer.js
│ ├── eda.easyFormViewer.js.map
│ ├── eda.formviewer.css
│ ├── eda.formviewer.css.map
│ ├── eda.stepway.css
│ ├── eda.stepway.css.map
│ ├── eda.stepway.js
│ └── eda.stepway.js.map
├── dragDropWay.html
├── formviewer.html
├── stepway-wizard.html
├── stepway.html
├── stepwayBefore-2.2.0.html
└── vendors
│ ├── css
│ ├── animate.min.css
│ ├── bootstrap.min.css
│ ├── font-awesome.min.css
│ ├── loading-bar.min.css
│ ├── nya-bs-select.min.css
│ ├── textAngular.min.css
│ └── toaster.min.css
│ ├── fonts
│ ├── FontAwesome.otf
│ ├── fontawesome-webfont.eot
│ ├── fontawesome-webfont.svg
│ ├── fontawesome-webfont.ttf
│ ├── fontawesome-webfont.woff
│ ├── fontawesome-webfont.woff2
│ ├── glyphicons-halflings-regular.eot
│ ├── glyphicons-halflings-regular.svg
│ ├── glyphicons-halflings-regular.ttf
│ ├── glyphicons-halflings-regular.woff
│ └── glyphicons-halflings-regular.woff2
│ └── js
│ ├── angular-animate.min.js
│ ├── angular-animate.min.js.map
│ ├── angular-messages.min.js.map
│ ├── angular-resource.min.js
│ ├── angular-resource.min.js.map
│ ├── angular-strap.min.js
│ ├── angular-strap.min.js.map
│ ├── angular-strap.tpl.min.js
│ ├── angular-translate.min.js
│ ├── angular.min.js
│ ├── angular.min.js.map
│ ├── bootstrap.min.js
│ ├── html5shiv.min.js
│ ├── jquery.min.js
│ ├── jquery.min.map
│ ├── loading-bar.min.js
│ ├── lodash.min.js
│ ├── modernizr.js
│ ├── nya-bs-select.min.js
│ ├── respond.min.js
│ ├── textAngular-rangy.min.js
│ ├── textAngular-sanitize.min.js
│ ├── textAngular.min.js
│ ├── toaster.min.js
│ └── ui-bootstrap-tpls.min.js
├── src
├── app
│ ├── dragdropway
│ │ ├── components
│ │ │ ├── common
│ │ │ │ ├── dragAndDropList
│ │ │ │ │ ├── dragAndDropList.dndDraggable.directive.js
│ │ │ │ │ ├── dragAndDropList.dndlist.directive.js
│ │ │ │ │ └── dragAndDropList.module.js
│ │ │ │ ├── edaTrustThisFilter
│ │ │ │ │ ├── edaDragDropWay.trustThis.filter.js
│ │ │ │ │ └── edaDragDropWay.trustThis.module.js
│ │ │ │ ├── pageslide
│ │ │ │ │ ├── pageslide.directive.js
│ │ │ │ │ └── pageslide.module.js
│ │ │ │ └── rightclick
│ │ │ │ │ ├── edaDragDropWay.rightClick.directive.js
│ │ │ │ │ ├── edaDragDropWay.rightClick.module.js
│ │ │ │ │ └── edaDragDropWay.rightClick.service.js
│ │ │ ├── configurationModelProxy
│ │ │ │ ├── edaDragDropWay.configurationModelProxy.module.js
│ │ │ │ └── edaDragDropWay.configurationModelProxy.service.js
│ │ │ ├── dragdrop
│ │ │ │ ├── ddContentCounter
│ │ │ │ │ ├── edaDragDropWay.dragdrop.ddContentCounter.directive.js
│ │ │ │ │ └── edaDragDropWay.dragdrop.ddContentCounter.service.js
│ │ │ │ ├── ddDecorContainer
│ │ │ │ │ ├── edaDragDropWay.dragdrop.ddDecorContainer.controller.js
│ │ │ │ │ ├── edaDragDropWay.dragdrop.ddDecorContainer.directive.js
│ │ │ │ │ └── edaDragDropWay.dragdrop.ddDecorContainer.template.html
│ │ │ │ ├── ddDecorDropZone
│ │ │ │ │ ├── edaDragDropWay.dragdrop.ddDecorDropZone.directive.js
│ │ │ │ │ └── edaDragDropWay.dragdrop.ddDecorDropZone.template.html
│ │ │ │ ├── ddDecorItem
│ │ │ │ │ ├── edaDragDropWay.dragdrop.ddDecorItem.directive.js
│ │ │ │ │ ├── edaDragDropWay.dragdrop.ddDecorItem.service.js
│ │ │ │ │ └── edaDragDropWay.dragdrop.ddDecorItem.template.html
│ │ │ │ ├── ddDecorLine
│ │ │ │ │ ├── edaDragDropWay.dragdrop.ddDecorLine.directive.js
│ │ │ │ │ └── edaDragDropWay.dragdrop.ddDecorLine.template.html
│ │ │ │ ├── ddNoEditableControl
│ │ │ │ │ └── edaDragDropWay.dragdrop.ddNoEditableControl.directive.js
│ │ │ │ └── edaDragDropWay.dragdrop.module.js
│ │ │ ├── edaDragDropWayEasyFormGen
│ │ │ │ ├── edaDragDropWay.edaDragdropWayEasyFormGen.controller.helpers.js
│ │ │ │ ├── edaDragDropWay.edaDragdropWayEasyFormGen.controller.js
│ │ │ │ ├── edaDragDropWay.edaDragdropWayEasyFormGen.directive.js
│ │ │ │ ├── edaDragDropWay.edaDragdropWayEasyFormGen.module.js
│ │ │ │ ├── edaDragDropWay.edaDragdropWayEasyFormGen.provider.helpers.js
│ │ │ │ ├── edaDragDropWay.edaDragdropWayEasyFormGen.provider.js
│ │ │ │ ├── edaDragDropWay.edaDragdropWayEasyFormGen.template.html
│ │ │ │ └── jsconfig.json
│ │ │ ├── formlyProxy
│ │ │ │ ├── edaDragDropWay.formlyProxy.formFieldManage.module.js
│ │ │ │ ├── edaDragDropWay.formlyProxy.formFieldManage.provider.helpers.js
│ │ │ │ ├── edaDragDropWay.formlyProxy.formFieldManage.provider.js
│ │ │ │ └── edaDragDropWay.formlyProxy.formFieldManage.service.js
│ │ │ └── leftPanel
│ │ │ │ ├── BasicSelectControl
│ │ │ │ ├── edaDragDropWay.leftpanel.basicSelectControl.directive.js
│ │ │ │ └── edaDragDropWay.leftpanel.basicSelectControl.template.html
│ │ │ │ ├── BlankControl
│ │ │ │ ├── edaDragDropWay.leftpanel.blankControl.directive.js
│ │ │ │ └── edaDragDropWay.leftpanel.blankControl.template.html
│ │ │ │ ├── CheckBoxControl
│ │ │ │ ├── edaDragDropWay.leftpanel.checkBoxControl.directive.js
│ │ │ │ └── edaDragDropWay.leftpanel.checkBoxControl.template.html
│ │ │ │ ├── DateControl
│ │ │ │ ├── edaDragDropWay.leftpanel.dateControl.directive.js
│ │ │ │ └── edaDragDropWay.leftpanel.dateControl.template.html
│ │ │ │ ├── GroupedSelectControl
│ │ │ │ ├── edaDragDropWay.leftpanel.groupedSelectControl.directive.js
│ │ │ │ └── edaDragDropWay.leftpanel.groupedSelectControl.template.html
│ │ │ │ ├── HeaderControl
│ │ │ │ ├── edaDragDropWay.leftpanel.headerControl.directive.js
│ │ │ │ └── edaDragDropWay.leftpanel.headerControl.template.html
│ │ │ │ ├── PasswordControl
│ │ │ │ ├── edaDragDropWay.leftpanel.passwordControl.directive.js
│ │ │ │ └── edaDragDropWay.leftpanel.passwordControl.template.html
│ │ │ │ ├── RadioControl
│ │ │ │ ├── edaDragDropWay.leftpanel.radioControl.directive.js
│ │ │ │ └── edaDragDropWay.leftpanel.radioControl.template.html
│ │ │ │ ├── RichTextEditorControl
│ │ │ │ ├── edaDragDropWay.leftpanel.richTextEditorControl.directive.js
│ │ │ │ └── edaDragDropWay.leftpanel.richTextEditorControl.template.html
│ │ │ │ ├── SubTitleControl
│ │ │ │ ├── edaDragDropWay.leftpanel.subtitleControl.directive.js
│ │ │ │ └── edaDragDropWay.leftpanel.subtitleControl.template.html
│ │ │ │ ├── TextAreaControl
│ │ │ │ ├── edaDragDropWay.leftpanel.textareaControl.directive.js
│ │ │ │ └── edaDragDropWay.leftpanel.textareaControl.template.html
│ │ │ │ ├── TextInputControl
│ │ │ │ ├── edaDragDropWay.leftpanel.textInputControl.directive.js
│ │ │ │ └── edaDragDropWay.leftpanel.textInputControl.template.html
│ │ │ │ ├── ValidEditFooter
│ │ │ │ ├── edaDragDropWay.leftpanel.validEditFooter.directive.js
│ │ │ │ └── edaDragDropWay.leftpanel.validEditFooter.template.html
│ │ │ │ ├── edaDragDropWay.leftPanel.controller.helpers.js
│ │ │ │ ├── edaDragDropWay.leftPanel.controller.js
│ │ │ │ ├── edaDragDropWay.leftPanel.controllerModalProxy.service.js
│ │ │ │ ├── edaDragDropWay.leftPanel.directive.js
│ │ │ │ ├── edaDragDropWay.leftPanel.module.js
│ │ │ │ ├── edaDragDropWay.leftPanel.selectOptionManage.service.helpers.js
│ │ │ │ ├── edaDragDropWay.leftPanel.selectOptionManage.service.js
│ │ │ │ └── edaDragDropWay.leftPanel.template.html
│ │ ├── config
│ │ │ ├── edaDragDropWay.dragDropConfig.config.js
│ │ │ └── edaDragDropWay.formlyConfig.config.js
│ │ ├── core
│ │ │ └── edaDragDropWay.core.module.js
│ │ ├── index.js
│ │ ├── main.js
│ │ ├── style
│ │ │ ├── drag_and_drop.scss
│ │ │ ├── drag_and_drop_mixins.scss
│ │ │ ├── drag_and_drop_var.scss
│ │ │ └── eda.textAngular.min.scss
│ │ └── vendors.js
│ ├── formviewer
│ │ ├── components
│ │ │ ├── core
│ │ │ │ └── eda.easyFormViewer.core.module.js
│ │ │ ├── main
│ │ │ │ ├── eda.easyFormViewer.main.controller.js
│ │ │ │ ├── eda.easyFormViewer.main.directive.helpers.js
│ │ │ │ ├── eda.easyFormViewer.main.directive.js
│ │ │ │ ├── eda.easyFormViewer.main.module.js
│ │ │ │ └── eda.easyFormViewer.main.template.html
│ │ │ └── modelsTranslator
│ │ │ │ ├── eda.easyFormViewer.modelTranslator.module.js
│ │ │ │ ├── eda.easyFormViewer.modelTranslator.service.helpers.js
│ │ │ │ └── eda.easyFormViewer.modelTranslator.service.js
│ │ ├── index.js
│ │ ├── main.js
│ │ ├── style
│ │ │ ├── eda.textAngular.min.scss
│ │ │ ├── formviewer.scss
│ │ │ ├── formviewer_mixins.scss
│ │ │ └── formviewer_var.scss
│ │ └── vendors.js
│ └── stepway
│ │ ├── README.md
│ │ ├── components
│ │ ├── controls
│ │ │ ├── CheckBox
│ │ │ │ ├── config
│ │ │ │ │ └── checkbox.config.js
│ │ │ │ └── editCheckBox
│ │ │ │ │ └── editCheckBox.component.js
│ │ │ ├── Date
│ │ │ │ ├── config
│ │ │ │ │ └── date.config.js
│ │ │ │ └── editDate
│ │ │ │ │ └── editDate.component.js
│ │ │ ├── Email
│ │ │ │ ├── config
│ │ │ │ │ └── email.config.js
│ │ │ │ └── editEmail
│ │ │ │ │ └── editEmail.component.js
│ │ │ ├── IpAdress
│ │ │ │ ├── config
│ │ │ │ │ └── IpAdress.config.js
│ │ │ │ └── editIpAdress
│ │ │ │ │ └── editIpAdress.component.js
│ │ │ ├── NOTE.md
│ │ │ ├── basicSelect
│ │ │ │ ├── config
│ │ │ │ │ └── basicSelect.config.js
│ │ │ │ └── editBasicSelect
│ │ │ │ │ └── editBasicSelect.component.js
│ │ │ ├── blank
│ │ │ │ ├── config
│ │ │ │ │ └── blank.config.js
│ │ │ │ └── editBlank
│ │ │ │ │ └── editBlankControl.component.js
│ │ │ ├── groupedSelect
│ │ │ │ ├── config
│ │ │ │ │ └── groupedSelect.config.js
│ │ │ │ └── editGroupedSelect
│ │ │ │ │ └── editGroupedSelect.component.js
│ │ │ ├── header
│ │ │ │ ├── config
│ │ │ │ │ └── header.config.js
│ │ │ │ └── editHeader
│ │ │ │ │ └── editHeaderControl.component.js
│ │ │ ├── index.js
│ │ │ ├── password
│ │ │ │ ├── config
│ │ │ │ │ └── password.config.js
│ │ │ │ └── editPassword
│ │ │ │ │ └── editPassword.component.js
│ │ │ ├── radio
│ │ │ │ ├── config
│ │ │ │ │ └── radio.config.js
│ │ │ │ └── editRadio
│ │ │ │ │ └── editRadio.component.js
│ │ │ ├── richTextEditor
│ │ │ │ ├── config
│ │ │ │ │ └── richTextEditor.config.js
│ │ │ │ └── editRichTextEditor
│ │ │ │ │ └── editRichTextEditor.component.js
│ │ │ ├── subTitle
│ │ │ │ ├── config
│ │ │ │ │ └── subTitle.config.js
│ │ │ │ └── editSubTitle
│ │ │ │ │ └── editSubTitle.component.js
│ │ │ ├── textArea
│ │ │ │ ├── config
│ │ │ │ │ └── textArea.config.js
│ │ │ │ └── editTextArea
│ │ │ │ │ └── editTextArea.component.js
│ │ │ └── textInput
│ │ │ │ ├── config
│ │ │ │ └── textInput.config.js
│ │ │ │ └── editTextInput
│ │ │ │ └── editTextInput.component.js
│ │ ├── main
│ │ │ ├── main.controller.helpers.js
│ │ │ ├── main.controller.js
│ │ │ ├── main.controller.spec.js
│ │ │ ├── main.directive.js
│ │ │ ├── main.directive.spec.js
│ │ │ ├── main.module.js
│ │ │ ├── main.provider.js
│ │ │ ├── pager
│ │ │ │ └── main.pager.component.js
│ │ │ ├── stepIndicator
│ │ │ │ └── main.stepIndicator.component.js
│ │ │ ├── stepOneContent
│ │ │ │ ├── StepOneCommandPanel
│ │ │ │ │ └── main.StepOneCommandPanel.component.js
│ │ │ │ ├── StepOneVisualPanel
│ │ │ │ │ └── main.StepOneVisualPanel.component.js
│ │ │ │ └── main.stepOneContent.component.js
│ │ │ ├── stepThreeContent
│ │ │ │ ├── StepThreeCommandPanel
│ │ │ │ │ └── main.StepThreeCommandPanel.component.js
│ │ │ │ ├── StepThreeVisualPanel
│ │ │ │ │ └── main.StepThreeVisualPanel.component.js
│ │ │ │ └── main.stepThreeContent.component.js
│ │ │ ├── stepTwoContent
│ │ │ │ ├── StepTwoCommandPanel
│ │ │ │ │ └── main.StepTwoCommandPanel.component.js
│ │ │ │ ├── StepTwoVisualPanel
│ │ │ │ │ └── main.StepTwoVisualPanel.component.js
│ │ │ │ └── main.stepTwoContent.component.js
│ │ │ └── stepZeroContent
│ │ │ │ ├── StepZeroCommandPanel
│ │ │ │ └── main.StepZeroCommandPanel.component.js
│ │ │ │ ├── StepZeroVisualPanel
│ │ │ │ └── main.StepZeroVisualPanel.component.js
│ │ │ │ └── main.stepZeroContent.component.js
│ │ ├── modal
│ │ │ ├── editChooseControl
│ │ │ │ └── editChooseControl.component.js
│ │ │ ├── editControlModal.controller.js
│ │ │ ├── editControlModal.module.js
│ │ │ ├── editControlModal.template.html
│ │ │ └── editValidEditFooter
│ │ │ │ └── editValidEditFooter.component.js
│ │ └── wizard
│ │ │ ├── addStepContent
│ │ │ ├── AddStepCommandPanel
│ │ │ │ └── stepway.wizard.AddStepCommandPanel.component.js
│ │ │ ├── AddStepVisualPanel
│ │ │ │ └── stepway.wizard.AddStepVisualPanel.component.js
│ │ │ ├── stepway.wizard.addStepContent.component.js
│ │ │ └── stepway.wizard.addStepContent.module.js
│ │ │ ├── stepway.wizard.controller.helpers.js
│ │ │ ├── stepway.wizard.controller.js
│ │ │ ├── stepway.wizard.controller.spec.js
│ │ │ ├── stepway.wizard.directive.js
│ │ │ ├── stepway.wizard.directive.spec.js
│ │ │ ├── stepway.wizard.module.js
│ │ │ ├── stepway.wizard.provider.js
│ │ │ └── stepway.wizard.template.html
│ │ ├── config
│ │ ├── easyFormGenerator
│ │ │ └── easyFormGenerator.config.js
│ │ ├── formly
│ │ │ ├── formly.config.js
│ │ │ └── formly.config.templates.js
│ │ └── translate
│ │ │ └── translate.config.js
│ │ ├── core
│ │ └── core.module.js
│ │ ├── i18n
│ │ ├── local-de.json
│ │ ├── local-en.json
│ │ ├── local-es.json
│ │ ├── local-fr.json
│ │ ├── local-jp.json
│ │ ├── local-pt-br.json
│ │ ├── local-tr.json
│ │ └── local-zh.json
│ │ ├── index.js
│ │ ├── main.js
│ │ ├── services
│ │ ├── formlyProxy
│ │ │ ├── formlyProxy.service.helpers.js
│ │ │ └── formlyProxy.service.js
│ │ ├── modalProxy
│ │ │ ├── modalProxy.service.helpers.js
│ │ │ └── modalProxy.service.js
│ │ └── selectOptionManage
│ │ │ └── selectOptionManage.service.js
│ │ ├── style
│ │ ├── _mixins.scss
│ │ ├── _var.scss
│ │ ├── index.scss
│ │ └── textAngularCustomized.scss
│ │ └── vendors.js
└── tests.webpack.js
├── typings.json
├── typings
├── globals
│ ├── angular-formly
│ │ ├── index.d.ts
│ │ └── typings.json
│ ├── bootstrap
│ │ ├── index.d.ts
│ │ └── typings.json
│ ├── karma-jasmine
│ │ ├── index.d.ts
│ │ └── typings.json
│ ├── karma
│ │ ├── index.d.ts
│ │ └── typings.json
│ └── webpack-dev-server
│ │ ├── index.d.ts
│ │ └── typings.json
├── index.d.ts
└── modules
│ ├── angular-animate
│ ├── index.d.ts
│ └── typings.json
│ ├── angular-wizard
│ ├── index.d.ts
│ └── typings.json
│ └── angular
│ ├── index.d.ts
│ └── typings.json
├── webpack.config.dragdropway.js
├── webpack.config.formviewer.js
├── webpack.config.js
├── webpack.config.stepway.js
└── yarn.lock
/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["es2015", "stage-2"]
3 | }
4 |
--------------------------------------------------------------------------------
/.eslintrc:
--------------------------------------------------------------------------------
1 | {
2 | "parser": "babel-eslint",
3 | "ecmaFeatures": {
4 | "modules": true,
5 | "experimentalObjectRestSpread": true
6 | },
7 | "parserOptions": {
8 | "sourceType": "module"
9 | },
10 | "rules": {
11 | // "indent": [ 2, 2 ],
12 | "quotes": [ 1, "single", "avoid-escape" ],
13 | "linebreak-style": [ 2, "unix" ],
14 | "semi": [ 2, "always" ],
15 | "prefer-const": 2,
16 | //# angular
17 | "angular/definedundefined" : 0,
18 | "angular/json-functions" : 0 ,
19 | "angular/document-service" : 0,
20 | "angular/timeout-service" : 0,
21 | "angular/log" : 0,
22 | "angular/window-service" : 0,
23 | "angular/typecheck-array": 0,
24 | // # custom:
25 | "no-global-assign": 0,
26 | "no-unsafe-negation": 0
27 | },
28 | "env": {
29 | "es6": true,
30 | "browser": true,
31 | "node" : true
32 | },
33 | "globals": {
34 | "angular": false,
35 | "_" : true
36 | },
37 | "extends": [
38 | "eslint:recommended",
39 | "angular"
40 | ],
41 | "plugins": [
42 | "angular"
43 | ]
44 | }
45 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules/
2 | bower_components/
3 | jspm_packages/
4 | coverage/
5 | *.log
6 |
7 | build/
8 |
9 | .idea
10 |
11 | .DS_Store
12 |
--------------------------------------------------------------------------------
/.vscode/launch.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": "0.2.0",
3 | "configurations": [
4 | {
5 | "type": "chrome",
6 | "request": "launch",
7 | "name": "preview dev stepway",
8 | "url": "http://localhost:8080",
9 | "webRoot": "${workspaceRoot}",
10 | "file": "${workspaceRoot}/preview/stepway.html",
11 | "sourceMaps": true,
12 | "sourceMapPathOverrides": {
13 | "webpack:///./*": "${webRoot}/*"
14 | }
15 | },
16 | {
17 | "type": "chrome",
18 | "request": "launch",
19 | "name": "preview prod stepway",
20 | "url": "http://localhost:8080",
21 | "webRoot": "${workspaceRoot}",
22 | "file": "${workspaceRoot}/dist/stepway.html",
23 | "sourceMaps": true,
24 | "sourceMapPathOverrides": {
25 | "webpack:///./*": "${webRoot}/*"
26 | }
27 | },
28 | {
29 | "type": "chrome",
30 | "request": "launch",
31 | "name": "preview dev dragdropway",
32 | "url": "http://localhost:8080",
33 | "webRoot": "${workspaceRoot}",
34 | "file": "${workspaceRoot}/preview/dragDropWay.html",
35 | "sourceMaps": true,
36 | "sourceMapPathOverrides": {
37 | "webpack:///./*": "${webRoot}/*"
38 | }
39 | },
40 | {
41 | "type": "chrome",
42 | "request": "launch",
43 | "name": "preview prod dragdropway",
44 | "url": "http://localhost:8080",
45 | "webRoot": "${workspaceRoot}",
46 | "file": "${workspaceRoot}/dist/dragDropWay.html",
47 | "sourceMaps": true,
48 | "sourceMapPathOverrides": {
49 | "webpack:///./*": "${webRoot}/*"
50 | }
51 | },
52 | {
53 | "type": "chrome",
54 | "request": "launch",
55 | "name": "preview dev formviewer",
56 | "url": "http://localhost:8080",
57 | "webRoot": "${workspaceRoot}",
58 | "file": "${workspaceRoot}/preview/formviewer.html",
59 | "sourceMaps": true,
60 | "sourceMapPathOverrides": {
61 | "webpack:///./*": "${webRoot}/*"
62 | }
63 | },
64 | {
65 | "type": "chrome",
66 | "request": "launch",
67 | "name": "preview prod formviewer",
68 | "url": "http://localhost:8080",
69 | "webRoot": "${workspaceRoot}",
70 | "file": "${workspaceRoot}/dist/formviewer.html",
71 | "sourceMaps": true,
72 | "sourceMapPathOverrides": {
73 | "webpack:///./*": "${webRoot}/*"
74 | }
75 | }
76 | ]
77 | }
--------------------------------------------------------------------------------
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | // Placez vos paramètres dans ce fichier pour remplacer les paramètres par défaut et les paramètres utilisateur.
2 | {
3 | // coding style and xp:
4 | "editor.tabSize": 2,
5 | "editor.insertSpaces": true,
6 | "editor.autoClosingBrackets": true,
7 | // search:
8 | "search.exclude": {
9 | "node_modules": true,
10 | "bower_components": true,
11 | "jspm_packages": true,
12 | ".git": true,
13 | "flow-typed": true,
14 | "__snapshots__": true
15 | },
16 | // telemetry:
17 | "telemetry.enableTelemetry": false,
18 | "telemetry.enableCrashReporter": false,
19 | // flow
20 | "javascript.validate.enable": false,
21 | "flow.useNPMPackagedFlow": true,
22 | "flow.pathToFlow": "node_modules/.bin",
23 | "javascript.format.enable": false
24 | }
--------------------------------------------------------------------------------
/ISSUE_TEMPLATE.md:
--------------------------------------------------------------------------------
1 | ### Version
2 | 2.3.0
3 |
4 | ### Directive
5 | - [ ] stepway
6 | - [ ] formViewer
7 | - [ ] dragdropway
8 |
9 |
10 | ### Steps to reproduce
11 | 1.
12 | 2.
13 | 3.
14 |
15 | ### Expected behavior
16 | What should happen
17 |
18 | ### Actual behavior
19 | What is happening
20 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2016 Erwan DATIN
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in
13 | all copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 | THE SOFTWARE.
22 |
--------------------------------------------------------------------------------
/RELEASE_NOTES.md:
--------------------------------------------------------------------------------
1 | # Releases
2 |
3 | ## Notes:
4 |
5 | ### v2.3.0
6 |
7 | - add chinese language (thanks to @alansong :clap:)
8 |
9 | ### v2.2.3
10 |
11 | - issues fixes
12 | - header control
13 | - opening modal with empty field model won't throw error anymore
14 |
15 | ### v2.2.2
16 |
17 | - skiped
18 |
19 | ### v2.1.1
20 |
21 | - Header component fix (now a real component) => breaking changes
22 | - breaking change to `fix angular formly upgrade compatibility issue`. **This breaking change impacts Header fields model control only**. Header control field model now needs header value to be in `templateOptions.placeholder` (*rather than in `templateOptions.description`*). To help to ensure the right property is used by your previously saved fields model, description input is now added in Header edit modal (*so just cut / paste description into header text input*).
23 | - add Wizard (thanks to `gofreddo` PR)
24 |
25 |
26 | ### v2.1.0
27 | - separate js and css into distinct bundles (like before v2.0.0)
28 | - merged awesome PR from
29 | - `cristianurbano` :clap:
30 | - `gofreddo` :clap:
31 | - **Thank you for you contributions!**
32 |
33 | ### v2.0.0
34 | - leave `bower, gulp and jspm` in favor of `webpack + npm`
35 | - new control: `IP adress`
36 | - new language added `Brazilian Portuguese` thanks to `Leandro.Battisti`
37 | - merged awesome PRs from `gofreddo` :clap: for kind and amazing contribution
38 |
39 | ### v1.2.0
40 |
41 | To follow `ui-bootstrap` (*ui-bootstrap following angular js and avoiding name conflict with angular Strap*)
42 | > easyFormGenerator (since v1.2.0) is now compatible with latest ui-bootstrap.
43 |
44 | If you want to use older ui-bootstrap (*<= v0.13.4*)
45 |
46 | > you will have to use easyFormGenrator <= v1.1.0.
47 |
48 | ### v1.1.0
49 |
50 | - migration to ES6 + fixes
51 |
52 | ### v1.0.21:
53 |
54 | *`Easy form viewer` (*no matter form generator you used, models are the same*):
55 |
56 | - You created a form through `easy form generator`, you have now `easy form viewer` to easily `render` your forms
57 | - you can still use angular formly directive. But since easy form generator contains amount of custom controls, you may have pain to configure yourself with `formlyConfigProvider`. Just use easy form viewer directive, it embeds angular formly and configure custom controls for you = no more pain.
58 | ______
59 |
--------------------------------------------------------------------------------
/dist/eda.dragdropway.css.map:
--------------------------------------------------------------------------------
1 | {"version":3,"sources":[],"names":[],"mappings":"","file":"eda.dragdropway.css","sourceRoot":""}
--------------------------------------------------------------------------------
/dist/eda.formviewer.css.map:
--------------------------------------------------------------------------------
1 | {"version":3,"sources":[],"names":[],"mappings":"","file":"eda.formviewer.css","sourceRoot":""}
--------------------------------------------------------------------------------
/dist/eda.stepway.css.map:
--------------------------------------------------------------------------------
1 | {"version":3,"sources":[],"names":[],"mappings":"","file":"eda.stepway.css","sourceRoot":""}
--------------------------------------------------------------------------------
/dist/vendors/css/loading-bar.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * angular-loading-bar v0.7.1
3 | * https://chieffancypants.github.io/angular-loading-bar
4 | * Copyright (c) 2015 Wes Cruver
5 | * License: MIT
6 | */
7 |
8 | #loading-bar,#loading-bar-spinner{pointer-events:none;-webkit-pointer-events:none;-webkit-transition:350ms linear all;-moz-transition:350ms linear all;-o-transition:350ms linear all;transition:350ms linear all}#loading-bar.ng-enter,#loading-bar.ng-leave.ng-leave-active,#loading-bar-spinner.ng-enter,#loading-bar-spinner.ng-leave.ng-leave-active{opacity:0}#loading-bar.ng-enter.ng-enter-active,#loading-bar.ng-leave,#loading-bar-spinner.ng-enter.ng-enter-active,#loading-bar-spinner.ng-leave{opacity:1}#loading-bar .bar{-webkit-transition:width 350ms;-moz-transition:width 350ms;-o-transition:width 350ms;transition:width 350ms;background:#29d;position:fixed;z-index:10002;top:0;left:0;width:100%;height:2px;border-bottom-right-radius:1px;border-top-right-radius:1px}#loading-bar .peg{position:absolute;width:70px;right:0;top:0;height:2px;opacity:.45;-moz-box-shadow:#29d 1px 0 6px 1px;-ms-box-shadow:#29d 1px 0 6px 1px;-webkit-box-shadow:#29d 1px 0 6px 1px;box-shadow:#29d 1px 0 6px 1px;-moz-border-radius:100%;-webkit-border-radius:100%;border-radius:100%}#loading-bar-spinner{display:block;position:fixed;z-index:10002;top:10px;left:10px}#loading-bar-spinner .spinner-icon{width:14px;height:14px;border:solid 2px transparent;border-top-color:#29d;border-left-color:#29d;border-radius:10px;-webkit-animation:loading-bar-spinner 400ms linear infinite;-moz-animation:loading-bar-spinner 400ms linear infinite;-ms-animation:loading-bar-spinner 400ms linear infinite;-o-animation:loading-bar-spinner 400ms linear infinite;animation:loading-bar-spinner 400ms linear infinite}@-webkit-keyframes loading-bar-spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-moz-keyframes loading-bar-spinner{0%{-moz-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(360deg);transform:rotate(360deg)}}@-o-keyframes loading-bar-spinner{0%{-o-transform:rotate(0deg);transform:rotate(0deg)}100%{-o-transform:rotate(360deg);transform:rotate(360deg)}}@-ms-keyframes loading-bar-spinner{0%{-ms-transform:rotate(0deg);transform:rotate(0deg)}100%{-ms-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes loading-bar-spinner{0%{transform:rotate(0deg);transform:rotate(0deg)}100%{transform:rotate(360deg);transform:rotate(360deg)}}
--------------------------------------------------------------------------------
/dist/vendors/css/textAngular.min.css:
--------------------------------------------------------------------------------
1 | .ta-hidden-input{width:1px;height:1px;border:none;margin:0;padding:0;position:absolute;top:-10000px;left:-10000px;opacity:0;overflow:hidden}.ta-root.focussed>.ta-scroll-window.form-control{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.ta-editor.ta-html,.ta-scroll-window.form-control{min-height:300px;height:auto;overflow:auto;font-family:inherit;font-size:100%}.ta-scroll-window.form-control{position:relative;padding:0}.ta-scroll-window>.ta-bind{height:auto;min-height:300px;padding:6px 12px}.ta-editor:focus{user-select:text}.ta-resizer-handle-overlay{z-index:100;position:absolute;display:none}.ta-resizer-handle-overlay>.ta-resizer-handle-info{position:absolute;bottom:16px;right:16px;border:1px solid #000;background-color:#FFF;padding:0 4px;opacity:.7}.ta-resizer-handle-overlay>.ta-resizer-handle-background{position:absolute;bottom:5px;right:5px;left:5px;top:5px;border:1px solid #000;background-color:rgba(0,0,0,.2)}.ta-resizer-handle-overlay>.ta-resizer-handle-corner{width:10px;height:10px;position:absolute}.ta-resizer-handle-overlay>.ta-resizer-handle-corner-tl{top:0;left:0;border-left:1px solid #000;border-top:1px solid #000}.ta-resizer-handle-overlay>.ta-resizer-handle-corner-tr{top:0;right:0;border-right:1px solid #000;border-top:1px solid #000}.ta-resizer-handle-overlay>.ta-resizer-handle-corner-bl{bottom:0;left:0;border-left:1px solid #000;border-bottom:1px solid #000}.ta-resizer-handle-overlay>.ta-resizer-handle-corner-br{bottom:0;right:0;border:1px solid #000;cursor:se-resize;background-color:#fff}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-size:14px;font-weight:400;line-height:1.42857143;text-align:left;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2)}.popover.top{margin-top:-10px}.popover.bottom{margin-top:10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}
--------------------------------------------------------------------------------
/dist/vendors/fonts/FontAwesome.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MacKentoch/easyFormGenerator/d146d9ac1aba87f8730001b61a737867a1a05695/dist/vendors/fonts/FontAwesome.otf
--------------------------------------------------------------------------------
/dist/vendors/fonts/fontawesome-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MacKentoch/easyFormGenerator/d146d9ac1aba87f8730001b61a737867a1a05695/dist/vendors/fonts/fontawesome-webfont.eot
--------------------------------------------------------------------------------
/dist/vendors/fonts/fontawesome-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MacKentoch/easyFormGenerator/d146d9ac1aba87f8730001b61a737867a1a05695/dist/vendors/fonts/fontawesome-webfont.ttf
--------------------------------------------------------------------------------
/dist/vendors/fonts/fontawesome-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MacKentoch/easyFormGenerator/d146d9ac1aba87f8730001b61a737867a1a05695/dist/vendors/fonts/fontawesome-webfont.woff
--------------------------------------------------------------------------------
/dist/vendors/fonts/fontawesome-webfont.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MacKentoch/easyFormGenerator/d146d9ac1aba87f8730001b61a737867a1a05695/dist/vendors/fonts/fontawesome-webfont.woff2
--------------------------------------------------------------------------------
/dist/vendors/fonts/glyphicons-halflings-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MacKentoch/easyFormGenerator/d146d9ac1aba87f8730001b61a737867a1a05695/dist/vendors/fonts/glyphicons-halflings-regular.eot
--------------------------------------------------------------------------------
/dist/vendors/fonts/glyphicons-halflings-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MacKentoch/easyFormGenerator/d146d9ac1aba87f8730001b61a737867a1a05695/dist/vendors/fonts/glyphicons-halflings-regular.ttf
--------------------------------------------------------------------------------
/dist/vendors/fonts/glyphicons-halflings-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MacKentoch/easyFormGenerator/d146d9ac1aba87f8730001b61a737867a1a05695/dist/vendors/fonts/glyphicons-halflings-regular.woff
--------------------------------------------------------------------------------
/dist/vendors/fonts/glyphicons-halflings-regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MacKentoch/easyFormGenerator/d146d9ac1aba87f8730001b61a737867a1a05695/dist/vendors/fonts/glyphicons-halflings-regular.woff2
--------------------------------------------------------------------------------
/dist/vendors/js/html5shiv.min.js:
--------------------------------------------------------------------------------
1 | /**
2 | * @preserve HTML5 Shiv 3.7.3 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
3 | */
4 | !function(a,b){function c(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=t.elements;return"string"==typeof a?a.split(" "):a}function e(a,b){var c=t.elements;"string"!=typeof c&&(c=c.join(" ")),"string"!=typeof a&&(a=a.join(" ")),t.elements=c+" "+a,j(b)}function f(a){var b=s[a[q]];return b||(b={},r++,a[q]=r,s[r]=b),b}function g(a,c,d){if(c||(c=b),l)return c.createElement(a);d||(d=f(c));var e;return e=d.cache[a]?d.cache[a].cloneNode():p.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!e.canHaveChildren||o.test(a)||e.tagUrn?e:d.frag.appendChild(e)}function h(a,c){if(a||(a=b),l)return a.createDocumentFragment();c=c||f(a);for(var e=c.frag.cloneNode(),g=0,h=d(),i=h.length;i>g;g++)e.createElement(h[g]);return e}function i(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return t.shivMethods?g(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-:]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(t,b.frag)}function j(a){a||(a=b);var d=f(a);return!t.shivCSS||k||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),l||i(a,d),a}var k,l,m="3.7.3",n=a.html5||{},o=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,p=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,q="_html5shiv",r=0,s={};!function(){try{var a=b.createElement("a");a.innerHTML="",k="hidden"in a,l=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return"undefined"==typeof a.cloneNode||"undefined"==typeof a.createDocumentFragment||"undefined"==typeof a.createElement}()}catch(c){k=!0,l=!0}}();var t={elements:n.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:m,shivCSS:n.shivCSS!==!1,supportsUnknownElements:l,shivMethods:n.shivMethods!==!1,type:"default",shivDocument:j,createElement:g,createDocumentFragment:h,addElements:e};a.html5=t,j(b),"object"==typeof module&&module.exports&&(module.exports=t)}("undefined"!=typeof window?window:this,document);
--------------------------------------------------------------------------------
/dist/vendors/js/loading-bar.min.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * angular-loading-bar v0.7.1
3 | * https://chieffancypants.github.io/angular-loading-bar
4 | * Copyright (c) 2015 Wes Cruver
5 | * License: MIT
6 | */
7 | !function(){"use strict";angular.module("angular-loading-bar",["cfp.loadingBarInterceptor"]),angular.module("chieffancypants.loadingBar",["cfp.loadingBarInterceptor"]),angular.module("cfp.loadingBarInterceptor",["cfp.loadingBar"]).config(["$httpProvider",function(a){var b=["$q","$cacheFactory","$timeout","$rootScope","$log","cfpLoadingBar",function(b,c,d,e,f,g){function h(){d.cancel(j),g.complete(),l=0,k=0}function i(b){var d,e=c.get("$http"),f=a.defaults;!b.cache&&!f.cache||b.cache===!1||"GET"!==b.method&&"JSONP"!==b.method||(d=angular.isObject(b.cache)?b.cache:angular.isObject(f.cache)?f.cache:e);var g=void 0!==d?void 0!==d.get(b.url):!1;return void 0!==b.cached&&g!==b.cached?b.cached:(b.cached=g,g)}var j,k=0,l=0,m=g.latencyThreshold;return{request:function(a){return a.ignoreLoadingBar||i(a)||(e.$broadcast("cfpLoadingBar:loading",{url:a.url}),0===k&&(j=d(function(){g.start()},m)),k++,g.set(l/k)),a},response:function(a){return a&&a.config?(a.config.ignoreLoadingBar||i(a.config)||(l++,e.$broadcast("cfpLoadingBar:loaded",{url:a.config.url,result:a}),l>=k?h():g.set(l/k)),a):(f.error("Broken interceptor detected: Config object not supplied in response:\n https://github.com/chieffancypants/angular-loading-bar/pull/50"),a)},responseError:function(a){return a&&a.config?(a.config.ignoreLoadingBar||i(a.config)||(l++,e.$broadcast("cfpLoadingBar:loaded",{url:a.config.url,result:a}),l>=k?h():g.set(l/k)),b.reject(a)):(f.error("Broken interceptor detected: Config object not supplied in rejection:\n https://github.com/chieffancypants/angular-loading-bar/pull/50"),b.reject(a))}}}];a.interceptors.push(b)}]),angular.module("cfp.loadingBar",[]).provider("cfpLoadingBar",function(){this.includeSpinner=!0,this.includeBar=!0,this.latencyThreshold=100,this.startSize=.02,this.parentSelector="body",this.spinnerTemplate='
',this.loadingBarTemplate='',this.$get=["$injector","$document","$timeout","$rootScope",function(a,b,c,d){function e(){k||(k=a.get("$animate"));var e=b.find(n).eq(0);c.cancel(m),r||(d.$broadcast("cfpLoadingBar:started"),r=!0,u&&k.enter(o,e,angular.element(e[0].lastChild)),t&&k.enter(q,e,angular.element(e[0].lastChild)),f(v))}function f(a){if(r){var b=100*a+"%";p.css("width",b),s=a,c.cancel(l),l=c(function(){g()},250)}}function g(){if(!(h()>=1)){var a=0,b=h();a=b>=0&&.25>b?(3*Math.random()+3)/100:b>=.25&&.65>b?3*Math.random()/100:b>=.65&&.9>b?2*Math.random()/100:b>=.9&&.99>b?.005:0;var c=h()+a;f(c)}}function h(){return s}function i(){s=0,r=!1}function j(){k||(k=a.get("$animate")),d.$broadcast("cfpLoadingBar:completed"),f(1),c.cancel(m),m=c(function(){var a=k.leave(o,i);a&&a.then&&a.then(i),k.leave(q)},500)}var k,l,m,n=this.parentSelector,o=angular.element(this.loadingBarTemplate),p=o.find("div").eq(0),q=angular.element(this.spinnerTemplate),r=!1,s=0,t=this.includeSpinner,u=this.includeBar,v=this.startSize;return{start:e,set:f,status:h,inc:g,complete:j,includeSpinner:this.includeSpinner,latencyThreshold:this.latencyThreshold,parentSelector:this.parentSelector,startSize:this.startSize}}]})}();
--------------------------------------------------------------------------------
/images/Paypal-button.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MacKentoch/easyFormGenerator/d146d9ac1aba87f8730001b61a737867a1a05695/images/Paypal-button.png
--------------------------------------------------------------------------------
/images/Paypal-button@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MacKentoch/easyFormGenerator/d146d9ac1aba87f8730001b61a737867a1a05695/images/Paypal-button@2x.png
--------------------------------------------------------------------------------
/images/Paypal-button@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MacKentoch/easyFormGenerator/d146d9ac1aba87f8730001b61a737867a1a05695/images/Paypal-button@3x.png
--------------------------------------------------------------------------------
/images/dragdropway_preview.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MacKentoch/easyFormGenerator/d146d9ac1aba87f8730001b61a737867a1a05695/images/dragdropway_preview.png
--------------------------------------------------------------------------------
/images/easyFormViewerPreview.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MacKentoch/easyFormGenerator/d146d9ac1aba87f8730001b61a737867a1a05695/images/easyFormViewerPreview.png
--------------------------------------------------------------------------------
/images/emailAndValidation.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MacKentoch/easyFormGenerator/d146d9ac1aba87f8730001b61a737867a1a05695/images/emailAndValidation.png
--------------------------------------------------------------------------------
/images/languages.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MacKentoch/easyFormGenerator/d146d9ac1aba87f8730001b61a737867a1a05695/images/languages.png
--------------------------------------------------------------------------------
/images/preview.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MacKentoch/easyFormGenerator/d146d9ac1aba87f8730001b61a737867a1a05695/images/preview.png
--------------------------------------------------------------------------------
/jsconfig.json:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MacKentoch/easyFormGenerator/d146d9ac1aba87f8730001b61a737867a1a05695/jsconfig.json
--------------------------------------------------------------------------------
/karma.conf.js:
--------------------------------------------------------------------------------
1 | // Reference: http://karma-runner.github.io/0.12/config/configuration-file.html
2 | module.exports = function karmaConfig (config) {
3 | config.set({
4 | frameworks: [
5 | // Reference: https://github.com/karma-runner/karma-jasmine
6 | // Set framework to jasmine
7 | 'jasmine'
8 | ],
9 |
10 | reporters: [
11 | // Reference: https://github.com/mlex/karma-spec-reporter
12 | // Set reporter to print detailed results to console
13 | 'progress',
14 |
15 | // Reference: https://github.com/karma-runner/karma-coverage
16 | // Output code coverage files
17 | 'coverage'
18 | ],
19 |
20 | files: [
21 | // Grab all files in the app folder that contain .spec.
22 | 'src/tests.webpack.js'
23 | ],
24 |
25 | preprocessors: {
26 | // Reference: http://webpack.github.io/docs/testing.html
27 | // Reference: https://github.com/webpack/karma-webpack
28 | // Convert files with webpack and load sourcemaps
29 | 'src/tests.webpack.js': ['webpack', 'sourcemap']
30 | },
31 |
32 | browsers: [
33 | // Run tests using PhantomJS
34 | 'PhantomJS'
35 | ],
36 |
37 | singleRun: true,
38 |
39 | // Configure code coverage reporter
40 | coverageReporter: {
41 | dir: 'coverage/',
42 | reporters: [
43 | {type: 'text-summary'},
44 | {type: 'html'}
45 | ]
46 | },
47 |
48 | webpack: require('./webpack.config'),
49 |
50 | // Hide webpack build information from output
51 | webpackMiddleware: {
52 | noInfo: 'errors-only'
53 | }
54 | });
55 | };
56 |
--------------------------------------------------------------------------------
/preview/dist/eda.dragdropway.css.map:
--------------------------------------------------------------------------------
1 | {"version":3,"sources":[],"names":[],"mappings":"","file":"eda.dragdropway.css","sourceRoot":""}
--------------------------------------------------------------------------------
/preview/dist/eda.formviewer.css.map:
--------------------------------------------------------------------------------
1 | {"version":3,"sources":[],"names":[],"mappings":"","file":"eda.formviewer.css","sourceRoot":""}
--------------------------------------------------------------------------------
/preview/dist/eda.stepway.css.map:
--------------------------------------------------------------------------------
1 | {"version":3,"sources":[],"names":[],"mappings":"","file":"eda.stepway.css","sourceRoot":""}
--------------------------------------------------------------------------------
/preview/vendors/css/loading-bar.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * angular-loading-bar v0.7.1
3 | * https://chieffancypants.github.io/angular-loading-bar
4 | * Copyright (c) 2015 Wes Cruver
5 | * License: MIT
6 | */
7 |
8 | #loading-bar,#loading-bar-spinner{pointer-events:none;-webkit-pointer-events:none;-webkit-transition:350ms linear all;-moz-transition:350ms linear all;-o-transition:350ms linear all;transition:350ms linear all}#loading-bar.ng-enter,#loading-bar.ng-leave.ng-leave-active,#loading-bar-spinner.ng-enter,#loading-bar-spinner.ng-leave.ng-leave-active{opacity:0}#loading-bar.ng-enter.ng-enter-active,#loading-bar.ng-leave,#loading-bar-spinner.ng-enter.ng-enter-active,#loading-bar-spinner.ng-leave{opacity:1}#loading-bar .bar{-webkit-transition:width 350ms;-moz-transition:width 350ms;-o-transition:width 350ms;transition:width 350ms;background:#29d;position:fixed;z-index:10002;top:0;left:0;width:100%;height:2px;border-bottom-right-radius:1px;border-top-right-radius:1px}#loading-bar .peg{position:absolute;width:70px;right:0;top:0;height:2px;opacity:.45;-moz-box-shadow:#29d 1px 0 6px 1px;-ms-box-shadow:#29d 1px 0 6px 1px;-webkit-box-shadow:#29d 1px 0 6px 1px;box-shadow:#29d 1px 0 6px 1px;-moz-border-radius:100%;-webkit-border-radius:100%;border-radius:100%}#loading-bar-spinner{display:block;position:fixed;z-index:10002;top:10px;left:10px}#loading-bar-spinner .spinner-icon{width:14px;height:14px;border:solid 2px transparent;border-top-color:#29d;border-left-color:#29d;border-radius:10px;-webkit-animation:loading-bar-spinner 400ms linear infinite;-moz-animation:loading-bar-spinner 400ms linear infinite;-ms-animation:loading-bar-spinner 400ms linear infinite;-o-animation:loading-bar-spinner 400ms linear infinite;animation:loading-bar-spinner 400ms linear infinite}@-webkit-keyframes loading-bar-spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-moz-keyframes loading-bar-spinner{0%{-moz-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(360deg);transform:rotate(360deg)}}@-o-keyframes loading-bar-spinner{0%{-o-transform:rotate(0deg);transform:rotate(0deg)}100%{-o-transform:rotate(360deg);transform:rotate(360deg)}}@-ms-keyframes loading-bar-spinner{0%{-ms-transform:rotate(0deg);transform:rotate(0deg)}100%{-ms-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes loading-bar-spinner{0%{transform:rotate(0deg);transform:rotate(0deg)}100%{transform:rotate(360deg);transform:rotate(360deg)}}
--------------------------------------------------------------------------------
/preview/vendors/css/textAngular.min.css:
--------------------------------------------------------------------------------
1 | .ta-hidden-input{width:1px;height:1px;border:none;margin:0;padding:0;position:absolute;top:-10000px;left:-10000px;opacity:0;overflow:hidden}.ta-root.focussed>.ta-scroll-window.form-control{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.ta-editor.ta-html,.ta-scroll-window.form-control{min-height:300px;height:auto;overflow:auto;font-family:inherit;font-size:100%}.ta-scroll-window.form-control{position:relative;padding:0}.ta-scroll-window>.ta-bind{height:auto;min-height:300px;padding:6px 12px}.ta-editor:focus{user-select:text}.ta-resizer-handle-overlay{z-index:100;position:absolute;display:none}.ta-resizer-handle-overlay>.ta-resizer-handle-info{position:absolute;bottom:16px;right:16px;border:1px solid #000;background-color:#FFF;padding:0 4px;opacity:.7}.ta-resizer-handle-overlay>.ta-resizer-handle-background{position:absolute;bottom:5px;right:5px;left:5px;top:5px;border:1px solid #000;background-color:rgba(0,0,0,.2)}.ta-resizer-handle-overlay>.ta-resizer-handle-corner{width:10px;height:10px;position:absolute}.ta-resizer-handle-overlay>.ta-resizer-handle-corner-tl{top:0;left:0;border-left:1px solid #000;border-top:1px solid #000}.ta-resizer-handle-overlay>.ta-resizer-handle-corner-tr{top:0;right:0;border-right:1px solid #000;border-top:1px solid #000}.ta-resizer-handle-overlay>.ta-resizer-handle-corner-bl{bottom:0;left:0;border-left:1px solid #000;border-bottom:1px solid #000}.ta-resizer-handle-overlay>.ta-resizer-handle-corner-br{bottom:0;right:0;border:1px solid #000;cursor:se-resize;background-color:#fff}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-size:14px;font-weight:400;line-height:1.42857143;text-align:left;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2)}.popover.top{margin-top:-10px}.popover.bottom{margin-top:10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}
--------------------------------------------------------------------------------
/preview/vendors/fonts/FontAwesome.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MacKentoch/easyFormGenerator/d146d9ac1aba87f8730001b61a737867a1a05695/preview/vendors/fonts/FontAwesome.otf
--------------------------------------------------------------------------------
/preview/vendors/fonts/fontawesome-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MacKentoch/easyFormGenerator/d146d9ac1aba87f8730001b61a737867a1a05695/preview/vendors/fonts/fontawesome-webfont.eot
--------------------------------------------------------------------------------
/preview/vendors/fonts/fontawesome-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MacKentoch/easyFormGenerator/d146d9ac1aba87f8730001b61a737867a1a05695/preview/vendors/fonts/fontawesome-webfont.ttf
--------------------------------------------------------------------------------
/preview/vendors/fonts/fontawesome-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MacKentoch/easyFormGenerator/d146d9ac1aba87f8730001b61a737867a1a05695/preview/vendors/fonts/fontawesome-webfont.woff
--------------------------------------------------------------------------------
/preview/vendors/fonts/fontawesome-webfont.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MacKentoch/easyFormGenerator/d146d9ac1aba87f8730001b61a737867a1a05695/preview/vendors/fonts/fontawesome-webfont.woff2
--------------------------------------------------------------------------------
/preview/vendors/fonts/glyphicons-halflings-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MacKentoch/easyFormGenerator/d146d9ac1aba87f8730001b61a737867a1a05695/preview/vendors/fonts/glyphicons-halflings-regular.eot
--------------------------------------------------------------------------------
/preview/vendors/fonts/glyphicons-halflings-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MacKentoch/easyFormGenerator/d146d9ac1aba87f8730001b61a737867a1a05695/preview/vendors/fonts/glyphicons-halflings-regular.ttf
--------------------------------------------------------------------------------
/preview/vendors/fonts/glyphicons-halflings-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MacKentoch/easyFormGenerator/d146d9ac1aba87f8730001b61a737867a1a05695/preview/vendors/fonts/glyphicons-halflings-regular.woff
--------------------------------------------------------------------------------
/preview/vendors/fonts/glyphicons-halflings-regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MacKentoch/easyFormGenerator/d146d9ac1aba87f8730001b61a737867a1a05695/preview/vendors/fonts/glyphicons-halflings-regular.woff2
--------------------------------------------------------------------------------
/preview/vendors/js/html5shiv.min.js:
--------------------------------------------------------------------------------
1 | /**
2 | * @preserve HTML5 Shiv 3.7.3 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
3 | */
4 | !function(a,b){function c(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=t.elements;return"string"==typeof a?a.split(" "):a}function e(a,b){var c=t.elements;"string"!=typeof c&&(c=c.join(" ")),"string"!=typeof a&&(a=a.join(" ")),t.elements=c+" "+a,j(b)}function f(a){var b=s[a[q]];return b||(b={},r++,a[q]=r,s[r]=b),b}function g(a,c,d){if(c||(c=b),l)return c.createElement(a);d||(d=f(c));var e;return e=d.cache[a]?d.cache[a].cloneNode():p.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!e.canHaveChildren||o.test(a)||e.tagUrn?e:d.frag.appendChild(e)}function h(a,c){if(a||(a=b),l)return a.createDocumentFragment();c=c||f(a);for(var e=c.frag.cloneNode(),g=0,h=d(),i=h.length;i>g;g++)e.createElement(h[g]);return e}function i(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return t.shivMethods?g(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-:]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(t,b.frag)}function j(a){a||(a=b);var d=f(a);return!t.shivCSS||k||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),l||i(a,d),a}var k,l,m="3.7.3",n=a.html5||{},o=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,p=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,q="_html5shiv",r=0,s={};!function(){try{var a=b.createElement("a");a.innerHTML="",k="hidden"in a,l=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return"undefined"==typeof a.cloneNode||"undefined"==typeof a.createDocumentFragment||"undefined"==typeof a.createElement}()}catch(c){k=!0,l=!0}}();var t={elements:n.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:m,shivCSS:n.shivCSS!==!1,supportsUnknownElements:l,shivMethods:n.shivMethods!==!1,type:"default",shivDocument:j,createElement:g,createDocumentFragment:h,addElements:e};a.html5=t,j(b),"object"==typeof module&&module.exports&&(module.exports=t)}("undefined"!=typeof window?window:this,document);
--------------------------------------------------------------------------------
/preview/vendors/js/loading-bar.min.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * angular-loading-bar v0.7.1
3 | * https://chieffancypants.github.io/angular-loading-bar
4 | * Copyright (c) 2015 Wes Cruver
5 | * License: MIT
6 | */
7 | !function(){"use strict";angular.module("angular-loading-bar",["cfp.loadingBarInterceptor"]),angular.module("chieffancypants.loadingBar",["cfp.loadingBarInterceptor"]),angular.module("cfp.loadingBarInterceptor",["cfp.loadingBar"]).config(["$httpProvider",function(a){var b=["$q","$cacheFactory","$timeout","$rootScope","$log","cfpLoadingBar",function(b,c,d,e,f,g){function h(){d.cancel(j),g.complete(),l=0,k=0}function i(b){var d,e=c.get("$http"),f=a.defaults;!b.cache&&!f.cache||b.cache===!1||"GET"!==b.method&&"JSONP"!==b.method||(d=angular.isObject(b.cache)?b.cache:angular.isObject(f.cache)?f.cache:e);var g=void 0!==d?void 0!==d.get(b.url):!1;return void 0!==b.cached&&g!==b.cached?b.cached:(b.cached=g,g)}var j,k=0,l=0,m=g.latencyThreshold;return{request:function(a){return a.ignoreLoadingBar||i(a)||(e.$broadcast("cfpLoadingBar:loading",{url:a.url}),0===k&&(j=d(function(){g.start()},m)),k++,g.set(l/k)),a},response:function(a){return a&&a.config?(a.config.ignoreLoadingBar||i(a.config)||(l++,e.$broadcast("cfpLoadingBar:loaded",{url:a.config.url,result:a}),l>=k?h():g.set(l/k)),a):(f.error("Broken interceptor detected: Config object not supplied in response:\n https://github.com/chieffancypants/angular-loading-bar/pull/50"),a)},responseError:function(a){return a&&a.config?(a.config.ignoreLoadingBar||i(a.config)||(l++,e.$broadcast("cfpLoadingBar:loaded",{url:a.config.url,result:a}),l>=k?h():g.set(l/k)),b.reject(a)):(f.error("Broken interceptor detected: Config object not supplied in rejection:\n https://github.com/chieffancypants/angular-loading-bar/pull/50"),b.reject(a))}}}];a.interceptors.push(b)}]),angular.module("cfp.loadingBar",[]).provider("cfpLoadingBar",function(){this.includeSpinner=!0,this.includeBar=!0,this.latencyThreshold=100,this.startSize=.02,this.parentSelector="body",this.spinnerTemplate='',this.loadingBarTemplate='',this.$get=["$injector","$document","$timeout","$rootScope",function(a,b,c,d){function e(){k||(k=a.get("$animate"));var e=b.find(n).eq(0);c.cancel(m),r||(d.$broadcast("cfpLoadingBar:started"),r=!0,u&&k.enter(o,e,angular.element(e[0].lastChild)),t&&k.enter(q,e,angular.element(e[0].lastChild)),f(v))}function f(a){if(r){var b=100*a+"%";p.css("width",b),s=a,c.cancel(l),l=c(function(){g()},250)}}function g(){if(!(h()>=1)){var a=0,b=h();a=b>=0&&.25>b?(3*Math.random()+3)/100:b>=.25&&.65>b?3*Math.random()/100:b>=.65&&.9>b?2*Math.random()/100:b>=.9&&.99>b?.005:0;var c=h()+a;f(c)}}function h(){return s}function i(){s=0,r=!1}function j(){k||(k=a.get("$animate")),d.$broadcast("cfpLoadingBar:completed"),f(1),c.cancel(m),m=c(function(){var a=k.leave(o,i);a&&a.then&&a.then(i),k.leave(q)},500)}var k,l,m,n=this.parentSelector,o=angular.element(this.loadingBarTemplate),p=o.find("div").eq(0),q=angular.element(this.spinnerTemplate),r=!1,s=0,t=this.includeSpinner,u=this.includeBar,v=this.startSize;return{start:e,set:f,status:h,inc:g,complete:j,includeSpinner:this.includeSpinner,latencyThreshold:this.latencyThreshold,parentSelector:this.parentSelector,startSize:this.startSize}}]})}();
--------------------------------------------------------------------------------
/src/app/dragdropway/components/common/dragAndDropList/dragAndDropList.module.js:
--------------------------------------------------------------------------------
1 | import dndList, {
2 | DNDLIST_DIRECTIVE
3 | } from './dragAndDropList.dndlist.directive';
4 |
5 | import dndDraggable, {
6 | DNDDRAGGABLE_DIRECTIVE
7 | } from './dragAndDropList.dndDraggable.directive';
8 |
9 | const DRAG_DROP_LIST_MODULE = 'dndLists.module';
10 |
11 | export default angular
12 | .module(DRAG_DROP_LIST_MODULE, [])
13 | .directive(DNDLIST_DIRECTIVE, dndList)
14 | .directive(DNDDRAGGABLE_DIRECTIVE, dndDraggable)
15 | .factory('dndDragTypeWorkaround', function(){ return {}; })
16 | .factory('dndDropEffectWorkaround', function(){ return {}; });
17 |
--------------------------------------------------------------------------------
/src/app/dragdropway/components/common/edaTrustThisFilter/edaDragDropWay.trustThis.filter.js:
--------------------------------------------------------------------------------
1 | const TRUST_THIS_FILTER_NAME = 'trustThis';
2 |
3 | function trustThis($sce) {
4 | return (value, type) => $sce.trustAs(type || 'html', value);
5 | }
6 |
7 | trustThis.$inject = [
8 | '$sce'
9 | ];
10 |
11 | export default trustThis;
12 |
13 | export {
14 | TRUST_THIS_FILTER_NAME
15 | };
--------------------------------------------------------------------------------
/src/app/dragdropway/components/common/edaTrustThisFilter/edaDragDropWay.trustThis.module.js:
--------------------------------------------------------------------------------
1 | import trustThis, {
2 | TRUST_THIS_FILTER_NAME
3 | } from './edaDragDropWay.trustThis.filter';
4 |
5 |
6 | const TRUST_THIS_FILTER_MODULE = 'edaDragDropWay.trustThis.filter';
7 |
8 | export default angular
9 | .module(TRUST_THIS_FILTER_MODULE, [])
10 | .filter(TRUST_THIS_FILTER_NAME, trustThis);
11 |
--------------------------------------------------------------------------------
/src/app/dragdropway/components/common/pageslide/pageslide.module.js:
--------------------------------------------------------------------------------
1 | import pageslide, {
2 | PAGE_SLIDE_DIRECTIVE
3 | } from './pageslide.directive';
4 |
5 |
6 | const PAGE_SLIDE_MODULE = 'pageslide.module';
7 |
8 | export default angular
9 | .module(PAGE_SLIDE_MODULE, [])
10 | .directive(PAGE_SLIDE_DIRECTIVE, pageslide);
11 |
--------------------------------------------------------------------------------
/src/app/dragdropway/components/common/rightclick/edaDragDropWay.rightClick.directive.js:
--------------------------------------------------------------------------------
1 | const EDA_RIGHT_CLICK_DIRECTIVE = 'edaRightClick';
2 |
3 | function edaRightClick($parse){
4 |
5 | let directive = {
6 | restrict : 'A',
7 | link : linkFct
8 | };
9 | return directive;
10 |
11 | function linkFct(scope, element, attrs){
12 | let fn = $parse(attrs.edaRightClick);
13 | let columnIndex = $parse(attrs.edaRightClickColIndex);
14 | let fctSetRightclicked = $parse(attrs.edaSetRightClicked);
15 | /**
16 | * on right click event manage
17 | * - open edit panel through attrs.edaRightClick function
18 | * - set rightCliked attribute (to true) to control (in dragDropModel)
19 | */
20 | element.on('contextmenu', (event)=>{
21 | scope.$apply(() =>{
22 | event.preventDefault();
23 | if (columnIndex(scope) === 1) fctSetRightclicked(scope, {}); //right click limited to template column (index = 1)
24 | if (columnIndex(scope) === 1) fn(scope, {$event:event}); //right click limited to template column (index = 1)
25 | });
26 | });
27 |
28 | }
29 |
30 | }
31 |
32 | edaRightClick.$inject = [
33 | '$parse'
34 | ];
35 |
36 | export default edaRightClick;
37 |
38 |
39 | export {
40 | EDA_RIGHT_CLICK_DIRECTIVE
41 | };
42 |
--------------------------------------------------------------------------------
/src/app/dragdropway/components/common/rightclick/edaDragDropWay.rightClick.module.js:
--------------------------------------------------------------------------------
1 | import edaRightClick, {
2 | EDA_RIGHT_CLICK_DIRECTIVE
3 | } from './edaDragDropWay.rightClick.directive';
4 |
5 | import ddItemRightClickedManager, {
6 | EDA_RIGHT_CLICKED_MANAGER_SERVICE
7 | } from './edaDragDropWay.rightClick.service';
8 |
9 |
10 | const EDA_RIGHT_CLICK_MODULE = 'eda.right.click.module';
11 |
12 |
13 | export default angular
14 | .module(EDA_RIGHT_CLICK_MODULE, [])
15 | .directive(EDA_RIGHT_CLICK_DIRECTIVE, edaRightClick)
16 | .service(EDA_RIGHT_CLICKED_MANAGER_SERVICE, ddItemRightClickedManager);
--------------------------------------------------------------------------------
/src/app/dragdropway/components/common/rightclick/edaDragDropWay.rightClick.service.js:
--------------------------------------------------------------------------------
1 | const EDA_RIGHT_CLICKED_MANAGER_SERVICE = 'ddItemRightClickedManager';
2 |
3 | class ddItemRightClickedManager{
4 | constructor(){
5 | this.init();
6 | }
7 |
8 | init(){
9 |
10 | }
11 |
12 | /**
13 | * setUnRightClicked
14 | * set unSelected (see edaRightClick directive)
15 | *
16 | * used in edaEditcontroller when droping control
17 | */
18 | setUnRightClicked(dragDropModelItem){
19 | dragDropModelItem.rightCliked = false;
20 | }
21 |
22 | /**
23 | * resetAllDragDropItemSelectedState
24 | *
25 | * simply reset (=set to false) all item.rightCliked
26 | * in edit column (dragable column)
27 | *
28 | * used in edaEditPanel when closeEditPanel() called
29 | */
30 | resetAllDragDropItemSelectedState(dragDropModel){
31 | angular.forEach(dragDropModel[1] ,(line)=>{
32 | angular.forEach(line, (item)=>item.rightCliked = false);
33 | });
34 |
35 | }
36 |
37 |
38 | }
39 |
40 | ddItemRightClickedManager.$inject = [];
41 |
42 | export default ddItemRightClickedManager;
43 |
44 | export {
45 | EDA_RIGHT_CLICKED_MANAGER_SERVICE
46 | };
--------------------------------------------------------------------------------
/src/app/dragdropway/components/configurationModelProxy/edaDragDropWay.configurationModelProxy.module.js:
--------------------------------------------------------------------------------
1 | import ddModelConfModelProxyService, {
2 | DRAG_DROP_CONFIG_PROXY_SERVICE
3 | } from './edaDragDropWay.configurationModelProxy.service';
4 |
5 | const EDA_CONFIG_PROXY_MODULE = 'eda.config.proxy.module';
6 |
7 | export default angular
8 | .module(EDA_CONFIG_PROXY_MODULE, [])
9 | .service(DRAG_DROP_CONFIG_PROXY_SERVICE, ddModelConfModelProxyService);
--------------------------------------------------------------------------------
/src/app/dragdropway/components/dragdrop/ddContentCounter/edaDragDropWay.dragdrop.ddContentCounter.directive.js:
--------------------------------------------------------------------------------
1 | const DD_CONTENT_COUNTER_DIRECTIVE = 'ddContentCounter';
2 |
3 | function ddContentCounter(dragDropItemCounterService, $timeout){
4 | let directive ={
5 | restrict : 'A',
6 | scope : {
7 | valueWhenPlaceholder : '@ddValueWhenPlaceholder',
8 | valueWhendragging : '@ddValueWhenDragging',
9 | fullModel : '=ddFullModel',
10 | currentIndex : '@ddContentCounterCurrentIndex',
11 | parentIndex : '@ddContentCounterParentIndex',
12 | forceRefresh : '=ddContentCounterForceCssRefresh'
13 | },
14 | link : linkfct
15 | };
16 | return directive;
17 |
18 | function linkfct($scope, element){
19 | let timer;
20 | // watch children length change : to update css item class
21 | $scope.$watch(()=>element[0].children.length,(newValue, oldValue)=>{
22 | if (newValue !== oldValue) {
23 | let newRealCount = 0;
24 | let listClassForThisRow = [];
25 | for (let i = element[0].children.length - 1; i >= 0; i--) {
26 | if(dragDropItemCounterService.isHtmlElementToCount(element[0].children[i].classList)){
27 | newRealCount++;
28 | listClassForThisRow.push( {item: i, isReal : true} );
29 | }else{
30 | listClassForThisRow.push( {item: i, isReal : false} );
31 | }
32 | }
33 | $scope.contentRealCount = newRealCount;
34 | // a timer otherwise won't refresh everytime
35 | timer = $timeout(() => {
36 | dragDropItemCounterService.updateLineItemCss($scope.fullModel, listClassForThisRow, $scope.parentIndex, $scope.currentIndex, newRealCount);
37 | }, 20);
38 |
39 | }
40 | });
41 |
42 | $scope.$on('$destroy', ()=>{
43 | $timeout.cancel(timer);}
44 | );
45 | }
46 |
47 | }
48 |
49 | ddContentCounter.$inject = [
50 | 'dragDropItemCounterService',
51 | '$timeout'
52 | ];
53 |
54 | export default ddContentCounter;
55 |
56 | export {
57 | DD_CONTENT_COUNTER_DIRECTIVE
58 | };
--------------------------------------------------------------------------------
/src/app/dragdropway/components/dragdrop/ddContentCounter/edaDragDropWay.dragdrop.ddContentCounter.service.js:
--------------------------------------------------------------------------------
1 | const DRAG_DROP_ITEM_COUNTER_SERVICE = 'dragDropItemCounterService';
2 |
3 | class dragDropItemCounterService{
4 |
5 | constructor(easyFormDragWayConfig){
6 | this.easyFormDragWayConfig = easyFormDragWayConfig;
7 | this.init();
8 | }
9 |
10 | init(){
11 | this._modelItemRealCounter = [];
12 | this._itemsNotToCount = angular.copy(this.easyFormDragWayConfig.getItemsNotToCount());
13 | }
14 |
15 | getItemsNotToCount(){
16 | return this._itemsNotToCount;
17 | }
18 |
19 | getModelItemsRealCounter(){
20 | return this._modelItemRealCounter;
21 | }
22 |
23 | isHtmlElementToCount(htmlvalue){
24 | let isToCount = true;
25 | if (htmlvalue.length > 0) {
26 | angular.forEach(this._itemsNotToCount, (value)=>{
27 | for (let classes = htmlvalue.length - 1; classes >= 0; classes--) {
28 | if (htmlvalue[classes] === value) isToCount = isToCount && false;
29 | }
30 | });
31 | }
32 | return isToCount;
33 | }
34 |
35 | updateLineItemCss(fullModel, listCssToApply, columIndex, lineIndex, realCount){
36 | if (typeof fullModel !== 'undefined' &&
37 | typeof listCssToApply !== 'undefined' &&
38 | typeof columIndex !== 'undefined' &&
39 | typeof lineIndex !== 'undefined' &&
40 | typeof realCount !== 'undefined') {
41 | for (let i = fullModel[columIndex][lineIndex].length - 1; i >= 0; i--) {
42 | for (let j = 0; j < listCssToApply.length; j++) {
43 | if( listCssToApply[j].item === i &&
44 | listCssToApply[j].isReal === true){
45 | fullModel[columIndex][lineIndex][i].cssClass = this.easyFormDragWayConfig.getItemCssDependingNumberItemsInRow(realCount);
46 | }
47 | }
48 | }
49 | return true;
50 | }
51 | }
52 |
53 |
54 | }
55 |
56 | dragDropItemCounterService.$inject = [
57 | 'easyFormDragWayConfig'
58 | ];
59 |
60 | export default dragDropItemCounterService;
61 |
62 | export {
63 | DRAG_DROP_ITEM_COUNTER_SERVICE
64 | };
--------------------------------------------------------------------------------
/src/app/dragdropway/components/dragdrop/ddDecorContainer/edaDragDropWay.dragdrop.ddDecorContainer.controller.js:
--------------------------------------------------------------------------------
1 | /* global angular */
2 | const DD_DECOR_CONTAINER_CONTROLLER_NAME = 'ddDecorContainerController';
3 | const DD_DECOR_CONTAINER_CONTROLLERAS_NAME = 'ddDecorContainerCtrl';
4 |
5 | class ddDecorContainerController{
6 |
7 | constructor(){
8 | this.init();
9 | }
10 |
11 | init(){
12 | this.config = angular.extend({}, { isEnabled : false });
13 | /**
14 | * TODO (low priority) : make icon css configurable (provider)
15 | */
16 | this.icons = angular.extend({}, {
17 | closedClass : 'glyphicon glyphicon-eye-open',
18 | opened : 'glyphicon glyphicon-eye-close'
19 | });
20 | }
21 |
22 | collapseFct(){
23 | this.collpaseAll({exceptThisOne: this.styleParam.WhenIndex}); //note : collpaseAll function is boundToController from directive attribute : 'collpaseAll' : '&ddCollapseAll'
24 | this.isCollapsed = !this.isCollapsed;
25 | this.isStillCollapsed = this.isCollapsed; //note : isStillCollapsed is boundToController from directive attribute : 'isStillCollapsed' : '=ddContainerIsCollpased',
26 | }
27 |
28 | currentIconClass(){
29 | if (this.isCollapsed) {
30 | return this.icons.closedClass;
31 | }else{
32 | return this.icons.opened;
33 | }
34 | }
35 |
36 | }
37 |
38 | export default ddDecorContainerController;
39 |
40 | export {
41 | DD_DECOR_CONTAINER_CONTROLLER_NAME,
42 | DD_DECOR_CONTAINER_CONTROLLERAS_NAME
43 | };
44 |
--------------------------------------------------------------------------------
/src/app/dragdropway/components/dragdrop/ddDecorContainer/edaDragDropWay.dragdrop.ddDecorContainer.template.html:
--------------------------------------------------------------------------------
1 |
2 |
6 |
9 |
10 | {{ddDecorContainerCtrl.currentTitle}}
11 |
12 |
13 |
16 |
--------------------------------------------------------------------------------
/src/app/dragdropway/components/dragdrop/ddDecorDropZone/edaDragDropWay.dragdrop.ddDecorDropZone.directive.js:
--------------------------------------------------------------------------------
1 | /* global angular */
2 | import ddDecorDropZoneTemplate from './edaDragDropWay.dragdrop.ddDecorDropZone.template.html';
3 |
4 | const DD_DECOR_DROPZONE_DIRECTIVE = 'ddDecorDropZone';
5 |
6 | function ddDecorDropZone(){
7 | let directive = {
8 | restrict : 'A',
9 | template : ddDecorDropZoneTemplate,
10 | scope : {
11 | 'styleParam' : '=ddDropZoneProperties',
12 | 'verboseMode' : '@ddDropZoneVerboseMode',
13 | 'currentIndex' : '@ddDropZoneCurrentIndex',
14 | 'addNewLineFct' : '&ddDropZoneAddNewLine'
15 | },
16 | transclude : true,
17 | link : linkfct
18 | };
19 | return directive;
20 |
21 | function linkfct($scope){
22 |
23 | let verboseModeActive = $scope.verboseMode;
24 | let currentIndex = $scope.currentIndex;
25 |
26 | $scope.headerConfig = {
27 | HeaderButtonVisible : false,
28 | affixAttr : 'bs-affix',
29 | affixEnabled : false
30 | };
31 | /**
32 | * verbose mode : just for dev
33 | */
34 | if (verboseModeActive !== '') {
35 | let verbose = angular.lowercase(verboseModeActive);
36 | if (verbose === 'true' || verbose === '1') {
37 | /* eslint no-console:0 */
38 | console.dir({
39 | whoAmI : 'I am verbose from ddDecorDropZone link',
40 | verbodeMode : verbose,
41 | ParentParentIndex : $scope.$parent.$parent.$index,
42 | ParentIndex : $scope.$parent.$index,
43 | currentIndex : currentIndex,
44 | styleParam : $scope.styleParam
45 | });
46 | }
47 | }
48 |
49 |
50 | if (typeof currentIndex !== 'undefined') {
51 | if (currentIndex !== '') {
52 | // apply title
53 | if (typeof $scope.styleParam.title !== 'undefined') $scope.currentTitle = $scope.styleParam.title;
54 | //apply font-awesome
55 | if (typeof $scope.styleParam.fontAwesomeIcon !== 'undefined') $scope.currentFontAwesome = $scope.styleParam.fontAwesomeIcon;
56 | //show add new line button
57 | if (currentIndex === '1') $scope.headerConfig.HeaderButtonVisible = true;
58 | }
59 | }
60 |
61 | }
62 |
63 | }
64 |
65 |
66 | ddDecorDropZone.$inject = [];
67 |
68 | export default ddDecorDropZone;
69 |
70 | export {
71 | DD_DECOR_DROPZONE_DIRECTIVE
72 | };
73 |
--------------------------------------------------------------------------------
/src/app/dragdropway/components/dragdrop/ddDecorDropZone/edaDragDropWay.dragdrop.ddDecorDropZone.template.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | {{currentTitle}}
8 |
9 |
16 |
17 |
18 |
19 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/src/app/dragdropway/components/dragdrop/ddDecorItem/edaDragDropWay.dragdrop.ddDecorItem.directive.js:
--------------------------------------------------------------------------------
1 |
2 | import dragdropItemTemplate from './edaDragDropWay.dragdrop.ddDecorItem.template.html';
3 |
4 | const DRAG_DROP_DECOR_ITEM = 'ddDecorItem';
5 |
6 | function ddDecorItem(easyFormDragWayConfig){
7 | let directive = {
8 | restrict : 'A',
9 | scope : {
10 | 'verboseMode' : '@ddItemVerboseMode',
11 | 'currentIndex' : '@ddItemCurrentIndex',
12 | 'parentIndex' : '@ddItemParentIndex',
13 | 'parentParentIndex' : '@ddItemParentParentIndex',
14 | 'lineItemsCount' : '@ddItemsCount',
15 | 'cssClass' : '@ddItemCssClass'
16 | },
17 | template : dragdropItemTemplate,
18 | transclude : true,
19 | link : linkfct
20 | };
21 | return directive;
22 |
23 | function linkfct($scope, element, attrs, ctrl, transclude){
24 | let verboseModeActive = $scope.verboseMode;
25 | let currentIndex = $scope.currentIndex;
26 | let parentIndex = $scope.parentIndex;
27 | let listClass = easyFormDragWayConfig.getDistinctItemCssClass();
28 |
29 |
30 | /**
31 | * init css class
32 | */
33 | angular.forEach(listClass, (css)=>element.removeClass(css));
34 | element.addClass($scope.cssClass);
35 | /**
36 | * update css class
37 | */
38 | $scope.$watch('cssClass', (newValue, oldValue)=>{
39 | if(newValue !== oldValue){
40 | /**
41 | * update css class
42 | */
43 | angular.forEach(listClass, (css)=>element.removeClass(css));
44 | element.addClass(newValue);
45 | }
46 | });
47 |
48 | /**
49 | * verbose mode : just for dev
50 | */
51 | if (verboseModeActive !== '') {
52 | let verbose = angular.lowercase(verboseModeActive);
53 | if (verbose === 'true' || verbose === '1') {
54 | /* eslint no-console:0 */
55 | console.dir({
56 | whoAmI : 'I am verbose from ddDecorItem directive link',
57 | verbodeMode : verbose,
58 | ParentParentIndex : $scope.$parent.$parent.$index,
59 | ParentIndex : parentIndex,
60 | parentParentIndex : $scope.parentParentIndex,
61 | currentIndex : currentIndex,
62 | lineItemsCount : $scope.lineItemsCount
63 | });
64 | }
65 | }
66 | /**
67 | * control column : apply css class to item
68 | */
69 | if ($scope.parentParentIndex === '0') element.addClass(listClass[0]);
70 | /**
71 | * prevent transclusion creating child scope
72 | *
73 | *
74 | * NOTE :if you want to know more about what I'm saying : check this nice tip on the subject :
75 | * http://angular-tips.com/blog/2014/03/transclusion-and-scopes/
76 | */
77 | transclude($scope.$parent, (contentClone)=>{
78 | /**
79 | * transclusion will append content to ''
80 | */
81 | let childDiv = angular.element(element.children()[0]);
82 | childDiv.append(contentClone);
83 | });
84 | }
85 |
86 | }
87 |
88 |
89 | ddDecorItem.$inject = [
90 | 'easyFormDragWayConfig'
91 | ];
92 |
93 | export default ddDecorItem;
94 |
95 | export {
96 | DRAG_DROP_DECOR_ITEM
97 | };
98 |
99 |
--------------------------------------------------------------------------------
/src/app/dragdropway/components/dragdrop/ddDecorItem/edaDragDropWay.dragdrop.ddDecorItem.service.js:
--------------------------------------------------------------------------------
1 | const DRAG_DROP_ITEM_DECOR_SERVICE = 'dragDropItemDecorationService';
2 |
3 | class dragDropItemDecorationService {
4 |
5 | constructor(easyFormDragWayConfig){
6 | this.easyFormDragWayConfig = easyFormDragWayConfig;
7 | this.init();
8 | }
9 |
10 | init(){
11 | this._listItemClass = [].concat(this.easyFormDragWayConfig.getListItemCssClass());
12 | }
13 |
14 | getListClass(){
15 | return this._listItemClass;
16 | }
17 |
18 | getCssClassWhenNumberItemsInRowIs(thisNumber){
19 | return this.easyFormDragWayConfig.getItemCssDependingNumberItemsInRow(thisNumber);
20 | }
21 |
22 | applyCssClassWholeLine(model, indexColumn, indexLine, numberItems, restrictToThisIndexColumn){
23 | if (typeof numberItems !== 'undefined' &&
24 | typeof indexLine !== 'undefined' &&
25 | typeof indexColumn !== 'undefined' &&
26 | typeof model !== 'undefined' &&
27 | typeof restrictToThisIndexColumn !== 'undefined') {
28 | if (indexColumn === restrictToThisIndexColumn) {
29 | for (let i = model[indexColumn][indexLine].length - 1; i >= 0; i--) {
30 | model[indexColumn][indexLine][i].cssClass = this.easyFormDragWayConfig.getItemCssDependingNumberItemsInRow(numberItems);
31 | }
32 | }
33 | return true;
34 | }else{
35 | return false;
36 | }
37 | }
38 |
39 | updateCssClassWholeColumn(model, indexColumn){
40 | if (typeof indexColumn !== 'undefined' &&
41 | typeof model !== 'undefined') {
42 | for (let cpt = model[indexColumn].length - 1; cpt >= 0; cpt--) {
43 | for (let i = model[indexColumn][cpt].length - 1; i >= 0; i--) {
44 | model[indexColumn][cpt][i].cssClass = this.easyFormDragWayConfig.getItemCssDependingNumberItemsInRow(model[indexColumn][cpt].length);
45 | }
46 | }
47 | return true;
48 | }else{
49 | return false;
50 | }
51 | }
52 |
53 |
54 | }
55 |
56 | dragDropItemDecorationService.$inject = [
57 | 'easyFormDragWayConfig'
58 | ];
59 |
60 | export default dragDropItemDecorationService;
61 |
62 | export {
63 | DRAG_DROP_ITEM_DECOR_SERVICE
64 | };
65 |
66 |
--------------------------------------------------------------------------------
/src/app/dragdropway/components/dragdrop/ddDecorItem/edaDragDropWay.dragdrop.ddDecorItem.template.html:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/src/app/dragdropway/components/dragdrop/ddDecorLine/edaDragDropWay.dragdrop.ddDecorLine.template.html:
--------------------------------------------------------------------------------
1 |
5 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/src/app/dragdropway/components/dragdrop/ddNoEditableControl/edaDragDropWay.dragdrop.ddNoEditableControl.directive.js:
--------------------------------------------------------------------------------
1 | const DRAG_DROP_NO_EDITABLE_CONTROL = 'ddNoEditableControl';
2 |
3 | function ddNoEditableControl() {
4 | let directive = {
5 | restrict : 'A',
6 | link : linkfct
7 | };
8 | return directive;
9 |
10 | function linkfct($scope, element) {
11 | element.on('click', (event)=>event.preventDefault());
12 | }
13 | }
14 |
15 | ddNoEditableControl.$inject = [];
16 |
17 | export default ddNoEditableControl;
18 |
19 | export {
20 | DRAG_DROP_NO_EDITABLE_CONTROL
21 | };
22 |
--------------------------------------------------------------------------------
/src/app/dragdropway/components/dragdrop/edaDragDropWay.dragdrop.module.js:
--------------------------------------------------------------------------------
1 | /* global angular */
2 | import ddContentCounter, {
3 | DD_CONTENT_COUNTER_DIRECTIVE
4 | } from './ddContentCounter/edaDragDropWay.dragdrop.ddContentCounter.directive';
5 | import dragDropItemCounterService, {
6 | DRAG_DROP_ITEM_COUNTER_SERVICE
7 | } from './ddContentCounter/edaDragDropWay.dragdrop.ddContentCounter.service';
8 | import ddDecorContainerDirective, {
9 | DD_DECOR_CONTAINER_DIRECTIVE
10 | } from './ddDecorContainer/edaDragDropWay.dragdrop.ddDecorContainer.directive';
11 | import ddDecorContainerController, {
12 | DD_DECOR_CONTAINER_CONTROLLER_NAME
13 | } from './ddDecorContainer/edaDragDropWay.dragdrop.ddDecorContainer.controller';
14 | import ddDecorDropZone, {
15 | DD_DECOR_DROPZONE_DIRECTIVE
16 | } from './ddDecorDropZone/edaDragDropWay.dragdrop.ddDecorDropZone.directive';
17 | import ddDecorItem, {
18 | DRAG_DROP_DECOR_ITEM
19 | } from './ddDecorItem/edaDragDropWay.dragdrop.ddDecorItem.directive';
20 | import dragDropItemDecorationService, {
21 | DRAG_DROP_ITEM_DECOR_SERVICE
22 | } from './ddDecorItem/edaDragDropWay.dragdrop.ddDecorItem.service';
23 | import ddDecorLine, {
24 | DRAG_DROP_DECOR_LINE
25 | } from './ddDecorLine/edaDragDropWay.dragdrop.ddDecorLine.directive';
26 |
27 | import ddNoEditableControl, {
28 | DRAG_DROP_NO_EDITABLE_CONTROL
29 | } from './ddNoEditableControl/edaDragDropWay.dragdrop.ddNoEditableControl.directive';
30 |
31 |
32 | const DRAGDROP_MODULE = 'edaDragDropWay.dragdrop.module';
33 |
34 | export default angular
35 | .module(DRAGDROP_MODULE, [])
36 | .directive(DD_CONTENT_COUNTER_DIRECTIVE, ddContentCounter)
37 | .controller(DD_DECOR_CONTAINER_CONTROLLER_NAME, ddDecorContainerController)
38 | .directive(DD_DECOR_CONTAINER_DIRECTIVE, ddDecorContainerDirective)
39 | .directive(DD_DECOR_DROPZONE_DIRECTIVE, ddDecorDropZone)
40 | .directive(DRAG_DROP_DECOR_ITEM, ddDecorItem)
41 | .service(DRAG_DROP_ITEM_DECOR_SERVICE, dragDropItemDecorationService)
42 | .directive(DRAG_DROP_NO_EDITABLE_CONTROL, ddNoEditableControl)
43 | .service(DRAG_DROP_ITEM_COUNTER_SERVICE, dragDropItemCounterService)
44 | .directive(DRAG_DROP_DECOR_LINE, ddDecorLine)
45 | ;
--------------------------------------------------------------------------------
/src/app/dragdropway/components/edaDragDropWayEasyFormGen/edaDragDropWay.edaDragdropWayEasyFormGen.controller.helpers.js:
--------------------------------------------------------------------------------
1 | /* global angular */
2 | const DEBUG_MODEL = {
3 | showDebug : false,
4 | configurationModelNumberofLines : 1
5 | };
6 | const initDebugModel = () => angular.copy(DEBUG_MODEL);
7 |
8 |
9 |
10 | const DEFAULT_TAB_MODEL = {
11 | editTab : {
12 | active : true
13 | },
14 | previewTab : {
15 | active : false,
16 | tabVisible : true,
17 | modelsVisible : true
18 | }
19 | };
20 |
21 | const initTabModel = (isPreviewPanelVisible, arePreviewModelsVisible) => {
22 | let _tabModel = angular.copy(DEFAULT_TAB_MODEL);
23 | angular.extend(_tabModel.previewTab, {
24 | tabVisible : isPreviewPanelVisible,
25 | modelsVisible : arePreviewModelsVisible
26 | });
27 | return _tabModel;
28 | };
29 |
30 |
31 | const COLUMN_TEMPLATE = {
32 | numColumn : -1,
33 | exist :true,
34 | control : {
35 | type :'none',
36 | key : 'none',
37 | subtype : 'none'
38 | // templateOptions: {
39 | // label: 'none',
40 | // placeholder: 'none',
41 | // required: false,
42 | // description: 'Descriptive text'
43 | // }
44 | }
45 | };
46 | const initColumnTemplate = () => angular.copy(COLUMN_TEMPLATE);
47 |
48 |
49 | const LINE_TEMPLATE = {
50 | line:-1,
51 | activeColumn : 1,
52 | columns: [
53 | {
54 | numColumn: 1,
55 | exist:true,
56 | control: {
57 | type:'none',
58 | key: 'none'
59 | // templateOptions: {
60 | // label: 'none',
61 | // placeholder: 'none',
62 | // required: false,
63 | // description: 'Descriptive text'
64 | // }
65 | }
66 | }
67 | ]
68 | };
69 | const initLineTemplate = () => angular.copy(LINE_TEMPLATE);
70 |
71 |
72 | const DEFAULT_IHM_MODEL = {
73 | preview : {
74 | formlyModelViewExpanded : true,
75 | formlyFieldsViewExpanded : true,
76 | customizeFormButtonsExpanded : true,
77 | saveThisFormExpanded : true
78 | }
79 | };
80 |
81 |
82 | const initIhmModel = () => angular.copy(DEFAULT_IHM_MODEL);
83 |
84 | export {
85 | initDebugModel,
86 | initTabModel,
87 | initColumnTemplate,
88 | initLineTemplate,
89 | initIhmModel
90 | };
--------------------------------------------------------------------------------
/src/app/dragdropway/components/edaDragDropWayEasyFormGen/edaDragDropWay.edaDragdropWayEasyFormGen.module.js:
--------------------------------------------------------------------------------
1 | /* global angular */
2 |
3 | import easyFormDragWayConfig, {
4 | EASY_FORM_DRAG_DROP_WAY_CONFIG_NAME
5 | } from './edaDragDropWay.edaDragdropWayEasyFormGen.provider';
6 | import edaDragDropWayEasyFormGenCtrl, {
7 | DRAG_DROP_WAY_EASY_FORM_GEN_CONTROLLER
8 | } from './edaDragDropWay.edaDragdropWayEasyFormGen.controller';
9 | import edaDragdropWayEasyFormGen, {
10 | EDA_DRAGDROP_WAY_EASY_FORM_GEN_DIRECTIVE
11 | } from './edaDragDropWay.edaDragdropWayEasyFormGen.directive';
12 |
13 |
14 | const DRAGDROP_MODULE = 'edaDragDropWay.main.module';
15 |
16 | export default angular
17 | .module(DRAGDROP_MODULE, [])
18 | .provider(EASY_FORM_DRAG_DROP_WAY_CONFIG_NAME, easyFormDragWayConfig)
19 | .controller(DRAG_DROP_WAY_EASY_FORM_GEN_CONTROLLER, edaDragDropWayEasyFormGenCtrl)
20 | .directive(EDA_DRAGDROP_WAY_EASY_FORM_GEN_DIRECTIVE, edaDragdropWayEasyFormGen);
--------------------------------------------------------------------------------
/src/app/dragdropway/components/edaDragDropWayEasyFormGen/jsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "ES6",
4 | "module": "commonjs"
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/src/app/dragdropway/components/formlyProxy/edaDragDropWay.formlyProxy.formFieldManage.module.js:
--------------------------------------------------------------------------------
1 | import formFieldManage, {
2 | FORM_FIELD_MANAGE_SERVICE
3 | } from './edaDragDropWay.formlyProxy.formFieldManage.service';
4 |
5 | import EasyFormGenFormlyBindingModels, {
6 | EASY_FORM_FORMLY_BINDING_MODEL_PROVIDER
7 | } from './edaDragDropWay.formlyProxy.formFieldManage.provider';
8 |
9 |
10 |
11 | const FORMLY_PROXY_MODULE = '';
12 |
13 | export default angular
14 | .module(FORMLY_PROXY_MODULE, [])
15 | .service(FORM_FIELD_MANAGE_SERVICE, formFieldManage)
16 | .provider(EASY_FORM_FORMLY_BINDING_MODEL_PROVIDER, EasyFormGenFormlyBindingModels);
--------------------------------------------------------------------------------
/src/app/dragdropway/components/leftPanel/BasicSelectControl/edaDragDropWay.leftpanel.basicSelectControl.directive.js:
--------------------------------------------------------------------------------
1 | import leftPanelBasicSelectControlTemplate from './edaDragDropWay.leftpanel.basicSelectControl.template.html';
2 |
3 | const LEFT_PANEL_BASIC_SELECT_CONTROL_DIRECTIVE = 'leftPanelBasicSelectControl';
4 |
5 | function leftPanelBasicSelectControl() {
6 | let directive = {
7 | restrict : 'E',
8 | template : leftPanelBasicSelectControlTemplate
9 | };
10 | return directive;
11 | }
12 |
13 | leftPanelBasicSelectControl.$inject = [];
14 |
15 | export default leftPanelBasicSelectControl;
16 |
17 | export {
18 | LEFT_PANEL_BASIC_SELECT_CONTROL_DIRECTIVE
19 | };
20 |
--------------------------------------------------------------------------------
/src/app/dragdropway/components/leftPanel/BlankControl/edaDragDropWay.leftpanel.blankControl.directive.js:
--------------------------------------------------------------------------------
1 | import leftPanelBlankControlTemplate from './edaDragDropWay.leftpanel.blankControl.template.html';
2 |
3 | const LEFT_PANEL_BLANK_CONTROL_DIRECTIVE = 'leftPanelBlankControl';
4 |
5 | function leftPanelBlankControl() {
6 | let directive = {
7 | restrict : 'E',
8 | template : leftPanelBlankControlTemplate
9 | };
10 | return directive;
11 | }
12 |
13 | leftPanelBlankControl.$inject = [];
14 |
15 | export default leftPanelBlankControl;
16 |
17 | export {
18 | LEFT_PANEL_BLANK_CONTROL_DIRECTIVE
19 | };
20 |
--------------------------------------------------------------------------------
/src/app/dragdropway/components/leftPanel/BlankControl/edaDragDropWay.leftpanel.blankControl.template.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | Edit :
9 |
10 |
11 |
12 |
13 |
14 |
15 | Column will be blank
16 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/src/app/dragdropway/components/leftPanel/CheckBoxControl/edaDragDropWay.leftpanel.checkBoxControl.directive.js:
--------------------------------------------------------------------------------
1 |
2 | import leftPanelCheckBoxControlTemplate from './edaDragDropWay.leftpanel.checkBoxControl.template.html';
3 |
4 | const LEFT_PANEL_CHECKBOX_CONTROL_DIRECTIVE = 'leftPanelCheckBoxControl';
5 |
6 | function leftPanelCheckBoxControl() {
7 | let directive = {
8 | restrict : 'E',
9 | template : leftPanelCheckBoxControlTemplate
10 | };
11 | return directive;
12 | }
13 |
14 | leftPanelCheckBoxControl.$inject = [];
15 |
16 | export default leftPanelCheckBoxControl;
17 |
18 | export {
19 | LEFT_PANEL_CHECKBOX_CONTROL_DIRECTIVE
20 | };
21 |
--------------------------------------------------------------------------------
/src/app/dragdropway/components/leftPanel/CheckBoxControl/edaDragDropWay.leftpanel.checkBoxControl.template.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | Edit properties :
9 |
10 |
11 |
12 |
13 |
32 |
33 |
51 |
52 |
71 |
72 |
73 |
74 |
--------------------------------------------------------------------------------
/src/app/dragdropway/components/leftPanel/DateControl/edaDragDropWay.leftpanel.dateControl.directive.js:
--------------------------------------------------------------------------------
1 |
2 | import leftPanelDateControlTemplate from './edaDragDropWay.leftpanel.dateControl.template.html';
3 |
4 | const LEFT_PANEL_DATE_CONTROL_DIRECTIVE = 'leftPanelDateControl';
5 |
6 | function leftPanelDateControl() {
7 | let directive = {
8 | restrict : 'E',
9 | template : leftPanelDateControlTemplate
10 | };
11 | return directive;
12 | }
13 |
14 | leftPanelDateControl.$inject = [];
15 |
16 | export default leftPanelDateControl;
17 |
18 | export {
19 | LEFT_PANEL_DATE_CONTROL_DIRECTIVE
20 | };
21 |
--------------------------------------------------------------------------------
/src/app/dragdropway/components/leftPanel/DateControl/edaDragDropWay.leftpanel.dateControl.template.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | Edit properties :
9 |
10 |
11 |
12 |
13 |
16 |
31 |
32 |
51 |
52 |
70 |
71 |
90 |
91 |
92 |
93 |
--------------------------------------------------------------------------------
/src/app/dragdropway/components/leftPanel/GroupedSelectControl/edaDragDropWay.leftpanel.groupedSelectControl.directive.js:
--------------------------------------------------------------------------------
1 |
2 | import leftPanelGroupedSelectControlTemplate from './edaDragDropWay.leftpanel.groupedSelectControl.template.html';
3 |
4 | const LEFT_PANEL_GROUPED_SELECT_CONTROL_DIRECTIVE = 'leftPanelGroupedSelectControl';
5 |
6 | function leftPanelGroupedSelectControl() {
7 | let directive = {
8 | restrict : 'E',
9 | template : leftPanelGroupedSelectControlTemplate
10 | };
11 | return directive;
12 | }
13 |
14 | leftPanelGroupedSelectControl.$inject = [];
15 |
16 | export default leftPanelGroupedSelectControl;
17 |
18 | export {
19 | LEFT_PANEL_GROUPED_SELECT_CONTROL_DIRECTIVE
20 | };
21 |
--------------------------------------------------------------------------------
/src/app/dragdropway/components/leftPanel/HeaderControl/edaDragDropWay.leftpanel.headerControl.directive.js:
--------------------------------------------------------------------------------
1 | import leftPanelHeaderControlTemplate from './edaDragDropWay.leftpanel.headerControl.template.html';
2 |
3 | const LEFT_PANEL_HEADER_CONTROL_DIRECTIVE = 'leftPanelHeaderControl';
4 |
5 | function leftPanelHeaderControl() {
6 | let directive = {
7 | restrict : 'E',
8 | template : leftPanelHeaderControlTemplate
9 | };
10 | return directive;
11 |
12 | }
13 |
14 | leftPanelHeaderControl.$inject = [];
15 |
16 | export default leftPanelHeaderControl;
17 |
18 | export {
19 | LEFT_PANEL_HEADER_CONTROL_DIRECTIVE
20 | };
21 |
--------------------------------------------------------------------------------
/src/app/dragdropway/components/leftPanel/HeaderControl/edaDragDropWay.leftpanel.headerControl.template.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | Edit properties :
9 |
10 |
11 |
12 |
13 |
32 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/src/app/dragdropway/components/leftPanel/PasswordControl/edaDragDropWay.leftpanel.passwordControl.directive.js:
--------------------------------------------------------------------------------
1 |
2 | import leftPanelPasswordControlTemplate from './edaDragDropWay.leftpanel.passwordControl.template.html';
3 |
4 | const LEFT_PANEL_PASSWORD_CONTROL_DIRECTIVE = 'leftPanelPasswordControl';
5 |
6 | function leftPanelPasswordControl() {
7 | let directive = {
8 | restrict : 'E',
9 | template : leftPanelPasswordControlTemplate
10 | };
11 | return directive;
12 | }
13 |
14 | leftPanelPasswordControl.$inject = [];
15 |
16 | export default leftPanelPasswordControl;
17 |
18 | export {
19 | LEFT_PANEL_PASSWORD_CONTROL_DIRECTIVE
20 | };
21 |
--------------------------------------------------------------------------------
/src/app/dragdropway/components/leftPanel/PasswordControl/edaDragDropWay.leftpanel.passwordControl.template.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | Edit properties :
9 |
10 |
11 |
12 |
13 |
32 |
33 |
52 |
53 |
71 |
72 |
91 |
92 |
93 |
94 |
--------------------------------------------------------------------------------
/src/app/dragdropway/components/leftPanel/RadioControl/edaDragDropWay.leftpanel.radioControl.directive.js:
--------------------------------------------------------------------------------
1 |
2 | import leftPanelRadioControlTemplate from './edaDragDropWay.leftpanel.radioControl.template.html';
3 |
4 | const LEFT_PANEL_RADIO_CONTROL_DIRECTIVE = 'leftPanelRadioControl';
5 |
6 | function leftPanelRadioControl() {
7 | let directive = {
8 | restrict : 'E',
9 | template : leftPanelRadioControlTemplate
10 | };
11 | return directive;
12 | }
13 |
14 | leftPanelRadioControl.$inject = [];
15 |
16 | export default leftPanelRadioControl;
17 |
18 | export {
19 | LEFT_PANEL_RADIO_CONTROL_DIRECTIVE
20 | };
21 |
--------------------------------------------------------------------------------
/src/app/dragdropway/components/leftPanel/RichTextEditorControl/edaDragDropWay.leftpanel.richTextEditorControl.directive.js:
--------------------------------------------------------------------------------
1 |
2 | import leftPanelRichTextEditorControlTemplate from './edaDragDropWay.leftpanel.richTextEditorControl.template.html';
3 |
4 | const LEFT_PANEL_RICH_TEXT_EDITOR_CONTROL_DIRECTIVE = 'leftPanelRichTextEditorControl';
5 |
6 | function leftPanelRichTextEditorControl() {
7 | let directive = {
8 | restrict : 'E',
9 | template : leftPanelRichTextEditorControlTemplate
10 | };
11 | return directive;
12 | }
13 |
14 | leftPanelRichTextEditorControl.$inject = [];
15 |
16 | export default leftPanelRichTextEditorControl;
17 |
18 | export {
19 | LEFT_PANEL_RICH_TEXT_EDITOR_CONTROL_DIRECTIVE
20 | };
21 |
--------------------------------------------------------------------------------
/src/app/dragdropway/components/leftPanel/RichTextEditorControl/edaDragDropWay.leftpanel.richTextEditorControl.template.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Edit properties :
8 |
9 |
10 |
11 |
12 |
31 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/src/app/dragdropway/components/leftPanel/SubTitleControl/edaDragDropWay.leftpanel.subtitleControl.directive.js:
--------------------------------------------------------------------------------
1 | import leftPanelSubtitleControlTemplate from './edaDragDropWay.leftpanel.subtitleControl.template.html';
2 |
3 | const LEFT_PANEL_SUBTITLE_CONTROL_DIRECTIVE = 'leftPanelSubtitleControl';
4 |
5 | function leftPanelSubtitleControl() {
6 | let directive = {
7 | restrict : 'E',
8 | template : leftPanelSubtitleControlTemplate
9 | };
10 | return directive;
11 | }
12 |
13 | leftPanelSubtitleControl.$inject = [];
14 |
15 | export default leftPanelSubtitleControl;
16 |
17 | export {
18 | LEFT_PANEL_SUBTITLE_CONTROL_DIRECTIVE
19 | };
20 |
--------------------------------------------------------------------------------
/src/app/dragdropway/components/leftPanel/SubTitleControl/edaDragDropWay.leftpanel.subtitleControl.template.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | Edit properties :
9 |
10 |
11 |
12 |
13 |
32 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/src/app/dragdropway/components/leftPanel/TextAreaControl/edaDragDropWay.leftpanel.textareaControl.directive.js:
--------------------------------------------------------------------------------
1 |
2 | import leftPanelTextareaControlTemplate from './edaDragDropWay.leftpanel.textareaControl.template.html';
3 |
4 | const LEFT_PANEL_TEXTAREA_CONTROL_DIRECTIVE = 'leftPanelTextareaControl';
5 |
6 | function leftPanelTextareaControl() {
7 | let directive = {
8 | restrict : 'E',
9 | template : leftPanelTextareaControlTemplate
10 | };
11 | return directive;
12 | }
13 |
14 | leftPanelTextareaControl.$inject = [];
15 |
16 | export default leftPanelTextareaControl;
17 |
18 | export {
19 | LEFT_PANEL_TEXTAREA_CONTROL_DIRECTIVE
20 | };
21 |
--------------------------------------------------------------------------------
/src/app/dragdropway/components/leftPanel/TextAreaControl/edaDragDropWay.leftpanel.textareaControl.template.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | Edit properties :
9 |
10 |
11 |
12 |
13 |
32 |
33 |
53 |
54 |
73 |
74 |
75 |
76 |
--------------------------------------------------------------------------------
/src/app/dragdropway/components/leftPanel/TextInputControl/edaDragDropWay.leftpanel.textInputControl.directive.js:
--------------------------------------------------------------------------------
1 |
2 | import leftPanelTextInputControlTemplate from './edaDragDropWay.leftpanel.textInputControl.template.html';
3 |
4 | const LEFT_PANEL_TEXT_INPUT_CONTROL_DIRECTIVE = 'leftPanelTextInputControl';
5 |
6 | function leftPanelTextInputControl() {
7 | let directive = {
8 | restrict : 'E',
9 | template : leftPanelTextInputControlTemplate
10 | };
11 | return directive;
12 | }
13 |
14 | leftPanelTextInputControl.$inject = [];
15 |
16 | export default leftPanelTextInputControl;
17 |
18 | export {
19 | LEFT_PANEL_TEXT_INPUT_CONTROL_DIRECTIVE
20 | };
21 |
--------------------------------------------------------------------------------
/src/app/dragdropway/components/leftPanel/TextInputControl/edaDragDropWay.leftpanel.textInputControl.template.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | Edit properties :
9 |
10 |
11 |
12 |
13 |
32 |
33 |
52 |
53 |
71 |
72 |
91 |
92 |
93 |
94 |
--------------------------------------------------------------------------------
/src/app/dragdropway/components/leftPanel/ValidEditFooter/edaDragDropWay.leftpanel.validEditFooter.directive.js:
--------------------------------------------------------------------------------
1 | import leftPanelValidEditFooterTemplate from './edaDragDropWay.leftpanel.validEditFooter.template.html';
2 |
3 | const LEFT_PANEL_VALID_EDIT_FOOTER_DIRECTIVE = 'leftPanelValidEditFooter';
4 |
5 | function leftPanelValidEditFooter() {
6 | let directive = {
7 | restrict : 'E',
8 | template : leftPanelValidEditFooterTemplate
9 | };
10 | return directive;
11 | }
12 |
13 | leftPanelValidEditFooter.$inject = [];
14 |
15 | export default leftPanelValidEditFooter;
16 |
17 | export {
18 | LEFT_PANEL_VALID_EDIT_FOOTER_DIRECTIVE
19 | };
20 |
--------------------------------------------------------------------------------
/src/app/dragdropway/components/leftPanel/ValidEditFooter/edaDragDropWay.leftpanel.validEditFooter.template.html:
--------------------------------------------------------------------------------
1 |
17 |
--------------------------------------------------------------------------------
/src/app/dragdropway/components/leftPanel/edaDragDropWay.leftPanel.controller.helpers.js:
--------------------------------------------------------------------------------
1 | const dateFormats = ['dd-MMMM-yyyy', 'yyyy/MM/dd', 'dd.MM.yyyy', 'shortDate'];
2 |
3 | const setToday = (datetimePickerModel)=>{
4 | datetimePickerModel.dt = new Date();
5 | };
6 |
7 | const clearDateTime = (datetimePickerModel)=>{
8 | datetimePickerModel.dt = new Date();
9 | };
10 |
11 | export {
12 | dateFormats,
13 | setToday,
14 | clearDateTime
15 | };
16 |
17 |
--------------------------------------------------------------------------------
/src/app/dragdropway/components/leftPanel/edaDragDropWay.leftPanel.directive.js:
--------------------------------------------------------------------------------
1 | import {
2 | LEFT_PANEL_CONTROLLER,
3 | LEFT_PANEL_CONTROLLERAS
4 | } from './edaDragDropWay.leftPanel.controller';
5 |
6 | import leftPanelTemplate from './edaDragDropWay.leftPanel.template.html';
7 |
8 | const LEFT_PANEL_DIRECTIVE = 'leftPanel';
9 |
10 |
11 | function leftPanel(){
12 | let directive = {
13 | restrict : 'E',
14 | template : leftPanelTemplate,
15 | scope : {},
16 | controller : LEFT_PANEL_CONTROLLER,
17 | controllerAs : LEFT_PANEL_CONTROLLERAS,
18 | bindToController : {
19 | closeEditPanel : '&',
20 | selectedControl : '&',
21 | saveFromEditPanel : '&'
22 | }
23 | };
24 | return directive;
25 | }
26 |
27 | leftPanel.$inject = [];
28 |
29 | export default leftPanel;
30 |
31 | export {
32 | LEFT_PANEL_DIRECTIVE
33 | };
34 |
--------------------------------------------------------------------------------
/src/app/dragdropway/components/leftPanel/edaDragDropWay.leftPanel.selectOptionManage.service.helpers.js:
--------------------------------------------------------------------------------
1 | /* global angular */
2 | const resetModel = (selectObj) => {
3 | let zeroModel = { rows:[] };
4 | angular.copy(zeroModel, selectObj);
5 | };
6 |
7 |
8 | const validOption = (selectObj, newOptionText) => {
9 | let fullResponse = {
10 | resultFlag : false,
11 | details : ''
12 | };
13 | if (typeof newOptionText === 'undefined') {
14 | fullResponse.resultFlag = false;
15 | fullResponse.details = 'Entered option is empty';
16 | return fullResponse;
17 | }
18 | if (newOptionText !== '') {
19 | for (var i = selectObj.rows.length - 1; i >= 0; i--) {
20 | if (selectObj.rows[i].option === newOptionText) {
21 | fullResponse.resultFlag = false;
22 | fullResponse.details = 'Entered option is not unique';
23 | return fullResponse;
24 | }
25 | }
26 | fullResponse.resultFlag = true;
27 | fullResponse.details = '';
28 | return fullResponse;
29 | }
30 | fullResponse.resultFlag = false;
31 | fullResponse.details = 'Entered option is empty';
32 | return fullResponse;
33 | };
34 |
35 | export {
36 | resetModel,
37 | validOption
38 | };
39 |
--------------------------------------------------------------------------------
/src/app/dragdropway/components/leftPanel/edaDragDropWay.leftPanel.template.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 | Select a control
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
69 |
70 |
--------------------------------------------------------------------------------
/src/app/dragdropway/config/edaDragDropWay.dragDropConfig.config.js:
--------------------------------------------------------------------------------
1 | import easyFormConfig from '../../../../package.json';
2 |
3 | const EASY_FORM_DD_VERSION_NAME = 'easyFormGenVersion';
4 | const EASY_FORM_DD_VERSION_VALUE = easyFormConfig.version;
5 |
6 | function dragDropConfigFunct(easyFormDragWayConfigProvider) {
7 | easyFormDragWayConfigProvider.setItemsNotTocount({
8 | //placeholder : '',
9 | itemBeingDragged : 'dndDraggingSource'
10 | });
11 | }
12 |
13 | dragDropConfigFunct.$inject = [
14 | 'easyFormDragWayConfigProvider'
15 | ];
16 |
17 | export default dragDropConfigFunct;
18 |
19 | export {
20 | EASY_FORM_DD_VERSION_NAME,
21 | EASY_FORM_DD_VERSION_VALUE
22 | };
23 |
24 |
--------------------------------------------------------------------------------
/src/app/dragdropway/core/edaDragDropWay.core.module.js:
--------------------------------------------------------------------------------
1 | const CORE_MODULES = [
2 | 'textAngular',
3 | 'textAngularSetup',
4 | 'ngAnimate',
5 | 'toaster',
6 | 'formly',
7 | 'formlyBootstrap',
8 | 'ui.bootstrap',
9 | 'nya.bootstrap.select',
10 | 'mgcrea.ngStrap.affix'
11 | // 'pascalprecht.translate'
12 | ];
13 |
14 | export default angular
15 | .module('easyFormGen.dragDropWay.core', CORE_MODULES);
16 |
--------------------------------------------------------------------------------
/src/app/dragdropway/index.js:
--------------------------------------------------------------------------------
1 | import './vendors';
2 | import './style/drag_and_drop.scss';
3 | import './main';
4 |
--------------------------------------------------------------------------------
/src/app/dragdropway/main.js:
--------------------------------------------------------------------------------
1 | import formlyConfigFunct from './config/edaDragDropWay.formlyConfig.config';
2 | import dragDropConfigFunt, {
3 | EASY_FORM_DD_VERSION_NAME,
4 | EASY_FORM_DD_VERSION_VALUE
5 | } from './config/edaDragDropWay.dragDropConfig.config';
6 | import coreModule from './core/edaDragDropWay.core.module';
7 | import leftPanelModule from './components/leftPanel/edaDragDropWay.leftPanel.module';
8 | import formlyProxyModule from './components/formlyProxy/edaDragDropWay.formlyProxy.formFieldManage.module';
9 | import dragdropModule from './components/dragdrop/edaDragDropWay.dragdrop.module';
10 | import rightClickModule from './components/common/rightclick/edaDragDropWay.rightClick.module';
11 | import configProxyModule from './components/configurationModelProxy/edaDragDropWay.configurationModelProxy.module';
12 |
13 | import dragAndDropListModule from './components/common/dragAndDropList/dragAndDropList.module';
14 | import pageSlideModule from './components/common/pageslide/pageslide.module';
15 |
16 | import easyFormDragDropModule from './components/edaDragDropWayEasyFormGen/edaDragDropWay.edaDragdropWayEasyFormGen.module';
17 | import trustThisFilterModule from './components/common/edaTrustThisFilter/edaDragDropWay.trustThis.module';
18 |
19 | const DRAG_DROP_WAY_MODULE_NAME = 'eda.easyformGen.dragDropWay';
20 |
21 | const DRAG_DROP_MODULES_INJECT = [
22 | coreModule.name,
23 | configProxyModule.name,
24 | trustThisFilterModule.name,
25 | leftPanelModule.name,
26 | formlyProxyModule.name,
27 | dragdropModule.name,
28 | easyFormDragDropModule.name,
29 | rightClickModule.name,
30 | dragAndDropListModule.name,
31 | pageSlideModule.name
32 | ];
33 |
34 | const mainModule = angular
35 | .module(DRAG_DROP_WAY_MODULE_NAME, DRAG_DROP_MODULES_INJECT)
36 | .config(dragDropConfigFunt)
37 | .config(formlyConfigFunct)
38 | .value(EASY_FORM_DD_VERSION_NAME, EASY_FORM_DD_VERSION_VALUE);
39 |
40 | export default mainModule;
41 |
--------------------------------------------------------------------------------
/src/app/dragdropway/style/drag_and_drop_var.scss:
--------------------------------------------------------------------------------
1 |
2 | /*=========================================================
3 | colors const
4 | ===========================================================*/
5 | $san-marino-color:#446CB3; //-> blue color
6 | $white-smoke-color:#ECECEC; //-> grey/white color
7 | $alice-blue-color:#E4F1FE; //-> blue nearer white
8 | $ebony-clay-color:#22313F; //-> heavy dark blue
9 | $ming-color :#336E7B; //-> green
10 | $california-color : #F89406; //-> orange
11 | $jordy-color: #89C4F4; //-> blue (light)
12 | $monza-color: #CF000F; //-> red
13 | $background-color-grey: #F2F2F2; //-> white grey
14 |
15 |
16 | $panel-defaut-panel-heading-text-color:#212121;
17 | $panel-defaut-panel-heading-background-color:#fff;//#eee;
18 | $panel-defaut-panel-heading-border-color:#eee;//#fff;
19 |
20 |
21 | /*=========================================================
22 | fonts const
23 | ===========================================================*/
24 | $font-family-roboto:"Roboto","Helvetica Neue",Helvetica,Arial,sans-serif;
25 |
26 | $input-font-size:13px;
27 |
28 | /*=========================================================
29 | common
30 | ===========================================================*/
31 | $body-padding-top:50px;
32 | $body-padding-bottom:20px;
33 | $body-height:100%;
34 | $body-backgrounf-color:#2C3E50;
35 |
36 |
37 |
38 | $container-width:100%;
39 |
--------------------------------------------------------------------------------
/src/app/dragdropway/style/eda.textAngular.min.scss:
--------------------------------------------------------------------------------
1 | .ta-hidden-input{width:1px;height:1px;border:none;margin:0;padding:0;position:absolute;top:-10000px;left:-10000px;opacity:0;overflow:hidden}.ta-root.focussed>.ta-scroll-window.form-control{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.ta-editor.ta-html,.ta-scroll-window.form-control{min-height:300px;height:auto;overflow:auto;font-family:inherit;font-size:100%}.ta-scroll-window.form-control{position:relative;padding:0}.ta-scroll-window>.ta-bind{height:auto;min-height:300px;padding:6px 12px}.ta-editor:focus{user-select:text}.ta-resizer-handle-overlay{z-index:100;position:absolute;display:none}.ta-resizer-handle-overlay>.ta-resizer-handle-info{position:absolute;bottom:16px;right:16px;border:1px solid #000;background-color:#FFF;padding:0 4px;opacity:.7}.ta-resizer-handle-overlay>.ta-resizer-handle-background{position:absolute;bottom:5px;right:5px;left:5px;top:5px;border:1px solid #000;background-color:rgba(0,0,0,.2)}.ta-resizer-handle-overlay>.ta-resizer-handle-corner{width:10px;height:10px;position:absolute}.ta-resizer-handle-overlay>.ta-resizer-handle-corner-tl{top:0;left:0;border-left:1px solid #000;border-top:1px solid #000}.ta-resizer-handle-overlay>.ta-resizer-handle-corner-tr{top:0;right:0;border-right:1px solid #000;border-top:1px solid #000}.ta-resizer-handle-overlay>.ta-resizer-handle-corner-bl{bottom:0;left:0;border-left:1px solid #000;border-bottom:1px solid #000}.ta-resizer-handle-overlay>.ta-resizer-handle-corner-br{bottom:0;right:0;border:1px solid #000;cursor:se-resize;background-color:#fff}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-size:14px;font-weight:400;line-height:1.42857143;text-align:left;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2)}.popover.top{margin-top:-10px}.popover.bottom{margin-top:10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}
--------------------------------------------------------------------------------
/src/app/dragdropway/vendors.js:
--------------------------------------------------------------------------------
1 | import 'api-check'; // NOTE: always imported before angular-formly!
2 | import 'angular-formly';
3 | import 'angular-formly-templates-bootstrap';
4 |
--------------------------------------------------------------------------------
/src/app/formviewer/components/core/eda.easyFormViewer.core.module.js:
--------------------------------------------------------------------------------
1 | const CORE_MODULES = [
2 | 'textAngular',
3 | 'formly',
4 | 'ngAnimate',
5 | 'formlyBootstrap',
6 | 'ui.bootstrap',
7 | 'nya.bootstrap.select'
8 | ];
9 |
10 | const FORMVIEWER_CORE_MODULE_NAME = 'edaEasyFormViewerCore.module';
11 |
12 | export default angular
13 | .module(FORMVIEWER_CORE_MODULE_NAME, CORE_MODULES);
14 |
--------------------------------------------------------------------------------
/src/app/formviewer/components/main/eda.easyFormViewer.main.controller.js:
--------------------------------------------------------------------------------
1 | const EASY_FORM_VIEWER_CONTROLLER = 'edaEasyFormViewerCtrl';
2 | const EASY_FORM_VIEWER_CONTROLLERAS = 'vm';
3 |
4 | class edaEasyFormViewerController{
5 |
6 | constructor(){
7 | this.init();
8 | }
9 |
10 | init(){
11 | this.model = {};
12 | this.fields = {};
13 | this.hasJustSumitted = false;
14 | this.hasJustCancelled = false;
15 | }
16 |
17 | edaSubmitThisDataModel(){
18 | this.hasJustSumitted = true;
19 | }
20 |
21 | edaCancelEvent(){
22 | this.hasJustCancelled = true;
23 | }
24 |
25 | }
26 |
27 | edaEasyFormViewerController.$inject = [];
28 |
29 | export default edaEasyFormViewerController;
30 |
31 | export {
32 | EASY_FORM_VIEWER_CONTROLLER,
33 | EASY_FORM_VIEWER_CONTROLLERAS
34 | };
--------------------------------------------------------------------------------
/src/app/formviewer/components/main/eda.easyFormViewer.main.directive.helpers.js:
--------------------------------------------------------------------------------
1 | /* global angular */
2 |
3 | const EMPTY_FIELD_MODEL = [
4 | {
5 | 'line': 1,
6 | 'activeColumn': 1,
7 | 'columns': [
8 | {
9 | 'numColumn': 1,
10 | 'exist': true,
11 | 'control': {
12 | 'type': 'none',
13 | 'key': 'none'
14 | }
15 | }
16 | ]
17 | }
18 | ];
19 |
20 | /**
21 | * empty fields model : to display at least an empty line
22 | * otherwise would look like ugly empty line like it were a bug
23 | */
24 | const emptyEdaFieldsModel = ()=>{
25 | return angular.copy(EMPTY_FIELD_MODEL);
26 | };
27 |
28 |
29 |
30 | const returnAttributeDataModelIfNotEmpty = (edaEasyFormGeneratorModel)=>{
31 | let dataModelToReturn = (
32 | angular.isArray(edaEasyFormGeneratorModel.dataModel) ? (
33 | edaEasyFormGeneratorModel.dataModel.length > 0 ?
34 | edaEasyFormGeneratorModel.dataModel
35 | : []
36 | )
37 | : []
38 | );
39 | return dataModelToReturn;
40 | };
41 |
42 |
43 | const returnAttributeConfigurationLinesIfNotEmpty = (loadedFieldModel)=>{
44 | let edaEasyFormGeneratorModelToReturn = (
45 | angular.isArray(loadedFieldModel) ? (
46 | loadedFieldModel.length > 0 ?
47 | loadedFieldModel
48 | : emptyEdaFieldsModel()
49 | )
50 | : emptyEdaFieldsModel()
51 | );
52 | return edaEasyFormGeneratorModelToReturn;
53 | };
54 |
55 |
56 | export {
57 | emptyEdaFieldsModel,
58 | returnAttributeDataModelIfNotEmpty,
59 | returnAttributeConfigurationLinesIfNotEmpty
60 | };
61 |
--------------------------------------------------------------------------------
/src/app/formviewer/components/main/eda.easyFormViewer.main.module.js:
--------------------------------------------------------------------------------
1 | /* global angular */
2 | import edaFormViewerDirective, {
3 | EASY_FORM_VIEWER_DIRECTIVE_NAME
4 | } from './eda.easyFormViewer.main.directive';
5 |
6 | import edaEasyFormViewerController, {
7 | EASY_FORM_VIEWER_CONTROLLER
8 | } from './eda.easyFormViewer.main.controller';
9 |
10 | const FORM_VIEWER_MAIN_MODULE_NAME = 'edaFormViewerMainModule';
11 |
12 | export default angular
13 | .module(FORM_VIEWER_MAIN_MODULE_NAME, [])
14 | .directive(EASY_FORM_VIEWER_DIRECTIVE_NAME, edaFormViewerDirective)
15 | .controller(EASY_FORM_VIEWER_CONTROLLER, edaEasyFormViewerController);
16 |
--------------------------------------------------------------------------------
/src/app/formviewer/components/main/eda.easyFormViewer.main.template.html:
--------------------------------------------------------------------------------
1 |
15 |
--------------------------------------------------------------------------------
/src/app/formviewer/components/modelsTranslator/eda.easyFormViewer.modelTranslator.module.js:
--------------------------------------------------------------------------------
1 | /* global angular */
2 | import $modelsTranslator, {
3 | MODEL_TRANSLATOR_SERVICE
4 | } from './eda.easyFormViewer.modelTranslator.service';
5 |
6 |
7 |
8 | const FORM_VIEWER_MODEL_TRANSLATOR_MODULE_NAME = 'edaFormViewerModelTranslatorModule';
9 |
10 | export default angular
11 | .module(FORM_VIEWER_MODEL_TRANSLATOR_MODULE_NAME, [])
12 | .service(MODEL_TRANSLATOR_SERVICE, $modelsTranslator);
--------------------------------------------------------------------------------
/src/app/formviewer/components/modelsTranslator/eda.easyFormViewer.modelTranslator.service.helpers.js:
--------------------------------------------------------------------------------
1 | import { configs as stepwayControls } from '../../../stepway/components/controls';
2 | import {
3 | configurationModelInit,
4 | configurationModelResult,
5 | addOneColumnControl,
6 | addTwoColumnControl,
7 | addThreeColumnControl
8 | } from '../../../stepway/services/formlyProxy/formlyProxy.service.helpers';
9 |
10 | const resetNyaSelect = (nyaSelectObj) => {
11 | //reset
12 | angular.copy({controls: [...stepwayControls]}, nyaSelectObj);
13 | return true;
14 | };
15 |
16 | const getConfigurationModelInit = () => ({ ...configurationModelInit });
17 |
18 | const getEmptyConfigModelResult = () => ({ ...configurationModelResult });
19 |
20 | const resetDataModel = (obj) => {
21 | const emptyDataModel = {};
22 | angular.copy(emptyDataModel, obj);
23 | return true;
24 | };
25 |
26 | const getErrorObject = (errorTitle, errorMessage) => {
27 | const messageObj = {
28 | noError : false,
29 | title : '',
30 | Message : ''
31 | };
32 | messageObj.noError = false;
33 | messageObj.title = errorTitle;
34 | messageObj.Message = errorMessage;
35 | return messageObj;
36 | };
37 |
38 | const getMessageObject = (messageTitle, messageBody) => {
39 | const messageObj = {
40 | noError : false,
41 | title : '',
42 | Message : ''
43 | };
44 | messageObj.noError = true;
45 | messageObj.title = messageTitle;
46 | messageObj.Message = messageBody;
47 | return messageObj;
48 | };
49 |
50 | const resetFormlyModel = (formlyModel) => {
51 | var resetformly = [];
52 | angular.copy(resetformly, formlyModel);
53 | };
54 |
55 | export {
56 | resetNyaSelect,
57 | getConfigurationModelInit,
58 | getEmptyConfigModelResult,
59 | resetDataModel,
60 | getErrorObject,
61 | getMessageObject,
62 | resetFormlyModel,
63 | addOneColumnControl,
64 | addTwoColumnControl,
65 | addThreeColumnControl
66 | };
67 |
--------------------------------------------------------------------------------
/src/app/formviewer/index.js:
--------------------------------------------------------------------------------
1 | import './vendors';
2 | require('./style/formviewer.scss');
3 | import './main';
4 |
--------------------------------------------------------------------------------
/src/app/formviewer/main.js:
--------------------------------------------------------------------------------
1 | import edaFormViewerMainModule from './components/main/eda.easyFormViewer.main.module';
2 | import edaFormViewerCoreModule from './components/core/eda.easyFormViewer.core.module';
3 | import edaFormViewerModelTranslatorModule from './components/modelsTranslator/eda.easyFormViewer.modelTranslator.module';
4 |
5 | import edaEasyFormViewerConfig from '../stepway/config/formly/formly.config.js';
6 |
7 | import easyFormConfig from '../../../package.json';
8 |
9 | const DEP_TO_INJECT_IN_MAIN = [
10 | edaFormViewerMainModule.name,
11 | edaFormViewerCoreModule.name,
12 | edaFormViewerModelTranslatorModule.name
13 | ];
14 |
15 | const EASY_FORM_VIEWER_VERSION_NAME = 'easyFormViewerVersion';
16 | const EASY_FORM_VIEWER_VERSION_VALUE = easyFormConfig.version;
17 | const MAIN_MODULE_NAME = 'eda.easyFormViewer';
18 |
19 | const mainModule = angular
20 | .module(MAIN_MODULE_NAME, DEP_TO_INJECT_IN_MAIN)
21 | .config(edaEasyFormViewerConfig)
22 | .value(EASY_FORM_VIEWER_VERSION_NAME, EASY_FORM_VIEWER_VERSION_VALUE);
23 |
24 | export default mainModule;
25 |
--------------------------------------------------------------------------------
/src/app/formviewer/style/eda.textAngular.min.scss:
--------------------------------------------------------------------------------
1 | .ta-hidden-input{width:1px;height:1px;border:none;margin:0;padding:0;position:absolute;top:-10000px;left:-10000px;opacity:0;overflow:hidden}.ta-root.focussed>.ta-scroll-window.form-control{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.ta-editor.ta-html,.ta-scroll-window.form-control{min-height:300px;height:auto;overflow:auto;font-family:inherit;font-size:100%}.ta-scroll-window.form-control{position:relative;padding:0}.ta-scroll-window>.ta-bind{height:auto;min-height:300px;padding:6px 12px}.ta-editor:focus{user-select:text}.ta-resizer-handle-overlay{z-index:100;position:absolute;display:none}.ta-resizer-handle-overlay>.ta-resizer-handle-info{position:absolute;bottom:16px;right:16px;border:1px solid #000;background-color:#FFF;padding:0 4px;opacity:.7}.ta-resizer-handle-overlay>.ta-resizer-handle-background{position:absolute;bottom:5px;right:5px;left:5px;top:5px;border:1px solid #000;background-color:rgba(0,0,0,.2)}.ta-resizer-handle-overlay>.ta-resizer-handle-corner{width:10px;height:10px;position:absolute}.ta-resizer-handle-overlay>.ta-resizer-handle-corner-tl{top:0;left:0;border-left:1px solid #000;border-top:1px solid #000}.ta-resizer-handle-overlay>.ta-resizer-handle-corner-tr{top:0;right:0;border-right:1px solid #000;border-top:1px solid #000}.ta-resizer-handle-overlay>.ta-resizer-handle-corner-bl{bottom:0;left:0;border-left:1px solid #000;border-bottom:1px solid #000}.ta-resizer-handle-overlay>.ta-resizer-handle-corner-br{bottom:0;right:0;border:1px solid #000;cursor:se-resize;background-color:#fff}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-size:14px;font-weight:400;line-height:1.42857143;text-align:left;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2)}.popover.top{margin-top:-10px}.popover.bottom{margin-top:10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}
--------------------------------------------------------------------------------
/src/app/formviewer/style/formviewer.scss:
--------------------------------------------------------------------------------
1 | @import "formviewer_var";
2 | @import "formviewer_mixins";
3 | @import "eda.textAngular.min";
4 |
5 | body {
6 | margin: 20px;
7 | font-family: $font-family-roboto;
8 | }
9 |
10 | // textAngular div to apply a margin bottom
11 | .ta-scroll-window
12 | {
13 | margin-bottom:16px;
14 | }
15 |
16 | /**
17 | * formly fields css
18 | */
19 | .formly-field {
20 | margin-bottom: 20px;
21 | }
22 |
23 | .validation {
24 | position: absolute;
25 | font-size: .8em;
26 | color: #a94442;
27 | // margin-top: 2px;
28 | }
29 |
30 | .formly-template-wrapper {
31 | position: relative;
32 | }
33 |
34 |
35 | .error-messages {
36 | position: relative;
37 | }
38 |
39 | .error-messages, .message, .validation {
40 | opacity: 1;
41 | transition: .3s linear all;
42 | }
43 |
44 | .message {
45 | font-size: .8em;
46 | position: absolute;
47 | width: 100%;
48 | color: #a94442;
49 | margin-top: 2px;
50 | }
51 |
52 | .error-messages.ng-enter.ng-enter-active,
53 | .message.ng-enter.ng-enter-active,
54 | .validation.ng-enter.ng-enter-active {
55 | opacity: 1;
56 | // top: 0;
57 | }
58 |
59 | .error-messages.ng-enter,
60 | .message.ng-enter,
61 | .validation.ng-enter {
62 | opacity: 0;
63 | // top: -10px;
64 | }
65 |
66 | .error-messages.ng-leave,
67 | .message.ng-leave,
68 | .validation.ng-leave {
69 | opacity: 1;
70 | // top: 0;
71 | }
72 |
73 | .error-messages.ng-leave-active,
74 | .message.ng-leave-active,
75 | .validation.ng-leave-active {
76 | opacity: 0;
77 | // top: -10px;
78 | }
79 |
--------------------------------------------------------------------------------
/src/app/formviewer/style/formviewer_mixins.scss:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MacKentoch/easyFormGenerator/d146d9ac1aba87f8730001b61a737867a1a05695/src/app/formviewer/style/formviewer_mixins.scss
--------------------------------------------------------------------------------
/src/app/formviewer/style/formviewer_var.scss:
--------------------------------------------------------------------------------
1 | /*=========================================================
2 | fonts const
3 | ===========================================================*/
4 | $font-family-roboto:"Roboto","Helvetica Neue",Helvetica,Arial,sans-serif;
--------------------------------------------------------------------------------
/src/app/formviewer/vendors.js:
--------------------------------------------------------------------------------
1 | import 'api-check'; // NOTE: always imported before angular-formly!
2 | import 'angular-formly';
3 | import 'angular-formly-templates-bootstrap';
4 |
--------------------------------------------------------------------------------
/src/app/stepway/README.md:
--------------------------------------------------------------------------------
1 | # INFO
2 |
3 | > easyFormGenerator uses AngularJS components.
4 |
5 | Components are written like angular 2 components (*as much as possible*).
6 |
7 |
8 | So **template inside backticks** will be easier to read any plugin like
9 | - *Atom*: `atom-typescript` (template highlighter)
10 | - *VSCode*: [`angular2-inline`](https://marketplace.visualstudio.com/items?itemName=natewallace.angular2-inline)
11 |
--------------------------------------------------------------------------------
/src/app/stepway/components/controls/CheckBox/config/checkbox.config.js:
--------------------------------------------------------------------------------
1 | export const CheckBoxConfig = {
2 | id: 'Checkbox',
3 | name: 'Checkbox',
4 | subtitle: 'Checkbox',
5 | group: 'Checkbox',
6 | formlyType: 'checkbox',
7 | formlySubtype: '',
8 | formlyLabel: '',
9 | formlyRequired: false,
10 | formlyDescription: '',
11 | formlyOptions: [],
12 | formlyExpressionProperties: {},
13 | formlyValidators: {},
14 | formlyValidation: {
15 | messages: {
16 | required: function(viewValue, modelValue, scope) {
17 | const defaultReturnMsg = 'this Checkbox field is required';
18 | const returnMsg = (typeof scope.to.label !== 'undefined') ? ((scope.to.label !== '') ? scope.to.label + ' is required' : defaultReturnMsg) : defaultReturnMsg;
19 | return returnMsg;
20 | }
21 | }
22 | }
23 | };
24 |
--------------------------------------------------------------------------------
/src/app/stepway/components/controls/Date/config/date.config.js:
--------------------------------------------------------------------------------
1 | export const DateConfig = {
2 | id: 'Date',
3 | name: 'Date',
4 | subtitle: 'Date',
5 | group: 'input',
6 | formlyType: 'datepicker',
7 | formlySubtype: '',
8 | formlyLabel: '',
9 | formlyRequired: false,
10 | formlyDescription: '',
11 | formlyOptions: [],
12 | datepickerOptions: { format: 'dd-MMMM-yyyy' },
13 | formlyExpressionProperties: {},
14 | formlyValidators: {},
15 | formlyValidation: {
16 | messages: {
17 | required: function(viewValue, modelValue, scope) {
18 | //return a required validation message :
19 | //-> '