diff --git a/.devbox/composer.json b/.devbox/composer.json index 17f14207a..10e28d57b 100644 --- a/.devbox/composer.json +++ b/.devbox/composer.json @@ -1,45 +1,45 @@ { - "name": "friendsoftypo3/extension-builder-devbox", - "type": "project", - "description": "Devbox for Extension Builder", - "homepage": "https://github.com/FriendsOfTYPO3/extension_builder", - "support": { - "issues": "https://github.com/FriendsOfTYPO3/extension_builder/issues" - }, - "license": "GPL-3.0", - "authors": [ - { - "name": "Philipp Kuhlmay", - "email": "extensionbuilder@treupo.de", - "role": "Developer" - } - ], - "require": { - "typo3/minimal": "^11.5", - "typo3/cms-introduction": "~4.0", - "typo3/cms-belog": "^10.4 || ^11.5", - "bk2k/bootstrap-package": "^12", - "helhum/typo3-console": "*", - "friendsoftypo3/extension-builder": "*@dev" - }, - "repositories": [ - { - "type": "path", - "url": "./packages" - } - ], - "config": { - "vendor-dir": "vendor", - "bin-dir": "bin", - "allow-plugins": { - "typo3/cms-composer-installers": true, - "typo3/class-alias-loader": true - } - }, - "extra": { - "typo3/cms": { - "cms-package-dir": "{$vendor-dir}/typo3/cms", - "web-dir": "public" - } + "name": "friendsoftypo3/extension-builder-devbox", + "type": "project", + "description": "Devbox for Extension Builder", + "homepage": "https://github.com/FriendsOfTYPO3/extension_builder", + "support": { + "issues": "https://github.com/FriendsOfTYPO3/extension_builder/issues" + }, + "license": "GPL-3.0", + "authors": [ + { + "name": "Philipp Kuhlmay", + "email": "extensionbuilder@treupo.de", + "role": "Developer" } + ], + "require": { + "typo3/minimal": "^11.5", + "typo3/cms-introduction": "~4.0", + "typo3/cms-belog": "^10.4 || ^11.5", + "bk2k/bootstrap-package": "^12", + "helhum/typo3-console": "*", + "friendsoftypo3/extension-builder": "*@dev" + }, + "repositories": [ + { + "type": "path", + "url": "./packages" + } + ], + "config": { + "vendor-dir": "vendor", + "bin-dir": "bin", + "allow-plugins": { + "typo3/cms-composer-installers": true, + "typo3/class-alias-loader": true + } + }, + "extra": { + "typo3/cms": { + "cms-package-dir": "{$vendor-dir}/typo3/cms", + "web-dir": "public" + } + } } diff --git a/.editorconfig b/.editorconfig index 117b399da..131cc534b 100644 --- a/.editorconfig +++ b/.editorconfig @@ -14,11 +14,12 @@ trim_trailing_whitespace = true # TS/JS-Files [*.{ts,js}] -indent_size = 2 +indent_size = 4 # JSON-Files [*.json] -indent_style = tab +indent_style = space +indent_size = 4 # ReST-Files [{*.rst,*.rstt}] @@ -55,8 +56,10 @@ indent_size = 2 [{_.htaccess,.htaccess,htaccess.t}] indent_style = tab -[*{.phpt,htmlt}] +[*{.phpt,htmlt,.php}] insert_final_newline = false +indent_style = space +indent_size = 4 # Makefile [{Makefile,**.mk}] diff --git a/.env b/.env new file mode 100644 index 000000000..3f9664624 --- /dev/null +++ b/.env @@ -0,0 +1 @@ +PUBLIC_URL=.Build \ No newline at end of file diff --git a/.github/workflows/test-documentation.yml b/.github/workflows/test-documentation.yml index b407825ef..79ac662ea 100644 --- a/.github/workflows/test-documentation.yml +++ b/.github/workflows/test-documentation.yml @@ -7,10 +7,10 @@ jobs: name: documentation runs-on: ubuntu-latest steps: - - name: "Checkout code" + - name: Checkout uses: actions/checkout@v4 - - name: "Test if the documentation will render without warnings" + - name: Test if the documentation will render without warnings run: | mkdir -p Documentation-GENERATED-temp \ && docker run --rm --pull always -v $(pwd):/project \ diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index b5f87dac5..172c34bd1 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -16,8 +16,8 @@ jobs: fail-fast: true matrix: os: [ubuntu-latest] - php: [7.4, 8.0, 8.1, 8.2, 8.3] - typo3: [^11.5] + php: [8.1, 8.2, 8.3] + typo3: [^12.2] name: P${{ matrix.php }} - T${{ matrix.typo3 }} diff --git a/.gitignore b/.gitignore index 449042127..1c0425ae4 100644 --- a/.gitignore +++ b/.gitignore @@ -6,6 +6,7 @@ /composer.lock /.php_cs.cache sass-lint.html +*.*~ # created by rendering Documentation with Docker /Documentation-GENERATED-temp @@ -29,3 +30,6 @@ sass-lint.html .devbox/.ddev/providers/ .devbox/.ddev/xhprof/ .devbox/.ddev/composer.lock +.phpunit.cache +coverage +.phpunit.result.cache diff --git a/.php-cs-fixer.php b/.php-cs-fixer.php index 7ed309e97..05a73f3cb 100644 --- a/.php-cs-fixer.php +++ b/.php-cs-fixer.php @@ -37,7 +37,6 @@ 'ext_localconf.php', 'ext_tables.php', 'ext_emconf.php', - 'SpycYAMLParser.php', ]) ->depth('> 1') ; diff --git a/Build/Scss/App.scss b/Build/Scss/App.scss new file mode 100644 index 000000000..6ea6eddda --- /dev/null +++ b/Build/Scss/App.scss @@ -0,0 +1,54 @@ +$transition-timing: 0.5s ease; +$btn-background: #F4F4F4; +$generic-z-index: 1; + +#settings-column, #right-column { + height: 100vh; + z-index: $generic-z-index; + transition: $transition-timing; +} + +#settings-column { + width: 400px; + overflow-y: auto; + + scrollbar-width: none; + -ms-overflow-style: none; + + &::-webkit-scrollbar { + display: none; + } +} + +#right-column { + position: absolute; + left: 0; + overflow-y: hidden; +} + +.no-padding { + padding: 0 !important; +} + +#show-advanced-options, +#btn-sidebar-collapse { + z-index: 999999999; + top: 80px; + position: fixed; + transition: left $transition-timing; + color: #515151; + background-color: $btn-background; + border-color: $btn-background; + + &.collapsed { + left: 20px; + } + + &.expanded { + left: 415px; + } +} + +#show-advanced-options { + top: 30px; +} diff --git a/Build/Scss/ReactFlow/Nodes/customModel.scss b/Build/Scss/ReactFlow/Nodes/customModel.scss new file mode 100644 index 000000000..5d43f73d2 --- /dev/null +++ b/Build/Scss/ReactFlow/Nodes/customModel.scss @@ -0,0 +1,74 @@ +$custom-model-accordion-padding: 0.5rem; +$gray: #CCC; +$light-gray: #777; +$orange: #DFA23A; +$dark-orange: #FF8700; + +@mixin fullWidth { + width: 100%; +} +.custom-model-node { + @include fullWidth; + min-width: 300px; + border: 1px solid $gray; + padding: 5px; + border-radius: 5px; + background: #FFF; + + .custom-model-node__header { + height: 70px; + } + + label { + display: block; + color: $light-gray; + font-size: 12px; + } + + .react-flow__handle { + width: 20px; + height: 20px; + top: -10px; + background-color: $orange; + border: 3px solid $orange; + } + + input[type="text"], + textarea { + @include fullWidth; + } + + .drag-handle { + @include fullWidth; + width:42%; + background-color: $dark-orange; + position: absolute; + top: -24px; + left: 29%; + min-width: 20px; + min-height: 30px; + border-radius: 4px; + border: 2px solid $dark-orange; + } + + .accordion-header { + .accordion-button { + padding: 5px $custom-model-accordion-padding; + } + } + + .accordion-body { + padding-left: $custom-model-accordion-padding; + padding-right: $custom-model-accordion-padding; + } + + .relation { + margin-top: -20px; + } + + .btn-delete-node { + position: absolute; + top: -7px; + right: -7px; + } +} diff --git a/Build/Scss/ReactFlow/_sidebar.scss b/Build/Scss/ReactFlow/_sidebar.scss new file mode 100644 index 000000000..4051f1130 --- /dev/null +++ b/Build/Scss/ReactFlow/_sidebar.scss @@ -0,0 +1,4 @@ +.react-flow__sidebar { + overflow-y: scroll; + background-color: #FEDCBA; +} diff --git a/Build/Scss/ReactFlow/reactflow.scss b/Build/Scss/ReactFlow/reactflow.scss new file mode 100644 index 000000000..fb28f65b9 --- /dev/null +++ b/Build/Scss/ReactFlow/reactflow.scss @@ -0,0 +1,52 @@ +$dndflow-border-color: #1A192B; +$aside-background: #FCFCFC; +$aside-border-color: #EEE; +$description-margin: 10px; +$dndnode-border-color: #0303B3; +$selectall-margin-top: 10px; + +.dndflow { + flex: 1; + flex-direction: column; + display: flex; + height: 100%; + background-color: #D3D3D3; + + aside { + border-right: 1px solid $aside-border-color; + padding: 15px 10px; + font-size: 12px; + background: $aside-background; + + .debug-output { + max-height: 100px; + } + } + + aside .description { + margin-bottom: $description-margin; + } + + .dndnode { + height: 20px; + padding: 4px; + border: 1px solid $dndflow-border-color; + border-radius: 2px; + margin-bottom: $description-margin; + display: flex; + justify-content: center; + align-items: center; + cursor: grab; + border-color: $dndnode-border-color; + max-width: 150px; + } + + .reactflow-wrapper { + flex: 1; + height: 100%; + } + + .selectall { + margin-top: $selectall-margin-top; + } +} diff --git a/Build/Scss/custom-bootstrap.scss b/Build/Scss/custom-bootstrap.scss new file mode 100644 index 000000000..166ea61cd --- /dev/null +++ b/Build/Scss/custom-bootstrap.scss @@ -0,0 +1,84 @@ +// Fonts +// Font sizes +$input-field-font-size: 13px; + +// Colors +$primary: #FF8700; +$primary-light: #FFAB4B; +$stage-orange-light: #F7A831; +$secondary: #0080C9; +$success: #5ABC55; +$danger: #DD123D; +$info: #0080FF; +$warning: #FFC800; +$dark: #515151; +$light: #B9B9B9; +$super-light: #F4F4F4; + +$font-family-base: 'TYPO3', sans-serif; + +// Buttons +.btn-info, +.btn-success { + color: #FFF !important; +} + +$border-radius: 0; + +// Input Fields +// $input-btn-padding-y: 0.25rem; +// $input-btn-padding-x: 0.35rem; +// +// $input-btn-font-family: null; +// $input-btn-font-size: $input-field-font-size; +// // $input-btn-line-height: $line-height-base; +// +// $input-btn-focus-width: .25rem; +// $input-btn-focus-color-opacity: .25; +// // $input-btn-focus-color: rgba($component-active-bg, $input-btn-focus-color-opacity); +// $input-btn-focus-blur: 0; +// // $input-btn-focus-box-shadow: 0 0 $input-btn-focus-blur $input-btn-focus-width $input-btn-focus-color; +// +// $input-btn-padding-y-sm: .25rem; +// $input-btn-padding-x-sm: .5rem; +// // $input-btn-font-size-sm: $font-size-sm; +// +// $input-btn-padding-y-lg: .5rem; +// $input-btn-padding-x-lg: 1rem; +// $input-btn-font-size-lg: $font-size-lg; + +// $input-btn-border-width: $border-width; + + +// Accordions +// $accordion-padding-y: 1rem; +// $accordion-padding-x: 1.25rem; +// $accordion-color: $body-color; // Sass variable because of $accordion-button-icon +// $accordion-bg: $body-bg; +// $accordion-border-width: $border-width; +// $accordion-border-color: var(--#{$prefix}border-color); +// $accordion-border-radius: $border-radius; +// $accordion-inner-border-radius: subtract($accordion-border-radius, $accordion-border-width); +// +// $accordion-body-padding-y: 10px; +// $accordion-body-padding-x: 5px; +// +// $accordion-button-padding-y: $accordion-padding-y; +// $accordion-button-padding-x: $accordion-padding-x; +// $accordion-button-color: $accordion-color; +// $accordion-button-bg: var(--#{$prefix}accordion-bg); +// $accordion-transition: $btn-transition, border-radius .15s ease; +// $accordion-button-active-bg: tint-color($component-active-bg, 90%); +// $accordion-button-active-color: shade-color($primary, 10%); +// +// $accordion-button-focus-border-color: $input-focus-border-color; +// $accordion-button-focus-box-shadow: $btn-focus-box-shadow; +// +// $accordion-icon-width: 1.25rem; +// $accordion-icon-color: $accordion-button-color; +// $accordion-icon-active-color: $accordion-button-active-color; +// $accordion-icon-transition: transform .2s ease-in-out; +// $accordion-icon-transform: rotate(-180deg); + + + diff --git a/Build/Scss/extensionbuilder.scss b/Build/Scss/extensionbuilder.scss new file mode 100644 index 000000000..df734ef73 --- /dev/null +++ b/Build/Scss/extensionbuilder.scss @@ -0,0 +1,46 @@ +#domainModelEditor { + height: calc(100vh - 45px); /* 45px = top header, 54px = doc header */ + overflow-y: scroll; +} + +.footer { + box-shadow: 0px -5px 11px 0px rgba(204,204,204,0.7); + border-top: 1px solid #CCC; + height: 30px; +} + +.footer ul { + margin-bottom: 0; +} + +.footer ul li { + margin-right: 20px; + list-style-type: none; + display: flex; + align-items: center; +} + +.footer ul li:last-child { + margin-right: 0; +} + +.modal-dialog { + max-width: min(30vw, 50%, 550px); +} + +.custom-model-node .custom-model-node__header { + margin-bottom: 0 !important; +} + +.panel-group { + margin-bottom: 0 !important; +} + +#domainModelEditor .footer li { + list-style: none; + margin-right: 10px; +} + +.footer ul { + margin: 0; +} diff --git a/Build/Scss/includes/_footer.scss b/Build/Scss/includes/_footer.scss new file mode 100644 index 000000000..c48a836b5 --- /dev/null +++ b/Build/Scss/includes/_footer.scss @@ -0,0 +1,23 @@ +#extension-builder-footer { + padding: 10px 24px; + background-color: #EEE; + border-top: 1px solid #C3C3C3; + + ul { + li { + display: inline-block; + + &:last-child { + margin-right: 0; + } + } + } +} + +#domainModelEditor { + .footer { + li { + list-style: none; + } + } +} diff --git a/Build/Scss/includes/_form.scss b/Build/Scss/includes/_form.scss new file mode 100644 index 000000000..6ed093e7a --- /dev/null +++ b/Build/Scss/includes/_form.scss @@ -0,0 +1,5 @@ +.input-group { + .input-group-text { + min-width: 50px; + } +} diff --git a/Build/Scss/includes/_general.scss b/Build/Scss/includes/_general.scss new file mode 100644 index 000000000..347304f7e --- /dev/null +++ b/Build/Scss/includes/_general.scss @@ -0,0 +1,3 @@ +.vh-80 { + height: 80vh; +} diff --git a/Build/Scss/includes/_modal.scss b/Build/Scss/includes/_modal.scss new file mode 100644 index 000000000..4518c3c8d --- /dev/null +++ b/Build/Scss/includes/_modal.scss @@ -0,0 +1,4 @@ +.modal-dialog { + // max width 30vw, 50% or 300px, depending on the minimum value + max-width: min(30vw, 50%, 300px); +} diff --git a/Build/Scss/includes/_modeller.scss b/Build/Scss/includes/_modeller.scss new file mode 100644 index 000000000..0847af7f3 --- /dev/null +++ b/Build/Scss/includes/_modeller.scss @@ -0,0 +1,21 @@ +.module-body { + padding: 0; +} + +#root { + height: 100%; + width: 100%; + + &-left { + text-align: left; + background-color: #F1F1F1; + } + + &-main { + text-align: left; + } + + &-right { + text-align: left; + } +} diff --git a/Build/Scss/includes/_panel.scss b/Build/Scss/includes/_panel.scss new file mode 100644 index 000000000..8294037b7 --- /dev/null +++ b/Build/Scss/includes/_panel.scss @@ -0,0 +1,5 @@ +.panel { + .caret { + margin-right: 4px; + } +} diff --git a/Build/Scss/includes/_reboot.scss b/Build/Scss/includes/_reboot.scss new file mode 100644 index 000000000..7dd6de083 --- /dev/null +++ b/Build/Scss/includes/_reboot.scss @@ -0,0 +1,8 @@ +.container-fluid { + ul { + padding-left: 0; + padding-right: 0; + margin-left: 0; + margin-right: 0; + } +} diff --git a/Build/Scss/includes/_typo3-overrides.scss b/Build/Scss/includes/_typo3-overrides.scss new file mode 100644 index 000000000..d6b934038 --- /dev/null +++ b/Build/Scss/includes/_typo3-overrides.scss @@ -0,0 +1,3 @@ +.module-body { + padding: 0; +} diff --git a/Build/Scss/index.scss b/Build/Scss/index.scss new file mode 100644 index 000000000..cc1cd7608 --- /dev/null +++ b/Build/Scss/index.scss @@ -0,0 +1,18 @@ +@import 'includes/_reboot.scss'; +@import 'includes/_form.scss'; +@import 'includes/_general.scss'; +@import 'includes/_footer.scss'; +@import 'includes/modal.scss'; +@import 'includes/_modeller.scss'; +@import 'App.scss'; + +/* React Flow */ +@import 'ReactFlow/reactflow.scss'; +@import 'ReactFlow/Nodes/customModel.scss'; +@import 'ReactFlow/_sidebar.scss'; + +/* TYPO3 overrides */ +@import 'includes/_typo3-overrides.scss'; +@import 'includes/_panel.scss'; + +@import 'extensionbuilder.scss'; diff --git a/Build/Sources/App.js b/Build/Sources/App.js new file mode 100644 index 000000000..eabc3e5a2 --- /dev/null +++ b/Build/Sources/App.js @@ -0,0 +1,367 @@ +import {useNodesState, useEdgesState} from 'reactflow'; +import {useEffect, useState, useContext, createContext} from "react"; +import {SettingsPanelComponent} from "./components/views/SettingsPanelComponent"; +import {RightContentComponent} from "./components/views/RightContentComponent"; +import {FontAwesomeIcon} from "@fortawesome/react-fontawesome"; +import initialProperties from "./initialValues/properties"; +import defaultAuthor from "./initialValues/author"; +import defaultModule from "./initialValues/module"; +import defaultPlugin from "./initialValues/plugin"; +import convertModulesToNodes from "./helper/converter/convertModulesToNodes"; +import convertRelationsToReactFlowRelations from "./helper/converter/convertRelationsToReactFlowRelations"; + +export const NodesContext = createContext([]); +export const EdgesContext = createContext([]); +export const CustomModelNodeIndexContext = createContext(0); +export const AdvancedOptionsContext = createContext(false); +export const RemoveEdgeContext = createContext(() => {}); +export const ValidationErrorsContext = createContext(null); + +function App() { + // Nodes for ReactFlow + const [nodes, setNodes, onNodesChange] = useNodesState([]); + const [edges, setEdges, onEdgesChange] = useEdgesState([]); + const [customModelNodeIndex, setCustomModelNodeIndex] = useState(0); + + const [properties, setProperties] = useState(initialProperties); + const [authors, setAuthors] = useState([]); + const [plugins, setPlugins] = useState([]); + const [modules, setModules] = useState([]); + const [validationErrors, setValidationErrors] = useState(null); + + // Zustand für das Ein- und Ausklappen der Settings Spalte + const [isSettingsColumnVisible, setIsSettingsColumnVisible] = useState(true); + + // Zustand für das Ein- und Ausklappen der erweiterten Optionen + const [isAdvancedOptionsVisible, setAdvancedOptionsVisible] = useState(false); + + const handleNodesChanged = (newNodes) => { + setNodes(newNodes); + }; + + const handleEdgesChanged = (newEdges) => { + setEdges(newEdges); + }; + + useEffect(() => { + const settingsColumn = document.getElementById('settings-column'); + if (settingsColumn) { + settingsColumn.style.opacity = isSettingsColumnVisible ? '1' : '0'; + } + }, [isSettingsColumnVisible]); + + // Funktion zum Umschalten der Sichtbarkeit der linken Spalte + const toggleSettingsColumn = () => { + setIsSettingsColumnVisible(!isSettingsColumnVisible); + } + + const toggleAdvcancedOptions = () => { + // console.log("toggle advanced options", isAdvancedOptionsVisible) + setAdvancedOptionsVisible(!isAdvancedOptionsVisible); + } + + const addNewItemHandler = (setter, defaultItem) => () => { + setter((prevItems) => { + return [...prevItems, {...defaultItem }]; + }); + } + + const addNewAuthorHandler = addNewItemHandler(setAuthors, defaultAuthor); + const addNewModuleHandler = addNewItemHandler(setModules, defaultModule); + const addNewPluginHandler = addNewItemHandler(setPlugins, defaultPlugin); + + const updateExtensionPropertiesHandler = (key, value) => { + if (key.includes('.')) { + const [parentKey, childKey] = key.split('.'); + setProperties(prevProperties => ({ + ...prevProperties, + [parentKey]: { + ...prevProperties[parentKey], + [childKey]: value, + }, + })); + } else { + setProperties(prevProperties => ({ + ...prevProperties, + [key]: value, + })); + } + } + + const updateAuthorHandler = (authorIndex, field, value) => { + if (authorIndex < 0 || authorIndex >= authors.length) { + console.error("Invalid author index"); + return; + } + + setAuthors((prevAuthors) => { + return prevAuthors.map((author, index) => { + if (index === authorIndex) { + return {...author, [field]: value}; + } + return author; + }); + }); + }; + + const updatePluginHandler = (pluginIndex, fieldPath, value) => { + if (pluginIndex < 0 || pluginIndex >= plugins.length) { + console.error("Invalid plugin index"); + return; + } + + // Teile den Pfad in seine Bestandteile + const pathParts = fieldPath.split('.'); + + setPlugins((prevPlugins) => { + return prevPlugins.map((plugin, index) => { + if (index === pluginIndex) { + // Erstelle eine Kopie des Plugins + let updatedPlugin = {...plugin}; + + // Referenz zum aktuellen Teil des Plugins + let currentPart = updatedPlugin; + + // Gehe durch alle Teile des Pfads, außer dem letzten + for (let i = 0; i < pathParts.length - 1; i++) { + const part = pathParts[i]; + + // Aktualisiere die Referenz zum nächsten Teil + if (!currentPart[part]) { + currentPart[part] = {}; // Erstelle ein neues Objekt, falls nicht vorhanden + } else { + // Erstelle eine Kopie, um direkte Mutationen zu vermeiden + currentPart[part] = {...currentPart[part]}; + } + + // Bewege die Referenz + currentPart = currentPart[part]; + } + + // Aktualisiere den letzten Teil des Pfads + currentPart[pathParts[pathParts.length - 1]] = value; + + // Gib das aktualisierte Plugin zurück + return updatedPlugin; + } + return plugin; + }); + }); + }; + + + const updateModuleHandler = (moduleIndex, fieldPath, value) => { + if (moduleIndex < 0 || moduleIndex >= modules.length) { + console.error("Invalid module index"); + return; + } + + // Teile den Pfad in seine Bestandteile + const pathParts = fieldPath.split('.'); + + setModules((prevModules) => { + return prevModules.map((module, index) => { + if (index === moduleIndex) { + // Erstelle eine Kopie des Moduls + let updatedModule = {...module}; + + // Referenz zum aktuellen Teil des Moduls + let currentPart = updatedModule; + + // Gehe durch alle Teile des Pfads, außer dem letzten + for (let i = 0; i < pathParts.length - 1; i++) { + const part = pathParts[i]; + + // Aktualisiere die Referenz zum nächsten Teil + if (!currentPart[part]) { + currentPart[part] = {}; // Erstelle ein neues Objekt, falls nicht vorhanden + } else { + // Erstelle eine Kopie, um direkte Mutationen zu vermeiden + currentPart[part] = {...currentPart[part]}; + } + + // Bewege die Referenz + currentPart = currentPart[part]; + } + + // Aktualisiere den letzten Teil des Pfades + currentPart[pathParts[pathParts.length - 1]] = value; + + // Gib das aktualisierte Modul zurück + return updatedModule; + } + return module; + }); + }); + }; + + const removeAuthorHandler = (authorIndex) => { + // console.log(authorIndex); + setAuthors((prevAuthors) => { + return prevAuthors.filter((author, index) => index !== authorIndex); + }); + } + + const removePluginHandler = (pluginIndex) => { + setPlugins((prevPlugins) => { + return prevPlugins.filter((plugin, index) => index !== pluginIndex); + }); + } + + const removeModuleHandler = (moduleIndex) => { + setModules((prevModules) => { + return prevModules.filter((module, index) => index !== moduleIndex); + }); + } + + const moveElement = (index, direction, array, setArray) => { + setArray(prevArray => { + const newArray = [...prevArray]; + const targetIndex = index + direction; + + if (targetIndex >= 0 && targetIndex < newArray.length) { + const temp = newArray[targetIndex]; + newArray[targetIndex] = newArray[index]; + newArray[index] = temp; + } + + return newArray; + }); + } + + const moveAuthor = (index, direction) => moveElement(index, direction, authors, setAuthors); + const movePlugin = (index, direction) => moveElement(index, direction, plugins, setPlugins); + const moveModule = (index, direction) => moveElement(index, direction, modules, setModules); + + const handleOpenExtension = (extension) => { + // TODO working.modules is not set here, instead, working.nodes is set and there is no uid for the module. The module uid is only inside working.modules + // The nodes has a data property, this has no uid, but needs it. Maybe I need to add the uid to the data property of the nodes. + // Instead the modules could be handed into the nodes but needs to be converted to the correct format. This could be a lot of work. + const working = JSON.parse(extension.working); + + console.log("working inside handleOpenExtension: ", working); + + // Sets properties. + setProperties(prev => ({...prev, ...working.properties})); + + // Updated authors, plugins and modules with new IDs. + setAuthors(working.properties.persons); + setPlugins(working.properties.plugins); + setModules(working.properties.backendModules); + + // console.log("working.modules"); + // console.log(working.modules); + + // console.log("working.nodes"); + // console.log(working.nodes); + + // First convert the given modules from .json file into nodes which are needed for the react flow component. + // let modules = convertModuleToNode(working.modules); + let modules = convertModulesToNodes(working.modules); + // Check if nodes or edges are available, and update them. + let edges = convertRelationsToReactFlowRelations(working.wires, modules); + + // console.log("41:" + JSON.stringify(working.modules, null, 2)); + console.log("42:" + JSON.stringify(working.edges, null, 2)); + + setNodes(modules ? modules: []); + setEdges(edges ? edges : []); + + console.log("modulesLength: " + (modules ? modules.length : 0)) + console.log("working edgesLength: " + (working.edges ? working.edges.length : 0)) + console.log("edgesLength: " + (edges ? edges.length : 0)) + // Set the custom model node index depending on the amount of nodes. + setCustomModelNodeIndex(modules ? modules.length : 0); + } + + + const removeNode = (nodeId) => { + setNodes(prevNodes => prevNodes.filter(node => node.id !== nodeId)); + } + + const removeEdge = (handleId) => { + // remove edge depending on the handle id + setEdges(prevEdges => prevEdges.filter(edge => edge.sourceHandle !== handleId)); + } + + return ( +
+ + +
+
+ Some placeholder content for the collapse component. This panel is hidden by default but revealed + when the user activates the relevant trigger. +
+
+
+
+
+ + + + + + + +
+
+
+
+ + + + + + + + + + + + + +
+
+
+
+ ); +} + +export default App; diff --git a/Build/Sources/components/ActionButtonsComponent.jsx b/Build/Sources/components/ActionButtonsComponent.jsx new file mode 100644 index 000000000..5999af3eb --- /dev/null +++ b/Build/Sources/components/ActionButtonsComponent.jsx @@ -0,0 +1,409 @@ +import axios from "axios"; +import React, {useState, useContext} from "react"; +import {FontAwesomeIcon} from "@fortawesome/react-fontawesome"; +import { v4 as uuidv4 } from 'uuid'; +import {listAvailableExtensions} from "../helper/api/listAvailableExtensions"; +import { Modal, Button } from 'react-bootstrap'; +import {EdgesContext, NodesContext, ValidationErrorsContext } from "../App"; + +export const ActionButtonsComponent = (props) => { + const {nodes} = useContext(NodesContext); + const {edges} = useContext(EdgesContext); + const {validationErrors} = useContext(ValidationErrorsContext); + + const [errors, setErrors] = useState(null); + const [success, setSuccess] = useState(null); + + const [show, setShow] = useState(false); + const [modalTitle, setModalTitle] = useState(''); + const [modalBody, setModalBody] = useState(''); + const [modalClassname, setModalClassname] = useState('bg-info text-dark'); + + const [modalBodyHtml, setModalBodyHtml] = useState(''); + const [modalBodyJsx, setModalBodyJsx] = useState(null) + + const handleClose = () => { + setErrors(null); + } + + const handleNew = () => { + // eslint-disable-next-line no-restricted-globals + if(confirm("Are you sure? All unsaved changes will be lost.")) { + // eslint-disable-next-line no-restricted-globals + location.reload(); + } + } + + const handleSave = () => { + // modules => nodes from react flow + let modules = []; + + // For each nodes, create a module object + nodes.forEach((node) => { + let customActions = []; + node.data.customActions.map((action) => { + customActions.push(action); + }); + + let properties = []; + node.data.properties.map((property) => { + properties.push( + { + "allowedFileTypes": "", + "propertyDescription": property.propertyDescription, + "propertyIsExcludeField": property.propertyIsExcludeField, + "propertyIsL10nModeExclude": property.propertyIsL10nModeExclude, + "propertyIsNullable": property.propertyIsNullable, + "propertyIsRequired": property.propertyIsRequired, + "propertyName": property.propertyName, + "propertyType": property.propertyType, + "typeSelect": { + "selectboxValues": property.typeSelect?.selectboxValues || "", + "renderType": property.typeSelect?.renderType || "selectSingle", + "foreignTable": property.typeSelect?.foreignTable || "", + "whereClause": property.typeSelect?.whereClause || "", + }, + "typeText": { + "enableRichtext": property.typeText?.enableRichtext || false, + }, + "typeNumber": { + "enableSlider": property.typeNumber?.enableSlider || false, + "steps": property.typeNumber?.steps || 1, + "setRange": property.typeNumber?.setRange || false, + "upperRange": property.typeNumber?.upperRange || 255, + "lowerRange": property.typeNumber?.lowerRange || 0, + }, + "typeColor": { + "setValuesColorPicker": property.typeColor?.setValuesColorPicker || false, + "colorPickerValues": property.typeColor?.colorPickerValues || '', + }, + "typeBoolean": { + "renderType": property.typeBoolean?.renderType || "default", + "booleanValues": property.typeBoolean?.booleanValues || "", + }, + "typePassword": { + "renderPasswordGenerator": property.typePassword?.renderPasswordGenerator || false, + }, + "typeDateTime": { + "dbTypeDateTime": property.typeDateTime?.dbTypeDateTime || "", + "formatDateTime": property.typeDateTime?.formatDateTime || "", + }, + "typeFile": { + "allowedFileTypes": property.typeFile?.allowedFileTypes || "", + }, + "size": property.size || "30", + "rows": property.rows || "10", + "minItems": property.minItems || "", + "maxItems": property.maxItems || "", + "uid": uuidv4() + } + ); + }); + + let relations = []; + node.data.relations.map((relation) => { + relations.push( + { + "foreignRelationClass": relation.foreignRelationClass || "", + "lazyLoading": relation.lazyLoading || false, + "excludeField": relation.excludeField || false, + "relationDescription": relation.relationDescription || "", + "relationName": relation.relationName || "", + "relationType": relation.relationType || "anyToMany", + "relationWire": "[wired]", + "renderType": "selectSingle", + "uid": uuidv4() + } + ); + }); + + console.log("node actionbuttosncompoentn"); + console.log(node); + let module = { + "config": { + "position": [ + node.position.x, + node.position.y + ] + }, + "name": node.data.label, + "value": { + "actionGroup": { + "_default0_index": node.data.actions.actionIndex, + "_default1_list": node.data.actions.actionList, + "_default2_show": node.data.actions.actionShow, + "_default3_new_create": node.data.actions.actionNewCreate, + "_default4_edit_update": node.data.actions.actionEditUpdate, + "_default5_delete": node.data.actions.actionDelete, + "customActions": customActions + }, + "name": node.data.label, + "objectsettings": { + "addDeletedField": node.data.addDeletedField, + "addHiddenField": node.data.addHiddenField, + "addStarttimeEndtimeFields": node.data.addStarttimeEndtimeFields, + "aggregateRoot": node.data.isAggregateRoot, + "controllerScope": node.data.controllerScope, + "categorizable": node.data.enableCategorization, + "description": node.data.description, + "mapToTable": node.data.mapToExistingTable, + "parentClass": node.data.extendExistingModelClass, + "sorting": node.data.enableSorting, + "type": "Entity", + "uid": node?.uid ?? uuidv4() + }, + "propertyGroup": { + "properties": properties + }, + "relationGroup": { + "relations": relations + } + } + }; + console.log("modul"); + console.log(module); + modules.push(module); + }); + + let sourceRelationCount = new Map(); + + let wires = edges.map((edge, index) => { + // Ermittle die Indizes der Nodes + let sourceIndex = nodes.findIndex(n => n.id === edge.source); + let targetIndex = nodes.findIndex(n => n.id === edge.target); + + // Aktualisiere die Zählung für die Source Node + if (!sourceRelationCount.has(sourceIndex)) { + sourceRelationCount.set(sourceIndex, 0); + } + let relationIndex = sourceRelationCount.get(sourceIndex); + sourceRelationCount.set(sourceIndex, relationIndex + 1); + + return { + "src": { + "moduleId": modules.findIndex(node => node.name === nodes[sourceIndex].data.label), + "terminal": `relationWire_${relationIndex}`, + "uid": edge.id + }, + "tgt": { + "moduleId": modules.findIndex(node => node.name === nodes[targetIndex].data.label), + "terminal": "SOURCES", + "uid": edge.source + } + } + }); + + + let working = { + "modules": modules, + "properties": { + "backendModules": props.modules, + "description": props.properties.description || "", + "emConf": { + "category": props.properties.emConf.category, + "custom_category": "", + "dependsOn": props.properties.emConf.dependsOn || "", + "disableLocalization": props.properties.emConf.disableLocalization || false, + "disableVersioning": props.properties.emConf.disableVersioning || false, + "generateDocumentationTemplate": props.properties.emConf.generateDocumentationTemplate || false, + "generateEditorConfig": props.properties.emConf.generateEditorConfig || false, + "generateEmptyGitRepository": props.properties.emConf.generateEmptyGitRepository || false, + "sourceLanguage": props.properties.emConf.sourceLanguage, + "state": props.properties.emConf.state, + "targetVersion": props.properties.emConf.targetVersion, + "version": props.properties.emConf.version + }, + "extensionKey": props.properties.extensionKey, + "name": props.properties.name, + "originalExtensionKey": "", + "originalVendorName": "", + "persons": props.authors, + "plugins": props.plugins, + "vendorName": props.properties.vendorName + }, + "wires": wires + /*"nodes": nodes,*/ + /*"edges": edges*/ + }; + + let payload = { + "id": 4, + "method": "saveWiring", + "name": props.properties.name, + "params": { + "language": "extbaseModeling", + "working": JSON.stringify(working) + }, + "version": "json-rpc-2.0" + }; + + // TYPO3 will be available in the global scope + // eslint-disable-next-line no-undef + axios.post(TYPO3.settings.ajaxUrls.eb_dispatchRpcAction, JSON.stringify(payload), { + headers: { + 'Content-Type': 'application/json', + "X-Requested-With": "XMLHttpRequest" + } + }) + .then(function (response) { + console.log("Successfull saved"); + console.log(response.data.success); + if(response.data.success === null || response.data.success === undefined) { + setModalTitle('Successfull saved but ...'); + setModalClassname('bg-warning text-dark'); + setModalBodyHtml('... Something went wrong on server side

' + JSON.stringify(response.data) + ''); + setModalBodyJsx(null) + setShow(true); + } else { + setModalTitle('Successfull saved'); + setModalClassname('bg-success text-white'); + setModalBodyHtml(response.data.success) + setModalBodyJsx(null) + setShow(true); + } + // eslint-disable-next-line no-restricted-globals,no-undef + setSuccess(response); + }) + .catch(function (error) { + console.log("Error"); + console.log(error.message); + // eslint-disable-next-line no-restricted-globals + top.TYPO3.Modal.confirm( + error.message, + error.response.data, + 0, + [ + { + text: 'Close', + trigger: function () { + console.log("this should close the modal"); + top.TYPO3.Modal.dismiss(); + } + } + ] + ); + setErrors(error); + }); + } + + const handleOpenExtension = async () => { + // Lists all available extensions built with the extension builder + // Only if they have the extensionbuilder.json file + const extensions = await listAvailableExtensions(); + + // the extensions are now inside the extensions constant as a json object + // the modal now lists the extensions and after clicking on one of them, the modal closes and the extension is loaded + + // extensions json has the following structure: + // error = null, if no error occurs + // success = true, when the request was successful + // result with the array of extensions + // console.log("available extensions"); + // console.log(extensions); + + if(extensions.error !== null && extensions.success === false) { + console.log("fetching failed"); + setShow(true); + setModalTitle('Fetching failed'); + setModalClassname('bg-danger text-white'); + setModalBodyHtml('Fetching the extensions failed. Please check, if you have extensions with a valid extensionbuilder.json file.'); + setModalBodyJsx(null); + } else if (extensions.error === null && extensions.success === true) { + setShow(true); + setModalTitle('Available extensions'); + setModalClassname('bg-info text-dark'); + let message = 'Currently no extensions are found for editing.'; + if (extensions.result.length > 0) { + message = 'Please select an extension to open:'; + } + setModalBodyJsx( + <> +

{message}

+
+ {extensions.result.map((extension) => ( + + ))} +
+ + ); + setModalBodyHtml(null); + } + } + + const handleExtensionClick = (extension) => { + setShow(false); + props.handleOpenExtension(extension); + }; + + const checkValidationErrors = () => { + // TODO at the moment the validationErrors are still present when f.e. a node is deleted. + // We have to check, if it is deleted and then remove all the validationErrors for this node + + if(validationErrors === null || validationErrors === undefined) { + return true; + } + + const errors = Object.values(validationErrors).some(value => value === true); + + if(errors) { + return true; + } + + return false; + } + + return ( + <> + setShow(false)}> + + {modalTitle} + + + {modalBodyHtml &&
} + {modalBodyJsx} + + + + + +
+
+ + + +
+
+ + + ) +} diff --git a/Build/Sources/components/ReactFlow/Connections/ConnectionLine.jsx b/Build/Sources/components/ReactFlow/Connections/ConnectionLine.jsx new file mode 100644 index 000000000..a33742ed1 --- /dev/null +++ b/Build/Sources/components/ReactFlow/Connections/ConnectionLine.jsx @@ -0,0 +1,23 @@ +import React from 'react'; + +export default ({ fromX, fromY, toX, toY }) => { + return ( + + + + + ); +}; diff --git a/Build/Sources/components/ReactFlow/CustomModelNode.jsx b/Build/Sources/components/ReactFlow/CustomModelNode.jsx new file mode 100644 index 000000000..f45c086f8 --- /dev/null +++ b/Build/Sources/components/ReactFlow/CustomModelNode.jsx @@ -0,0 +1,906 @@ +import { useState, useContext} from 'react'; +import {FontAwesomeIcon} from "@fortawesome/react-fontawesome"; +import {TYPO3StyledAccordion} from "../accordions/TYPO3StyledAccordion"; +import {TYPO3StyledAccordionGroup} from "../accordions/TYPO3StyledAccordionGroup"; +import InputComponent from "../forms/input/InputComponent"; +import CheckboxComponent from "../forms/input/CheckboxComponent"; +import TextareaComponent from "../forms/textarea/TextareaComponent"; +import SelectComponent from "../forms/select/SelectComponent"; +import { Handle, Position } from 'reactflow'; +import propertyTypes from "./customModelNode/propertyTypes"; +import relationTypes from "./customModelNode/relationTypes"; +import { faArrowUp, faArrowDown, faTrash } from '@fortawesome/free-solid-svg-icons' + +import {AdvancedOptionsContext, RemoveEdgeContext, EdgesContext } from "../../App"; +import { v4 as uuidv4 } from 'uuid'; + +export const CustomModelNode = (props) => { + const [properties, setProperties] = useState(props.data.properties); + const [relations, setRelations] = useState(props.data.relations); + const [relationIndex, setRelationIndex] = useState(0); + const [customActions, setCustomActions] = useState([]); + + const {isAdvancedOptionsVisible} = useContext(AdvancedOptionsContext); + const {removeEdge} = useContext(RemoveEdgeContext); + const {edges} = useContext(EdgesContext); + + // TODO: create a default property inside an empty js file and set it her. + const addEmptyProperty = () => { + setProperties([...properties, { + propertyName: '', + propertyType: '', + propertyDescription: '', + propertyIsRequired: false, + propertyIsNullable: false, + propertyIsExcludeField: false, + propertyIsL10nModeExclude: false, + typeSelect: { + selectboxValues: "", + renderType: "selectSingle", + foreignTable: "", + whereClause: "", + }, + typeText: { + enableRichtext: false, + }, + typeNumber: { + enableSlider: false, + steps: 1, + setRange: false, + upperRange: 255, + lowerRange: 0, + }, + typeColor: { + setValuesColorPicker: false, + colorPickerValues: '', + }, + typeBoolean: { + renderType: "default", + booleanValues: "", + }, + typePassword: { + renderPasswordGenerator: false, + }, + typeDateTime: { + dbTypeDateTime: "", + formatDateTime: "", + }, + typeFile: { + allowedFileTypes: "", + }, + size: "", + minItems: "", + maxItems: "", + }]); + props.data.properties.push( + { + propertyName: '', + propertyType: '', + propertyDescription: '', + propertyIsRequired: false, + propertyIsNullable: false, + propertyIsExcludeField: false, + propertyIsL10nModeExclude: false, + typeSelect: { + selectboxValues: "", + renderType: "selectSingle", + foreignTable: "", + whereClause: "", + }, + typeText: { + enableRichtext: false, + }, + typeNumber: { + enableSlider: false, + steps: 1, + setRange: false, + upperRange: 255, + lowerRange: 0, + }, + typeColor: { + setValuesColorPicker: false, + colorPickerValues: '', + }, + typeBoolean: { + renderType: "default", + booleanValues: "", + }, + typePassword: { + renderPasswordGenerator: false, + }, + typeDateTime: { + dbTypeDateTime: "", + formatDateTime: "", + }, + typeFile: { + allowedFileTypes: "", + }, + size: "", + minItems: "", + maxItems: "", + } + ); + } + + const addEmptyRelation = () => { + const newRelation = { + "foreignRelationClass": "", + "lazyLoading": true, + "excludeField": true, + "relationDescription": "", + "relationName": "", + "relationType": "", + "relationWire": "", + "renderType": "", + // TODO: muss die uuid hier generiert werden? + "uid": uuidv4() // Hier wird die UUID generiert + }; + + setRelations([...relations, newRelation]); + props.data.relations.push(newRelation); + setRelationIndex(prevIndex => prevIndex + 1); + } + + const addEmptyAction = () => { + const newAction = {name: ''}; + + // Updating customActions + setCustomActions(prevActions => [...prevActions, newAction]); + + // Adding a new entry to props.data.customActions + props.data.customActions = [...props.data.customActions, newAction]; + } + + const updateCustomAction = (index, value) => { + props.data.customActions[index] = value; + } + + const updateProperty = (index, property, value) => { + const pathParts = property.split("."); + let currentProperty = properties[index]; + + for (let i = 0; i < pathParts.length - 1; i++) { + if (!currentProperty[pathParts[i]]) { + currentProperty[pathParts[i]] = {}; + } + currentProperty = currentProperty[pathParts[i]]; + } + currentProperty[pathParts[pathParts.length - 1]] = value; + + setProperties([...properties]); + props.data.properties = properties; + } + + const removeProperty = (propertyIndex) => { + properties.splice(propertyIndex, 1); + setProperties([...properties]); + props.data.properties = properties; + } + + const removeRelation = (relationIndex, handleId) => { + removeEdge(handleId); + + relations.splice(relationIndex, 1); + setRelations([...relations]); + props.data.relations = relations; + } + + const moveProperty = (propertyIndex, direction) => { + const newIndex = propertyIndex + direction; + if (newIndex < 0 || newIndex >= properties.length) { + return; + } + const property = properties[propertyIndex]; + properties.splice(propertyIndex, 1); + properties.splice(newIndex, 0, property); + setProperties([...properties]); + props.data.properties = properties; + } + + const moveRelation = (relationIndex, direction) => { + const newIndex = relationIndex + direction; + if (newIndex < 0 || newIndex >= relations.length) { + return; + } + const relation = relations[relationIndex]; + relations.splice(relationIndex, 1); + relations.splice(newIndex, 0, relation); + setRelations([...relations]); + props.data.relations = relations; + } + + const updateRelation = (index, property, value) => { + relations[index][property] = value; + setRelations([...relations]); + props.data.relations = relations; + } + + const updateNode = (path, value) => { + const pathParts = path.split("."); + let data = props.data; + + for (let i = 0; i < pathParts.length - 1; i++) { + if (!data[pathParts[i]]) { + data[pathParts[i]] = {}; + } + data = data[pathParts[i]]; + } + data[pathParts[pathParts.length - 1]] = value; + } + + const removeNode = (id) => { + // props.removeNode(id); + console.log('removeNode', props); + } + + const getIsRelationConnected = (relationUid) => { + // check if the relation UID is inside the props.edges + return edges.some(edge => edge.sourceHandle === relationUid); + }; + + return ( +
+
+
+ { + // replace all whitespaces inside the value with an empty string + value = value.replace(/\s/g, ''); + updateNode('label', value.charAt(0).toUpperCase() + value.slice(1)); + }} + /> + + console.log('handle onConnect', params)} + style={{ + background: 'rgb(255 135 0 / 33%)', + border: '3px solid #ff8700', + position: 'relative', + top: '-21px', + left: '-30px' + }} + /> +
+ + + { + updateNode('isAggregateRoot', value); + }} + /> + { isAdvancedOptionsVisible && ( { + updateNode('controllerScope', value); + }} /> + )} + { isAdvancedOptionsVisible && ( +

This is only used for the templates of the Controller.
+ In the frontend, there is no ModuleTemplateFactory
+ available. If you want to use Boostrap classes inside
+ your Template, you should choose "Backend".
+ You can always adjust your controllers for your needs.

+ )} + { isAdvancedOptionsVisible && ( { + updateNode('enableSorting', value); + }} + /> )} + { isAdvancedOptionsVisible && ( { + updateNode('addDeletedField', value); + }} + /> )} + { isAdvancedOptionsVisible && ( { + updateNode('addHiddenField', value); + }} + /> )} + { isAdvancedOptionsVisible && ( { + updateNode('addStarttimeEndtimeFields', value); + }} + /> )} + { isAdvancedOptionsVisible && ( { + updateNode('enableCategorization', value); + }} + /> )} + { + updateNode('description', value); + }} + /> + { isAdvancedOptionsVisible && ( { + updateNode('mapToExistingTable', value); + }} + /> )} + { isAdvancedOptionsVisible && ( { + updateNode('parentClass', value); + }} + /> )} +
+ + { + updateNode('actions.actionIndex', value); + }} + /> + { + updateNode('actions.actionList', value); + }} + /> + { + updateNode('actions.actionShow', value); + }} + /> + { + updateNode('actions.actionNewCreate', value); + }} + /> + { + updateNode('actions.actionEditUpdate', value); + }} + /> + { + updateNode('actions.actionDelete', value); + }} + /> +
+ Custom actions + +
+ { + props.data.customActions.map((action, index) => ( +
+ { + updateCustomAction(index, value); + }} + /> + +
+ )) + } +
+ +
+ +
+ + { + props.data.properties.map((property, index) => { + return ( + +
+ { + updateProperty(index, "propertyName", value.toLowerCase()); + }} + /> + { + updateProperty(index, "propertyType", value); + }} + /> + {property.propertyType === 'Text' &&( { + updateProperty(index, "typeText.enableRichtext", value); + }} + />)} + {(property.propertyType === 'Integer' || property.propertyType === 'Float') &&( +
+ { + updateProperty(index, "typeNumber.enableSlider", value); + }} /> + {property.typeNumber?.enableSlider && ( + { + updateProperty(index, "typeNumber.setRange", value); + }} /> + )} +
+ )} + {(property.propertyType === 'Integer' || property.propertyType === 'Float') && (property.typeNumber?.enableSlider) && +
+ { + updateProperty(index, "typeNumber.steps", value); + }} + /> +
+ }{((property.propertyType === 'Integer' || property.propertyType === 'Float') && (property.typeNumber?.enableSlider && property.typeNumber?.setRange)) && +
+ { + updateProperty(index, "typeNumber.lowerRange", value); + }} + /> + { + updateProperty(index, "typeNumber.upperRange", value); + }} + /> +
+ } + {property.propertyType === 'DateTime' &&( { + updateProperty(index, "typeDateTime.formatDateTime", value); + }} + />)} + {property.propertyType === 'Select' &&( { + updateProperty(index, "typeSelect.selectboxValues", value); + }} + />)} + {property.propertyType === 'Select' &&( { + updateProperty(index, "typeSelect.renderType", value); + }} + />)} + {property.propertyType === 'Select' && { + updateProperty(index, "typeSelect.foreignTable", value); + }} + />} + {property.propertyType === 'Select' && { + updateProperty(index, "typeSelect.whereClause", value); + }} + />} + {property.propertyType === 'Select' && { + updateProperty(index, "size", value); + }} + />} + {property.propertyType === 'Text' && !property.typeText?.enableRichtext && { + updateProperty(index, "rows", value); + }} + />} + {(property.propertyType === 'Select' || property.propertyType === 'File') && (
+ { + updateProperty(index, "minItems", value); + }} + /> + { + updateProperty(index, "maxItems", value); + }} + /> +
)} + {(property.propertyType === 'File') && (
+ { + updateProperty(index, "typeFile.allowedFileTypes", value); + }} + /> +
)} + {property.propertyType === 'Boolean' &&( { + updateProperty(index, "typeBoolean.renderType", value); + }} + />)} + {property.propertyType === 'Boolean' && ( { + updateProperty(index, "typeBoolean.booleanValues", value); + }} + />)} + {property.propertyType === 'Password' &&( { + updateProperty(index, "typePassword.renderPasswordGenerator", value); + }} />) + } + {property.propertyType === 'ColorPicker' &&( { + updateProperty(index, "typeColor.setValuesColorPicker", value); + }} />)} + {(property.propertyType === 'ColorPicker' && property.typeColor?.setValuesColorPicker) &&( { + updateProperty(index, "typeColor.colorPickerValues", value); + }} + />)} + { + updateProperty(index, "propertyDescription", value); + }} + /> + { + updateProperty(index, "propertyIsRequired", value); + }} + /> + { isAdvancedOptionsVisible && ( { + updateProperty(index, "propertyIsNullable", value); + }} + /> )} + { isAdvancedOptionsVisible && ( { + updateProperty(index, "propertyIsExcludeField", value); + }} + /> )} + { isAdvancedOptionsVisible && ( { + updateProperty(index, "propertyIsL10nModeExclude", value); + }} + /> )} +
+ + + +
+
+
+ ) + }) + } +
+
+
+
Relations
+ +
+ { + props.data.relations.map((relation, index) => { + return ( +
+ {/*
+                                    {JSON.stringify(index, null, 2)}
+                                
+

relation

+
+                                    {JSON.stringify(relation, null, 2)}
+                                
*/} + console.log('handle onConnect', params)} + style={{ + background: 'rgb(255 135 0 / 33%)', + border: '3px solid #ff8700', + position: 'relative', + top: '42px', + left: '4px', + zIndex: '1000' + }} + /> + +
+ { + updateRelation(index, "relationName", value); + }} + /> + { + updateRelation(index, "relationType", value); + }} + /> + { + updateRelation(index, "relationDescription", value); + }} + /> + { + updateRelation(index, "excludeField", value); + }} + /> + { + updateRelation(index, "lazyLoading", value); + }} + /> + { + updateRelation(index, "relationToExternalClass", value); + }} + /> +
+ + + +
+ +
+
+
+ ) + }) + } +
+
+ ); +} diff --git a/Build/Sources/components/ReactFlow/ReactFlowComponent.jsx b/Build/Sources/components/ReactFlow/ReactFlowComponent.jsx new file mode 100644 index 000000000..e1d3320c9 --- /dev/null +++ b/Build/Sources/components/ReactFlow/ReactFlowComponent.jsx @@ -0,0 +1,141 @@ +import React, { useCallback, useEffect, useMemo, useRef, useState, useContext } from 'react'; +import ReactFlow, { + MiniMap, + ReactFlowProvider, + Background, + addEdge, + Controls, + SelectionMode, +} from 'reactflow'; +import 'reactflow/dist/style.css'; +import { CustomModelNode } from './CustomModelNode'; +import Sidebar from './Sidebar'; +import {NodesContext, EdgesContext, CustomModelNodeIndexContext} from "../../App"; +import ConnectionLine from './Connections/ConnectionLine'; + +export const ReactFlowComponent = (props) => { + const {customModelNodeIndex, setCustomModelNodeIndex} = useContext(CustomModelNodeIndexContext); + const {localCustomModelNodeIndex, setLocalCustomModelNodeIndex} = useContext(CustomModelNodeIndexContext); + + const getId = () => { + let newId; + setCustomModelNodeIndex(prevIndex => { + newId = `dndnode_${prevIndex}`; + return prevIndex + 1; + }); + return newId; + } + + const {nodes, setNodes, onNodesChange} = useContext(NodesContext); + const {edges, setEdges, onEdgesChange} = useContext(EdgesContext); + + const reactFlowWrapper = useRef(null); + const nodeTypes = useMemo(() => ({ customModel: CustomModelNode }), []); + const [reactFlowInstance, setReactFlowInstance] = useState(null); + + const onConnect = useCallback( + (connection) => setEdges((eds) => addEdge(connection, eds)), + [setEdges] + ); + + useEffect(() => { + setReactFlowInstance(props.reactFlowInstance); + }, [props.reactFlowInstance]); + + const onDragOver = useCallback((event) => { + event.preventDefault(); + event.dataTransfer.dropEffect = 'move'; + }, []); + + const nodeColor = (node) => { + switch (node.type) { + case 'customModel': + return '#ff8700'; + case 'output': + return '#6865A5'; + default: + return '#ff0072'; + } + }; + + const onDrop = useCallback( + (event) => { + event.preventDefault(); + const reactFlowBounds = reactFlowWrapper.current.getBoundingClientRect(); + const type = event.dataTransfer.getData('application/reactflow'); + if (typeof type === 'undefined' || !type) { + console.log('type undefined'); + return; + } + const position = reactFlowInstance.project({ + x: event.clientX - reactFlowBounds.left, + y: event.clientY - reactFlowBounds.top, + }); + const data = { + label: "", + objectType: "", + isAggregateRoot: false, + controllerScope: "Frontend", + enableSorting: false, + addDeletedField: true, + addHiddenField: true, + addStarttimeEndtimeFields: true, + enableCategorization: false, + description: "", + mapToExistingTable: "", + extendExistingModelClass: "", + actions: { + actionIndex: false, + actionList: false, + actionShow: false, + actionNewCreate: false, + actionEditUpdate: false, + actionDelete: false, + }, + customActions: [ + ], + properties: [], + relations: [], + }; + const newNode = { + id: getId(), + type, + position, + data, + dragHandle: '.drag-handle', + draggable: true, + }; + setNodes((nds) => nds.concat(newNode)); + // console.log(newNode) + }, + [reactFlowInstance, setNodes] + ); + + return ( +
+ +
+ + + + + +
+ +
+
+ ); +} diff --git a/Build/Sources/components/ReactFlow/Sidebar.jsx b/Build/Sources/components/ReactFlow/Sidebar.jsx new file mode 100644 index 000000000..33463b81f --- /dev/null +++ b/Build/Sources/components/ReactFlow/Sidebar.jsx @@ -0,0 +1,17 @@ +import React from 'react'; + +export default (props) => { + const onDragStart = (event, nodeType) => { + event.dataTransfer.setData('application/reactflow', nodeType); + event.dataTransfer.effectAllowed = 'move'; + }; + + return ( + + ); +}; diff --git a/Build/Sources/components/ReactFlow/customModelNode/propertyTypes.js b/Build/Sources/components/ReactFlow/customModelNode/propertyTypes.js new file mode 100644 index 000000000..6f423afab --- /dev/null +++ b/Build/Sources/components/ReactFlow/customModelNode/propertyTypes.js @@ -0,0 +1,19 @@ +const propertyTypes = [ + "Boolean", + "ColorPicker", + "DateTime", + "Email", + "File", + "Float", + "Integer", + "InputLink" , + "Password", + "Select" , + "Slug", + "String", + "Text", + "None", + "PassThrough" +] + +export default propertyTypes; diff --git a/Build/Sources/components/ReactFlow/customModelNode/relationTypes.js b/Build/Sources/components/ReactFlow/customModelNode/relationTypes.js new file mode 100644 index 000000000..0f684ccbf --- /dev/null +++ b/Build/Sources/components/ReactFlow/customModelNode/relationTypes.js @@ -0,0 +1,8 @@ +const relationTypes = [ + 'zeroToOne', + 'zeroToMany', + 'manyToOne', + 'manyToMany' +]; + +export default relationTypes; diff --git a/Build/Sources/components/SingleComponents/SingleAuthorComponent.jsx b/Build/Sources/components/SingleComponents/SingleAuthorComponent.jsx new file mode 100644 index 000000000..00cdc18db --- /dev/null +++ b/Build/Sources/components/SingleComponents/SingleAuthorComponent.jsx @@ -0,0 +1,81 @@ +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; +import { faArrowUp, faArrowDown, faTrash } from '@fortawesome/free-solid-svg-icons' +import React from "react"; +import InputComponent from "../forms/input/InputComponent"; +import SelectComponent from "../forms/select/SelectComponent"; +import {roles} from "../../initialValues/author"; + +export const SingleAuthorComponent = (props) => { + const updateAuthorHandler = (field, value) => { + props.updateAuthorHandler(props.index, field, value); + }; + + return ( +
+ { + updateAuthorHandler('name', value); + }} + /> + { + updateAuthorHandler('role', value); + }} + /> + { + updateAuthorHandler('email', value); + }} + /> + { + updateAuthorHandler('company', value); + }} + /> +
+ + + +
+
+ ); +}; diff --git a/Build/Sources/components/SingleComponents/SingleAuthorComponent.test.js b/Build/Sources/components/SingleComponents/SingleAuthorComponent.test.js new file mode 100644 index 000000000..48d6b81f9 --- /dev/null +++ b/Build/Sources/components/SingleComponents/SingleAuthorComponent.test.js @@ -0,0 +1,42 @@ +import { render, fireEvent } from '@testing-library/react'; +import { SingleAuthorComponent } from './SingleAuthorComponent'; +import React from 'react'; +import '@testing-library/jest-dom'; + + +describe('SingleAuthorComponent', () => { + const mockAuthor = { + id: '1', + name: 'John Doe', + role: 'Developer', + email: 'john.doe@test.com', + company: 'Test Company' + }; + + const updateAuthorMock = jest.fn(); + const removeAuthorMock = jest.fn(); + const moveAuthorMock = jest.fn(); + + it('displays the correct initial author information', () => { + const { getByLabelText } = render(); + + expect(getByLabelText('Author')).toHaveValue(mockAuthor.name); + // expect(getByLabelText('Role')).toHaveValue(mockAuthor.role); + expect(getByLabelText('E-Mail')).toHaveValue(mockAuthor.email); + expect(getByLabelText('Company')).toHaveValue(mockAuthor.company); + }); + + it('calls updateAuthorHandler when an input field is changed', () => { + const { getByLabelText } = render(); + + fireEvent.change(getByLabelText('Author'), { target: { value: 'New Name' } }); + expect(updateAuthorMock).toHaveBeenCalledWith(mockAuthor.id, 'name', 'New Name'); + }); + + it('calls removeAuthorHandler when the delete button is clicked', () => { + const { getByLabelText } = render(); + + fireEvent.click(getByLabelText('Trash')); + expect(removeAuthorMock).toHaveBeenCalledWith(mockAuthor.id); + }); +}); diff --git a/Build/Sources/components/SingleComponents/SingleModuleComponent.jsx b/Build/Sources/components/SingleComponents/SingleModuleComponent.jsx new file mode 100644 index 000000000..744e2e94f --- /dev/null +++ b/Build/Sources/components/SingleComponents/SingleModuleComponent.jsx @@ -0,0 +1,107 @@ +import { Fragment } from "react"; +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; +import { faArrowUp, faArrowDown, faTrash } from '@fortawesome/free-solid-svg-icons' +import React from "react"; +import SelectComponent from "../forms/select/SelectComponent"; +import TextareaComponent from "../forms/textarea/TextareaComponent"; +import InputComponent from "../forms/input/InputComponent"; +import {mainModules} from "../../initialValues/module"; + +export const SingleModuleComponent = (props) => { + + const updateModuleHandler = (field, value) => { + props.updateModuleHandler(props.index, field, value); + }; + + return ( + +
+ { + updateModuleHandler('name', value); + }} + /> + { + updateModuleHandler('key', value); + }} + /> + { + updateModuleHandler('description', value); + }} + placeholder="Description" + /> + { + updateModuleHandler('tabLabel', value); + }} + /> + { + updateModuleHandler('mainModule', value); + }} + /> + { + updateModuleHandler('actions.controllerActionCombinations', value); + }} + /> +
+ + + +
+
+
+ ); +}; diff --git a/Build/Sources/components/SingleComponents/SingleModuleComponent.test.js b/Build/Sources/components/SingleComponents/SingleModuleComponent.test.js new file mode 100644 index 000000000..e394caea2 --- /dev/null +++ b/Build/Sources/components/SingleComponents/SingleModuleComponent.test.js @@ -0,0 +1,60 @@ +import { render, fireEvent } from "@testing-library/react"; +import { SingleModuleComponent } from "./SingleModuleComponent"; +import React from "react"; + +describe('SingleModuleComponent', () => { + const mockModule = { + id: '1', + name: 'Module 1', + key: 'module1', + description: 'This is module 1', + tabLabel: 'Tab 1', + mainModule: 'web', + controllerActionsCachable: 'Blog => edit, update, delete', + }; + + const updateModuleMock = jest.fn(); + const removeModuleMock = jest.fn(); + const moveModuleMock = jest.fn(); + + it('displays the correct initial module information', () => { + const { getByLabelText } = render(); + + // expect(getByLabelText('Name')).toHaveValue(mockModule.name); + // expect(getByLabelText('Key')).toHaveValue(mockModule.key); + // expect(getByLabelText('Description')).toHaveValue(mockModule.description); + // expect(getByLabelText('Label')).toHaveValue(mockModule.tabLabel); + // expect(getByLabelText('Main module')).toHaveValue(mockModule.mainModule); + // expect(getByLabelText('Cachable controller actions')).toHaveValue(mockModule.controllerActionsCachable); + }); + + it('calls updateModuleHandler when fields are changed', () => { + const { getByLabelText } = render(); + + fireEvent.change(getByLabelText('Name'), { target: { value: 'New Module Name' } }); + expect(updateModuleMock).toHaveBeenCalledWith(mockModule.id, 'name', 'New Module Name'); + + fireEvent.change(getByLabelText('Key'), { target: { value: 'newkey' } }); + expect(updateModuleMock).toHaveBeenCalledWith(mockModule.id, 'key', 'newkey'); + }); + + it('calls removeModuleHandler when the trash button is clicked', () => { + const { getByLabelText } = render(); + + fireEvent.click(getByLabelText('Trash')); + expect(removeModuleMock).toHaveBeenCalledWith(mockModule.id); + }); + + /*it('calls moveModule when the up or down button is clicked', () => { + const mockModule2 = {...mockModule, id: '2', name: 'Module 2'}; + const { getByLabelText } = render( + + ); + + fireEvent.click(getByLabelText('ArrowUp')); + expect(moveModuleMock).toHaveBeenCalledWith(0, -1); + + fireEvent.click(getByLabelText('ArrowDown')); + expect(moveModuleMock).toHaveBeenCalledWith(0, 1); + });*/ +}); diff --git a/Build/Sources/components/SingleComponents/SinglePluginComponent.jsx b/Build/Sources/components/SingleComponents/SinglePluginComponent.jsx new file mode 100644 index 000000000..4f6c96f12 --- /dev/null +++ b/Build/Sources/components/SingleComponents/SinglePluginComponent.jsx @@ -0,0 +1,90 @@ +import { Fragment, useState } from "react"; +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; +import { faArrowUp, faArrowDown, faTrash } from '@fortawesome/free-solid-svg-icons' +import InputComponent from "../forms/input/InputComponent"; +import TextareaComponent from "../forms/textarea/TextareaComponent"; +import React from "react"; + +export const SinglePluginComponent = (props) => { + + const updatePluginHandler = (field, value) => { + props.updatePluginHandler(props.index, field, value); + }; + + return ( + +
+ { + updatePluginHandler('name', value); + }} + /> + { + updatePluginHandler('key', value); + }} + /> + { + updatePluginHandler('description', value); + }} + /> + { + updatePluginHandler('actions.controllerActionCombinations', value); + }} + /> + { + updatePluginHandler('actions.noncacheableActions', value); + }} + /> +
+ + + +
+
+
+ ); +}; diff --git a/Build/Sources/components/SingleComponents/SinglePluginComponent.test.js b/Build/Sources/components/SingleComponents/SinglePluginComponent.test.js new file mode 100644 index 000000000..b9b111ce2 --- /dev/null +++ b/Build/Sources/components/SingleComponents/SinglePluginComponent.test.js @@ -0,0 +1,58 @@ +import { render, fireEvent } from "@testing-library/react"; +import { SinglePluginComponent } from "./SinglePluginComponent"; +import React from "react"; + +describe('SinglePluginComponent', () => { + const mockPlugin = { + id: '1', + name: 'Plugin 1', + key: 'plugin1', + description: 'This is plugin 1', + controllerActionsCachable: 'Blog => list, show', + controllerActionsNonCachable: 'Blog => edit, update, delete', + }; + + const updatePluginMock = jest.fn(); + const removePluginMock = jest.fn(); + const movePluginMock = jest.fn(); + + it('displays the correct initial plugin information', () => { + const { getByLabelText } = render(); + + // expect(getByLabelText('Plugin Name')).toHaveValue(mockPlugin.name); + // expect(getByLabelText('Plugin Key')).toHaveValue(mockPlugin.key); + // expect(getByLabelText('Description')).toHaveValue(mockPlugin.description); + // expect(getByLabelText('Cachable controller actions')).toHaveValue(mockPlugin.controllerActionsCachable); + // expect(getByLabelText('Non cachable controller actions')).toHaveValue(mockPlugin.controllerActionsNonCachable); + }); + + it('calls updatePluginHandler when fields are changed', () => { + const { getByLabelText } = render(); + + fireEvent.change(getByLabelText('Plugin Name'), { target: { value: 'New Plugin Name' } }); + expect(updatePluginMock).toHaveBeenCalledWith(mockPlugin.id, 'name', 'New Plugin Name'); + + fireEvent.change(getByLabelText('Plugin Key'), { target: { value: 'newkey' } }); + expect(updatePluginMock).toHaveBeenCalledWith(mockPlugin.id, 'key', 'newkey'); + }); + + /*it('calls removePluginHandler when the trash button is clicked', () => { + const { getByText } = render(); + + fireEvent.click(getByText(/faTrash/i)); + expect(removePluginMock).toHaveBeenCalledWith(mockPlugin.id); + });*/ + + /* it('calls movePlugin when the up or down button is clicked', () => { + const mockPlugin2 = {...mockPlugin, id: '2', name: 'Plugin 2'}; + const { getByText } = render( + + ); + + fireEvent.click(getByText(/faArrowUp/i)); + expect(movePluginMock).toHaveBeenCalledWith(0, -1); + + fireEvent.click(getByText(/faArrowDown/i)); + expect(movePluginMock).toHaveBeenCalledWith(0, 1); + });*/ +}); diff --git a/Build/Sources/components/accordions/AuthorsListAccordion.jsx b/Build/Sources/components/accordions/AuthorsListAccordion.jsx new file mode 100644 index 000000000..5d0cf3140 --- /dev/null +++ b/Build/Sources/components/accordions/AuthorsListAccordion.jsx @@ -0,0 +1,43 @@ +import { memo } from "react"; +import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' +import { SingleAuthorComponent } from "../SingleComponents/SingleAuthorComponent"; + +export const AuthorsListAccordion = memo((props) => { + return ( +
+ +
+
+ These authors will be added to the composer.json and ext_emconf.php files +
    + { + props.authors.map((author, index) => ( + + )) + } +
+ {props.authors.length === 0 &&
No authors yet
} + +
+
+
+ ) +}) diff --git a/Build/Sources/components/accordions/DebugOutputAccordion.jsx b/Build/Sources/components/accordions/DebugOutputAccordion.jsx new file mode 100644 index 000000000..a0a371c0d --- /dev/null +++ b/Build/Sources/components/accordions/DebugOutputAccordion.jsx @@ -0,0 +1,39 @@ +import {Fragment, useContext} from "react"; +import {EdgesContext, NodesContext} from "../../App"; + +export const DebugOutputAccordion = (props) => { + const {nodes} = useContext(NodesContext); + const {edges} = useContext(EdgesContext); + + return ( + +
+ +
+
+

Nodes

+
+                            {JSON.stringify(nodes, null, 2)}
+                        
+

Edges

+
+                            {JSON.stringify(edges, null, 2)}
+                        
+

Props

+
+                            {JSON.stringify(props, null, 2)}
+                        
+
+
+
+
+ ) +} diff --git a/Build/Sources/components/accordions/ExtensionPropertiesAccordion.jsx b/Build/Sources/components/accordions/ExtensionPropertiesAccordion.jsx new file mode 100644 index 000000000..f46ffc07d --- /dev/null +++ b/Build/Sources/components/accordions/ExtensionPropertiesAccordion.jsx @@ -0,0 +1,258 @@ +import { Fragment, useState } from "react"; +import { getExtensionKeyIsValid } from "../../helper"; +import InputComponent from "../forms/input/InputComponent"; +import TextareaComponent from "../forms/textarea/TextareaComponent"; +import SelectComponent from "../forms/select/SelectComponent"; +import CheckboxComponent from "../forms/input/CheckboxComponent"; + +export const ExtensionPropertiesAccordion = (props) => { + const [extensionProperties, setExtensionProperties] = useState(props.properties); + + const [isValid, setIsValid] = useState({}); + + const categoryOptions = [ + "plugin", + "module", + "misc", + "be", + "fe", + "services", + "templates", + "distribution", + "example", + "doc" + ]; + + const stateOptions = [ + "alpha", + "beta", + "stable", + "experimental", + "test", + ]; + + const targetTYPO3Versions = [ + "12.4" + ]; + + const handleValueChange = (field, value) => { + updateExtensionPropertiesHandler(field, value); + + // Handle validation in the same method to keep code DRY + if (["extensionKey", "vendorName", "name"].includes(field)) { + const isValid = field === 'extensionKey' ? getExtensionKeyIsValid(value) : value.length >= 3; + setIsValid(prevProps => ({ + ...prevProps, + [field]: isValid + })); + } + + // If the changed field is 'emConf.targetVersion', also update the 'depends on' value + if (field === 'emConf.targetVersion') { + handleTargetTYPO3VersionChange(value); + } + }; + + const handleTargetTYPO3VersionChange = (selectedVersion) => { + const lines = (extensionProperties.emConf.dependsOn.split('\n').length === 1 && extensionProperties.emConf.dependsOn.split('\n')[0] === '') ? [] : extensionProperties.emConf.dependsOn.split('\n'); + let typo3LineFound = false; + + const generateTypo3Line = (version) => { + return `typo3 => ${version}.0-${version}.99`; + } + + const updatedLines = lines.map(line => { + if (line.trim().startsWith('typo3')) { + typo3LineFound = true; + return generateTypo3Line(selectedVersion); + } + return line; + }); + + if (!typo3LineFound) { + updatedLines.push(generateTypo3Line(selectedVersion)); + } + + const updatedDependsOnValue = updatedLines.join('\n'); + + handleValueChange('emConf.dependsOn', updatedDependsOnValue); + }; + + const updateExtensionPropertiesHandler = (field, value) => { + if (field.startsWith('emConf.')) { + const emConfField = field.split('.')[1]; + setExtensionProperties(prevProps => ({ + ...prevProps, + emConf: { + ...prevProps.emConf, + [emConfField]: value + } + })); + } else { + setExtensionProperties(prevProps => ({ + ...prevProps, + [field]: value + })); + } + props.updateExtensionPropertiesHandler(field, value); + } + + return ( + +
+ +
+
+ { + handleValueChange('name', value) + }} + /> + { + handleValueChange('vendorName', value) + }} + /> + { + handleValueChange('extensionKey', value) + }} + /> + { + handleValueChange('description', value) + }} + /> + { + handleValueChange('emConf.category', value) + }} + /> + { + handleValueChange('emConf.version', value) + }} + /> + { + handleValueChange('emConf.state', value) + }} + /> + { + handleValueChange('emConf.disableVersioning', value) + }} + /> + { + handleValueChange('emConf.disableLocalization', value) + }} + /> + { + handleValueChange('emConf.generateDocumentationTemplate', value) + }} + /> + { + handleValueChange('emConf.generateEmptyGitRepository', value) + }} + /> + { + handleValueChange('emConf.generateEditorConfig', value) + }} + /> + { + handleValueChange('emConf.sourceLanguage', value) + }} + /> + { + handleTargetTYPO3VersionChange(selectedVersion); + }} + /> + 12.4.0"} + label={"Depends on"} + initialValue={props.properties.emConf.dependsOn} + identifier={"extensionDependsOn"} + onChange={(value) => { + handleValueChange('emConf.dependsOn', value) + }} + /> +
+
+
+
+ ) +} diff --git a/Build/Sources/components/accordions/ModulesListAccordion.jsx b/Build/Sources/components/accordions/ModulesListAccordion.jsx new file mode 100644 index 000000000..9423c2b47 --- /dev/null +++ b/Build/Sources/components/accordions/ModulesListAccordion.jsx @@ -0,0 +1,44 @@ +import { Fragment, memo } from "react"; +import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' +import { SingleModuleComponent } from "../SingleComponents/SingleModuleComponent"; + +export const ModulesListAccordion = memo((props) => { + return ( +
+ +
+
+
    + { + props.modules.map((module, index) => ( + + )) + } +
+ {props.modules.length === 0 && +
No modules yet
} + +
+
+
+ ) +}) diff --git a/Build/Sources/components/accordions/PluginsListAccordion.jsx b/Build/Sources/components/accordions/PluginsListAccordion.jsx new file mode 100644 index 000000000..8d1bd9cd3 --- /dev/null +++ b/Build/Sources/components/accordions/PluginsListAccordion.jsx @@ -0,0 +1,44 @@ +import { memo } from "react"; +import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' +import { SinglePluginComponent } from "../SingleComponents/SinglePluginComponent"; + +export const PluginsListAccordion = memo((props) => { + return ( +
+ +
+
+
    + { + props.plugins.map((plugin, index) => ( + + )) + } +
+ {props.plugins.length === 0 && +
No plugins yet
} + +
+
+
+ ) +}) diff --git a/Build/Sources/components/accordions/TYPO3StyledAccordion.jsx b/Build/Sources/components/accordions/TYPO3StyledAccordion.jsx new file mode 100644 index 000000000..3efafd6de --- /dev/null +++ b/Build/Sources/components/accordions/TYPO3StyledAccordion.jsx @@ -0,0 +1,27 @@ +import PropTypes from "prop-types"; + +export const TYPO3StyledAccordion = (props) => { + return ( +
+ +
+
+ {props.children} +
+
+
+ ) +} + +TYPO3StyledAccordion.propTypes = { + title: PropTypes.string.isRequired, + id: PropTypes.string.isRequired, + parentId: PropTypes.string.isRequired +} diff --git a/Build/Sources/components/accordions/TYPO3StyledAccordionGroup.jsx b/Build/Sources/components/accordions/TYPO3StyledAccordionGroup.jsx new file mode 100644 index 000000000..6915eba2f --- /dev/null +++ b/Build/Sources/components/accordions/TYPO3StyledAccordionGroup.jsx @@ -0,0 +1,7 @@ +export const TYPO3StyledAccordionGroup = (props) => { + return ( +
+ {props.children} +
+ ) +} diff --git a/Build/Sources/components/error.html b/Build/Sources/components/error.html new file mode 100644 index 000000000..6b6499c3e --- /dev/null +++ b/Build/Sources/components/error.html @@ -0,0 +1,10 @@ + + + + + $Title$ + + +$END$ + + diff --git a/Build/Sources/components/forms/input/CheckboxComponent.jsx b/Build/Sources/components/forms/input/CheckboxComponent.jsx new file mode 100644 index 000000000..0e6d41980 --- /dev/null +++ b/Build/Sources/components/forms/input/CheckboxComponent.jsx @@ -0,0 +1,44 @@ +import React, { useState, useEffect } from 'react'; +import PropTypes from 'prop-types'; + +const CheckboxComponent = ({checked, label, identifier, onChange = () => {}}) => { + const [isChecked, setIsChecked] = useState(checked || false); + + const handleChange = (event) => { + const { checked } = event.target; + setIsChecked(prevState => prevState !== checked ? checked : prevState); + onChange(checked); + }; + + useEffect(() => { + setIsChecked(checked); + }, [checked]); + + return ( +
+ + +
+ ); +}; + +CheckboxComponent.propTypes = { + checked: PropTypes.bool, + label: PropTypes.string.isRequired, + identifier: PropTypes.string.isRequired, + onChange: PropTypes.func, +}; + +export default CheckboxComponent; diff --git a/Build/Sources/components/forms/input/CheckboxComponent.test.js b/Build/Sources/components/forms/input/CheckboxComponent.test.js new file mode 100644 index 000000000..074293cf0 --- /dev/null +++ b/Build/Sources/components/forms/input/CheckboxComponent.test.js @@ -0,0 +1,24 @@ +import { render, fireEvent } from '@testing-library/react'; +import React from 'react'; +import CheckboxComponent from './CheckboxComponent'; + +test('CheckboxComponent change value on click', () => { + const mockOnChange = jest.fn(); + const { getByLabelText } = render( + + ); + + const checkbox = getByLabelText('Test Checkbox'); + fireEvent.click(checkbox); + + // Überprüfen Sie, ob das Kontrollkästchen beim Klicken auf gewechselt hat. + expect(checkbox.checked).toBe(true); + + // Überprüfen Sie, ob die onChange-Callback-Funktion ausgeführt wurde. + expect(mockOnChange).toHaveBeenCalled(); +}); diff --git a/Build/Sources/components/forms/input/InputComponent.jsx b/Build/Sources/components/forms/input/InputComponent.jsx new file mode 100644 index 000000000..048b917e7 --- /dev/null +++ b/Build/Sources/components/forms/input/InputComponent.jsx @@ -0,0 +1,94 @@ +import React, { useState, useEffect, useContext } from 'react'; +import PropTypes from 'prop-types'; +import classNames from 'classnames'; +import { getExtensionKeyIsValid } from "../../../helper"; +import {ValidationErrorsContext} from "../../../App"; + +const InputComponent = ({ label, identifier, initialValue, onChange, validation }) => { + const [value, setValue] = useState(initialValue || ""); + const [isValid, setIsValid] = useState(null); + const { setValidationErrors } = useContext(ValidationErrorsContext); + + const handleChange = (event) => { + setValue(event.target.value); + onChange(event.target.value); + }; + + const validate = (value) => { + // Überprüfen, ob der Wert leer ist oder nicht eine Zahl ist + if (isNaN(value) && value?.trim() === '') { + setValidationErrors(prevState => ({...prevState, [identifier]: true})); + return false; + } + + // Überprüfen, ob die Validierungskriterien erfüllt sind + const isValid = !validation || ( + (!validation.isRequired || value) && + (!validation.minLength || value.length >= validation.minLength) && + (!validation.maxLength || value.length <= validation.maxLength) && + (identifier !== 'extensionKey' || getExtensionKeyIsValid(value)) + ); + + // Aktualisieren des Validierungsstatus basierend auf der Gültigkeit + setValidationErrors(prevState => ({...prevState, [identifier]: !isValid})); + + return isValid; + }; + + useEffect(() => { + if(validation){ + const valid = validate(value); + setIsValid(valid); + } + }, [value]); + + useEffect(() => { + // console.log("initial value in input component changed:" + initialValue) + setValue(initialValue); + }, [initialValue]); + + return ( +
+ { + label !== '' && ( + + ) + } + +
+ ); +}; + +InputComponent.propTypes = { + label: PropTypes.string, + initialValue: PropTypes.string, + onChange: PropTypes.func, + identifier: PropTypes.string, + validation: PropTypes.shape({ + isRequired: PropTypes.bool, + minLength: PropTypes.number, + }), +}; + +InputComponent.defaultProps = { + label: '', + initialValue: '', + onChange: () => {}, + identifier: '', + validation: null, +}; + +export default InputComponent; diff --git a/Build/Sources/components/forms/input/InputComponent.test.js b/Build/Sources/components/forms/input/InputComponent.test.js new file mode 100644 index 000000000..6e0a7ca0a --- /dev/null +++ b/Build/Sources/components/forms/input/InputComponent.test.js @@ -0,0 +1,106 @@ +import React from 'react'; +import { render, fireEvent } from '@testing-library/react'; +import userEvent from '@testing-library/user-event'; +import InputComponent from './InputComponent'; +import '@testing-library/jest-dom/extend-expect'; + +describe('InputComponent', () => { + let onChangeMock; + + beforeEach(() => { + onChangeMock = jest.fn(); + }); + + it('renders without crashing', () => { + render(); + }); + + it('should handle value change', () => { + const { getByPlaceholderText } = render(); + const inputField = getByPlaceholderText('test'); + fireEvent.change(inputField, { target: { value: 'new value' } }); + expect(onChangeMock).toHaveBeenCalledWith('new value'); + }); + + it('should display initial value', () => { + const { getByDisplayValue } = render(); + expect(getByDisplayValue('initial')).toBeInTheDocument(); + }); + + test('validate the input value', () => { + const validation = { isRequired: true, minLength: 5 }; + const { getByRole } = render( + + ); + + const input = getByRole('textbox'); + + // Test minLength validation + fireEvent.change(input, { target: { value: '123' } }); + expect(input.className).toContain('is-invalid'); + + fireEvent.change(input, { target: { value: '12345' } }); + expect(input.className).toContain('is-valid'); + + // Test isRequired validation + fireEvent.change(input, { target: { value: '' } }); + expect(input.className).toContain('is-invalid'); + }); + + it('should call onChange when value changes', () => { + const { getByRole } = render( + + ); + const input = getByRole('textbox'); + fireEvent.change(input, { target: { value: 'new value' } }); + expect(onChangeMock).toHaveBeenCalledWith('new value'); + }); + + it('should validate without isRequired', () => { + const validation = { minLength: 5 }; + const { getByRole } = render( + + ); + const input = getByRole('textbox'); + fireEvent.change(input, { target: { value: '12345' } }); + expect(input.className).toContain('is-valid'); + }); + + it('should initialize with null', () => { + const { getByRole } = render( + + ); + const input = getByRole('textbox'); + expect(input.value).toBe(''); + }); + + it('should apply defaultProps', () => { + const { getByRole } = render(); + const input = getByRole('textbox'); + fireEvent.change(input, { target: { value: 'new value' } }); + // Stellen Sie sicher, dass es keine Fehler gibt und die Komponente immer noch funktioniert + expect(input.value).toBe('new value'); + }); +}); diff --git a/Build/Sources/components/forms/select/SelectComponent.jsx b/Build/Sources/components/forms/select/SelectComponent.jsx new file mode 100644 index 000000000..15b44c209 --- /dev/null +++ b/Build/Sources/components/forms/select/SelectComponent.jsx @@ -0,0 +1,86 @@ +import React, { useState, useEffect, useContext } from 'react'; +import PropTypes from 'prop-types'; +import classNames from "classnames"; +import {ValidationErrorsContext} from "../../../App"; + +const SelectComponent = ({ label, options, defaultValue, showEmptyValue = true, identifier, initialValue = "", onChange, validation }) => { + const [value, setValue] = useState(initialValue); + const [isValid, setIsValid] = useState(null); + const { setValidationErrors } = useContext(ValidationErrorsContext); + + const handleChange = (event) => { + setValue(event.target.value); + onChange(event.target.value); + }; + + useEffect(() => { + setValue(initialValue); + }, [initialValue]); + + const validate = (value) => { + if (validation?.propertyIsRequired && value?.trim() === '') { + setValidationErrors(prevState => ({...prevState, [identifier]: true})); + return false; + } + + // Hier können Sie weitere Validierungsregeln hinzufügen + setValidationErrors(prevState => ({...prevState, [identifier]: false})); + return true; + }; + + useEffect(() => { + if(validation){ + setIsValid(validate(value)); + } + }, [value]); + + return ( +
+ + +
+ ); +}; + +SelectComponent.propTypes = { + label: PropTypes.string, + options: PropTypes.arrayOf(PropTypes.string), + defaultValue: PropTypes.string, + identifier: PropTypes.string, + onChange: PropTypes.func, + validation: PropTypes.shape({ + isRequired: PropTypes.bool, + }), +}; + +SelectComponent.defaultProps = { + label: '', + identifier: '', + options: [], + onChange: () => {}, + validation: null, +}; + +export default SelectComponent; diff --git a/Build/Sources/components/forms/select/SelectComponent.test.js b/Build/Sources/components/forms/select/SelectComponent.test.js new file mode 100644 index 000000000..79fd0752c --- /dev/null +++ b/Build/Sources/components/forms/select/SelectComponent.test.js @@ -0,0 +1,25 @@ +import React from 'react'; +import { render, fireEvent } from '@testing-library/react'; +import '@testing-library/jest-dom/extend-expect'; +import SelectComponent from './SelectComponent'; + +test('SelectComponent correctly handles changes', () => { + const handleChange = jest.fn(); + const options = ['Option 1', 'Option 2', 'Option 3']; + const { getByLabelText } = render( + + ); + + const select = getByLabelText('Test Select Component'); + + expect(select.value).toBe(''); + + fireEvent.change(select, { target: { value: 'Option 2' } }); + + expect(handleChange).toBeCalledWith('Option 2'); + expect(select.value).toBe('Option 2'); +}); diff --git a/Build/Sources/components/forms/textarea/TextareaComponent.jsx b/Build/Sources/components/forms/textarea/TextareaComponent.jsx new file mode 100644 index 000000000..01d42b9c7 --- /dev/null +++ b/Build/Sources/components/forms/textarea/TextareaComponent.jsx @@ -0,0 +1,84 @@ +import React, { useState, useEffect, useContext } from 'react'; +import PropTypes from 'prop-types'; +import classNames from 'classnames'; +import {ValidationErrorsContext} from "../../../App"; + +const TextareaComponent = ({label = '', placeholder, identifier = '', initialValue = "", onChange = () => {}, validation = null }) => { + const [value, setValue] = useState(initialValue); + const [isValid, setIsValid] = useState(false); + const { setValidationErrors } = useContext(ValidationErrorsContext); + + useEffect(() => { + if(validation){ + setIsValid(validate(value)); + } + }, [value]); + + const handleChange = (event) => { + setValue(event.target.value); + onChange(event.target.value); + }; + + const validate = (value) => { + if(!validation) { + return null; // Rückgabewert null, wenn keine Validierung vorhanden ist + } + + if(!validation?.propertyIsRequired) { + return true; + } + + if (validation?.propertyIsRequired && value?.trim() === '') { + setValidationErrors(prevState => ({...prevState, [identifier]: true})); + return false; + } + + if(validation?.minLength && value?.length < validation.minLength) { + setValidationErrors(prevState => ({...prevState, [identifier]: true})); + return false; + } + + // Hier können Sie weitere Validierungsregeln hinzufügen + setValidationErrors(prevState => ({...prevState, [identifier]: false})); + return true; + }; + + useEffect(() => { + setValue(initialValue); + }, [initialValue]); + + return ( +
+ + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/css/inputEx-IE6.css b/Resources/Public/jsDomainModeling/wireit/lib/inputex/css/inputEx-IE6.css deleted file mode 100644 index 1c3555ec6..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/inputex/css/inputEx-IE6.css +++ /dev/null @@ -1,53 +0,0 @@ -/** -* Fix bug with "float:left + position:relative" which results in disappearing fields -* -* -> set zoom (proprietary to IE6) to force hasLayout = true, so boxes have standard behavior. -*/ -div.inputEx-fieldWrapper, div.inputEx-Field { - zoom:1; -} - -/** -* Hide selects behind a form mask -*/ -select.inputEx-hidden { visibility:hidden;} - -/** -* CSS patches because IE 6 doesn't support child selector (>) : -*/ -div.inputEx-valid div.inputEx-message { - color:#505050; - font-weight: normal; -} - -div.inputEx-valid div.inputEx-label { - color:#505050; - font-weight:normal; -} - -div.inputEx-invalid div.inputEx-message { - color:#C00E0C; - font-weight:bold; -} - -div.inputEx-invalid div.inputEx-label { - color:#C00E0C; - font-weight:bold; -} - -div.inputEx-invalid div.inputEx-label label { - background:transparent url(../images/error_bang.gif) no-repeat scroll 0 1px; - padding-left:20px; -} - -div.inputEx-valid div.inputEx-label label, -div.inputEx-empty div.inputEx-label label { - background: none; - padding-left: inherit; - font-weight:normal; - color: #505050; -} - -div.inputEx-typeInvite div.inputEx-Field input, div.inputEx-typeInvite div.inputEx-Field textarea { - color: #aaa; -} \ No newline at end of file diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/css/inputEx.css b/Resources/Public/jsDomainModeling/wireit/lib/inputex/css/inputEx.css deleted file mode 100644 index 37f61ba80..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/inputex/css/inputEx.css +++ /dev/null @@ -1,580 +0,0 @@ - -/** - * inputEx.Field - */ -div.inputEx-fieldWrapper { - position: relative; - margin-bottom:0.2em; -} - -div.inputEx-label { - float: left; - color: #505050; - text-align: right; - padding: 0.2em 0.5em 0 0; -} - -div.inputEx-Group div.inputEx-label { - width: 130px; -} - -div.inputEx-Field { - float: left; - position: relative; -} - -div.inputEx-description { - clear:both; - color: #505050; - font-size: 75%; - margin-top: 2px; -} - -div.inputEx-message { - float: left; - margin: 4px; - font-size: 85%; -} - - -/** - * VALID, INVALID, EMPTY states (and focused) - */ - -div.inputEx-invalid > div.inputEx-message { - color:#C00E0C; - font-weight:bold; -} - -div.inputEx-invalid > div.inputEx-label { - color:#C00E0C; - font-weight:bold; -} - -div.inputEx-invalid > .inputEx-Field input { - border: 1px solid #C00E0C; -} - -div.inputEx-valid > div.inputEx-message { - color:#505050; - font-weight: normal; -} - -div.inputEx-valid > div.inputEx-label { - color:#505050; - font-weight:normal; -} - -/* Properties set by an invalid higher hierarchy field are disabled for valid or empty subfields */ -div.inputEx-valid > div.inputEx-label label, -div.inputEx-empty > div.inputEx-label label { - background: none; - padding-left: inherit; - font-weight:normal; - color: #505050; -} - - -div.inputEx-typeInvite > div.inputEx-Field input, div.inputEx-typeInvite > div.inputEx-Field textarea { - color: #aaa; -} -div.inputEx-empty div.inputEx-valid div.inputEx-Field input, div.inputEx-empty div.inputEx-valid div.inputEx-Field textarea { - color: black; -} - -inputEx-focused div.inputEx-Field input, inputEx-focused div.inputEx-Field textarea { - color: black; -} - - -/** - * inputEx.StringField - */ -div.inputEx-StringField-wrapper { - float: none; -} - -/** - * inputEx.Group - */ - -legend.inputEx-Group-legend { - color:#63126B; - font-weight: bold; -} - -div.inputEx-Group div.inputEx-Group-collapseImg { - width: 14px; - height: 14px; - background-image: url(../images/sprite-menu.gif); - background-color: transparent; - background-repeat: no-repeat; - background-attachment: scroll; - float: left; -} - -div.inputEx-Group fieldset.inputEx-Expanded legend , -div.inputEx-Group fieldset.inputEx-Collapsed legend { - cursor: pointer; -} - -div.inputEx-Group fieldset.inputEx-Expanded legend div.inputEx-Group-collapseImg { - background-position: -8px 2px; -} - -div.inputEx-Group fieldset.inputEx-Expanded legend:hover div.inputEx-Group-collapseImg { - background-position: -8px -78px; -} - -div.inputEx-Group fieldset.inputEx-Collapsed legend div.inputEx-Group-collapseImg { - background-position: -8px -317px; -} - -div.inputEx-Group fieldset.inputEx-Collapsed legend:hover div.inputEx-Group-collapseImg { - background-position: -8px -397px; -} - -div.inputEx-Group fieldset.inputEx-Collapsed div.inputEx-fieldWrapper { - display: none; -} - - -/** - * inputEx.Form - */ - -label.inputExForm-checkbox-rightLabel { - margin-left: 4px; -} - -div.inputEx-Form-buttonBar { - margin: 3px 0 0 137px; -} - -div.inputEx-Form-Mask { - height:275px; - left:0pt; - position:absolute; - top:0pt; - width:180px; -} - -div.inputEx-Form-Mask div.inputEx-Form-Mask-bg { - background-color:#FFFFFF; - height:100%; - left:0pt; - opacity:0.9; - position:absolute; - top:0pt; - width:100%; -} -div.inputEx-Form-Mask div.inputEx-Form-Mask-spinner { - width: 36px; - height: 36px; - background-image: url(../images/spinner.gif); -} -div.inputEx-Form-Mask span { - color:#666666; -} - - - - -/** - * UrlField - */ -div.inputEx-UrlField input { - padding-left: 20px; -} - -div.inputEx-UrlField input.nofavicon { - padding-left: 0px; -} - -div.inputEx-UrlField img { - position: absolute; - top: 3px; - left: 2px; - width: 16px; - height: 16px; -} - - -/** - * inputEx-ListField - */ - -/* Buttons */ -img.inputEx-ListField-addButton { - background: transparent url(../images/add.png) no-repeat scroll 0%; - width: 16px; - height: 16px; - cursor: pointer; - } - -img.inputEx-ListField-delButton { - background: transparent url(../images/delete.png) no-repeat scroll 0%; - width: 16px; - height: 16px; - float: left; - cursor: pointer; -} - -/* Arrows */ -div.inputEx-ListField-Arrow { - width: 16px; - height: 16px; - float: left; - cursor: pointer; -} - -div.inputEx-ListField-ArrowUp { - background: transparent url(../images/bullet_arrow_up.png) no-repeat scroll 0%; -} -div.inputEx-ListField-ArrowDown { - background: transparent url(../images/bullet_arrow_down.png) no-repeat scroll 0%; -} - -a.inputEx-List-link { - color: blue; - cursor: pointer; - margin-left: 10px; -} - -a.inputEx-List-link:hover { - text-decoration: underline; -} - - -/** - * inputEx.InPlaceEdit - */ -div.inputEx-InPlaceEdit-visu { - cursor: pointer; - padding: 3px; -} - -div.inputEx-InPlaceEdit-visu:hover { - background-color: #ffff99; -} - -input.inputEx-InPlaceEdit-OkButton { - margin-left: 5px; -} - -a.inputEx-InPlaceEdit-CancelLink { - margin-left:5px; - margin-top:2px; -} - -/** - * inputEx.AutoComplete - */ -.yui-skin-sam div.inputEx-AutoComplete .yui-ac-input { - width: auto; - position: relative; -} -.yui-skin-sam div.inputEx-AutoComplete .yui-ac-content { - width: auto; -} -div.inputEx-AutoComplete div.yui-ac-container { - margin-bottom:2em; - width:25em; -} - -/** - * DateField - */ - -div.inputEx-DateField { - background: transparent url(../images/calendar.gif) no-repeat scroll left center; - padding-left: 20px; -} - -div.inputEx-DateField input { - width: 75px; -} - -/** - * Picker fields - */ -div.inputEx-PickerField, div.inputEx-PickerField input { - vertical-align: top; -} - -div.inputEx-PickerField { - background: none; - padding-left: inherit; -} - -div.inputEx-PickerField .yui-menu-button button { - background-position: center center; - background-repeat: no-repeat; - overflow: hidden; - font-size: 9px; - padding: 2px; - width:20px; - height:16px; -} - -/* -* Date Picker -*/ -div.inputEx-DatePickerField .yui-menu-button button { - background-image: url(../images/calendar.gif); -} - -div.inputEx-DatePickerField div.yui-overlay { - width: 210px; -} - -/* -* Color Picker -*/ - -div.inputEx-ColorField .yui-menu-button button { - background-image: url(../images/palette.png); -} - -div.inputEx-ColorField-button { - height: 18px; - width: 100px; - border: 1px solid #B5B8C8; - margin-left: 0px; - cursor: pointer; - float:left; /* to display color picker icon on the right */ -} - -div.inputEx-ColorField-square { - float:left; - cursor: pointer; -} - -div.inputEx-ColorField div.yui-overlay div.bd { - background:white no-repeat scroll 5px 5px; - border:1px solid #AAAAAA; -} - - - - -/** - * SliderField - */ -div.inputEx-SliderField { -} - -div.inputEx-SliderField div.inputEx-SliderField-bg { - position: relative; - background:url('../images/slider-bg-h.gif') 5px 0 no-repeat; - height:28px; - width:112px; - float: left; -} - -div.inputEx-SliderField div.inputEx-SliderField-thumb { - background: url('../images/thumb-n.gif') 0px 0px no-repeat; - cursor: pointer; - position: absolute; - top: 4px; - width: 17px; - height: 21px; -} - -div.inputEx-SliderField div.inputEx-SliderField-value { - float: left; - margin-top:6px; - margin-left: 5px; -} - - -/** - * Password Field - */ - -div.inputEx-PasswordField input { - float: left; -} - -div.inputEx-PasswordField div.capsLockWarning { - float: left; - margin:3px 4px; - color: #505050; - font-size: 85%; -} - -div.inputEx-Password-StrengthIndicator { - float: left; - color: #505050; - font-size: 70%; - margin-left:10px; - width:83px; -} - -div.inputEx-Password-StrengthIndicator div.inputEx-Password-StrengthIndicatorBlock { - background-color: white; - width: 1.4em; - height: 7px; - border: 1px solid #aaaaaa; - float: left; - margin-left: 2px; -} - -/** - * Checkbox - */ -div.inputEx-CheckBox input { - float: left; - margin: 2px 0 4px 0; -} - -label.inputEx-CheckBox-rightLabel { - margin: 3px; -} - -/** - * CombineField - */ -div.inputEx-CombineField { -} - -div.inputEx-CombineField-separator { - float: left; - margin-top:2px; -} - -/** - * DDList - */ -.inputEx-DDList-item { - padding: 5px; - background-color: #DDDDDD; - cursor: move; - border: 1px solid #BBBBBB; - width: 300px; - position: relative; -} - -.inputEx-DDList-item span.inputEx-DDList-label { -} - -.inputEx-DDList-item a { - color:#D05D00; - padding: 3px 5px; - position:absolute; - right:0; - top:0; - cursor: pointer; -} - -.inputEx-DDList-item a:hover { - text-decoration: underline; -} - - -/** - * Radio Field - */ -label.inputEx-RadioField-rightLabel { - cursor: pointer; - margin: 3px; -} - -div.inputEx-RadioField-choice { - float: left; - margin-left: 10px; -} - -/** - * Datatable - */ - -div.inputEx-DataTable-formContainer { - float: left; -} -div.inputEx-DataTable-formContainer div.inputEx-DataTable-formWrapper { - position:absolute; - width: 300px; - background-color: white; - -moz-border-radius-bottomright: 10px; - -moz-border-radius-topright: 10px; - -webkit-border-bottom-right-radius: 10px; - -webkit-border-top-right-radius: 10px; - border: 1px solid #7F7F7F; - padding: 10px; -} - - -/** - * inputEx.TypeField - */ -div.inputEx-TypeField-EditButton { - width: 16px; - height: 16px; - background-image: url(../images/pencil.png); - cursor: pointer; - float: left; - margin-left:4px; - position: relative; -} - -div.inputEx-TypeField-EditButton.opened { - background-image: url(../images/pencil_delete.png); -} - -div.inputEx-TypeField-FieldValueWrapper { - float: left; - margin-left: 4px; -} - -div.inputEx-TypeField-PropertiesPanel { - border: 1px solid #aaa; - padding: 3px; - background-color: white; - position: absolute; - top: 0px; - left: 16px; - z-index:1; - width: 380px; -} - -/** - * inputEx.MenuField - */ - -div.inputEx-MenuField div.inputEx-Result {background-color:#FFFFFF; border:1px solid #CCCCCC; padding:2px 25px 2px 5px; cursor:pointer} -div.inputEx-MenuField div.inputEx-RightArrow {background-image:url(../images/menu-right-arrow.png);background-position:right center;background-repeat:no-repeat;} -div.inputEx-MenuField div.inputEx-DownArrow {background-image:url(../images/menu-down-arrow.png);background-position:right center;background-repeat:no-repeat;} - - -/** - * inputEx-JsonTreeInspector - */ -ul.inputEx-JsonTreeInspector li { - padding-left: 20px; -} - -ul.inputEx-JsonTreeInspector li.collapsed { - background:transparent url(../images/plus.gif) no-repeat scroll 0 0; - cursor: pointer; -} - -ul.inputEx-JsonTreeInspector li.expanded { - background:transparent url(../images/minus.gif) no-repeat scroll 0 0; - cursor: pointer; -} - -ul.inputEx-JsonTreeInspector li span { - padding-left: 20px; - color: green; -} - -ul.inputEx-JsonTreeInspector li span.type-number, -ul.inputEx-JsonTreeInspector li span.type-boolean { - color: blue; -} - -ul.inputEx-JsonTreeInspector li span.type-null { - color: red; -} - diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/examples.html b/Resources/Public/jsDomainModeling/wireit/lib/inputex/examples.html deleted file mode 100644 index b7bf78014..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/inputex/examples.html +++ /dev/null @@ -1,221 +0,0 @@ - - - - - inputEx - examples - - - - - - - - -
- - - -
- -
- -
- - - -
- Examples - back to homepage -

- -
-

Fields

- - - - - - - - -
-

Advanced

- - -
-
- -
-

MetaFields

- -
-
- - - -
- -
-
- -

Tools

- -
-

Widgets

- -
- - - - - -
-

Applications

- -
- - -
-

json-schema/ json-rpc/ SMD:

- -
- -
- -
- -
- -

Copyright (c) 2007-2008 Eric Abouaf - XML doap file for this project

-
- - - - - - \ No newline at end of file diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/accept.png b/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/accept.png deleted file mode 100644 index 89c8129a4..000000000 Binary files a/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/accept.png and /dev/null differ diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/add.png b/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/add.png deleted file mode 100644 index 6332fefea..000000000 Binary files a/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/add.png and /dev/null differ diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/bg-fader.gif b/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/bg-fader.gif deleted file mode 100644 index 7db8eb72c..000000000 Binary files a/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/bg-fader.gif and /dev/null differ diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/bullet_arrow_down.png b/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/bullet_arrow_down.png deleted file mode 100644 index 9b23c06d7..000000000 Binary files a/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/bullet_arrow_down.png and /dev/null differ diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/bullet_arrow_up.png b/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/bullet_arrow_up.png deleted file mode 100644 index 24df0f421..000000000 Binary files a/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/bullet_arrow_up.png and /dev/null differ diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/calendar.gif b/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/calendar.gif deleted file mode 100644 index e7a436ca6..000000000 Binary files a/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/calendar.gif and /dev/null differ diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/callt.gif b/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/callt.gif deleted file mode 100644 index a6cc8da5b..000000000 Binary files a/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/callt.gif and /dev/null differ diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/calrt.gif b/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/calrt.gif deleted file mode 100644 index ee137b2ff..000000000 Binary files a/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/calrt.gif and /dev/null differ diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/cancel.gif b/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/cancel.gif deleted file mode 100644 index dc04efb72..000000000 Binary files a/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/cancel.gif and /dev/null differ diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/cancel.png b/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/cancel.png deleted file mode 100644 index c149c2bc0..000000000 Binary files a/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/cancel.png and /dev/null differ diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/delete.png b/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/delete.png deleted file mode 100644 index 08f249365..000000000 Binary files a/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/delete.png and /dev/null differ diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/error_bang.gif b/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/error_bang.gif deleted file mode 100644 index 19a91aff6..000000000 Binary files a/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/error_bang.gif and /dev/null differ diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/exclamation.gif b/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/exclamation.gif deleted file mode 100644 index fabf616f7..000000000 Binary files a/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/exclamation.gif and /dev/null differ diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/gray_shadow.png b/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/gray_shadow.png deleted file mode 100644 index 7177d05d7..000000000 Binary files a/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/gray_shadow.png and /dev/null differ diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/menu-down-arrow.png b/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/menu-down-arrow.png deleted file mode 100644 index 030941c9c..000000000 Binary files a/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/menu-down-arrow.png and /dev/null differ diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/menu-right-arrow.png b/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/menu-right-arrow.png deleted file mode 100644 index ea4f66029..000000000 Binary files a/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/menu-right-arrow.png and /dev/null differ diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/minus.gif b/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/minus.gif deleted file mode 100644 index 154e45a5e..000000000 Binary files a/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/minus.gif and /dev/null differ diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/palette.png b/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/palette.png deleted file mode 100644 index 3bc0bd32f..000000000 Binary files a/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/palette.png and /dev/null differ diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/pencil.png b/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/pencil.png deleted file mode 100644 index 0bfecd50e..000000000 Binary files a/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/pencil.png and /dev/null differ diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/pencil_delete.png b/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/pencil_delete.png deleted file mode 100644 index d8944e6ea..000000000 Binary files a/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/pencil_delete.png and /dev/null differ diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/plus.gif b/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/plus.gif deleted file mode 100644 index 93d2ade3d..000000000 Binary files a/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/plus.gif and /dev/null differ diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/slider-bg-h.gif b/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/slider-bg-h.gif deleted file mode 100644 index 996288916..000000000 Binary files a/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/slider-bg-h.gif and /dev/null differ diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/space.gif b/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/space.gif deleted file mode 100644 index 5bfd67a2d..000000000 Binary files a/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/space.gif and /dev/null differ diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/spinner.gif b/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/spinner.gif deleted file mode 100644 index bf06350f6..000000000 Binary files a/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/spinner.gif and /dev/null differ diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/sprite-menu.gif b/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/sprite-menu.gif deleted file mode 100644 index 261ed9170..000000000 Binary files a/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/sprite-menu.gif and /dev/null differ diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/thumb-n.gif b/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/thumb-n.gif deleted file mode 100644 index c91a33293..000000000 Binary files a/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/thumb-n.gif and /dev/null differ diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/tick.gif b/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/tick.gif deleted file mode 100644 index dc9e420e7..000000000 Binary files a/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/tick.gif and /dev/null differ diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/tick.png b/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/tick.png deleted file mode 100644 index a9925a06a..000000000 Binary files a/Resources/Public/jsDomainModeling/wireit/lib/inputex/images/tick.png and /dev/null differ diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/index.html b/Resources/Public/jsDomainModeling/wireit/lib/inputex/index.html deleted file mode 100644 index ac12c8048..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/inputex/index.html +++ /dev/null @@ -1,112 +0,0 @@ - - - - - inputEx - a field framework for web applications - - - - - - - - -
- - - -
- -
- - - - - - -
- -

About

-

   inputEx is a javascript framework to build fields and forms.

- -

   It doesn't use html (it is the opposite of unobtrusive librairies): All the fields and forms are configured using json. It provides a very efficient abstraction for building interactive web applications. For detailed informations, have a look at our complete documentation.

- -

   It is built on top of the YUI library (2.7.0) and currently supports Firefox 1.5+, Safari 2.0+, IE 7.0+, Chrome 0.2+ and Opera 9+. Please report your specific browser issues in the forum.

- -

Examples

- - - -

We also created some a tool to generate inputEx forms :

- - - -
- - -

Download

-

Download inputex 0.2.2
(inputex-0.2.2.zip - 3.4MB - March, 6th 2009 - changeset)

- - -

inputEx is released under the MIT License.

- -

Clone from GitHub: git clone git://github.com/neyric/inputex.git

- - - -

Documentation

-

Here are some starting points for our documentation :

- - -

- twitter Follow inputEx on Twitter. - -
- - - - - - - - -
-

Community

- -
-

 

- -
- -

Copyright (c) 2007-2009 Eric Abouaf - XML doap file for this project

-
- - - - - - \ No newline at end of file diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/Field.js b/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/Field.js deleted file mode 100644 index 6a7113e17..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/Field.js +++ /dev/null @@ -1,403 +0,0 @@ -(function() { - var inputEx = YAHOO.inputEx, Dom = YAHOO.util.Dom, lang = YAHOO.lang, util = YAHOO.util, Event = YAHOO.util.Event; - - /** - * @class An abstract class that contains the shared features for all fields - * @constructor - * @param {Object} options Configuration object - *
    - *
  • name: the name of the field
  • - *
  • required: boolean, the field cannot be null if true
  • - *
  • className: CSS class name for the div wrapper (default 'inputEx-Field')
  • - *
  • value: initial value
  • - *
  • parentEl: HTMLElement or String id, append the field to this DOM element
  • - *
- */ - inputEx.Field = function(options) { - - if (!options) { - var options = {}; - } - - // Set the default values of the options - this.setOptions(options); - - // Call the render of the dom - this.render(); - - /** - * @event - * @param {Any} value The new value of the field - * @desc YAHOO custom event fired when the field is "updated"
subscribe with: this.updatedEvt.subscribe(function(e, params) { var value = params[0]; console.log("updated",value, this.updatedEvt); }, this, true); - */ - this.updatedEvt = new util.CustomEvent('updated', this); - - // initialize behaviour events - this.initEvents(); - - // Set the initial value - // -> no initial value = no style (setClassFromState called by setValue) - if (!lang.isUndefined(this.options.value)) { - this.setValue(this.options.value, false); - } - - // append it immediatly to the parent DOM element - if (options.parentEl) { - if (lang.isString(options.parentEl)) { - Dom.get(options.parentEl).appendChild(this.getEl()); - } - else { - options.parentEl.appendChild(this.getEl()); - } - } - }; - - - inputEx.Field.prototype = { - - /** - * Set the default values of the options - * @param {Object} options Options object (inputEx inputParams) as passed to the constructor - */ - setOptions: function(options) { - /** - * Configuration object to set the options for this class and the parent classes. See constructor details for options added by this class. - */ - this.options = {}; - - // Basic options - this.options.name = options.name; - this.options.value = options.value; - this.options.id = options.id || Dom.generateId(); - this.options.label = options.label; - this.options.description = options.description; - this.options.helpLink = options.helpLink; - - // Define default messages - this.options.messages = {}; - this.options.messages.required = (options.messages && options.messages.required) ? options.messages.required : inputEx.messages.required; - this.options.messages.invalid = (options.messages && options.messages.invalid) ? options.messages.invalid : inputEx.messages.invalid; - //this.options.messages.valid = (options.messages && options.messages.valid) ? options.messages.valid : inputEx.messages.valid; - - // Other options - this.options.className = options.className ? options.className : 'inputEx-Field'; - this.options.wrapperClassName = options.wrapperClassName ? options.wrapperClassName : 'inputEx-fieldWrapper'; - this.options.required = lang.isUndefined(options.required) ? false : options.required; - this.options.showMsg = lang.isUndefined(options.showMsg) ? false : options.showMsg; - this.options.advancedMode = lang.isUndefined(options.advancedMode) ? false : options.advancedMode; - }, - - /** - * Default render of the dom element. Create a divEl that wraps the field. - */ - render: function() { - - // Create a DIV element to wrap the editing el and the image - this.divEl = inputEx.cn('div', {className: this.options.wrapperClassName}); - //qwertz - if (this.options.id) { - this.divEl.id = this.options.id; - } - if (this.options.required) { - Dom.addClass(this.divEl, "inputEx-required"); - } - if(this.options.advancedMode) { - Dom.addClass(this.divEl, "advancedMode"); - } - - // Label element - if (this.options.label) { - var labelClassName = ''; - var linkEl; - if (this.options.description) { - labelClassName = 'helpAvailable'; - } - this.labelDiv = inputEx.cn('div', {id: this.divEl.id + '-label', className: 'inputEx-label', 'for': this.divEl.id + '-field'}); - this.labelEl = inputEx.cn('label', {className: labelClassName}); - this.labelEl.appendChild(document.createTextNode(this.options.label)); - this.labelDiv.appendChild(this.labelEl); - if (this.options.helpLink) { - linkEl = inputEx.cn('a', {href: this.options.helpLink, target: '_blank', title: 'Open TYPO3 documentation in new window'}); - linkEl.innerHTML = '' + - '' + - '' + - '' + - ''; - this.labelDiv.appendChild(linkEl); - } - this.divEl.appendChild(this.labelDiv); - } - - if (this.options.description) { - this.options.className += ' helpAvailable'; - } - - this.fieldContainer = inputEx.cn('div', {className: this.options.className}); // for wrapping the field and description - - // Render the component directly - this.renderComponent(); - - // Description - if (this.options.description) { - this.descriptionElement = inputEx.cn('div', {id: this.divEl.id + '-desc', className: 'inputEx-description'}, null, this.options.description); - this.fieldContainer.appendChild(this.descriptionElement); - Event.addListener(this.labelDiv, "mouseover", this.showDescription, this, true); - Event.addListener(this.labelDiv, "mouseout", this.hideDescription, this, true); - } - - this.divEl.appendChild(this.fieldContainer); - - // Insert a float breaker - this.divEl.appendChild(inputEx.cn('div', null, {clear: 'both'}, " ")); - }, - - showDescription: function() { - this.descriptionElement.style.display = 'block'; - }, - hideDescription: function() { - this.descriptionElement.style.display = 'none'; - }, - - /** - * Fire the "updated" event (only if the field validated) - * Escape the stack using a setTimeout - */ - fireUpdatedEvt: function() { - // Uses setTimeout to escape the stack (that originiated in an event) - var that = this; - setTimeout(function() { - that.updatedEvt.fire(that.getValue(), that); - }, 50); - }, - - /** - * Render the interface component into this.divEl - */ - renderComponent: function() { - // override me - }, - - /** - * The default render creates a div to put in the messages - * @return {HTMLElement} divEl The main DIV wrapper - */ - getEl: function() { - return this.divEl; - }, - - /** - * Initialize events of the Input - */ - initEvents: function() { - // override me - }, - - /** - * Return the value of the input - * @return {Any} value of the field - */ - getValue: function() { - // override me - }, - - /** - * Function to set the value - * @param {Any} value The new value - * @param {boolean} [sendUpdatedEvt] (optional) Wether this setValue should fire the updatedEvt or not (default is true, pass false to NOT send the event) - */ - setValue: function(value, sendUpdatedEvt) { - // to be inherited - - // set corresponding style - this.setClassFromState(); - - if (sendUpdatedEvt !== false) { - // fire update event - this.fireUpdatedEvt(); - } - }, - - /** - * Set the styles for valid/invalide state - */ - setClassFromState: function() { - - // remove previous class - if (this.previousState) { - // remove invalid className for both required and invalid fields - var className = 'inputEx-' + ((this.previousState == inputEx.stateRequired) ? inputEx.stateInvalid : this.previousState); - Dom.removeClass(this.divEl, className); - } - - // add new class - var state = this.getState(); - if (!(state == inputEx.stateEmpty && Dom.hasClass(this.divEl, 'inputEx-focused') )) { - // add invalid className for both required and invalid fields - var className = 'inputEx-' + ((state == inputEx.stateRequired) ? inputEx.stateInvalid : state); - Dom.addClass(this.divEl, className); - } - - if (this.options.showMsg) { - this.displayMessage(this.getStateString(state)); - } - - this.previousState = state; - }, - - /** - * Get the string for the given state - */ - getStateString: function(state) { - if (state == inputEx.stateRequired) { - return this.options.messages.required; - } - else if (state == inputEx.stateInvalid) { - return this.options.messages.invalid; - } - else { - return ''; - } - }, - - /** - * Returns the current state (given its value) - * @return {String} One of the following states: 'empty', 'required', 'valid' or 'invalid' - */ - getState: function() { - // if the field is empty : - if (this.isEmpty()) { - return this.options.required ? inputEx.stateRequired : inputEx.stateEmpty; - } - return this.validate() ? inputEx.stateValid : inputEx.stateInvalid; - }, - - /** - * Validation of the field - * @return {Boolean} field validation status (true/false) - */ - validate: function() { - return true; - }, - - /** - * Function called on the focus event - * @param {Event} e The original 'focus' event - */ - onFocus: function(e) { - var el = this.getEl(); - Dom.removeClass(el, 'inputEx-empty'); - Dom.addClass(el, 'inputEx-focused'); - }, - - /** - * Function called on the blur event - * @param {Event} e The original 'blur' event - */ - onBlur: function(e) { - Dom.removeClass(this.getEl(), 'inputEx-focused'); - - // Call setClassFromState on Blur - this.setClassFromState(); - }, - - /** - * onChange event handler - * @param {Event} e The original 'change' event - */ - onChange: function(e) { - this.fireUpdatedEvt(); - }, - - /** - * Close the field and eventually opened popups... - */ - close: function() { - }, - - /** - * Disable the field - */ - disable: function() { - }, - - /** - * Enable the field - */ - enable: function() { - }, - - /** - * Focus the field - */ - focus: function() { - }, - - /** - * Purge all event listeners and remove the component from the dom - */ - destroy: function() { - var el = this.getEl(); - - // Unsubscribe all listeners on the updatedEvt - this.updatedEvt.unsubscribeAll(); - - // Remove from DOM - if (Dom.inDocument(el)) { - el.parentNode.removeChild(el); - } - - // recursively purge element - util.Event.purgeElement(el, true); - }, - - /** - * Update the message - * @param {String} msg Message to display - */ - displayMessage: function(msg) { - if (!this.fieldContainer) { - return; - } - if (!this.msgEl) { - this.msgEl = inputEx.cn('div', {className: 'inputEx-message'}); - try { - var divElements = this.divEl.getElementsByTagName('div'); - this.divEl.insertBefore(this.msgEl, divElements[(divElements.length - 1 >= 0) ? divElements.length - 1 : 0]); //insertBefore the clear:both div - } catch(e) { - alert(e); - } - } - this.msgEl.innerHTML = msg; - }, - - /** - * Show the field - */ - show: function() { - this.divEl.style.display = ''; - }, - - /** - * Hide the field - */ - hide: function() { - this.divEl.style.display = 'none'; - }, - - /** - * Clear the field by setting the field value to this.options.value - * @param {boolean} [sendUpdatedEvt] (optional) Wether this clear should fire the updatedEvt or not (default is true, pass false to NOT send the event) - */ - clear: function(sendUpdatedEvt) { - this.setValue(lang.isUndefined(this.options.value) ? '' : this.options.value, sendUpdatedEvt); - }, - - /** - * Should return true if empty - */ - isEmpty: function() { - return this.getValue() === ''; - } - }; - -})(); diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/Form.js b/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/Form.js deleted file mode 100644 index 0918c4426..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/Form.js +++ /dev/null @@ -1,275 +0,0 @@ -(function () { - var util = YAHOO.util, lang = YAHOO.lang, Event = YAHOO.util.Event, inputEx = YAHOO.inputEx, Dom = util.Dom; - - /** - * @class Create a group of fields within a FORM tag and adds buttons - * @extends inputEx.Group - * @constructor - * @param {Object} options The following options are added for Forms: - *
    - *
  • buttons: list of button definition objects {value: 'Click Me', type: 'submit'}
  • - *
  • ajax: send the form through an ajax request (submit button should be present): {method: 'POST', uri: 'myScript.php', callback: same as YAHOO.util.Connect.asyncRequest callback}
  • - *
  • showMask: adds a mask over the form while the request is running (default is false)
  • - *
- */ - inputEx.Form = function(options) { - inputEx.Form.superclass.constructor.call(this, options); - }; - - lang.extend(inputEx.Form, inputEx.Group, - /** - * @scope inputEx.Form.prototype - */ - { - - /** - * Adds buttons and set ajax default parameters - * @param {Object} options Options object (inputEx inputParams) as passed to the constructor - */ - setOptions: function(options) { - inputEx.Form.superclass.setOptions.call(this, options); - - this.buttons = []; - - this.options.buttons = options.buttons || []; - - this.options.action = options.action; - this.options.method = options.method; - - if (options.ajax) { - this.options.ajax = {}; - this.options.ajax.method = options.ajax.method || 'POST'; - this.options.ajax.uri = options.ajax.uri || 'default.php'; - this.options.ajax.callback = options.ajax.callback || {}; - this.options.ajax.callback.scope = options.ajax.callback.scope || this; - this.options.ajax.showMask = lang.isUndefined(options.ajax.showMask) ? false : options.ajax.showMask; - } - - if (lang.isFunction(options.onSubmit)) { - this.options.onSubmit = options.onSubmit; - } - }, - - - /** - * Render the group - */ - render: function() { - // Create the div wrapper for this group - this.divEl = inputEx.cn('div', {className: this.options.className}); - if (this.options.id) { - this.divEl.id = this.options.id; - } - - // Create the FORM element - this.form = inputEx.cn('form', {method: this.options.method || 'POST', action: this.options.action || '', className: this.options.className || 'inputEx-Form'}); - this.divEl.appendChild(this.form); - - // Set the autocomplete attribute to off to disable firefox autocompletion - this.form.setAttribute('autocomplete', 'off'); - - // Set the name of the form - if (this.options.formName) { - this.form.name = this.options.formName; - } - - this.renderFields(this.form); - - this.renderButtons(); - - if (this.options.disabled) { - this.disable(); - } - }, - - - /** - * Render the buttons - */ - renderButtons: function() { - - this.buttonDiv = inputEx.cn('div', {className: 'inputEx-Form-buttonBar'}); - - var button, buttonEl; - for (var i = 0; i < this.options.buttons.length; i++) { - button = this.options.buttons[i]; - buttonEl = inputEx.cn('input', {type: button.type, value: button.value}); - if (button.onClick) { - buttonEl.onclick = button.onClick; - } - this.buttons.push(buttonEl); - this.buttonDiv.appendChild(buttonEl); - } - - this.form.appendChild(this.buttonDiv); - }, - - - /** - * Init the events - */ - initEvents: function() { - inputEx.Form.superclass.initEvents.call(this); - - // Handle the submit event - Event.addListener(this.form, 'submit', this.options.onSubmit || this.onSubmit, this, true); - }, - - /** - * Intercept the 'onsubmit' event and stop it if !validate - * If the ajax option object is set, use YUI async Request to send the form - * @param {Event} e The original onSubmit event - */ - onSubmit: function(e) { - - // do nothing if does not validate - if (!this.validate()) { - Event.stopEvent(e); // no submit - return; // no ajax submit - } - - if (this.options.ajax) { - Event.stopEvent(e); - this.asyncRequest(); - } - }, - - /** - * Send the form value in JSON through an ajax request - */ - asyncRequest: function() { - - if (this.options.ajax.showMask) { - this.showMask(); - } - var postData = "value=" + lang.JSON.stringify(this.getValue()); - util.Connect.asyncRequest(this.options.ajax.method, this.options.ajax.uri, { - success: function(o) { - if (this.options.ajax.showMask) { - this.hideMask(); - } - if (lang.isFunction(this.options.ajax.callback.success)) { - this.options.ajax.callback.success.call(this.options.ajax.callback.scope, o); - } - }, - - failure: function(o) { - if (this.options.ajax.showMask) { - this.hideMask(); - } - if (lang.isFunction(this.options.ajax.callback.failure)) { - this.options.ajax.callback.failure.call(this.options.ajax.callback.scope, o); - } - }, - - scope:this - }, postData); - }, - - /** - * Create a Mask over the form - */ - renderMask: function() { - if (this.maskRendered) return; - - // position as "relative" to position formMask inside as "absolute" - Dom.setStyle(this.divEl, "position", "relative"); - - // set zoom = 1 to fix hasLayout issue with IE6/7 - if (YAHOO.env.ua.ie) { - Dom.setStyle(this.divEl, "zoom", 1); - } - - // Render mask over the divEl - this.formMask = inputEx.cn('div', {className: 'inputEx-Form-Mask'}, - { - display: 'none', - // Use offsetWidth instead of Dom.getStyle(this.divEl,"width") because - // would return "auto" with IE instead of size in px - width: this.divEl.offsetWidth + "px", - height: this.divEl.offsetHeight + "px" - }, - "


" + inputEx.messages.ajaxWait + "
"); - this.divEl.appendChild(this.formMask); - this.maskRendered = true; - }, - - /** - * Show the form mask - */ - showMask: function() { - this.renderMask(); - - // Hide selects in IE 6 - this.toggleSelectsInIE(false); - - this.formMask.style.display = ''; - }, - - /** - * Hide the form mask - */ - hideMask: function() { - - // Show selects back in IE 6 - this.toggleSelectsInIE(true); - - this.formMask.style.display = 'none'; - }, - - /* - * Method to hide selects in IE 6 when masking the form (else they would appear over the mask) - */ - toggleSelectsInIE: function(show) { - // IE 6 only - if (!!YAHOO.env.ua.ie && YAHOO.env.ua.ie < 7) { - var method = !!show ? YAHOO.util.Dom.removeClass : YAHOO.util.Dom.addClass; - var that = this; - YAHOO.util.Dom.getElementsBy( - function() { - return true; - }, - "select", - this.divEl, - function(el) { - method.call(that, el, "inputEx-hidden"); - } - ); - } - }, - - - /** - * Enable all fields and buttons in the form - */ - enable: function() { - inputEx.Form.superclass.enable.call(this); - for (var i = 0; i < this.buttons.length; i++) { - this.buttons[i].disabled = false; - } - }, - - /** - * Disable all fields and buttons in the form - */ - disable: function() { - inputEx.Form.superclass.disable.call(this); - for (var i = 0; i < this.buttons.length; i++) { - this.buttons[i].disabled = true; - } - } - - }); - - -// Specific waiting message in ajax submit - inputEx.messages.ajaxWait = "Please wait..."; - ; - - /** - * Register this class as "form" type - */ - inputEx.registerType("form", inputEx.Form); - - -})(); diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/Group.js b/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/Group.js deleted file mode 100644 index 47aee5840..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/Group.js +++ /dev/null @@ -1,376 +0,0 @@ -(function() { - - var inputEx = YAHOO.inputEx, lang = YAHOO.lang, Dom = YAHOO.util.Dom, Event = YAHOO.util.Event; - - /** - * @class Handle a group of fields - * @extends inputEx.Field - * @constructor - * @param {Object} options The following options are added for Groups and subclasses: - *
    - *
  • fields: Array of input fields declared like { label: 'Enter the value:' , type: 'text' or fieldClass: inputEx.Field, optional: true/false, inputParams: {inputparams object} }
  • - *
  • legend: The legend for the fieldset (default is an empty string)
  • - *
  • collapsible: Boolean to make the group collapsible (default is false)
  • - *
  • collapsed: If collapsible only, will be collapsed at creation (default is false)
  • - *
  • flatten:
  • - *
- */ - inputEx.Group = function(options) { - inputEx.Group.superclass.constructor.call(this, options); - - if (this.hasInteractions) { - for (var i = 0; i < this.inputs.length; i++) { - this.runInteractions(this.inputs[i], this.inputs[i].getValue()); - } - } - }; - lang.extend(inputEx.Group, inputEx.Field, - /** - * @scope inputEx.Group.prototype - */ - { - - /** - * Adds some options: legend, collapsible, fields... - * @param {Object} options Options object (inputEx inputParams) as passed to the constructor - */ - setOptions: function(options) { - - this.options = {}; - - this.options.className = options.className || 'inputEx-Group'; - - this.options.fields = options.fields; - - this.options.id = options.id; - - this.options.name = options.name; - - this.options.value = options.value; - - this.options.flatten = options.flatten; - - this.options.legend = options.legend || ''; - - // leave this for compatibility reasons - this.inputConfigs = options.fields; - - this.options.collapsible = lang.isUndefined(options.collapsible) ? false : options.collapsible; - this.options.collapsed = lang.isUndefined(options.collapsed) ? false : options.collapsed; - - this.options.disabled = lang.isUndefined(options.disabled) ? false : options.disabled; - - // Array containing the list of the field instances - this.inputs = []; - - // Associative array containing the field instances by names - this.inputsNames = {}; - }, - - /** - * Render the group - */ - render: function() { - - // Create the div wrapper for this group - this.divEl = inputEx.cn('div', {className: this.options.className}); - if (this.options.id) { - this.divEl.id = this.options.id; - } - - this.renderFields(this.divEl); - - if (this.options.disabled) { - this.disable(); - } - }, - - /** - * Render all the fields. - * We use the parentEl so that inputEx.Form can append them to the FORM tag - */ - renderFields: function(parentEl) { - - this.fieldset = inputEx.cn('fieldset'); - this.legend = inputEx.cn('legend', {className: 'inputEx-Group-legend'}); - - // Option Collapsible - //TODO: should it be renamed to 'collapsed'? - if (this.options.collapsible) { - var collapseImg = inputEx.cn('div', {className: 'inputEx-Group-collapseImg'}, null, ' '); - this.legend.appendChild(collapseImg); - inputEx.sn(this.fieldset, {className:'inputEx-Expanded'}); - } - - if (!lang.isUndefined(this.options.legend) && this.options.legend !== '') { - this.legend.appendChild(document.createTextNode(" " + this.options.legend)); - } - - if (this.options.collapsible || (!lang.isUndefined(this.options.legend) && this.options.legend !== '')) { - this.fieldset.appendChild(this.legend); - } - - // Iterate this.createInput on input fields - for (var i = 0; i < this.options.fields.length; i++) { - var input = this.options.fields[i]; - - // Render the field - var field = this.renderField(input); - this.fieldset.appendChild(field.getEl()); - } - - // Collapsed at creation ? - if (this.options.collapsed) { - this.toggleCollapse(); - } - - // Append the fieldset - parentEl.appendChild(this.fieldset); - }, - - /** - * Instanciate one field given its parameters, type or fieldClass - * @param {Object} fieldOptions The field properties as required bu inputEx.buildField - */ - renderField: function(fieldOptions) { - - // Instanciate the field - var fieldInstance = inputEx.buildField(fieldOptions); - - this.inputs.push(fieldInstance); - - // Create an index to access fields by their name - if (fieldInstance.options.name) { - this.inputsNames[fieldInstance.options.name] = fieldInstance; - } - - // Create the this.hasInteractions to run interactions at startup - if (!this.hasInteractions && fieldOptions.interactions) { - this.hasInteractions = true; - } - - // Subscribe to the field "updated" event to send the group "updated" event - fieldInstance.updatedEvt.subscribe(this.onChange, this, true); - - return fieldInstance; - }, - - /** - * Add a listener for the 'collapsible' option - */ - initEvents: function() { - if (this.options.collapsible) { - Event.addListener(this.legend, "click", this.toggleCollapse, this, true); - } - }, - - /** - * Toggle the collapse state - */ - toggleCollapse: function() { - alert(Dom.getAncestorByTagName('WireIt-Container')); - if (Dom.hasClass(this.fieldset, 'inputEx-Expanded')) { - Dom.replaceClass(this.fieldset, 'inputEx-Expanded', 'inputEx-Collapsed'); - } - else { - Dom.replaceClass(this.fieldset, 'inputEx-Collapsed', 'inputEx-Expanded'); - } - }, - - /** - * Validate each field - * @returns {Boolean} true if all fields validate and required fields are not empty - */ - validate: function() { - var response = true; - - // Validate all the sub fields - for (var i = 0; i < this.inputs.length; i++) { - var input = this.inputs[i]; - input.setClassFromState(); // update field classes (mark invalid fields...) - var state = input.getState(); - if (state == inputEx.stateRequired || state == inputEx.stateInvalid) { - response = false; // but keep looping on fields to set classes - } - } - return response; - }, - - /** - * Enable all fields in the group - */ - enable: function() { - for (var i = 0; i < this.inputs.length; i++) { - this.inputs[i].enable(); - } - }, - - /** - * Disable all fields in the group - */ - disable: function() { - for (var i = 0; i < this.inputs.length; i++) { - this.inputs[i].disable(); - } - }, - - /** - * Set the values of each field from a key/value hash object - * @param {Any} value The group value - * @param {boolean} [sendUpdatedEvt] (optional) Wether this setValue should fire the updatedEvt or not (default is true, pass false to NOT send the event) - */ - setValue: function(oValues, sendUpdatedEvt) { - if (!oValues) { - return; - } - for (var i = 0; i < this.inputs.length; i++) { - var field = this.inputs[i]; - var name = field.options.name; - if (name && !lang.isUndefined(oValues[name])) { - field.setValue(oValues[name], false); // don't fire the updated event ! - } - else { - field.clear(false); - } - } - - if (sendUpdatedEvt !== false) { - // fire update event - this.fireUpdatedEvt(); - } - }, - - /** - * Return an object with all the values of the fields - */ - getValue: function() { - var o = {}; - for (var i = 0; i < this.inputs.length; i++) { - var v = this.inputs[i].getValue(); - if (this.inputs[i].options.name) { - if (this.inputs[i].options.flatten && lang.isObject(v)) { - lang.augmentObject(o, v); - } - else { - o[this.inputs[i].options.name] = v; - } - } - } - return o; - }, - - /** - * Close the group (recursively calls "close" on each field, does NOT hide the group ) - * Call this function before hidding the group to close any field popup - */ - close: function() { - for (var i = 0; i < this.inputs.length; i++) { - this.inputs[i].close(); - } - }, - - /** - * Set the focus to the first input in the group - */ - focus: function() { - if (this.inputs.length > 0) { - this.inputs[0].focus(); - } - }, - - /** - * Return the sub-field instance by its name property - * @param {String} fieldName The name property - */ - getFieldByName: function(fieldName) { - if (!this.inputsNames.hasOwnProperty(fieldName)) { - return null; - } - return this.inputsNames[fieldName]; - }, - - - /** - * Called when one of the group subfields is updated. - * @param {String} eventName Event name - * @param {Array} args Array of [fieldValue, fieldInstance] - */ - onChange: function(eventName, args) { - - // Run interactions - var fieldValue = args[0]; - var fieldInstance = args[1]; - this.runInteractions(fieldInstance, fieldValue); - - //this.setClassFromState(); - - this.fireUpdatedEvt(); - }, - - /** - * Run an action (for interactions) - * @param {Object} action inputEx action object - * @param {Any} triggerValue The value that triggered the interaction - */ - runAction: function(action, triggerValue) { - var field = this.getFieldByName(action.name); - if (YAHOO.lang.isFunction(field[action.action])) { - field[action.action].call(field); - } - else if (YAHOO.lang.isFunction(action.action)) { - action.action.call(field, triggerValue); - } - else { - throw new Error("action " + action.action + " is not a valid action for field " + action.name); - } - }, - - /** - * Run the interactions for the given field instance - * @param {inputEx.Field} fieldInstance Field that just changed - * @param {Any} fieldValue Field value - */ - runInteractions: function(fieldInstance, fieldValue) { - - var index = inputEx.indexOf(fieldInstance, this.inputs); - var fieldConfig = this.options.fields[index]; - if (YAHOO.lang.isUndefined(fieldConfig.interactions)) return; - - // Let's run the interactions ! - var interactions = fieldConfig.interactions; - for (var i = 0; i < interactions.length; i++) { - var interaction = interactions[i]; - if (interaction.valueTrigger === fieldValue) { - for (var j = 0; j < interaction.actions.length; j++) { - this.runAction(interaction.actions[j], fieldValue); - } - } - } - - }, - - /** - * Clear all subfields - * @param {boolean} [sendUpdatedEvt] (optional) Wether this clear should fire the updatedEvt or not (default is true, pass false to NOT send the event) - */ - clear: function(sendUpdatedEvt) { - for (var i = 0; i < this.inputs.length; i++) { - this.inputs[i].clear(false); - } - if (sendUpdatedEvt !== false) { - // fire update event - this.fireUpdatedEvt(); - } - } - - - }); - - - /** - * Register this class as "group" type - */ - inputEx.registerType("group", inputEx.Group); - - -})(); diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/Visus.js b/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/Visus.js deleted file mode 100644 index 9a4bb4a6f..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/Visus.js +++ /dev/null @@ -1,98 +0,0 @@ -(function() { - - var inputEx = YAHOO.inputEx, lang = YAHOO.lang; - /** - * Contains the various visualization methods - */ - inputEx.visus = { - - /** - * Use the trimpath-template engine - * see http://code.google.com/p/trimpath/wiki/JavaScriptTemplates for syntax - * options = {visuType: 'trimpath', template: "String template"} - */ - trimpath: function(options, data) { - if (!TrimPath) { - alert('TrimPath is not on the page. Please load inputex/lib/trimpath-template.js'); - return; - } - var tpl = TrimPath.parseTemplate(options.template); - var ret = tpl.process(data); - return ret; - }, - - /** - * Use a rendering function - * options = {visuType: 'func', func: function(data) { ...code here...} } - */ - "func": function(options, data) { - return options.func(data); - }, - - /** - * Use YAHOO.lang.dump - * options = {visuType: 'dump'} - */ - dump: function(options, data) { - return lang.dump(data); - } - - }; - - /** - * Render 'data' using a visualization function described by 'visuOptions' - * @static - * @param {Object} visuOptions The visu parameters {visuType: 'myType', ...args...} - * @param {Object} data The input data to send to the template - * @param {HTMLElement || String} parentEl optional Set the result as content of parentEl - * @return {HTMLElement || String} Either the inserted HTMLElement or the String set to parentEl.innerHTML - */ - inputEx.renderVisu = function(visuOptions, data, parentEl) { - - var opts = visuOptions || {}; - var visuType = opts.visuType || 'dump'; - - if (!inputEx.visus.hasOwnProperty(visuType)) { - throw new Error("inputEx: no visu for visuType: " + visuType); - } - - var f = inputEx.visus[visuType]; - if (!lang.isFunction(f)) { - throw new Error("inputEx: no visu for visuType: " + visuType); - } - - var v = null; - try { - v = f(opts, data); - } - catch(ex) { - throw new Error("inputEx: error while running visu " + visuType + " : " + ex.message); - return; - } - - // Get the node - var node = null; - if (parentEl) { - if (lang.isString(parentEl)) { - node = YAHOO.util.Dom.get(parentEl); - } - else { - node = parentEl; - } - } - - // Insert it - if (node) { - if (YAHOO.lang.isObject(v) && v.tagName) { - node.innerHTML = ""; - node.appendChild(v); - } - else { - node.innerHTML = v; - } - } - - return v; - }; - -})(); \ No newline at end of file diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/ext/BirthdateField/BirthdateField.js b/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/ext/BirthdateField/BirthdateField.js deleted file mode 100644 index 7a587e3be..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/ext/BirthdateField/BirthdateField.js +++ /dev/null @@ -1,104 +0,0 @@ -(function() { - - var inputEx = YAHOO.inputEx, lang = YAHOO.lang; - - /** - * @class A field to enter a date with 2 strings and a select - * @extends inputEx.CombineField - */ - inputEx.BirthdateField = function(options) { - - if (!options.dateFormat) { - options.dateFormat = inputEx.messages.defaultDateFormat; - } - - var formatSplit = options.dateFormat.split("/"); - this.yearIndex = inputEx.indexOf('Y', formatSplit); - this.monthIndex = inputEx.indexOf('m', formatSplit); - this.dayIndex = inputEx.indexOf('d', formatSplit); - - options.fields = []; - for (var i = 0; i < 3; i++) { - if (i == this.dayIndex) { - options.fields.push({type: 'string', inputParams: { typeInvite: inputEx.messages.dayTypeInvite, size: 2} }); - } - else if (i == this.yearIndex) { - options.fields.push({type: 'string', inputParams: { typeInvite: inputEx.messages.yearTypeInvite, size: 4} }); - } - else { - options.fields.push({type: 'select', inputParams: {selectOptions: ([inputEx.messages.selectMonth]).concat(inputEx.messages.months), selectValues: [-1,0,1,2,3,4,5,6,7,8,9,10,11], value: -1} }); - } - } - - options.separators = options.separators || [false," "," ",false]; - - inputEx.BirthdateField.superclass.constructor.call(this, options); - }; - lang.extend(inputEx.BirthdateField, inputEx.CombineField, { - - setValue: function(value, sendUpdatedEvt) { - - var values = []; - - // !value catches "" (empty field), other tests invalid dates (Invalid Date, or NaN) - if (!value || !(value instanceof Date) || !lang.isNumber(value.getTime())) { - values[this.monthIndex] = -1; - values[this.yearIndex] = ""; - values[this.dayIndex] = ""; - } else { - for (var i = 0; i < 3; i++) { - values.push(i == this.dayIndex ? value.getDate() : (i == this.yearIndex ? value.getFullYear() : value.getMonth() )); - } - } - inputEx.BirthdateField.superclass.setValue.call(this, values, sendUpdatedEvt); - }, - - getValue: function() { - if (this.isEmpty()) return ""; - - var values = inputEx.BirthdateField.superclass.getValue.call(this); - - // if selected month index is -1, new Date(..) would create a valid date with month == December !!!) - if (values[this.monthIndex] == -1) { - return new Date(NaN, NaN, NaN); // -> Invalid Date (Firefox) or NaN (IE) (both instanceof Date ...) - } - - return new Date(parseInt(values[this.yearIndex], 10), values[this.monthIndex], parseInt(values[this.dayIndex], 10)); - }, - - validate: function() { - var val = this.getValue(); - - // empty field - if (val === '') { - // validate only if not required - return !this.options.required; - } - - // val is : - // -> a Date, when valid - // -> an Invalid Date (== "Invalid Date"), when invalid on FF - // -> NaN, when invalid on IE - // - // These 3 cases would pass the "val instanceof Date" test, - // but last 2 cases return NaN on val.getDate(), so "isFinite" test fails. - return (val instanceof Date && lang.isNumber(val.getTime())); - }, - - isEmpty: function() { - var values = inputEx.BirthdateField.superclass.getValue.call(this); - return (values[this.monthIndex] == -1 && values[this.yearIndex] == "" && values[this.dayIndex] == ""); - } - - }); - - inputEx.messages.selectMonth = "- Select Month -"; - inputEx.messages.dayTypeInvite = "Day"; - inputEx.messages.yearTypeInvite = "Year"; - - /** - * Register this class as "birthdate" type - */ - inputEx.registerType("birthdate", inputEx.BirthdateField); - -})(); \ No newline at end of file diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/ext/BirthdateField/birthdate_field.html b/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/ext/BirthdateField/birthdate_field.html deleted file mode 100644 index e2e1c5990..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/ext/BirthdateField/birthdate_field.html +++ /dev/null @@ -1,114 +0,0 @@ - - - - - inputEx - BirthdateField Usage - - - - - - - - - - - - - - - - - - - - -

inputEx - BirthdateField Usage

- - - -
- -

Basic BirthdateField creation

- -

Use the following code to create a basic inputEx BirthdateField.

- -
- -
-
- -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/ext/ColorField2/ColorField2.js b/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/ext/ColorField2/ColorField2.js deleted file mode 100644 index bd0800ae8..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/ext/ColorField2/ColorField2.js +++ /dev/null @@ -1,271 +0,0 @@ -(function() { - - var inputEx = YAHOO.inputEx, lang = YAHOO.lang, Event = YAHOO.util.Event, Dom = YAHOO.util.Dom; - - /** - * @class Create a Color picker input field - * @extends inputEx.Field - * @constructor - * @param {Object} options inputEx.Field options object - */ - inputEx.ColorField2 = function(options) { - inputEx.ColorField2.superclass.constructor.call(this, options); - }; - lang.extend(inputEx.ColorField2, inputEx.Field, - /** - * @scope inputEx.ColorField2.prototype - */ - { - - /** - * How many color cells shall be shown in every line in the popup panel. - * if defined, cellPerLine*squareWidth+leftMargin = popupPanel.width, otherwise, there is a formula to determine cell size - */ - cellPerLine : 0, - - /** Width of every color cell. cellPerLine*squareWidth+leftMargin = popupPanel.width */ - cellWidth : 0, - - /** cellPerLine*squareWidth+leftMargin = popupPanel.width */ - leftMargin : 0, - - /** x:y ratio to list color cell, it is used only if cellPerLine is not defined. Default is 16:9 */ - ratio:0, - - /** Height of every color cell */ - cellHeight:0, - - /** - * Render the color button and the colorpicker popup - */ - renderComponent: function() { - - // A hidden input field to store the color code - this.el = inputEx.cn('input', { - type: 'hidden', - name: this.options.name || '', - value: this.options.value || this.options.colors[0]}); - - // Create a colored area - this.colorEl = inputEx.cn('div', {className: 'inputEx-ColorField-button'}, {backgroundColor: this.el.value}); - - // Render the popup - this.renderPopUp(); - - // Elements are bound to divEl - this.fieldContainer.appendChild(this.el); - this.fieldContainer.appendChild(this.colorEl); - }, - - /** - * Register the click and blur events - */ - initEvents: function() { - Event.addListener(this.colorEl, "click", this.toggleColorPopUp, this, true); - Event.addListener(this.colorEl, "blur", this.closeColorPopUp, this, true); - }, - - /** - * Toggle the color picker popup - */ - toggleColorPopUp: function() { - if (this.visible) { - this.colorPopUp.style.display = 'none'; - } - else { - this.colorPopUp.style.display = 'block'; - } - this.visible = !this.visible; - }, - - /** - * Call closeColorPopUp when field is removed - */ - close: function() { - this.closeColorPopUp(); - }, - - /** - * Close the popup - */ - closeColorPopUp: function() { - this.colorPopUp.style.display = 'none'; - this.visible = false; - }, - - /** - * Render the color popup - */ - renderPopUp: function() { - - // display or not the title - this.displayTitle = this.options.displayTitle || false; - - // set default color grid to be used - var defaultGrid = this.options.auto || 1; - - // set colors available - this.colors = this.options.colors || this.setDefaultColors(defaultGrid); - this.length = this.colors.length; - - // set PopUp size ratio (default 16/9 ratio) - this.ratio = this.options.ratio || [16,9]; - - // set color grid dimensions - this.cellPerLine = this.options.cellPerLine || Math.ceil(Math.sqrt(this.length * this.ratio[0] / this.ratio[1])); - this.squaresPerColumn = Math.ceil(this.length / this.cellPerLine); - this.squaresOnLastLine = this.squaresPerLine - (this.squaresPerLine * this.squaresPerColumn - this.length); - - // set popup width - this.cellWidth = this.options.cellWidth || 30; - this.leftMargin = this.options.leftMargin || 10; - - var width = this.cellWidth * this.cellPerLine + this.leftMargin; - - // keep the visible state of the popup - this.visible = false; - - // create the popup - this.colorPopUp = inputEx.cn('div', {className: 'inputEx-ColorField-popup'}, {width: width + 'px', display: 'none'}); - - // create the title - if (this.displayTitle) { - var div = inputEx.cn('div', null, null, inputEx.messages.selectColor); - this.colorPopUp.appendChild(div); - } - - var body = inputEx.cn('div'); - body.appendChild(this.renderColorGrid()); - this.colorPopUp.appendChild(body); - - this.divEl.appendChild(this.colorPopUp); - }, - - /** - * Get the value - */ - gettValue: function() { - this.el.value = value; - Dom.setStyle(this.colorEl, 'background-color', this.el.value); - }, - - /** - * Set the value - * @param {String} value Color to set - */ - setValue: function(value) { - return this.el.value; - }, - - /** - * Set the colors to set in the picker - * @param {int} index Index of the palette to use - * @return {Array} List of colors to choose from - */ - setDefaultColors: function(index) { - return inputEx.ColorField2.palettes[index - 1]; - }, - - /** - * This creates a color grid - */ - renderColorGrid: function() { - var table = inputEx.cn('table', null, {width: '100%'}); - var tbody = inputEx.cn('tbody'); - - for (var i = 0; i < this.squaresPerColumn; i++) { - var line = inputEx.cn('tr'); - for (var j = 0; j < this.cellPerLine; j++) { - - // spacer cells - var cellHeight = this.options.cellHeight || 10; - line.appendChild(inputEx.cn('td', null, {backgroundColor: '#fff', width:'5px', lineHeight: cellHeight + 'px', cursor: 'default'}, " ")); - - // fill remaining space with empty and inactive squares - var square = inputEx.cn('td', null, {backgroundColor: '#fff', lineHeight: cellHeight + 'px', cursor: 'default'}, '   '); - - inputEx.sn(square, null, {backgroundColor: '#' + this.colors[i * this.cellPerLine + j], cursor: 'pointer', margin:'10px'}); - YAHOO.util.Event.addListener(square, "mousedown", this.onColorClick, this, true); - line.appendChild(square); - } - tbody.appendChild(line); - - // spacer line - tbody.appendChild(inputEx.cn('tr', null, {height: '8px'})); - } - table.appendChild(tbody); - return table; - }, - - /** - * Handle a color selection - * @param {Event} e The original click event - */ - onColorClick: function(e) { - - var square = Event.getTarget(e);//e.target; - - var couleur = Dom.getStyle(square, 'background-color'); - Dom.setStyle(this.colorEl, 'background-color', couleur); - - // set hidden field value - // Convertit une chaine du style "rgb(255,142,0)" en hexadecimal du style "#FF8E00" - var hexa = function (rgbcolor) { - // Convertit un entier en hexa - var DecToHex = function (n) { - var tblCode = new Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F"); - var BASE = 16; - var Num = parseInt(n, 10); - var i; - var strHex = ""; - if (! isNaN(Num)) { - if (Num == '') return "00"; - while (Num > 0) { - i = 0; - while (Num / Math.pow(BASE, i++) >= BASE); - strHex += tblCode[Math.floor(Num / Math.pow(BASE, i - 1))]; - if (Num % BASE == 0) strHex += "0"; - Num = (Num % Math.pow(BASE, i - 1)); - } - if (strHex.length == 1) { - return '0' + strHex; - } - return strHex; - } - else return 0; - }; - - var rgb = rgbcolor.split(/([(,)])/); - return '#' + DecToHex(rgb[2]) + DecToHex(rgb[4]) + DecToHex(rgb[6]); - }; - - this.el.value = hexa(couleur); - - // Overlay closure - this.visible = !this.visible; - this.colorPopUp.style.display = 'none'; - - // Fire updated - this.fireUpdatedEvt(); - } - - }); - -// Specific message for the container - inputEx.messages.selectColor = "Select a color :"; - - /** - * Default palettes - */ - inputEx.ColorField2.palettes = [ - ["FFEA99","FFFF66","FFCC99","FFCAB2","FF99AD","FFD6FF","FF6666","E8EEF7","ADC2FF","ADADFF","CCFFFF","D6EAAD","B5EDBC","CCFF99"], - ["55AAFF","FFAAFF","FF7FAA","FF0202","FFD42A","F9F93B","DF8181","FEE3E2","D47FFF","2AD4FF","2AFFFF","AAFFD4"], - ["000000","993300","333300","003300","003366","000080","333399","333333","800000","FF6600","808000","008000","008080","0000FF","666699","808080","FF0000","FF9900","99CC00","339966","33CCCC","3366FF","800080","969696","FF00FF","FFCC00","FFFF00","00FF00","00FFFF","00CCFF","993366","C0C0C0","FF99CC","FFCC99","FFFF99","CCFFCC","CCFFFF","99CCFF","CC99FF","F0F0F0"] - ]; - - /** - * Register this class as "color" type - */ - inputEx.registerType("color2", inputEx.ColorField2); - -})(); \ No newline at end of file diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/ext/FrenchDate/FrenchDate.js b/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/ext/FrenchDate/FrenchDate.js deleted file mode 100644 index 3f7bf3caa..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/ext/FrenchDate/FrenchDate.js +++ /dev/null @@ -1,24 +0,0 @@ -(function() { - var inputEx = YAHOO.inputEx; - - /** - * @class inputEx.FrenchDate - * @extends inputEx.DateField - */ - inputEx.FrenchDate = function(options) { - if (!options.dateFormat) { - options.dateFormat = 'd/m/Y'; - } - inputEx.FrenchDate.superclass.constructor.call(this, options); - }; - YAHOO.lang.extend(inputEx.FrenchDate, inputEx.DateField); - -// Specific message for the container - inputEx.messages.invalidDate = "Date invalide, ex: 27/03/2008"; - - /** - * Register this class as "date" type - */ - inputEx.registerType("date_fr", inputEx.FrenchDate); - -})(); \ No newline at end of file diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/ext/FrenchPhone/FrenchPhone.js b/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/ext/FrenchPhone/FrenchPhone.js deleted file mode 100644 index 34a840899..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/ext/FrenchPhone/FrenchPhone.js +++ /dev/null @@ -1,22 +0,0 @@ -(function() { - - var inputEx = YAHOO.inputEx; - - /** - * @class inputEx.FrenchPhone - * @extends inputEx.StringField - */ - inputEx.FrenchPhone = function(options) { - inputEx.FrenchPhone.superclass.constructor.call(this, options); - this.options.regexp = /^( *[0-9] *){10}$/; - this.options.messages.invalid = "Numéro de téléphone non valide, ex: 06 12 34 56 78"; - }; - YAHOO.lang.extend(inputEx.FrenchPhone, inputEx.StringField); - - - /** - * Register this class as "frenchphone" type - */ - inputEx.registerType("frenchphone", inputEx.FrenchPhone); - -})(); \ No newline at end of file diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/ext/IPv4Field/IPv4Field.js b/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/ext/IPv4Field/IPv4Field.js deleted file mode 100644 index 6ee99022d..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/ext/IPv4Field/IPv4Field.js +++ /dev/null @@ -1,40 +0,0 @@ -(function() { - - var inputEx = YAHOO.inputEx; - - /** - * @class Adds an IPv4 address regexp - * @extends inputEx.StringField - * @constructor - * @param {Object} options inputEx.Field options object - */ - inputEx.IPv4Field = function(options) { - inputEx.IPv4Field.superclass.constructor.call(this, options); - }; - YAHOO.lang.extend(inputEx.IPv4Field, inputEx.StringField, - /** - * @scope inputEx.IPv4Field.prototype - */ - { - - /** - * set IPv4 regexp and invalid string - * @param {Object} options Options object (inputEx inputParams) as passed to the constructor - */ - setOptions: function(options) { - inputEx.IPv4Field.superclass.setOptions.call(this, options); - this.options.messages.invalid = inputEx.messages.invalidIPv4; - this.options.regexp = /^(?:1\d?\d?|2(?:[0-4]\d?|[6789]|5[0-5]?)?|[3-9]\d?|0)(?:\.(?:1\d?\d?|2(?:[0-4]\d?|[6789]|5[0-5]?)?|[3-9]\d?|0)){3}$/; - } - - }); - -// Specific message for the email field - inputEx.messages.invalidIPv4 = "Invalid IPv4 address, ex: 192.168.0.1"; - - /** - * Register this class as "IPv4" type - */ - inputEx.registerType("IPv4", inputEx.IPv4Field); - -})(); \ No newline at end of file diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/ext/IPv4Field/ipv4_field.html b/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/ext/IPv4Field/ipv4_field.html deleted file mode 100644 index 05dca8b6e..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/ext/IPv4Field/ipv4_field.html +++ /dev/null @@ -1,76 +0,0 @@ - - - - - inputEx - IPv4Field Usage - - - - - - - - - - - - - - - - - - -

inputEx - IPv4Field Usage

- - - -
- -

Basic IPv4Field creation

- -

Use the following code to create a basic inputEx IPv4Field.

- -
- -
-
- -
-
- -
- - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/ext/ImagemapField/ImagemapField.css b/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/ext/ImagemapField/ImagemapField.css deleted file mode 100644 index 15890819f..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/ext/ImagemapField/ImagemapField.css +++ /dev/null @@ -1,39 +0,0 @@ -/** - * ImagemapField - */ -div.inputEx-ImagemapField { - height: 16px; - width: 150px; - border: 1px solid #B5B8C8; - margin-left: 0px; - cursor: pointer; -} - -.inputEx-ImagemapField-popup { - z-index: 999; - position: absolute; - border: 1px solid #B5B8C8; - padding: 5px; - margin: 10px; - background: #ffffff; -} - -.inputEx-ImagemapField-popup .hd { - padding: 5px; -} - -.inputEx-ImagemapField-popup .bd { - padding: 5px; -} - -.inputEx-ImagemapField-popup .ft { - padding: 5px; -} - -area.inputEx-ImagemapField { - cursor: pointer; -} - -img.inputEx-ImagemapField { - cursor: pointer; -} diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/ext/ImagemapField/ImagemapField.js b/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/ext/ImagemapField/ImagemapField.js deleted file mode 100644 index c0a880701..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/ext/ImagemapField/ImagemapField.js +++ /dev/null @@ -1,219 +0,0 @@ -(function() { - - var inputEx = YAHOO.inputEx, lang = YAHOO.lang, Event = YAHOO.util.Event, Dom = YAHOO.util.Dom; - - /** - * @class Create an image map field - * @extends inputEx.Field - * @constructor - * @param {Object} options inputEx.Field options object - */ - inputEx.ImagemapField = function(options) { - inputEx.ImagemapField.superclass.constructor.call(this, options); - }; - lang.extend(inputEx.ImagemapField, inputEx.Field, - /** - * @scope inputEx.ImagemapField.prototype - */ - { - /** - * popup image and its image map coordinates - */ - tgimgsrc: '', - - tgmapcoords: null, - - parent:'', - - /** - * Render the image and the imagemap popup - */ - renderComponent: function() { - var orgimagesrc = (this.options.orgimgsrc != null) ? this.options.orgimgsrc : '/images/game/chinesechecker/chinesecheckergrid_fc_s.png'; - YAHOO.log('renderComponent() - orgimgsrc: ' + orgimagesrc, 'info', 'ImagemapField.js'); - this.tgimgsrc = (this.options.tgimgsrc != null) ? this.options.tgimgsrc : '/images/game/chinesechecker/chinesecheckergrid_fc_s.png'; - YAHOO.log('renderComponent() - tgimgsrc: ' + this.tgimgsrc, 'info', 'ImagemapField.js'); - this.tgmapcoords = (this.options.tgmapcoords != null) ? this.options.tgmapcoords : null; - YAHOO.log('renderComponent() - tgmapcoords: ' + this.tgmapcoords + ', tgmapcoords.size: ' + this.tgmapcoords.length, 'info', 'ImagemapField.js'); - this.parent = (this.options.parentEl != null) ? this.options.parentEl : ''; - YAHOO.log('renderComponent() - parent: ' + this.parent, 'info', 'ImagemapField.js'); - var log = ''; - for (var i = 0; i < this.tgmapcoords.length; i++) { - var imgmap = this.tgmapcoords[i]; - //log = imgmap[0]; - log += 'shape: ' + imgmap[0]; - log += ', coords: ' + imgmap[1]; - if (imgmap[2] != null) { - log += ', resultimg: ' + imgmap[2]; - } else { - YAHOO.log('**************cannot find imgmap[2]!'); - } - log += '; '; - } - YAHOO.log('renderComponent() - tgmapcoords details: ' + log, 'info', 'ImagemapField.js'); - - // A hidden input field to store the seat id - this.el = inputEx.cn('input', { - type: 'text', - name: 'seatid', - value: '' }); - /* - this.el = inputEx.cn('input', { - type: 'hidden', - name: 'seatid', - value: '1' }); - */ - - this.orgimg = inputEx.cn('img', {className: 'inputEx-ImagemapField'}); - this.orgimg.src = orgimagesrc; - - this.divEl.appendChild(this.el); - this.divEl.appendChild(this.orgimg); - this.renderPopUp(); - }, - - /** - * Set the value - * @param {String} value Color to set - */ - setValue: function(value) { - this.el.value = value; - }, - - /** - * Register the click and blur events - */ - initEvents: function() { - Event.addListener(this.orgimg, "click", this.toggleImagemapPopUp, this, true); - Event.addListener(this.orgimg, "blur", this.closeImagemapPopUp, this, true); - }, - - /** - * Toggle the imagemap picker popup - */ - toggleImagemapPopUp: function() { - if (this.visible) { - this.imgmapPopUp.style.display = 'none'; - } - else { - this.imgmapPopUp.style.display = 'block'; - } - this.visible = !this.visible; - }, - - /** - * Call closeImagemapPopUp when field is removed - */ - close: function() { - this.closeImagemapPopUp(); - }, - - /** - * Close the popup - */ - closeImagemapPopUp: function() { - this.imgmapPopUp.style.display = 'none'; - this.visible = false; - }, - - /** - * Render the imagemap popup - */ - renderPopUp: function() { - // keep the visible state of the popup - this.visible = false; - - // create the popup - this.imgmapPopUp = inputEx.cn('div', {className: 'inputEx-ImagemapField-popup'}, {left:'100px', top:'100px', display: 'none'}); - - // create the title - var div = inputEx.cn('div', null, null, 'Please select: '); - this.imgmapPopUp.appendChild(div); - - var body = inputEx.cn('div'); - body.appendChild(this.renderImageMap()); - this.imgmapPopUp.appendChild(body); - - this.divEl.appendChild(this.imgmapPopUp); - }, - - - renderImageMap: function() { - var image = inputEx.cn('img', {className: 'inputEx-ImagemapField2'}) - image.src = this.tgimgsrc; - image.useMap = '#' + this.parent + 'planetmap'; - - var imagemap = inputEx.cn('map', {name: 'map01'}); - imagemap.id = this.parent + 'planetmap'; - imagemap.name = this.parent + 'planetmap'; - - for (var i = 0; i < this.tgmapcoords.length; i++) { - var imgmap = this.tgmapcoords[i]; - - var area = inputEx.cn('area', {className: 'inputEx-ImagemapField'}); - area.id = this.parent + 'area' + i; - area.shape = imgmap[0]; - area.coords = '' + imgmap[1]; - YAHOO.log('renderImageMap() - alt: ' + imgmap[4], 'info', 'ImagemapField.js'); - area.alt = (imgmap[4]) ? imgmap[4] : ''; - YAHOO.log('renderImageMap() - ' + area.id + '-area.coords: ' + area.coords, 'info', 'ImagemapField.js'); - Event.addListener(area, "mousedown", this.onImageClick, this, true); - imagemap.appendChild(area); - } - - var table = inputEx.cn('table'); - var tbody = inputEx.cn('tbody'); - var tr = inputEx.cn('tr'); - var td = inputEx.cn('td'); - td.appendChild(image); - td.appendChild(imagemap); - tr.appendChild(td); - tbody.appendChild(tr); - table.appendChild(tbody); - - return table; - }, - - /** - * Handle a image map area selection - * @param {Event} e The original click event - */ - onImageClick: function(e) { - - var target = YAHOO.util.Event.getTarget(e);//e.target; - YAHOO.log('ImagemapField.onImageClick, target:' + target.id + ', event: ' + e, 'info', 'body'); - var targetid = target.id + ''; - targetid = targetid.substring(targetid.indexOf('area') + 4); - YAHOO.log('ImagemapField.onImageClick, targetid:' + targetid + ', event: ' + e, 'info', 'body'); - - - for (var i = 0; i < this.tgmapcoords.length; i++) { - if (i == targetid) { - var imgmap = this.tgmapcoords[i]; - if (imgmap[2] != null) { - this.orgimg.src = imgmap[2]; - } else { - this.orgimg.src = this.tgimgsrc; - } - imgmap[3] ? this.el.value = imgmap[3] : 0; - YAHOO.log('renderImageMap() - result img src: ' + this.orgimg.src, 'info', 'ImagemapField.js'); - break; - } - } - - // Overlay closure - this.visible = !this.visible; - this.imgmapPopUp.style.display = 'none'; - - // Fire updated - this.fireUpdatedEvt(); - } - - }); - - /** - * Register this class as "imagemap" type - */ - inputEx.registerType("imagemap", inputEx.ImagemapField); - -})(); \ No newline at end of file diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/ext/ImagemapField/imagemap_field.html b/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/ext/ImagemapField/imagemap_field.html deleted file mode 100644 index ecd8ceb79..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/ext/ImagemapField/imagemap_field.html +++ /dev/null @@ -1,99 +0,0 @@ - - - - - inputEx - ImagemapField Usage - - - - - - - - - - - - - - - - - - - - - -

inputEx - ImagemapField Usage

- - - -
- -

Basic Imagemap creation

- -

- -
- -
-
- -
-
- -
- - - - - - - - - - - - - - - - - - - - - - diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/ext/MapField/MapField.js b/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/ext/MapField/MapField.js deleted file mode 100644 index f38d43046..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/ext/MapField/MapField.js +++ /dev/null @@ -1,484 +0,0 @@ -(function() { - var inputEx = YAHOO.inputEx, lang = YAHOO.lang; - - inputEx.MapFieldGlobals = { - yahoo_preloader_error : 1, - - lat : 43.648565, - lon : -79.385329, - uzoom : -13, - api : 'virtualearth', - api_key : '' - }; - - inputEx.MapFieldZoom = { - google : { - to_universal : function(native) { - native = parseInt(native); - return Math.min(-1, -native); - }, - - to_native : function(universal) { - universal = parseInt(universal); - return universal > 0 ? universal : -universal; - } - }, - - virtual_earth : { - to_universal : function(native) { - native = parseInt(native); - return Math.min(-1, -native); - }, - - to_native : function(universal) { - universal = parseInt(universal); - return universal > 0 ? universal : -universal; - } - }, - - yahoo : { - to_universal : function(native) { - native = parseInt(native); - return Math.min(-1, native - 18); - }, - - to_native : function(universal) { - universal = parseInt(universal); - return universal > 0 ? universal : Math.max(universal + 18, 1); - } - } - }; - - /** - * @class Wrapper for Mapping APIs, including Google Maps, Yahoo Maps and Virtual Earth - * @extends inputEx.Field - * @constructor - * @param {Object} options Added options: - *
    - *
  • width
  • - *
  • height
  • - *
  • loading
  • - *
  • lat
  • - *
  • lon
  • - *
  • uzoom
  • - *
  • api: google, yahoo or virtualearth (default)
  • - *
  • api_key
  • - *
- */ - inputEx.MapField = function(options) { - inputEx.MapField.superclass.constructor.call(this, options); - }; - lang.extend(inputEx.MapField, inputEx.Field, - /** - * @scope inputEx.MapField.prototype - */ - { - /** - * Adds the 'inputEx-MapField' default className - */ - setOptions: function(options) { - inputEx.MapField.superclass.setOptions.call(this, options); - this.options.className = options.className || 'inputEx-Field inputEx-MapField'; - - this.options.width = options.width || '400px'; - this.options.height = options.height || '400px'; - this.options.loading = options.loading || 'loading....'; - - this.options.lat = options.lat || inputEx.MapFieldGlobals.lat; - this.options.lon = options.lon || inputEx.MapFieldGlobals.lon; - this.options.uzoom = options.uzoom || inputEx.MapFieldGlobals.uzoom; - this.options.api = options.api || inputEx.MapFieldGlobals.api; - this.options.api_key = options.api_key || inputEx.MapFieldGlobals.api_key; - }, - - /** - * Render the field using the appropriate mapping function - */ - renderComponent: function() { - if (inputEx.MapFieldsNumber == undefined) { - inputEx.MapFieldsNumber = -1; - } - inputEx.MapFieldsNumber += 1; - - this.apid = this.virtualearth; - if (this.options.api == "virtualearth") { - this.apid = this.virtualearth; - } else if (this.options.api == "google") { - this.apid = this.google; - } else if (this.options.api == "yahoo") { - this.apid = this.yahoo; - } else { - alert("unknown API '" + this.options.api + "': using 'virtualearth'"); - } - - var id = "inputEx-MapField-" + inputEx.MapFieldsNumber; - var idWrapper = "inputEx-MapFieldWrapper-" + inputEx.MapFieldsNumber; - var idLat = "inputEx-MapFieldLat-" + inputEx.MapFieldsNumber; - var idLon = "inputEx-MapFieldLon-" + inputEx.MapFieldsNumber; - var idUZoom = "inputEx-MapFieldUZoom-" + inputEx.MapFieldsNumber; - var idNZoom = "inputEx-MapFieldNZoom-" + inputEx.MapFieldsNumber; - - // the wrapper is needed for Virtual Earth - this.elWrapper = inputEx.cn('div', - { id: idWrapper, style: "width: " + this.options.width + "; height: " + this.options.height }, - null, - null - ); - this.fieldContainer.appendChild(this.elWrapper); - - this.el = inputEx.cn('div', - { id: id, style: "position: relative; width: " + this.options.width + "; height: " + this.options.height }, - null, - this.options.loading - ); - this.elWrapper.appendChild(this.el); - - this.elLat = inputEx.cn('input', { id: idLat, type: "hidden", value: this.options.lat }); - this.fieldContainer.appendChild(this.elLat); - - this.elLon = inputEx.cn('input', { id: idLon, type: "hidden", value: this.options.lon }); - this.fieldContainer.appendChild(this.elLon); - - this.elUZoom = inputEx.cn('input', { id: idUZoom, type: "hidden", value: this.options.uzoom }); - this.fieldContainer.appendChild(this.elUZoom); - - this.elNZoom = inputEx.cn('input', { id: idNZoom, type: "hidden", value: this.options.uzoom }); - this.fieldContainer.appendChild(this.elNZoom); - - if (this.apid.preload(this)) { - return; - } else { - this.wait_create(); - } - }, - - /** - * set the value: {lat: 45.23234, lon: 2.34456, uzoom: 6, nzoom: 6} - */ - setValue: function(value) { - var any = false; - - if (value.uzoom != undefined) { - this.elUZoom.value = value.uzoom; - any = true; - } else if (value.nzoom != undefined) { - this.elUZoom.value = this.apid.f_zoom.to_universal(value.uzoom); - any = true; - } - - if (value.lat != undefined) { - this.elLat.value = value.lat; - any = true; - } - - if (value.lon != undefined) { - this.elLon.value = value.lon; - any = true; - } - - if (any) { - this.apid.onposition(); - } - }, - - /** - * return the same structure as setValue - */ - getValue: function() { - if (!this.elLat) return {}; - return { - lat : parseFloat(this.elLat.value), - lon : parseFloat(this.elLon.value), - uzoom : parseInt(this.elUZoom.value), - nzoom : parseInt(this.elNZoom.value) - } - }, - - /** - * This will wait until the DOM element appears before completion of map rendering - */ - wait_create : function(_this) { - if (this == window) { - _this.wait_create(_this); - return; - } - - if (document.getElementById(this.el.id)) { - this.apid.create(this); - } else { - window.setTimeout(this.wait_create, 0.1, this); - } - }, - - yahoo : { - y_map : null, - f_zoom : inputEx.MapFieldZoom.yahoo, - - /** - * This preloaded MAY not really work -- we recommend that you use - * the following JavaScript instead _after_ "yahoo-dom-event.js" (or similar) - * is included: - * - * - * - * - * Note the non-standard loading pattern! See: - * http://yuiblog.com/blog/2006/12/14/maps-plus-yui/ - */ - preload : function(superwrapper) { - if (window.YMap) { - return; - } - - if (!inputEx.MapFieldGlobals.yahoo_preloader_error) { - inputEx.MapFieldGlobals.yahoo_preloader_error = 1; - alert("InputEx.MapField: we do not recommend dynamic API loading for Yahoo Maps"); - } - - var preloader = 'MapYahooPreloader_' + inputEx.MapFieldsNumber; - if (!inputEx[preloader]) { - inputEx[preloader] = 1; - - var api_key = superwrapper.options.api_key[window.location.hostname]; - if (!api_key) { - var api_key = superwrapper.options.api_key; - } - if (!api_key) { - alert("No map key is defined for Yahoo Maps"); - return true; - } - window.YMAPPID = api_key; - - var script = document.createElement("script"); - script.src = "http://us.js2.yimg.com/us.js.yimg.com/lib/map/js/api/ymapapi_3_8_0_7.js"; - script.type = "text/javascript"; - - document.getElementsByTagName("head")[0].appendChild(script); - } - - window.setTimeout(function() { - if (window.YMap) { - superwrapper.wait_create(); - } else { - superwrapper.yahoo.preload(superwrapper); - } - }, 0.1); - - return true; - }, - - create : function(superwrapper) { - this.y_map = new YMap(superwrapper.el); - this.y_map._mapField = superwrapper; - - this.y_map.addTypeControl(); - this.y_map.addZoomLong(); - this.y_map.addPanControl(); - this.y_map.setMapType(YAHOO_MAP_REG); - - YEvent.Capture(this.y_map, EventsList.endMapDraw, this.onposition); - YEvent.Capture(this.y_map, EventsList.changeZoom, this.onposition); - YEvent.Capture(this.y_map, EventsList.endPan, this.onposition); - - this.y_map.drawZoomAndCenter( - new YGeoPoint(superwrapper.elLat.value, superwrapper.elLon.value), - inputEx.MapFieldZoom.yahoo.to_native(superwrapper.elUZoom.value)) - }, - - onposition : function() { - try { - var c = this.getCenterLatLon(); - this._mapField.elLat.value = c.Lat; - this._mapField.elLon.value = c.Lon; - - var z = this.getZoomLevel(); - this._mapField.elNZoom.value = z; - this._mapField.elUZoom.value = inputEx.MapFieldZoom.yahoo.to_universal(z); - } catch (x) { - alert(x); - } - }, - }, - - google : { - g_map : null, - f_zoom : inputEx.MapFieldZoom.google, - - - /** - * If the Google Maps API has not been explicitly loaded, this will go get - * it on the user's behalf. They must have set 'api_key' to be either the API Key - * for this host, or a dictionary of { window.location.hostname : api_key }. - * - * See: http://code.google.com/apis/ajax/documentation/#Dynamic - */ - preload : function(superwrapper) { - if (window.GMap2) { - return; - } - - var api_key = superwrapper.options.api_key[window.location.hostname]; - if (!api_key) { - var api_key = superwrapper.options.api_key; - } - if (!api_key) { - alert("No map key is defined for Google Maps"); - return true; - } - - var preloader = 'MapGooglePreloader_' + inputEx.MapFieldsNumber; - inputEx[preloader] = function() { - google.load("maps", "2", { - "callback" : function() { - superwrapper.wait_create(); - } - }); - } - - if (window.google) { - inputEx[preloader](); - } else { - var script = document.createElement("script"); - script.src = "http://www.google.com/jsapi?key=" + api_key + "&callback=inputEx." + preloader; - script.type = "text/javascript"; - - document.getElementsByTagName("head")[0].appendChild(script); - } - - return true; - }, - - create : function(superwrapper) { - this.g_map = new GMap2(superwrapper.el); - this.g_map._mapField = superwrapper; - - this.g_geocoder = new GClientGeocoder(); - this.g_geocoder.setBaseCountryCode("ca") - - GEvent.addListener(this.g_map, "load", this.onposition); - GEvent.addListener(this.g_map, "moveend", this.onposition); - GEvent.addListener(this.g_map, "zoomend", this.onposition); - - this.g_map.addControl(new GSmallMapControl()); - this.g_map.addControl(new GMapTypeControl()); - - this.g_map.setCenter( - new GLatLng(parseFloat(superwrapper.elLat.value), parseFloat(superwrapper.elLon.value)), - inputEx.MapFieldZoom.google.to_native(superwrapper.elUZoom.value) - ); - }, - - onposition : function() { - try { - var c = this.getCenter(); - this._mapField.elLat.value = c.lat(); - this._mapField.elLon.value = c.lng(); - - var z = this.getZoom(); - this._mapField.elNZoom.value = z; - this._mapField.elUZoom.value = inputEx.MapFieldZoom.google.to_universal(z); - } catch (x) { - alert(x); - } - }, - }, - - virtualearth : { - ve_map : null, - f_zoom : inputEx.MapFieldZoom.virtualearth, - - /** - * If Virtual Earth has not been added via script tag, this - * will download it for you - * - * http://soulsolutions.com.au/Blog/tabid/73/EntryID/519/Default.aspx - * p_elSource.attachEvent is not a function - */ - preload : function(superwrapper) { - if (window.VEMap) { - return; - } - - var preloader = 'MapVEPreloader_' + inputEx.MapFieldsNumber; - inputEx[preloader] = function() { - superwrapper.wait_create(); - } - - /* - * Fixes the 'p_elSource.attachEvent is not a function' error - * http://www.google.ca/search?hl=en&q=p_elSource.attachEvent+is+not+a+function&btnG=Google+Search&meta= - * - */ - if (!window.attachEvent) { - var script = document.createElement("script"); - script.src = "http://dev.virtualearth.net/mapcontrol/v6.2/js/atlascompat.js"; - script.type = "text/javascript"; - - document.getElementsByTagName("head")[0].appendChild(script); - } - - var script = document.createElement("script"); - script.src = "http://dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=6.2&onScriptLoad=inputEx." + preloader; - script.type = "text/javascript"; - - document.getElementsByTagName("head")[0].appendChild(script); - - return true; - }, - - create : function(superwrapper) { - superwrapper.el.style.position = "absolute"; - - this.ve_map = new VEMap(superwrapper.el.id); - this.ve_map._mapField = superwrapper; - - this.ve_map.LoadMap( - new VELatLong(superwrapper.elLat.value, superwrapper.elLon.value), - inputEx.MapFieldZoom.virtual_earth.to_native(superwrapper.elUZoom.value), - VEMapStyle.Road, false, VEMapMode.Mode2D, true, 1); - - var onposition = this.onposition; - var ve_map = this.ve_map; - - this.ve_map.AttachEvent("onendzoom", function() { - onposition(ve_map); - }); - this.ve_map.AttachEvent("onendpan", function() { - onposition(ve_map); - }); - - this.onposition(this.ve_map); - }, - - onposition : function(ve_map) { - if (!ve_map) return; - try { - var c = ve_map.GetCenter(); - if (!c || !c.Latitude) { - return; - } - - ve_map._mapField.elLat.value = c.Latitude; - ve_map._mapField.elLon.value = c.Longitude; - - var z = ve_map.GetZoomLevel(); - ve_map._mapField.elNZoom.value = z; - ve_map._mapField.elUZoom.value = inputEx.MapFieldZoom.virtual_earth.to_universal(z); - } catch (x) { - alert("MapField.virtualearth.onposition:" + x); - } - }, - }, - - end : 0 - }); - - /** - * Register this class as "map" type - */ - inputEx.registerType("map", inputEx.MapField); - -})(); diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/ext/MapField/map_field.html b/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/ext/MapField/map_field.html deleted file mode 100644 index ff248025f..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/ext/MapField/map_field.html +++ /dev/null @@ -1,238 +0,0 @@ - - - - - inputEx - MapField Usage - - - - - - - - - - - - - - - - - - - -

inputEx - MapField Usage

- - - -
- -

Virtual Earth MapField creation

- -

Use the following code to create a inputEx MapField for Virtual Earth.

- -
- -
-
- -
-
- -
- - -
- -

Yahoo Maps MapField creation

- -

Use the following code to create a inputEx MapField for Yahoo Maps.

- -
- -
-
- -
-
- -
- - -
- -

Google Maps MapField creation

- -

Use the following code to create a inputEx MapField for Google Maps.

- -
- -
-
- -
-
- -
- - -
- -

Default MapField creation

- -

- Use the following code to create a inputEx MapField for whatever the default API is. - We should complete this example by making buttons to change the default and store - that in cookies. -

- -
- -
-
- -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/ext/UpperCaseField/UpperCaseField.js b/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/ext/UpperCaseField/UpperCaseField.js deleted file mode 100644 index 04591fcd2..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/ext/UpperCaseField/UpperCaseField.js +++ /dev/null @@ -1,53 +0,0 @@ -(function() { - - var inputEx = YAHOO.inputEx; - - /** - * @class A field where the value is always uppercase - * @extends inputEx.StringField - * @constructor - * @param {Object} options inputEx.Field options object - */ - inputEx.UpperCaseField = function(options) { - inputEx.UpperCaseField.superclass.constructor.call(this, options); - }; - YAHOO.lang.extend(inputEx.UpperCaseField, inputEx.StringField, - /** - * @scope inputEx.UpperCaseField.prototype - */ - { - - /** - * Set the value and call toUpperCase - * @param {String} val The string - * @param {boolean} [sendUpdatedEvt] (optional) Wether this setValue should fire the updatedEvt or not (default is true, pass false to NOT send the event) - */ - setValue: function(val, sendUpdatedEvt) { - // don't always rewrite the value to able selections with Ctrl+A - var uppered = val.toUpperCase(); - if (uppered != this.getValue()) { - inputEx.UpperCaseField.superclass.setValue.call(this, uppered, sendUpdatedEvt); - } - }, - - /** - * Call setvalue on input to update the field with upper case value - * @param {Event} e The original 'input' event - */ - onKeyPress: function(e) { - inputEx.UpperCaseField.superclass.onKeyPress.call(this, e); - - // Re-Apply a toUpperCase method - YAHOO.lang.later(0, this, function() { - this.setValue((this.getValue())); - }); - } - - }); - - /** - * Register this class as "uppercase" type - */ - inputEx.registerType("uppercase", inputEx.UpperCaseField); - -})(); \ No newline at end of file diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/ext/UpperCaseField/uppercase_field.html b/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/ext/UpperCaseField/uppercase_field.html deleted file mode 100644 index f0af062da..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/ext/UpperCaseField/uppercase_field.html +++ /dev/null @@ -1,92 +0,0 @@ - - - - - inputEx - UpperCaseField Usage - - - - - - - - - - - - - - - - - - -

inputEx - UpperCaseField Usage

- - - -
- -

Basic UpperCaseField creation

- -

Use the following code to create a basic inputEx UpperCaseField.

- -
- -
- -
- -
- - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/ext/VectorField/VectorField.js b/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/ext/VectorField/VectorField.js deleted file mode 100644 index d17e2ed46..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/ext/VectorField/VectorField.js +++ /dev/null @@ -1,40 +0,0 @@ -(function() { - - var inputEx = YAHOO.inputEx; - - /** - * @class A field limited to number inputs (floating) - * @extends inputEx.Field - * @constructor - * @param {Object} options inputEx.Field options object - */ - inputEx.VectorField = function(options) { - inputEx.VectorField.superclass.constructor.call(this, options); - }; - YAHOO.lang.extend(inputEx.VectorField, inputEx.CombineField, - /** - * @scope inputEx.VectorField.prototype - */ - { - /** - * Additional options for VectorField (dimension, size) - */ - setOptions: function(options) { - inputEx.VectorField.superclass.setOptions.call(this, options); - - this.options.dimension = options.dimension || 2; - this.options.size = options.size || 3; - - this.options.fields = []; - for (var i = 0; i < this.options.dimension; i++) { - this.options.fields.push({type: 'number', inputParams: {size: this.options.size} }); - } - } - }); - - /** - * Register this class as "2Dvector" type - */ - inputEx.registerType("vector", inputEx.VectorField); - -})(); \ No newline at end of file diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/ext/VectorField/vector_field.html b/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/ext/VectorField/vector_field.html deleted file mode 100644 index cda979975..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/ext/VectorField/vector_field.html +++ /dev/null @@ -1,151 +0,0 @@ - - - - - inputEx - VectorField Usage - - - - - - - - - - - - - - - - - - -

inputEx - VectorField Usage

- - - -
- -

Basic VectorField creation

- -

Use the following code to create a basic inputEx VectorField.

- -
- -
- -
- -
- - - -
- -

VectorField with separators

- -

VectorField inherits CombineField, so you can change the separators :

- -
- -
- -
- -
- - - -
- -

VectorField dimension

- -

Set the dimension option :

- -
- -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/AutoComplete.js b/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/AutoComplete.js deleted file mode 100644 index aa463a0a5..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/AutoComplete.js +++ /dev/null @@ -1,182 +0,0 @@ -(function() { - - var inputEx = YAHOO.inputEx, lang = YAHOO.lang, Event = YAHOO.util.Event, Dom = YAHOO.util.Dom; - - /** - * @class An autocomplete field that wraps the YUI autocompleter - * @constructor - * @extends inputEx.StringField - * @param {Object} options Added options for Autocompleter - *
    - *
  • datasource: the datasource
  • - *
  • autoComp: autocompleter options
  • - *
  • returnValue: function to format the returned value (optional)
  • - *
- */ - inputEx.AutoComplete = function(options) { - inputEx.AutoComplete.superclass.constructor.call(this, options); - }; - - lang.extend(inputEx.AutoComplete, inputEx.StringField, - /** - * @scope inputEx.AutoComplete.prototype - */ - { - - /** - * Adds autocomplete options - * @param {Object} options Options object (inputEx inputParams) as passed to the constructor - */ - setOptions: function(options) { - inputEx.AutoComplete.superclass.setOptions.call(this, options); - - // Overwrite options - this.options.className = options.className ? options.className : 'inputEx-Field inputEx-AutoComplete'; - - // Added options - this.options.datasource = options.datasource; - this.options.autoComp = options.autoComp; - this.options.returnValue = options.returnValue; - }, - - /** - * Custom event init - *
    - *
  • listen to autocompleter textboxBlurEvent instead of this.el "blur" event
  • - *
  • listener to autocompleter textboxBlurEvent added in buildAutocomplete method
  • - *
- */ - initEvents: function() { - inputEx.AutoComplete.superclass.initEvents.call(this); - - // remove standard blur listener - Event.removeBlurListener(this.el, this.onBlur); - }, - - /** - * Render the hidden list element - */ - renderComponent: function() { - - // This element wraps the input node in a float: none div - this.wrapEl = inputEx.cn('div', {className: 'inputEx-StringField-wrapper'}); - - // Attributes of the input field - var attributes = { - type: 'text', - id: YAHOO.util.Dom.generateId() - }; - if (this.options.size) attributes.size = this.options.size; - if (this.options.readonly) attributes.readonly = 'readonly'; - if (this.options.maxLength) attributes.maxLength = this.options.maxLength; - - // Create the node - this.el = inputEx.cn('input', attributes); - - // Create the hidden input - var hiddenAttrs = { - type: 'hidden', - value: '' - }; - if (this.options.name) hiddenAttrs.name = this.options.name; - this.hiddenEl = inputEx.cn('input', hiddenAttrs); - - // Append it to the main element - this.wrapEl.appendChild(this.el); - this.wrapEl.appendChild(this.hiddenEl); - this.fieldContainer.appendChild(this.wrapEl); - - // Render the list : - this.listEl = inputEx.cn('div', {id: Dom.generateId() }); - this.fieldContainer.appendChild(this.listEl); - - Event.onAvailable([this.el, this.listEl], this.buildAutocomplete, this, true); - }, - - /** - * Build the YUI autocompleter - */ - buildAutocomplete: function() { - // Call this function only when this.el AND this.listEl are available - if (!this._nElementsReady) { - this._nElementsReady = 0; - } - this._nElementsReady++; - if (this._nElementsReady != 2) return; - - // Instantiate AutoComplete - this.oAutoComp = new YAHOO.widget.AutoComplete(this.el.id, this.listEl.id, this.options.datasource, this.options.autoComp); - - // subscribe to the itemSelect event - this.oAutoComp.itemSelectEvent.subscribe(this.itemSelectHandler, this, true); - - // subscribe to the textboxBlur event (instead of "blur" event on this.el) - // |-------------- autocompleter ----------| - // -> order : "blur" on this.el -> internal callback -> textboxBlur event -> this.onBlur callback - // -> so fired after autocomp internal "blur" callback (which would erase typeInvite...) - this.oAutoComp.textboxBlurEvent.subscribe(this.onBlur, this, true); - }, - - /** - * itemSelect handler - * @param {} sType - * @param {} aArgs - */ - itemSelectHandler: function(sType, aArgs) { - var aData = aArgs[2]; - this.setValue(this.options.returnValue ? this.options.returnValue(aData) : aData[0]); - }, - - /** - * onChange event handler - * @param {Event} e The original 'change' event - */ - onChange: function(e) { - this.setClassFromState(); - - // Clear the field when no value - YAHOO.lang.later(50, this, function() { - if (this.el.value == "") { - this.setValue(""); - } - }); - - this.fireUpdatedEvt(); - }, - - /** - * Set the value - * @param {Any} value Value to set - * @param {boolean} [sendUpdatedEvt] (optional) Wether this setValue should fire the updatedEvt or not (default is true, pass false to NOT send the event) - */ - setValue: function(value, sendUpdatedEvt) { - this.hiddenEl.value = value; - - // "inherited" from inputex.Field : - // (can't inherit of inputex.StringField because would set this.el.value...) - // - // set corresponding style - this.setClassFromState(); - - if (sendUpdatedEvt !== false) { - // fire update event - this.fireUpdatedEvt(); - } - }, - - /** - * Return the hidden value (stored in a hidden input) - */ - getValue: function() { - return this.hiddenEl.value; - } - - }); - - - /** - * Register this class as "autocomplete" type - */ - inputEx.registerType("autocomplete", inputEx.AutoComplete); - -})(); diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/CheckBox.js b/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/CheckBox.js deleted file mode 100644 index a6f132b94..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/CheckBox.js +++ /dev/null @@ -1,156 +0,0 @@ -(function() { - - var inputEx = YAHOO.inputEx, lang = YAHOO.lang, Event = YAHOO.util.Event, Dom = YAHOO.util.Dom; - - /** - * @class Create a checkbox. - * @extends inputEx.Field - * @constructor - * @param {Object} options Added options for CheckBoxes: - *
    - *
  • sentValues: 2D vector of values for checked/unchecked states (default is [true, false])
  • - *
- */ - inputEx.CheckBox = function(options) { - inputEx.CheckBox.superclass.constructor.call(this, options); - }; - - lang.extend(inputEx.CheckBox, inputEx.Field, - /** - * @scope inputEx.CheckBox.prototype - */ - { - - /** - * Adds the CheckBox specific options - * @param {Object} options Options object (inputEx inputParams) as passed to the constructor - */ - setOptions: function(options) { - inputEx.CheckBox.superclass.setOptions.call(this, options); - - // Overwrite options: - this.options.className = options.className ? options.className : 'inputEx-Field inputEx-CheckBox'; - - this.options.rightLabel = options.rightLabel || ''; - - // Added options - this.sentValues = options.sentValues || [true, false]; - this.options.sentValues = this.sentValues; // for compatibility - this.checkedValue = this.sentValues[0]; - this.uncheckedValue = this.sentValues[1]; - this.options.advancedMode = options.advancedMode ? options.advancedMode : false; - this.options.classname = options.classname; - }, - - /** - * Render the checkbox and the hidden field - */ - renderComponent: function() { - - var checkBoxId = this.divEl.id ? this.divEl.id + '-field' : YAHOO.util.Dom.generateId(); - - this.el = inputEx.cn('input', { id: checkBoxId, type: 'checkbox', checked:(this.options.checked === false) ? false : true }); - this.fieldContainer.appendChild(this.el); - - this.rightLabelEl = inputEx.cn('label', {"for": checkBoxId, className: 'inputEx-CheckBox-rightLabel'}, null, this.options.rightLabel); - this.fieldContainer.appendChild(this.rightLabelEl); - Dom.addClass(this.divEl,'checkBoxFieldWrapper'); - if(this.options.advancedMode) { - Dom.addClass(this.divEl, "advancedMode"); - } - if(this.options.classname) { - Dom.addClass(this.divEl, this.options.classname); - } - - // Keep state of checkbox in a hidden field (format : this.checkedValue or this.uncheckedValue) - this.hiddenEl = inputEx.cn('input', {type: 'hidden', name: this.options.name || '', value: this.el.checked ? this.checkedValue : this.uncheckedValue}); - this.fieldContainer.appendChild(this.hiddenEl); - }, - - /** - * Clear the previous events and listen for the "change" event - */ - initEvents: function() { - Event.addListener(this.el, "change", this.onChange, this, true); - - // Awful Hack to work in IE6 and below (the checkbox doesn't fire the change event) - // It seems IE 8 removed this behavior from IE7 so it only works with IE 7 ?? - /*if( YAHOO.env.ua.ie && parseInt(YAHOO.env.ua.ie,10) != 7 ) { - Event.addListener(this.el, "click", function() { this.fireUpdatedEvt(); }, this, true); - }*/ - if (YAHOO.env.ua.ie) { - Event.addListener(this.el, "click", function() { - YAHOO.lang.later(10, this, this.fireUpdatedEvt); - }, this, true); - } - - Event.addFocusListener(this.el, this.onFocus, this, true); - Event.addBlurListener(this.el, this.onBlur, this, true); - }, - - /** - * Function called when the checkbox is toggled - * @param {Event} e The original 'change' event - */ - onChange: function(e) { - this.hiddenEl.value = this.el.checked ? this.checkedValue : this.uncheckedValue; - - // In IE the fireUpdatedEvent is sent by the click ! We need to send it only once ! - if (!YAHOO.env.ua.ie) { - inputEx.CheckBox.superclass.onChange.call(this, e); - } - }, - - /** - * Get the state value - * @return {Any} one of [checkedValue,uncheckedValue] - */ - getValue: function() { - return this.el.checked ? this.checkedValue : this.uncheckedValue; - }, - - /** - * Set the value of the checkedbox - * @param {Any} value The value schould be one of [checkedValue,uncheckedValue] - * @param {boolean} [sendUpdatedEvt] (optional) Wether this setValue should fire the updatedEvt or not (default is true, pass false to NOT send the event) - */ - setValue: function(value, sendUpdatedEvt) { - if (value === this.checkedValue) { - this.hiddenEl.value = value; - this.el.checked = true; - } - else { - // DEBUG : - /*if (value!==this.uncheckedValue && lang.isObject(console) && lang.isFunction(console.log) ) { - console.log("inputEx.CheckBox: value is *"+value+"*, schould be in ["+this.checkedValue+","+this.uncheckedValue+"]"); - }*/ - this.hiddenEl.value = value; - this.el.checked = false; - } - - // Call Field.setValue to set class and fire updated event - inputEx.CheckBox.superclass.setValue.call(this, value, sendUpdatedEvt); - }, - - /** - * Disable the field - */ - disable: function() { - this.el.disabled = true; - }, - - /** - * Enable the field - */ - enable: function() { - this.el.disabled = false; - } - - }); - - /** - * Register this class as "boolean" type - */ - inputEx.registerType("boolean", inputEx.CheckBox); - -})(); diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/ColorField.js b/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/ColorField.js deleted file mode 100644 index 0d71b056b..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/ColorField.js +++ /dev/null @@ -1,294 +0,0 @@ -(function() { - - var inputEx = YAHOO.inputEx, lang = YAHOO.lang, Event = YAHOO.util.Event, Dom = YAHOO.util.Dom; - - /** - * @class Create a Color picker input field - * @extends inputEx.Field - * @constructor - * @param {Object} options Added options for ColorField : - *
    - *
  • colors: list of colors to load as palette
  • - *
  • palette: default palette to be used (if colors option not provided)
  • - *
  • cellPerLine: how many colored cells in a row on the palette
  • - *
  • ratio: screen-like ratio to display the palette, syntax: [with,height], default: [16,9] (if cellPerLine not provided)
  • - *
  • overlayPadding: padding inside the popup palette
  • - *
  • cellWidth: width of a colored cell
  • - *
  • cellHeight: height of a colored cell
  • - *
  • cellMargin: margin of a colored cell (cell spacing = 2*cellMarging)
  • - *
- */ - inputEx.ColorField = function(options) { - inputEx.ColorField.superclass.constructor.call(this, options); - }; - lang.extend(inputEx.ColorField, inputEx.Field, - /** - * @scope inputEx.ColorField.prototype - */ - { - - /** - * Adds the 'inputEx-ColorField' default className - * @param {Object} options Options object (inputEx inputParams) as passed to the constructor - */ - setOptions: function(options) { - inputEx.ColorField.superclass.setOptions.call(this, options); - - // Overwrite options - this.options.className = options.className ? options.className : 'inputEx-Field inputEx-ColorField inputEx-PickerField'; - - // Added options - this.options.palette = options.palette; - this.options.colors = options.colors; - - if (options.ratio) { - this.options.ratio = options.ratio; - } - if (options.cellPerLine) { - this.options.cellPerLine = options.cellPerLine; - } - if (options.overlayPadding) { - this.options.overlayPadding = options.overlayPadding; - } - if (options.cellHeight) { - this.options.cellHeight = options.cellHeight; - } - if (options.cellWidth) { - this.options.cellWidth = options.cellWidth; - } - if (options.cellMargin) { - this.options.cellMargin = options.cellMargin; - } - }, - - /** - * Render the color button and the colorpicker popup - */ - renderComponent: function() { - - // A hidden input field to store the color code - this.el = inputEx.cn('input', { - type: 'hidden', - name: this.options.name || '', - value: this.options.value || '#DD7870' }); - - // Create a colored area - this.colorEl = inputEx.cn('div', {className: 'inputEx-ColorField-button'}, {backgroundColor: this.el.value}); - - // This element wraps the input node in a float: none div - this.wrapEl = inputEx.cn('div', {className: 'inputEx-PickerField-wrapper'}); - this.wrapEl.appendChild(this.el); - this.wrapEl.appendChild(this.colorEl); - - // Create overlay - this.oOverlay = new YAHOO.widget.Overlay(Dom.generateId(), { visible: false }); - this.oOverlay.setBody(" "); - this.oOverlay.body.id = Dom.generateId(); - - // Create button - this.button = new YAHOO.widget.Button({ type: "menu", menu: this.oOverlay, label: "    " }); - this.button.appendTo(this.wrapEl); - - // Render the overlay - this.oOverlay.render(this.wrapEl); - // HACK: Set position absolute to the overlay - Dom.setStyle(this.oOverlay.body.parentNode, "position", "absolute"); - - // toggle Menu when clicking on colorEl - Event.addListener(this.colorEl, 'mousedown', function(e) { - - if (!this.oOverlay.cfg.getProperty("visible")) { - - // Stop event to prevent following "click" event to hide the menu ! - Event.stopEvent(e); - - // palette may not have been rendered yet - this.renderPalette(); - - // Show menu - this.button._showMenu(); - } - }, this, true); - - - // Lazy load palette - // -> "mousedown" and not "click" because sometimes "click" is not fired ! - this.button.on('mousedown', this.renderPalette, this, true); - - // Elements are bound to divEl - this.fieldContainer.appendChild(this.wrapEl); - }, - - renderPalette: function() { - - // render once ! - if (this.paletteRendered) return; - - // set default palette to be used - var defaultPalette = this.options.palette || 1; - - // set colors available - this.colors = this.options.colors || this.setDefaultColors(defaultPalette); - this.length = this.colors.length; - - // set PopUp size ratio (default 16/9 ratio) - this.ratio = this.options.ratio || [16,9]; - - // set color grid dimensions - this.cellPerLine = this.options.cellPerLine || Math.ceil(Math.sqrt(this.length * this.ratio[0] / this.ratio[1])); - this.cellPerColumn = Math.ceil(this.length / this.cellPerLine); - this.overlayPadding = this.options.overlayPadding || 7; - - // set cell dimensions - this.cellWidth = this.options.cellWidth || 17; - this.cellHeight = this.options.cellHeight || 17; - this.cellMargin = this.options.cellMargin || 4; - - // Render the color grid - var overlayBody = document.getElementById(this.oOverlay.body.id); - var colorGrid = this.renderColorGrid(); - overlayBody.appendChild(colorGrid); - - // Set overlay dimensions - var width = (this.cellWidth + 2 * this.cellMargin) * this.cellPerLine + (YAHOO.env.ua.ie == 6 ? 3 * this.overlayPadding : 0); - var height = (this.cellHeight + 2 * this.cellMargin) * this.cellPerColumn + (YAHOO.env.ua.ie == 6 ? 3 * this.overlayPadding : 0); - - Dom.setStyle(overlayBody, "width", width + "px"); - Dom.setStyle(overlayBody, "height", height + "px"); - Dom.setStyle(overlayBody, "padding", this.overlayPadding + "px"); - - // Unsubscribe the event so this function is called only once - this.button.unsubscribe("mousedown", this.renderPalette); - - this.paletteRendered = true; - }, - - /** - * Set the colors to set in the picker - * @param {int} index Index of the palette to use - * @return {Array} List of colors to choose from - */ - setDefaultColors: function(index) { - return inputEx.ColorField.palettes[index - 1]; - }, - - /** - * This creates a color grid - */ - renderColorGrid: function() { - var grid = inputEx.cn('div'); - for (var i = 0; i < this.length; i++) { - var square = inputEx.cn('div', {className: 'inputEx-ColorField-square'}, {backgroundColor: this.colors[i], width:this.cellWidth + "px", height:this.cellHeight + "px", margin:this.cellMargin + "px" }); - Event.addListener(square, "mousedown", this.onColorClick, this, true); - grid.appendChild(square); - } - return grid; - }, - - /** - * Handle a color selection - * @param {Event} e The original click event - */ - onColorClick: function(e) { - - var square = Event.getTarget(e); - - // Stop the event to prevent a selection - Event.stopEvent(e); - - // Overlay closure - this.oOverlay.hide(); - - // SetValue - var color = Dom.getStyle(square, 'background-color'); - var hexaColor = inputEx.ColorField.ensureHexa(color); - this.setValue(hexaColor); - }, - - /** - * Set the value - * @param {String} value Color to set - * @param {boolean} [sendUpdatedEvt] (optional) Wether this setValue should fire the updatedEvt or not (default is true, pass false to NOT send the event) - */ - setValue: function(value, sendUpdatedEvt) { - this.el.value = value; - Dom.setStyle(this.colorEl, 'background-color', this.el.value); - - // Call Field.setValue to set class and fire updated event - inputEx.ColorField.superclass.setValue.call(this, value, sendUpdatedEvt); - }, - - /** - * Return the color value - * @return {String} Color value - */ - getValue: function() { - return this.el.value; - }, - - /** - * Call overlay when field is removed - */ - close: function() { - this.oOverlay.hide(); - } - - }); - -// Specific message for the container - inputEx.messages.selectColor = "Select a color :"; - - /** - * Default palettes - */ - inputEx.ColorField.palettes = [ - ["#FFEA99","#FFFF66","#FFCC99","#FFCAB2","#FF99AD","#FFD6FF","#FF6666","#E8EEF7","#ADC2FF","#ADADFF","#CCFFFF","#D6EAAD","#B5EDBC","#CCFF99"], - ["#DEDFDE","#FFFF6B","#EFCB7B","#FFBE94","#FFB6B5","#A5E3FF","#A5CBFF","#99ABEF","#EFB2E7","#FF9AAD","#94E7C6","#A5FFD6","#CEFFA5","#E7EF9C","#FFE38C"], - ["#000000","#993300","#333300","#003300","#003366","#000080","#333399","#333333","#800000","#FF6600","#808000","#008000","#008080","#0000FF","#666699","#808080","#FF0000","#FF9900","#99CC00","#339966","#33CCCC","#3366FF","#800080","#969696","#FF00FF","#FFCC00","#FFFF00","#00FF00","#00FFFF","#00CCFF","#993366","#C0C0C0","#FF99CC","#FFCC99","#FFFF99","#CCFFCC","#CCFFFF","#99CCFF","#CC99FF","#F0F0F0"], - ["#FFFFCC","#FFFF99","#CCFFCC","#CCFF66","#99FFCC","#CCFFFF","#66CCCC","#CCCCFF","#99CCFF","#9999FF","#6666CC","#9966CC","#CC99FF","#FFCCFF","#FF99FF","#CC66CC","#FFCCCC","#FF99CC","#FFCCCC","#CC6699","#FF9999","#FF9966","#FFCC99","#FFFFCC","#FFCC66","#FFFF99","#CCCC66"], - ["#D0D0D0","#31A8FA","#8EC1E5","#58D7CF","#89E2BB","#A7F7F8","#F6B77C","#FE993F","#FE6440","#F56572","#FA9AA3","#F7B1CA","#E584AF","#D1C3EF","#AB77B8","#C69FE7","#90D28A","#C2F175","#EDEA9A","#F3DF70","#F8D1AE","#F98064","#F54F5E","#EC9099","#F0B5BA","#EDA0BB","#D375AC","#BC8DBE","#8C77B8"], - // idem in pastel tone (colors above with opacity 0.6 on white background) - ["#EEEEEE","#84CBFC","#BCDAF0","#9BE7E3","#B9EED7","#CBFBFB","#FAD4B1","#FFC28C","#FFA28D","#F9A3AB","#FCC3C8","#FBD1E0","#F0B6CF","#E4DBF6","#CDAED5","#DDC6F1","#BDE4B9","#DBF7AD","#F5F3C3","#F8ECAA","#FBE4CF","#FCB3A2","#F9969F","#F4BDC2","#F6D3D6","#F5C6D7","#E5ADCE","#D7BBD8","#BAAED5"] - ]; - -// -> ensure color has hexadecimal format like "#FF8E00" - inputEx.ColorField.ensureHexa = function (color) { - var rgb, hexaColor; - - // remove spaces - color = color.replace(/\s/g, ""); - - // Firefox, Safari - // -> format "rgb(255,143,28)" - if (!!color.match(/^rgb\((?:\d{1,3},){2}\d{1,3}\)$/)) { - - // Convert integer (int or string) to hexadecimal (2 chars) - // ex: "214" -> "d6" - var DecToHex = function(dec) { - var r = parseInt(dec, 10).toString(16); - if (r.length == 1) r = "0" + r; - return r; - }; - - rgb = color.split(/([(,)])/); - hexaColor = '#' + DecToHex(rgb[2]) + DecToHex(rgb[4]) + DecToHex(rgb[6]); - - // IE, Opera - // -> format "#FE6D34" - } else if (!!color.match(/^#[\da-fA-F]{6}$/)) { - hexaColor = color; - - } else { - // defaults to white if invalid color - hexaColor = "#FFFFFF"; - } - - return hexaColor; - }; - - /** - * Register this class as "color" type - */ - inputEx.registerType("color", inputEx.ColorField); - -})(); \ No newline at end of file diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/CombineField.js b/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/CombineField.js deleted file mode 100644 index c2f695116..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/CombineField.js +++ /dev/null @@ -1,194 +0,0 @@ -(function() { - - var inputEx = YAHOO.inputEx, lang = YAHOO.lang, Dom = YAHOO.util.Dom; - - /** - * @class A meta field to put N fields on the same line, separated by separators - * @extends inputEx.Field - * @constructor - * @param {Object} options Added options: - *
    - *
  • separators: array of string inserted
  • - *
  • fields: list of fields in inputEx-typed-JSON
  • - *
- */ - inputEx.CombineField = function(options) { - inputEx.CombineField.superclass.constructor.call(this, options); - }; - - lang.extend(inputEx.CombineField, inputEx.Field, - /** - * @scope inputEx.CombineField.prototype - */ - { - /** - * Set the default values of the options - * @param {Object} options Options object (inputEx inputParams) as passed to the constructor - */ - setOptions: function(options) { - inputEx.CombineField.superclass.setOptions.call(this, options); - - // Overwrite options - this.options.className = options.className ? options.className : 'inputEx-Field inputEx-CombineField'; - - // Added options - this.options.separators = options.separators; - this.options.fields = options.fields; - }, - - /** - * Render the two subfields - */ - renderComponent: function() { - - this.inputs = []; - - this.appendSeparator(0); - - if (!this.options.fields) { - return; - } - - for (var i = 0; i < this.options.fields.length; i++) { - - if (this.options.required) { - this.options.fields[i].required = true; - } - - var field = this.renderField(this.options.fields[i]); - // remove the line breaker (
) - field.divEl.removeChild(field.divEl.childNodes[field.divEl.childNodes.length - 1]); - // make the field float left - YAHOO.util.Dom.setStyle(field.getEl(), 'float', 'left'); - this.fieldContainer.appendChild(field.getEl()); - - this.appendSeparator(i + 1); - } - - }, - - appendSeparator: function(i) { - if (this.options.separators && this.options.separators[i]) { - var sep = inputEx.cn('div', {className: 'inputEx-CombineField-separator'}, null, this.options.separators[i]); - this.fieldContainer.appendChild(sep); - } - }, - - /** - * Instanciate one field given its parameters, type or fieldClass - * @param {Object} fieldOptions The field properties as required bu inputEx.buildField - */ - renderField: function(fieldOptions) { - - // Subfields should inherit required property - if (this.options.required) { - if (!fieldOptions.inputParams) { - fieldOptions.inputParams = {}; - } - fieldOptions.inputParams.required = true; - } - - // Instanciate the field - var fieldInstance = inputEx(fieldOptions); - - this.inputs.push(fieldInstance); - - // Subscribe to the field "updated" event to send the group "updated" event - fieldInstance.updatedEvt.subscribe(this.onChange, this, true); - // Subscribe sub-field "blur" event to trigger class setting at combineField level ! - YAHOO.util.Event.addBlurListener(fieldInstance.getEl(), this.onBlur, this, true); - - return fieldInstance; - }, - - - /** - * Validate each field - * @returns {Boolean} true if all fields validate and required fields are not empty - */ - validate: function() { - // Validate all the sub fields - for (var i = 0; i < this.inputs.length; i++) { - var input = this.inputs[i]; - var state = input.getState(); - if (state == inputEx.stateRequired || state == inputEx.stateInvalid) { - return false; - } - } - return true; - }, - - /** - * Set the value - * @param {Array} values [value1, value2, ...] - * @param {boolean} [sendUpdatedEvt] (optional) Wether this setValue should fire the updatedEvt or not (default is true, pass false to NOT send the event) - */ - setValue: function(values, sendUpdatedEvt) { - for (var i = 0; i < this.inputs.length; i++) { - this.inputs[i].setValue(values[i], false); - } - - // Call Field.setValue to set class and fire updated event - inputEx.CombineField.superclass.setValue.call(this, values, sendUpdatedEvt); - }, - - /** - * Specific getValue - * @return {Array} An array of values [value1, value2, ...] - */ - getValue: function() { - var values = []; - for (var i = 0; i < this.inputs.length; i++) { - values.push(this.inputs[i].getValue()); - } - return values; - }, - - /** - * Call setClassFromState on all children - */ - setClassFromState: function() { - inputEx.CombineField.superclass.setClassFromState.call(this); - - for (var i = 0; i < this.inputs.length; i++) { - this.inputs[i].setClassFromState(); - } - }, - - /** - * Clear all subfields - * @param {boolean} [sendUpdatedEvt] (optional) Wether this clear should fire the updatedEvt or not (default is true, pass false to NOT send the event) - */ - clear: function(sendUpdatedEvt) { - for (var i = 0; i < this.inputs.length; i++) { - this.inputs[i].clear(false); - } - - // must reset field style explicitly - // -> case different from Field.prototype.clear (which calls setValue, which calls setClassFromState) - this.setClassFromState(); - - if (sendUpdatedEvt !== false) { - // fire update event - this.fireUpdatedEvt(); - } - }, - - /** - * Useful for getState to return correct state (required, empty, etc...) - */ - isEmpty: function() { - for (var i = 0; i < this.inputs.length; i++) { - if (!this.inputs[i].isEmpty()) return false; - } - return true; - } - - }); - - /** - * Register this class as "combine" type - */ - inputEx.registerType("combine", inputEx.CombineField); - -})(); \ No newline at end of file diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/DSSelectField.js b/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/DSSelectField.js deleted file mode 100644 index 8c47750f9..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/DSSelectField.js +++ /dev/null @@ -1,148 +0,0 @@ -(function() { - - var inputEx = YAHOO.inputEx, Event = YAHOO.util.Event; - - /** - * @class Create a select field from a datasource - * @extends inputEx.SelectField - * @constructor - * @param {Object} options Added options: - *
    - *
  • selectValues: contains the list of options values
  • - *
  • selectOptions: list of option element texts
  • - *
  • multiple: boolean to allow multiple selections
  • - *
  • datasource: the datasource
  • - *
  • valueKey: value key
  • - *
  • labelKey: label key
  • - *
- */ - inputEx.DSSelectField = function(options) { - inputEx.DSSelectField.superclass.constructor.call(this, options); - }; - YAHOO.lang.extend(inputEx.DSSelectField, inputEx.SelectField, - /** - * @scope inputEx.DSSelectField.prototype - */ - { - /** - * Setup the additional options for selectfield - * @param {Object} options Options object (inputEx inputParams) as passed to the constructor - */ - setOptions: function(options) { - // set this.options.selectValues and this.options.selectOptions - if (!YAHOO.lang.isArray(options.selectValues)) { - options.selectValues = []; - } - inputEx.DSSelectField.superclass.setOptions.call(this, options); - - this.options.valueKey = options.valueKey || "value"; - this.options.labelKey = options.labelKey || "label"; - - // Create a datasource from selectValues/selectOptions backward compatibility - this.options.datasource = options.datasource; - if (!this.options.datasource) { - var items = []; - for (var i = 0; i < this.options.selectValues.length; i++) { - items.push({ - value: this.options.selectValues[i], - label: this.options.selectOptions[i] - }); - } - this.options.datasource = new YAHOO.util.DataSource(items); - this.options.datasource.responseType = YAHOO.util.DataSource.TYPE_JSARRAY; - this.options.datasource.responseSchema = { fields: ["value","label"] }; - } - }, - - /** - * Build a select tag with options - */ - renderComponent: function() { - - this.el = inputEx.cn('select', {name: this.options.name || ''}); - - if (this.options.multiple) { - this.el.multiple = true; - this.el.size = this.options.selectValues.length; - } - - this.fieldContainer.appendChild(this.el); - - // Send the data request - this.sendDataRequest(null); // TODO: configurable default request ? - }, - - /** - * Send the datasource request - */ - sendDataRequest: function(oRequest) { - if (!!this.options.datasource) { - this.options.datasource.sendRequest(oRequest, {success: this.onDatasourceSuccess, failure: this.onDatasourceFailure, scope: this}); - } - }, - - /** - * Insert the options - */ - populateSelect: function(items) { - this.el.innerHTML = ""; - this.optionEls = []; - this.options.selectValues = []; - this.options.selectOptions = []; - - for (var i = 0; i < items.length; i++) { - this.addOption({ value:items[i][this.options.valueKey], option:items[i][this.options.labelKey] }); - } - }, - - /** - * Callback for request success - */ - onDatasourceSuccess: function(oRequest, oParsedResponse, oPayload) { - this.populateSelect(oParsedResponse.results); - }, - - /** - * Callback for request failure - */ - onDatasourceFailure: function(oRequest, oParsedResponse, oPayload) { - // TODO - this.el.innerHTML = ""; - }, - - - /** - * Set the value - * @param {String} value The value to set - * @param {boolean} [sendUpdatedEvt] (optional) Wether this setValue should fire the updatedEvt or not (default is true, pass false to NOT send the event) - */ - setValue: function(value, sendUpdatedEvt) { - var index = 0; - var option; - for (var i = 0; i < this.options.datasource.liveData.length; i++) { - if (value === this.options.datasource.liveData[i][this.options.valueKey]) { - option = this.el.childNodes[i]; - option.selected = "selected"; - } - } - - // Call Field.setValue to set class and fire updated event - inputEx.DSSelectField.superclass.setValue.call(this, value, sendUpdatedEvt); - }, - - /** - * Return the value - * @return {Any} the selected value from the selectValues array - */ - getValue: function() { - return this.options.datasource.liveData[this.el.selectedIndex][this.options.valueKey]; - } - - }); - - /** - * Register this class as "dsselect" type - */ - inputEx.registerType("dsselect", inputEx.DSSelectField); - -})(); \ No newline at end of file diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/DateField.js b/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/DateField.js deleted file mode 100644 index 94d31dee4..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/DateField.js +++ /dev/null @@ -1,125 +0,0 @@ -(function() { - - var inputEx = YAHOO.inputEx, lang = YAHOO.lang, Event = YAHOO.util.Event, Dom = YAHOO.util.Dom; - - /** - * @class A Date Field. - * @extends inputEx.StringField - * @constructor - * @param {Object} options Add the folowing options: - *
    - *
  • dateFormat: default to 'm/d/Y'
  • - *
- */ - inputEx.DateField = function(options) { - inputEx.DateField.superclass.constructor.call(this, options); - }; - - lang.extend(inputEx.DateField, inputEx.StringField, - /** - * @scope inputEx.DateField.prototype - */ - { - /** - * Adds the 'inputEx-DateField' default className - * @param {Object} options Options object (inputEx inputParams) as passed to the constructor - */ - setOptions: function(options) { - inputEx.DateField.superclass.setOptions.call(this, options); - - // Overwrite options - this.options.className = options.className ? options.className : 'inputEx-Field inputEx-DateField'; - this.options.messages.invalid = inputEx.messages.invalidDate; - - // Added options - this.options.dateFormat = options.dateFormat || inputEx.messages.defaultDateFormat; - }, - - /** - * Specific Date validation depending of the 'format' option - */ - validate: function() { - var value = this.el.value; - var ladate = value.split("/"); - if (ladate.length != 3) { - return false; - } - if (isNaN(parseInt(ladate[0], 10)) || isNaN(parseInt(ladate[1], 10)) || isNaN(parseInt(ladate[2], 10))) { - return false; - } - var formatSplit = this.options.dateFormat.split("/"); - var yearIndex = inputEx.indexOf('Y', formatSplit); - if (ladate[yearIndex].length != 4) { - return false; - } // Avoid 3-digits years... - var d = parseInt(ladate[ inputEx.indexOf('d', formatSplit) ], 10); - var Y = parseInt(ladate[yearIndex], 10); - var m = parseInt(ladate[ inputEx.indexOf('m', formatSplit) ], 10) - 1; - var unedate = new Date(Y, m, d); - var annee = unedate.getFullYear(); - return ((unedate.getDate() == d) && (unedate.getMonth() == m) && (annee == Y)); - }, - - - /** - * Format the date according to options.dateFormat - * @param {Date} val Date to set - * @param {boolean} [sendUpdatedEvt] (optional) Wether this setValue should fire the updatedEvt or not (default is true, pass false to NOT send the event) - */ - setValue: function(val, sendUpdatedEvt) { - - // Don't try to parse a date if there is no date - if (val === '') { - inputEx.DateField.superclass.setValue.call(this, '', sendUpdatedEvt); - return; - } - var str = ""; - // DATETIME - if (val instanceof Date) { - str = this.options.dateFormat.replace('Y', val.getFullYear()); - var m = val.getMonth() + 1; - str = str.replace('m', ((m < 10) ? '0' : '') + m); - var d = val.getDate(); - str = str.replace('d', ((d < 10) ? '0' : '') + d); - } - // else date must match this.options.dateFormat - else { - str = val; - } - - inputEx.DateField.superclass.setValue.call(this, str, sendUpdatedEvt); - }, - - /** - * Return value in DATETIME format (use getFormattedValue() to have 04/10/2002-like format) - * @return {Date} The javascript Date object - */ - getValue: function() { - // let parent class function check if typeInvite, etc... - var value = inputEx.DateField.superclass.getValue.call(this); - - // Hack to validate if field not required and empty - if (value === '') { - return ''; - } - - //var ladate = this.el.value.split("/"); - var ladate = value.split("/"); - var formatSplit = this.options.dateFormat.split('/'); - var d = parseInt(ladate[ inputEx.indexOf('d', formatSplit) ], 10); - var Y = parseInt(ladate[ inputEx.indexOf('Y', formatSplit) ], 10); - var m = parseInt(ladate[ inputEx.indexOf('m', formatSplit) ], 10) - 1; - return (new Date(Y, m, d)); - } - - }); - -// Specific message for the container - inputEx.messages.invalidDate = "Invalid date, ex: 03/27/2008"; - - /** - * Register this class as "date" type - */ - inputEx.registerType("date", inputEx.DateField); - -})(); \ No newline at end of file diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/DatePickerField.js b/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/DatePickerField.js deleted file mode 100644 index 468c5acf2..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/DatePickerField.js +++ /dev/null @@ -1,203 +0,0 @@ -(function() { - - var inputEx = YAHOO.inputEx, lang = YAHOO.lang, Event = YAHOO.util.Event, Dom = YAHOO.util.Dom; - - /** - * @class A DatePicker Field. - * @extends inputEx.DateField - * @constructor - * @param {Object} options No added option for this field (same as DateField) - *
    - *
  • calendar: yui calendar configuration object
  • - *
- */ - inputEx.DatePickerField = function(options) { - inputEx.DatePickerField.superclass.constructor.call(this, options); - }; - - lang.extend(inputEx.DatePickerField, inputEx.DateField, - /** - * @scope inputEx.DatePickerField.prototype - */ - { - /** - * Set the default date picker CSS classes - * @param {Object} options Options object (inputEx inputParams) as passed to the constructor - */ - setOptions: function(options) { - inputEx.DatePickerField.superclass.setOptions.call(this, options); - - // Overwrite options - this.options.className = options.className ? options.className : 'inputEx-Field inputEx-DateField inputEx-PickerField inputEx-DatePickerField'; - this.options.readonly = true; - - // Added options - this.options.calendar = options.calendar || inputEx.messages.defautCalendarOpts; - }, - - /** - * Render the input field and the minical container - */ - renderComponent: function() { - - inputEx.DatePickerField.superclass.renderComponent.call(this); - - - // Create overlay - this.oOverlay = new YAHOO.widget.Overlay(Dom.generateId(), { visible: false }); - this.oOverlay.setBody(" "); - this.oOverlay.body.id = Dom.generateId(); - - // Create button - this.button = new YAHOO.widget.Button({ type: "menu", menu: this.oOverlay, label: "    " }); - this.button.appendTo(this.wrapEl); - - // Render the overlay - this.oOverlay.render(this.wrapEl); - // HACK: Set position absolute to the overlay - Dom.setStyle(this.oOverlay.body.parentNode, "position", "absolute"); - - - Event.addListener(this.el, 'click', function() { - // calendar may not have been rendered yet - this.renderCalendar(); - - if (!this.oOverlay.justHidden) { - this.button._showMenu(); - } - }, this, true); - - this.oOverlay.hideEvent.subscribe(function() { - this.oOverlay.justHidden = true; - YAHOO.lang.later(250, this, function() { - this.oOverlay.justHidden = false; - }); - }, this, true); - - - // Subscribe to the first click - this.button.on('click', this.renderCalendar, this, true); - }, - - - /** - * Called ONCE to render the calendar lazily - */ - renderCalendar: function() { - // if already rendered, ignore call - if (!!this.calendarRendered) return; - - // Render the calendar - var calendarId = Dom.generateId(); - this.calendar = new YAHOO.widget.Calendar(calendarId, this.oOverlay.body.id, this.options.calendar); - - - /* - this.calendar.cfg.setProperty("DATE_FIELD_DELIMITER", "/"); - this.calendar.cfg.setProperty("MDY_DAY_POSITION", 1); - this.calendar.cfg.setProperty("MDY_MONTH_POSITION", 2); - this.calendar.cfg.setProperty("MDY_YEAR_POSITION", 3); - this.calendar.cfg.setProperty("MD_DAY_POSITION", 1); - this.calendar.cfg.setProperty("MD_MONTH_POSITION", 2);*/ - - // localization - if (inputEx.messages.shortMonths) this.calendar.cfg.setProperty("MONTHS_SHORT", inputEx.messages.shortMonths); - if (inputEx.messages.months) this.calendar.cfg.setProperty("MONTHS_LONG", inputEx.messages.months); - if (inputEx.messages.weekdays1char) this.calendar.cfg.setProperty("WEEKDAYS_1CHAR", inputEx.messages.weekdays1char); - if (inputEx.messages.shortWeekdays) this.calendar.cfg.setProperty("WEEKDAYS_SHORT", inputEx.messages.shortWeekdays); - - // HACK to keep focus on calendar/overlay - // so overlay is not hidden when changing page in calendar - // (inspired by YUI examples) - var focusDay = function () { - - var oCalendarTBody = Dom.get(calendarId).tBodies[0], - aElements = oCalendarTBody.getElementsByTagName("a"), - oAnchor; - - if (aElements.length > 0) { - - Dom.batch(aElements, function (element) { - if (Dom.hasClass(element.parentNode, "today")) { - oAnchor = element; - } - }); - - if (!oAnchor) { - oAnchor = aElements[0]; - } - - // Focus the anchor element using a timer since Calendar will try - // to set focus to its next button by default - - lang.later(0, oAnchor, function () { - try { - oAnchor.focus(); - } - catch(e) { - } - }); - - } - - }; - - // Set focus to either the current day, or first day of the month in - // the Calendar when the month changes (renderEvent is fired) - this.calendar.renderEvent.subscribe(focusDay, this.calendar, true); - - // Open minical on correct date / month if field contains a value - this.oOverlay.beforeShowEvent.subscribe(this.beforeShowOverlay, this, true); - - // Render the calendar on the right page ! - // -> this.calendar.render(); is not enough... - this.beforeShowOverlay(); - - this.calendar.selectEvent.subscribe(function (type, args, obj) { - // Horrible HACK - // stop here if called from beforeShowOverlay - if (!!this.ignoreNextSelectEvent) { - this.ignoreNextSelectEvent = false; - return; - } - - this.oOverlay.hide(); - var date = args[0][0]; - var year = date[0], month = date[1], day = date[2]; - - // set value (updatedEvt fired by setValue) - this.setValue(new Date(year, month - 1, day)); - - }, this, true); - - // Unsubscribe the event so this function is called only once - this.button.unsubscribe("click", this.renderCalendar); - - this.calendarRendered = true; - }, - - // Select the right date and display the right page on calendar, when the field has a value - beforeShowOverlay: function() { - var date = this.getValue(); - if (!!date && !!this.calendar) { - - // Horrible HACK (don't fire Field updatedEvt when selecting date) - this.ignoreNextSelectEvent = true; - // select the previous date in calendar - this.calendar.select(date); - - this.calendar.cfg.setProperty("pagedate", (date.getMonth() + 1) + "/" + date.getFullYear()); - this.calendar.render(); // refresh calendar - } - } - - }); - - inputEx.messages.defautCalendarOpts = { navigator: true }; - - /** - * Register this class as "datepicker" type - */ - inputEx.registerType("datepicker", inputEx.DatePickerField); - -})(); \ No newline at end of file diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/DateSplitField.js b/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/DateSplitField.js deleted file mode 100644 index 36d402d76..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/DateSplitField.js +++ /dev/null @@ -1,154 +0,0 @@ -(function() { - - var inputEx = YAHOO.inputEx, lang = YAHOO.lang, Event = YAHOO.util.Event; - - /** - * @class inputEx.DateSplitField - * @extends inputEx.CombineField - */ - inputEx.DateSplitField = function(options) { - - if (!options.dateFormat) { - options.dateFormat = inputEx.messages.defaultDateFormat; - } - - var formatSplit = options.dateFormat.split("/"); - this.yearIndex = inputEx.indexOf('Y', formatSplit); - this.monthIndex = inputEx.indexOf('m', formatSplit); - this.dayIndex = inputEx.indexOf('d', formatSplit); - - options.fields = []; - for (var i = 0; i < 3; i++) { - if (i == this.dayIndex) { - options.fields.push({type: 'integer', inputParams: { typeInvite: inputEx.messages.dayTypeInvite, size: 2} }); - } - else if (i == this.yearIndex) { - options.fields.push({type: 'integer', inputParams: { typeInvite: inputEx.messages.yearTypeInvite, size: 4} }); - } - else { - options.fields.push({type: 'integer', inputParams: {typeInvite: inputEx.messages.monthTypeInvite, size: 2} }); - } - } - - options.separators = options.separators || [false," "," ",false]; - - inputEx.DateSplitField.superclass.constructor.call(this, options); - - this.initAutoTab(); - }; - - lang.extend(inputEx.DateSplitField, inputEx.CombineField, { - - /** - * Set the value. Format the date according to options.dateFormat - * @param {Date} val Date to set - * @param {boolean} [sendUpdatedEvt] (optional) Wether this setValue should fire the updatedEvt or not (default is true, pass false to NOT send the event) - */ - setValue: function(value, sendUpdatedEvt) { - var values = []; - - // !value catches "" (empty field), and invalid dates - if (!value || !lang.isFunction(value.getTime) || !lang.isNumber(value.getTime())) { - values[this.monthIndex] = ""; - values[this.yearIndex] = ""; - values[this.dayIndex] = ""; - } else { - for (var i = 0; i < 3; i++) { - values.push(i == this.dayIndex ? value.getDate() : (i == this.yearIndex ? value.getFullYear() : value.getMonth() + 1 )); - } - } - inputEx.DateSplitField.superclass.setValue.call(this, values, sendUpdatedEvt); - }, - - getValue: function() { - if (this.isEmpty()) return ""; - - var values = inputEx.DateSplitField.superclass.getValue.call(this); - - return new Date(values[this.yearIndex], values[this.monthIndex] - 1, values[this.dayIndex]); - }, - - validate: function() { - var subFieldsValidation = inputEx.DateSplitField.superclass.validate.call(this); - if (!subFieldsValidation) return false; - - var values = inputEx.DateSplitField.superclass.getValue.call(this); - var day = values[this.dayIndex]; - var month = values[this.monthIndex]; - var year = values[this.yearIndex]; - - var val = this.getValue(); - //console.log("datesplit value = ",val); - - // 3 empty fields - if (val == "") return true; - - // if a field is empty, it will be set by default (day : 31, month:12, year: 1899/1900) - // -> val == "" MUST be checked first ! - if (day == "" || month == "" || year == "") return false; - - if (year < 0 || year > 9999 || day < 1 || day > 31 || month < 1 || month > 12) return false; - - // val == any date -> true - // val == "Invalid Date" -> false - return (val != "Invalid Date"); - }, - - isEmpty: function() { - var values = inputEx.DateSplitField.superclass.getValue.call(this); - return (values[this.monthIndex] == "" && values[this.yearIndex] == "" && values[this.dayIndex] == ""); - }, - - initAutoTab: function() { - // "keypress" event codes for numeric keys (keyboard & numpad) - // (warning : "keydown" codes are different with numpad) - var numKeyCodes = [48,49,50,51,52,53,54,55,56,57]; - - // verify charCode (don't auto tab when pressing "tab", "arrow", etc...) - var checkNumKey = function(charCode) { - for (var i = 0, length = numKeyCodes.length; i < length; i++) { - if (charCode == numKeyCodes[i]) return true; - } - return false; - }; - - // Function that checks charCode and execute tab action - var that = this; - var autoTab = function(inputIndex) { - // later to let input update its value - lang.later(0, that, function() { - var input = that.inputs[inputIndex]; - - // check input.el.value (string) because getValue doesn't work - // example : if input.el.value == "06", getValue() == 6 (length == 1 instead of 2) - if (input.el.value.length == input.options.size) { - that.inputs[inputIndex + 1].focus(); - } - }); - }; - - // add listeners on inputs - Event.addListener(this.inputs[0].el, "keypress", function(e) { - if (checkNumKey(Event.getCharCode(e))) { - autoTab(0); - } - }, this, true); - Event.addListener(this.inputs[1].el, "keypress", function(e) { - if (checkNumKey(Event.getCharCode(e))) { - autoTab(1); - } - }, this, true); - } - - }); - - inputEx.messages.monthTypeInvite = "Month"; - inputEx.messages.dayTypeInvite = "Day"; - inputEx.messages.yearTypeInvite = "Year"; - - /** - * Register this class as "birthdate" type - */ - inputEx.registerType("datesplit", inputEx.DateSplitField); - -})(); \ No newline at end of file diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/DateTimeField.js b/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/DateTimeField.js deleted file mode 100644 index 1a76cd3a6..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/DateTimeField.js +++ /dev/null @@ -1,70 +0,0 @@ -(function() { - - var inputEx = YAHOO.inputEx, Event = YAHOO.util.Event, lang = YAHOO.lang; - - /** - * @class A field limited to number inputs (floating) - * @extends inputEx.CombineField - * @constructor - * @param {Object} options Added options - *
    - *
  • dateFormat: same as DateField
  • - *
- */ - inputEx.DateTimeField = function(options) { - options.fields = [ - {type: 'datepicker', inputParams: {}}, - {type: 'time', inputParams: {}} - ]; - if (options.dateFormat) { - options.fields[0].inputParams.dateFormat = options.dateFormat; - } - options.separators = options.separators || [false, "  ", false]; - inputEx.DateTimeField.superclass.constructor.call(this, options); - }; - lang.extend(inputEx.DateTimeField, inputEx.CombineField, - /** - * @scope inputEx.DateTimeField.prototype - */ - { - /** - * Concat the values to return a date - * @return {Date} The javascript Date object - */ - getValue: function() { - var d = this.inputs[0].getValue(); - if (d == '') return null; - var a = this.inputs[1].getValue().split(':'); - - d.setHours(a[0]); - d.setMinutes(a[1]); - d.setSeconds(a[2]); - - return d; - }, - - /** - * Set the value of both subfields - * @param {Date} val Date to set - * @param {boolean} [sendUpdatedEvt] (optional) Wether this setValue should fire the updatedEvt or not (default is true, pass false to NOT send the event) - */ - setValue: function(val, sendUpdatedEvt) { - if (!lang.isObject(val)) { - return; - } - var h = val.getHours(); - var m = val.getMinutes(); - var s = val.getSeconds(); - var time = ([(h < 10 ? '0' : '') + h, (m < 10 ? '0' : '') + m, (s < 10 ? '0' : '') + s]).join(':'); - inputEx.DateTimeField.superclass.setValue.call(this, [val, time], sendUpdatedEvt); - } - - }); - - - /** - * Register this class as "time" type - */ - inputEx.registerType("datetime", inputEx.DateTimeField); - -})(); \ No newline at end of file diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/EmailField.js b/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/EmailField.js deleted file mode 100644 index 906d31eb4..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/EmailField.js +++ /dev/null @@ -1,49 +0,0 @@ -(function() { - - var inputEx = YAHOO.inputEx; - - /** - * @class Field that adds the email regexp for validation. Result is always lower case. - * @extends inputEx.StringField - * @constructor - * @param {Object} options inputEx.Field options object - */ - inputEx.EmailField = function(options) { - inputEx.EmailField.superclass.constructor.call(this, options); - }; - YAHOO.lang.extend(inputEx.EmailField, inputEx.StringField, - /** - * @scope inputEx.EmailField.prototype - */ - { - - /** - * Set the email regexp and invalid message - * @param {Object} options Options object (inputEx inputParams) as passed to the constructor - */ - setOptions: function(options) { - inputEx.EmailField.superclass.setOptions.call(this, options); - // Overwrite options - this.options.messages.invalid = inputEx.messages.invalidEmail; - this.options.regexp = inputEx.regexps.email; - }, - - /** - * Set the value to lower case since email have no case - * @return {String} The email string - */ - getValue: function() { - return this.el.value.toLowerCase(); - } - - }); - -// Specific message for the email field - inputEx.messages.invalidEmail = "Invalid email, ex: sample@test.com"; - - /** - * Register this class as "email" type - */ - inputEx.registerType("email", inputEx.EmailField); - -})(); \ No newline at end of file diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/FileField-beta.js b/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/FileField-beta.js deleted file mode 100644 index bcbdb66f6..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/FileField-beta.js +++ /dev/null @@ -1,46 +0,0 @@ -(function() { - - var inputEx = YAHOO.inputEx, Event = YAHOO.util.Event; - - /** - * @class Create a file input - * @extends inputEx.Field - * @constructor - * @param {Object} options Added options: - *
    - *
- */ - inputEx.FileField = function(options) { - inputEx.FileField.superclass.constructor.call(this, options); - }; - YAHOO.lang.extend(inputEx.FileField, inputEx.Field, - /** - * @scope inputEx.FileField.prototype - */ - { - /** - * Render an 'INPUT' DOM node - */ - renderComponent: function() { - - // Attributes of the input field - var attributes = {}; - attributes.id = this.divEl.id ? this.divEl.id + '-field' : YAHOO.util.Dom.generateId(); - attributes.type = "file"; - if (this.options.name) attributes.name = this.options.name; - - // Create the node - this.el = inputEx.cn('input', attributes); - - // Append it to the main element - this.fieldContainer.appendChild(this.el); - } - - }); - - /** - * Register this class as "file" type - */ - inputEx.registerType("file", inputEx.FileField); - -})(); \ No newline at end of file diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/HiddenField.js b/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/HiddenField.js deleted file mode 100644 index 9a098afaa..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/HiddenField.js +++ /dev/null @@ -1,60 +0,0 @@ -(function() { - - var inputEx = YAHOO.inputEx; - - /** - * @class Create a hidden input, inherits from inputEx.Field - * @extends inputEx.Field - * @constructor - * @param {Object} options inputEx.Field options object - */ - inputEx.HiddenField = function(options) { - inputEx.HiddenField.superclass.constructor.call(this, options); - }; - - YAHOO.lang.extend(inputEx.HiddenField, inputEx.Field, - /** - * @scope inputEx.HiddenField.prototype - */ - { - - /** - * Doesn't render much... - */ - render: function() { - this.type = inputEx.HiddenField; - this.divEl = inputEx.cn('div', null, {display: 'none'}); - - this.el = inputEx.cn('input', {type: 'hidden'}); - if (this.options.name) this.el.name = this.options.name; - this.divEl.appendChild(this.el); - }, - - /** - * Stores the value in a local variable - * @param {Any} val The value to set - * @param {boolean} [sendUpdatedEvt] (optional) Wether this setValue should fire the updatedEvt or not (default is true, pass false to NOT send the event) - */ - setValue: function(val, sendUpdatedEvt) { - this.el.value = val; - - // Call Field.setValue to set class and fire updated event - inputEx.HiddenField.superclass.setValue.call(this, val, sendUpdatedEvt); - }, - - /** - * Get the previously stored value - * @return {Any} the previously stored value - */ - getValue: function() { - return this.el.value; - } - - }); - - /** - * Register this class as "hidden" type - */ - inputEx.registerType("hidden", inputEx.HiddenField); - -})(); \ No newline at end of file diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/InPlaceEdit.js b/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/InPlaceEdit.js deleted file mode 100644 index 901f02b3e..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/InPlaceEdit.js +++ /dev/null @@ -1,267 +0,0 @@ -(function() { - - var inputEx = YAHOO.inputEx, lang = YAHOO.lang, Event = YAHOO.util.Event, Dom = YAHOO.util.Dom; - - /** - * @class Meta field providing in place editing (the editor appears when you click on the formatted value). - * @extends inputEx.Field - * @constructor - * @param {Object} options Added options: - *
    - *
  • visu
  • - *
  • editorField
  • - *
  • animColors
  • - *
- */ - inputEx.InPlaceEdit = function(options) { - inputEx.InPlaceEdit.superclass.constructor.call(this, options); - }; - - lang.extend(inputEx.InPlaceEdit, inputEx.Field, - /** - * @scope inputEx.InPlaceEdit.prototype - */ - { - /** - * Set the default values of the options - * @param {Object} options Options object (inputEx inputParams) as passed to the constructor - */ - setOptions: function(options) { - inputEx.InPlaceEdit.superclass.setOptions.call(this, options); - - this.options.animColors = options.animColors || {from: '#ffff99' , to: '#ffffff'}; - /*this.options.formatDom = options.formatDom; - this.options.formatValue = options.formatValue;*/ - this.options.visu = options.visu; - this.options.editorField = options.editorField; - }, - - /** - * Override renderComponent to create 2 divs: the visualization one, and the edit in place form - */ - renderComponent: function() { - this.renderVisuDiv(); - this.renderEditor(); - }, - - /** - * Render the editor - */ - renderEditor: function() { - - this.editorContainer = inputEx.cn('div', {className: 'inputEx-InPlaceEdit-editor'}, {display: 'none'}); - - // Render the editor field - this.editorField = inputEx.buildField(this.options.editorField); - - this.editorContainer.appendChild(this.editorField.getEl()); - Dom.setStyle(this.editorField.getEl(), 'float', 'left'); - - // Line breaker - this.editorContainer.appendChild(inputEx.cn('div', null, {clear: 'both'})); - - //this.divEl.appendChild(this.editorContainer); - this.fieldContainer.appendChild(this.editorContainer); - - }, - - /** - * Set the color when hovering the field - * @param {Event} e The original mouseover event - */ - onVisuMouseOver: function(e) { - if (this.colorAnim) { - this.colorAnim.stop(true); - } - inputEx.sn(this.formattedContainer, null, {backgroundColor: this.options.animColors.from }); - }, - - /** - * Start the color animation when hovering the field - * @param {Event} e The original mouseout event - */ - onVisuMouseOut: function(e) { - // Start animation - if (this.colorAnim) { - this.colorAnim.stop(true); - } - this.colorAnim = new YAHOO.util.ColorAnim(this.formattedContainer, {backgroundColor: this.options.animColors}, 1); - this.colorAnim.onComplete.subscribe(function() { - Dom.setStyle(this.formattedContainer, 'background-color', ''); - }, this, true); - this.colorAnim.animate(); - }, - - /** - * Create the div that will contain the visualization of the value - */ - renderVisuDiv: function() { - this.formattedContainer = inputEx.cn('div', {className: 'inputEx-InPlaceEdit-visu'}); - - if (lang.isFunction(this.options.formatDom)) { - this.formattedContainer.appendChild(this.options.formatDom(this.options.value)); - } - else if (lang.isFunction(this.options.formatValue)) { - this.formattedContainer.innerHTML = this.options.formatValue(this.options.value); - } - else { - this.formattedContainer.innerHTML = lang.isUndefined(this.options.value) ? inputEx.messages.emptyInPlaceEdit : this.options.value; - } - - this.fieldContainer.appendChild(this.formattedContainer); - - }, - - /** - * Adds the events for the editor and color animations - */ - initEvents: function() { - Event.addListener(this.formattedContainer, "click", this.openEditor, this, true); - - // For color animation - Event.addListener(this.formattedContainer, 'mouseover', this.onVisuMouseOver, this, true); - Event.addListener(this.formattedContainer, 'mouseout', this.onVisuMouseOut, this, true); - - // Editor: - //Event.addListener(this.okButton, 'click', this.onOkEditor, this, true); - //Event.addListener(this.cancelLink, 'click', this.onCancelEditor, this, true); - - if (this.editorField.el) { - // Register some listeners - Event.addListener(this.editorField.el, "keyup", this.onKeyUp, this, true); - Event.addListener(this.editorField.el, "keydown", this.onKeyDown, this, true); - Event.addListener(this.editorField.el, "blur", this.onOkEditor, this, true); - } - }, - - /** - * Handle some keys events to close the editor - * @param {Event} e The original keyup event - */ - onKeyUp: function(e) { - // Enter - if (e.keyCode == 13) { - this.onOkEditor(); - } - // Escape - if (e.keyCode == 27) { - this.onCancelEditor(e); - } - var first = this.editorField.el.value.charAt(0); - var tmp = this.editorField.el.value.substr(1).replace(/[^a-zA-Z0-9]/g, ''); - this.editorField.el.value = first.toUpperCase() + tmp; - }, - - /** - * Handle the tabulation key to close the editor - * @param {Event} e The original keydown event - */ - onKeyDown: function(e) { - // Tab - if (e.keyCode == 9) { - this.onOkEditor(); - } - }, - - /** - * Validate the editor (ok button, enter key or tabulation key) - */ - onOkEditor: function() { - var newValue = this.editorField.getValue(); - this.setValue(newValue); - - this.editorContainer.style.display = 'none'; - this.formattedContainer.style.display = ''; - - var that = this; - setTimeout(function() { - that.updatedEvt.fire(newValue); - }, 50); - }, - - - /** - * Close the editor on cancel (cancel button, blur event or escape key) - * @param {Event} e The original event (click, blur or keydown) - */ - onCancelEditor: function(e) { - Event.stopEvent(e); - this.editorContainer.style.display = 'none'; - this.formattedContainer.style.display = ''; - }, - - /** - * Display the editor - */ - openEditor: function() { - var value = this.getValue(); - this.editorContainer.style.display = ''; - this.formattedContainer.style.display = 'none'; - - if (!lang.isUndefined(value)) { - this.editorField.setValue(value); - } - - // Set focus in the element ! - this.editorField.focus(); - - // Select the content - if (this.editorField.el && lang.isFunction(this.editorField.el.setSelectionRange) && (!!value && !!value.length)) { - this.editorField.el.setSelectionRange(0, value.length); - } - - }, - - /** - * Returned the previously stored value - * @return {Any} The value of the subfield - */ - getValue: function() { - var editorOpened = (this.editorContainer.style.display == ''); - return editorOpened ? this.editorField.getValue() : this.value; - }, - - /** - * Set the value and update the display - * @param {Any} value The value to set - * @param {boolean} [sendUpdatedEvt] (optional) Wether this setValue should fire the updatedEvt or not (default is true, pass false to NOT send the event) - */ - setValue: function(value, sendUpdatedEvt) { - // Store the value - this.value = value; - - if (lang.isUndefined(value) || value == "") { - inputEx.renderVisu(this.options.visu, inputEx.messages.emptyInPlaceEdit, this.formattedContainer); - } - else { - inputEx.renderVisu(this.options.visu, this.value, this.formattedContainer); - } - - // If the editor is opened, update it - if (this.editorContainer.style.display == '') { - this.editorField.setValue(value); - } - - inputEx.InPlaceEdit.superclass.setValue.call(this, value, sendUpdatedEvt); - }, - - /** - * Close the editor when calling the close function on this field - */ - close: function() { - this.editorContainer.style.display = 'none'; - this.formattedContainer.style.display = ''; - } - - }); - - inputEx.messages.emptyInPlaceEdit = "(click to edit)"; - inputEx.messages.cancelEditor = "cancel"; - inputEx.messages.okEditor = "Ok"; - - /** - * Register this class as "inplaceedit" type - */ - inputEx.registerType("inplaceedit", inputEx.InPlaceEdit); - -})(); \ No newline at end of file diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/IntegerField.js b/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/IntegerField.js deleted file mode 100644 index 06e1a1d96..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/IntegerField.js +++ /dev/null @@ -1,67 +0,0 @@ -(function() { - - var inputEx = YAHOO.inputEx, lang = YAHOO.lang, Event = YAHOO.util.Event; - - /** - * @class A field limited to number inputs - * @extends inputEx.StringField - * @constructor - * @param {Object} options Added options: - *
    - *
  • negative: boolean indicating if we accept boolean numbers
  • - *
- */ - inputEx.IntegerField = function(options) { - inputEx.IntegerField.superclass.constructor.call(this, options); - }; - YAHOO.lang.extend(inputEx.IntegerField, inputEx.StringField, - /** - * @scope inputEx.IntegerField.prototype - */ - { - /** - * Adds the negative option - * @method setOptions - * @param {Object} options - */ - setOptions: function(options) { - inputEx.IntegerField.superclass.setOptions.call(this, options); - - this.options.negative = lang.isUndefined(options.negative) ? false : options.negative; - }, - - /** - * Get the value - * @return {int} The integer value - */ - getValue: function() { - // don't return NaN if empty field - if ((this.options.typeInvite && this.el.value == this.options.typeInvite) || this.el.value == '') { - return ''; - } - - return parseInt(this.el.value, 10); - }, - - /** - * Validate if is a number - * @method validate - */ - validate: function() { - var v = this.getValue(); - - // empty field is OK - if (v == "") return true; - - if (isNaN(v)) return false; - return !!this.el.value.match(new RegExp(this.options.negative ? "^[+-]?[0-9]*$" : "^\\+?[0-9]*$")); - } - - }); - - /** - * Register this class as "integer" type - */ - inputEx.registerType("integer", inputEx.IntegerField); - -})(); \ No newline at end of file diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/ListField.js b/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/ListField.js deleted file mode 100644 index cc11ce218..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/ListField.js +++ /dev/null @@ -1,399 +0,0 @@ -(function() { - - var inputEx = YAHOO.inputEx, lang = YAHOO.lang, Event = YAHOO.util.Event, Dom = YAHOO.util.Dom; - - /** - * @class Meta field to create a list of other fields - * @extends inputEx.Field - * @constructor - * @param {Object} options Added options: - *
    - *
  • sortable: Add arrows to sort the items if true (default false)
  • - *
  • elementType: an element type definition (default is {type: 'string'})
  • - *
  • useButtons: use buttons instead of links (default false)
  • - *
  • unique: require values to be unique (default false)
  • - *
  • listAddLabel: if useButtons is false, text to add an item
  • - *
  • listRemoveLabel: if useButtons is false, text to remove an item
  • - *
- */ - inputEx.ListField = function(options) { - - /** - * List of all the subField instances - */ - this.subFields = []; - - inputEx.ListField.superclass.constructor.call(this, options); - }; - lang.extend(inputEx.ListField, inputEx.Field, - /** - * @scope inputEx.ListField.prototype - */ - { - - /** - * Set the ListField classname - * @param {Object} options Options object (inputEx inputParams) as passed to the constructor - */ - setOptions: function(options) { - inputEx.ListField.superclass.setOptions.call(this, options); - - this.options.className = options.className ? options.className : 'inputEx-Field inputEx-ListField'; - - this.options.sortable = lang.isUndefined(options.sortable) ? false : options.sortable; - this.options.elementType = options.elementType || {type: 'string'}; - this.options.useButtons = lang.isUndefined(options.useButtons) ? false : options.useButtons; - this.options.unique = lang.isUndefined(options.unique) ? false : options.unique; - - this.options.listAddLabel = options.listAddLabel || inputEx.messages.listAddLink; - this.options.listRemoveLabel = options.listRemoveLabel || inputEx.messages.listRemoveLink; - }, - - /** - * Render the addButton - */ - renderComponent: function() { - - // Add element button - if (this.options.useButtons) { - this.addButton = inputEx.cn('img', {src: inputEx.spacerUrl, className: 'inputEx-ListField-addButton'}); - this.fieldContainer.appendChild(this.addButton); - } - - // List label - this.fieldContainer.appendChild(inputEx.cn('span', null, {marginLeft: "4px"}, this.options.listLabel)); - - // Div element to contain the children - this.childContainer = inputEx.cn('div', {className: 'inputEx-ListField-childContainer'}); - this.fieldContainer.appendChild(this.childContainer); - - // Add link - if (!this.options.useButtons) { - this.addButton = inputEx.cn('a', {className: 'inputEx-List-link'}, null, this.options.listAddLabel); - this.fieldContainer.appendChild(this.addButton); - } - }, - - /** - * Handle the click event on the add button - */ - initEvents: function() { - Event.addListener(this.addButton, 'click', this.onAddButton, this, true); - }, - - /** - * Validate each field - * @returns {Boolean} true if all fields validate, required fields are not empty and unique constraint (if specified) is not violated - */ - validate: function() { - var response = true; - var uniques = {}; - - // Validate all the sub fields - for (var i = 0; i < this.subFields.length && response; i++) { - var input = this.subFields[i]; - input.setClassFromState(); // update field classes (mark invalid fields...) - var state = input.getState(); - if (state == inputEx.stateRequired || state == inputEx.stateInvalid) { - response = false; // but keep looping on fields to set classes - } - if (this.options.unique) { - var hash = lang.dump(input.getValue()); - //logDebug('listfied index ',i, 'hash', hash); - if (uniques[hash]) { - response = false; // not unique - } else { - uniques[hash] = true; - } - } - } - return response; - }, - - /** - * Set the value of all the subfields - * @param {Array} value The list of values to set - * @param {boolean} [sendUpdatedEvt] (optional) Wether this setValue should fire the updatedEvt or not (default is true, pass false to NOT send the event) - */ - setValue: function(value, sendUpdatedEvt) { - - if (!lang.isArray(value)) { - // TODO: throw exceptions ? - return; - } - - // Set the values (and add the lines if necessary) - for (var i = 0; i < value.length; i++) { - if (i == this.subFields.length) { - this.addElement(value[i]); - } - else { - this.subFields[i].setValue(value[i], false); - } - } - - // Remove additional subFields - var additionalElements = this.subFields.length - value.length; - if (additionalElements > 0) { - for (var i = 0; i < additionalElements; i++) { - this.removeElement(value.length); - } - } - ; - - inputEx.ListField.superclass.setValue.call(this, value, sendUpdatedEvt); - }, - - /** - * Return the array of values - * @return {Array} The array - */ - getValue: function() { - var values = []; - for (var i = 0; i < this.subFields.length; i++) { - values[i] = this.subFields[i].getValue(); - } - return values; - }, - - /** - * Adds an element - * @param {Any} The initial value of the subfield to create - * @return {inputEx.Field} SubField added instance - */ - addElement: function(value) { - - // Render the subField - var subFieldEl = this.renderSubField(value); - - // Adds it to the local list - this.subFields.push(subFieldEl); - - return subFieldEl; - }, - - /** - * Add a new element to the list and fire updated event - * @param {Event} e The original click event - */ - onAddButton: function(e) { - Event.stopEvent(e); - - // Add a field with no value: - var subFieldEl = this.addElement(); - - // Focus on this field - subFieldEl.focus(); - - // Fire updated ! - this.fireUpdatedEvt(); - }, - - /** - * Adds a new line to the List Field - * @param {Any} The initial value of the subfield to create - * @return {inputEx.Field} instance of the created field (inputEx.Field or derivative) - */ - renderSubField: function(value) { - - // Div that wraps the deleteButton + the subField - var newDiv = inputEx.cn('div'); - - // Delete button - if (this.options.useButtons) { - var delButton = inputEx.cn('img', {src: inputEx.spacerUrl, className: 'inputEx-ListField-delButton'}); - Event.addListener(delButton, 'click', this.onDelete, this, true); - newDiv.appendChild(delButton); - } - - // Instanciate the new subField - var opts = lang.merge({}, this.options.elementType); - if (!opts.inputParams) opts.inputParams = {}; - if (!lang.isUndefined(value)) opts.inputParams.value = value; - - // IS: Quick hack to get the list element number from within the field and its subfields. - document.currentListElementNumber = this.subFields.length; - - var el = inputEx.buildField(opts); - - var subFieldEl = el.getEl(); - Dom.setStyle(subFieldEl, 'margin-left', '4px'); - Dom.setStyle(subFieldEl, 'float', 'left'); - //newDiv.appendChild(subFieldEl); - - // Subscribe the onChange event to resend it - el.updatedEvt.subscribe(this.onChange, this, true); - - // Arrows to order: - if (this.options.sortable) { - var arrowUp = inputEx.cn('div', {className: 'inputEx-ListField-Arrow inputEx-ListField-ArrowUp'}); - Event.addListener(arrowUp, 'click', this.onArrowUp, this, true); - var arrowDown = inputEx.cn('div', {className: 'inputEx-ListField-Arrow inputEx-ListField-ArrowDown'}); - Event.addListener(arrowDown, 'click', this.onArrowDown, this, true); - newDiv.appendChild(arrowUp); - newDiv.appendChild(arrowDown); - } - - // Delete link - if (!this.options.useButtons) { - var delButton = inputEx.cn('a', {className: 'inputEx-List-link'}, null, this.options.listRemoveLabel); - Event.addListener(delButton, 'click', this.onDelete, this, true); - newDiv.appendChild(delButton); - } - - // Line breaker - newDiv.appendChild(inputEx.cn('div', null, {clear: "both"})); - - this.childContainer.appendChild(newDiv); - - return el; - }, - - /** - * Switch a subField with its previous one - * Called when the user clicked on the up arrow of a sortable list - * @param {Event} e Original click event - */ - onArrowUp: function(e) { - var childElement = Event.getTarget(e).parentNode; - - var previousChildNode = null; - var nodeIndex = -1; - for (var i = 1; i < childElement.parentNode.childNodes.length; i++) { - var el = childElement.parentNode.childNodes[i]; - if (el == childElement) { - previousChildNode = childElement.parentNode.childNodes[i - 1]; - nodeIndex = i; - break; - } - } - - if (previousChildNode) { - // Remove the line - var removedEl = this.childContainer.removeChild(childElement); - - // Adds it before the previousChildNode - var insertedEl = this.childContainer.insertBefore(removedEl, previousChildNode); - - // Swap this.subFields elements (i,i-1) - var temp = this.subFields[nodeIndex]; - this.subFields[nodeIndex] = this.subFields[nodeIndex - 1]; - this.subFields[nodeIndex - 1] = temp; - - // Color Animation - if (this.arrowAnim) { - this.arrowAnim.stop(true); - } - this.arrowAnim = new YAHOO.util.ColorAnim(insertedEl, {backgroundColor: { from: '#eeee33' , to: '#eeeeee' }}, 0.4); - this.arrowAnim.onComplete.subscribe(function() { - Dom.setStyle(insertedEl, 'background-color', ''); - }); - this.arrowAnim.animate(); - - // Fire updated ! - this.fireUpdatedEvt(); - } - }, - - /** - * Switch a subField with its next one - * Called when the user clicked on the down arrow of a sortable list - * @param {Event} e Original click event - */ - onArrowDown: function(e) { - var childElement = Event.getTarget(e).parentNode; - - var nodeIndex = -1; - var nextChildNode = null; - for (var i = 0; i < childElement.parentNode.childNodes.length; i++) { - var el = childElement.parentNode.childNodes[i]; - if (el == childElement) { - nextChildNode = childElement.parentNode.childNodes[i + 1]; - nodeIndex = i; - break; - } - } - - if (nextChildNode) { - // Remove the line - var removedEl = this.childContainer.removeChild(childElement); - // Adds it after the nextChildNode - var insertedEl = Dom.insertAfter(removedEl, nextChildNode); - - // Swap this.subFields elements (i,i+1) - var temp = this.subFields[nodeIndex]; - this.subFields[nodeIndex] = this.subFields[nodeIndex + 1]; - this.subFields[nodeIndex + 1] = temp; - - // Color Animation - if (this.arrowAnim) { - this.arrowAnim.stop(true); - } - this.arrowAnim = new YAHOO.util.ColorAnim(insertedEl, {backgroundColor: { from: '#eeee33' , to: '#eeeeee' }}, 1); - this.arrowAnim.onComplete.subscribe(function() { - Dom.setStyle(insertedEl, 'background-color', ''); - }); - this.arrowAnim.animate(); - - // Fire updated ! - this.fireUpdatedEvt(); - } - }, - - /** - * Called when the user clicked on a delete button. - * @param {Event} e The original click event - */ - onDelete: function(e) { - - Event.stopEvent(e); - - // Get the wrapping div element - var elementDiv = Event.getTarget(e).parentNode; - - // Get the index of the subField - var index = -1; - - var subFieldEl = elementDiv.childNodes[this.options.useButtons ? 1 : 0]; - for (var i = 0; i < this.subFields.length; i++) { - if (this.subFields[i].getEl() == subFieldEl) { - index = i; - break; - } - } - - // Remove it - if (index != -1) { - this.removeElement(index); - } - - // Fire the updated event - this.fireUpdatedEvt(); - }, - - /** - * Remove the line from the dom and the subField from the list. - * @param {integer} index The index of the element to remove - */ - removeElement: function(index) { - var elementDiv = this.subFields[index].getEl().parentNode; - - this.subFields[index] = undefined; - this.subFields = inputEx.compactArray(this.subFields); - - // Remove the element - elementDiv.parentNode.removeChild(elementDiv); - } - - }); - - /** - * Register this class as "list" type - */ - inputEx.registerType("list", inputEx.ListField); - - - inputEx.messages.listAddLink = "Add"; - inputEx.messages.listRemoveLink = "remove"; - -})(); \ No newline at end of file diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/MenuField.js b/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/MenuField.js deleted file mode 100644 index fa35967f8..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/MenuField.js +++ /dev/null @@ -1,172 +0,0 @@ -(function() { - - var inputEx = YAHOO.inputEx, Event = YAHOO.util.Event, lang = YAHOO.lang; - - /** - * @class Create a menu field - * @extends inputEx.Field - * @constructor - * @param {Object} options Added options: - *
    - *
  • menuItems : contains descriptions of menu items
  • - *
  • menuTrigger : event to trigger menu show
  • - *
  • menuInvite : text to display when no selection made
  • - *
  • menuPosition : array of corners positions (syntax : ['menu popup corner','invite div corner'])
  • - *
- */ - inputEx.MenuField = function(options) { - inputEx.MenuField.superclass.constructor.call(this, options); - }; - - lang.extend(inputEx.MenuField, inputEx.Field, - /** - * @scope inputEx.MenuField.prototype - */ - { - /** - * Set the default values of the options - * @param {Object} options Options object (inputEx inputParams) as passed to the constructor - */ - setOptions: function(options) { - inputEx.MenuField.superclass.setOptions.call(this, options); - - // Overwrite options: - this.options.className = options.className ? options.className : 'inputEx-Field inputEx-MenuField'; - - // New options - this.options.menuInvite = options.menuInvite || inputEx.messages.menuInvite; - this.options.menuTrigger = options.menuTrigger || "click"; - this.options.menuPosition = options.menuPosition || ["tl","tr"]; - this.options.menuItems = options.menuItems; - }, - - - /** - * Build a menu - */ - renderComponent: function() { - - // Div to display the invite, then the selected text - this.el = inputEx.cn('div', {className:'inputEx-Result'}, null, this.options.menuInvite); - YAHOO.util.Dom.addClass(this.el, (this.options.menuPosition[1] == "tr") ? "inputEx-RightArrow" : "inputEx-DownArrow"); - this.fieldContainer.appendChild(this.el); - - // Keep selected value in a hidden field - this.hiddenEl = inputEx.cn('input', {type: 'hidden', name: this.options.name || '', value: this.options.value || ''}); - this.fieldContainer.appendChild(this.hiddenEl); - - // Init Menu - this.initMenu(); - }, - - - // Parse menuItems option to add ids, listeners, etc. - initMenuItems: function() { - - // Keep corresponding text for each value selectable in the menu - // -> will be used to display selection after click - this._textFromValue = {}; - - var that = this; - - /* - * Recursive function to edit a level of menuItems - * - * args : - * -> conf : an array of menuItems - * -> level : how deeply nested are these menuItems (4 is max) - */ - function levelInit(conf, level) { - if (level > 4) throw new Error("MenuField : too much recursion, menuItems property should be 5 level deep at most."); - - var item; - for (var i = 0, length = conf.length; i < length; i++) { - item = conf[i]; - - // item with submenu - // -> explore deeper - if (!YAHOO.lang.isUndefined(item.submenu)) { - - // ensure there is an id on submenu (else submenu is not created) - if (YAHOO.lang.isUndefined(item.submenu.id)) { - item.submenu.id = YAHOO.util.Dom.generateId(); - } - - // continue one level deeper - levelInit(item.submenu.itemdata, level + 1); - - // item without submenu - // -> add click listener to this item - // -> pass selected value to the listener (as the 3rd argument) - } else { - that._textFromValue[item.value] = item.text; - item.onclick = {fn:function() { - that.onItemClick.apply(that, arguments); - },obj:item.value}; - } - } - } - - ; - - levelInit(this.options.menuItems, 0); - - }, - - - initMenu: function() { - this.initMenuItems(); // edit this.options.menuItems - - this.menuContainer = inputEx.cn('div'); - this.fieldContainer.appendChild(this.menuContainer); - - var context = [this.el].concat(this.options.menuPosition); - - this.menu = new YAHOO.widget.Menu(YAHOO.util.Dom.generateId(), {context:context}); - this.menu.addItems(this.options.menuItems); - this.menu.render(this.menuContainer); - }, - - - initEvents: function() { - this.menu.subscribe("show", this.menu.focus); - - // Listener to show menu - YAHOO.util.Event.addListener(this.el, this.options.menuTrigger, function() { - if (!this.menu.cfg.getProperty("visible")) { - this.menu.align(); - this.menu.show(); - } - }, null, this); - }, - - - onItemClick: function(p_sType, p_aArgs, p_Value) { - this.setValue(p_Value, true); - }, - - - getValue: function() { - return this.hiddenEl.value; - }, - - - setValue: function(value, sendUpdatedEvt) { - // update text - this.el.innerHTML = this._textFromValue[value] || this.options.menuInvite; - - // set value - this.hiddenEl.value = (!!this._textFromValue[value]) ? value : ''; - inputEx.MenuField.superclass.setValue.call(this, value, sendUpdatedEvt); - } - - }); - - inputEx.messages.menuInvite = "Click here to select"; - - /** - * Register this class as "menu" type - */ - inputEx.registerType("menu", inputEx.MenuField); - -})(); \ No newline at end of file diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/MultiAutoComplete.js b/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/MultiAutoComplete.js deleted file mode 100644 index 89d99ef01..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/MultiAutoComplete.js +++ /dev/null @@ -1,105 +0,0 @@ -(function() { - - var inputEx = YAHOO.inputEx; - - /** - * @class Create a multi autocomplete field - * @extends inputEx.AutoComplete - * @constructor - * @param {Object} options Added options: - *
    - *
- */ - inputEx.MultiAutoComplete = function(options) { - inputEx.MultiAutoComplete.superclass.constructor.call(this, options); - }; - YAHOO.lang.extend(inputEx.MultiAutoComplete, inputEx.AutoComplete, - /** - * @scope inputEx.MultiAutoComplete.prototype - */ - { - - /** - * Build the DDList - */ - renderComponent: function() { - inputEx.MultiAutoComplete.superclass.renderComponent.call(this); - - this.ddlist = new inputEx.widget.DDList({parentEl: this.fieldContainer}); - this.ddlist.itemRemovedEvt.subscribe(function() { - this.setClassFromState(); - this.fireUpdatedEvt(); - }, this, true); - this.ddlist.listReorderedEvt.subscribe(this.fireUpdatedEvt, this, true); - }, - - itemSelectHandler: function(sType, aArgs) { - var aData = aArgs[2]; - this.ddlist.addItem(this.options.returnValue ? this.options.returnValue(aData) : aData[0]); - this.el.value = ""; - this.fireUpdatedEvt(); - }, - - /** - * Set the value - * @param {String} value The value to set - * @param {boolean} [sendUpdatedEvt] (optional) Wether this setValue should fire the updatedEvt or not (default is true, pass false to NOT send the event) - */ - setValue: function(value, sendUpdatedEvt) { - this.ddlist.setValue(value); - - // set corresponding style - this.setClassFromState(); - - if (sendUpdatedEvt !== false) { - // fire update event - this.fireUpdatedEvt(); - } - }, - - /** - * Return the value - * @return {Any} the selected value from the selectValues array - */ - getValue: function() { - return this.ddlist.getValue(); - }, - - /** - * Return (stateEmpty|stateRequired) if the value equals the typeInvite attribute - */ - getState: function() { - var val = this.getValue(); - - // if nothing in the list - if (val.length === 0) { - return this.options.required ? inputEx.stateRequired : inputEx.stateEmpty; - } - - return this.validate() ? inputEx.stateValid : inputEx.stateInvalid; - }, - - /** - * TODO : how to validate ? - */ - validate: function() { - return true; - }, - - /** - * onChange event handler - * @param {Event} e The original 'change' event - */ - onChange: function(e) { - // erase inherited version, so don't trash previous value if input is empty - } - - - }); - - /** - * Register this class as "multiautocomplete" type - */ - inputEx.registerType("multiautocomplete", inputEx.MultiAutoComplete); - -})(); \ No newline at end of file diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/MultiSelectField.js b/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/MultiSelectField.js deleted file mode 100644 index 169f69793..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/MultiSelectField.js +++ /dev/null @@ -1,111 +0,0 @@ -(function() { - - var inputEx = YAHOO.inputEx; - - /** - * @class Create a multi select field - * @extends inputEx.SelectField - * @constructor - * @param {Object} options Added options: - *
    - *
  • selectValues: contains the list of options values
  • - *
  • selectOptions: list of option element texts
  • - *
- */ - inputEx.MultiSelectField = function(options) { - inputEx.MultiSelectField.superclass.constructor.call(this, options); - }; - YAHOO.lang.extend(inputEx.MultiSelectField, inputEx.SelectField, - /** - * @scope inputEx.MultiSelectField.prototype - */ - { - - /** - * Build the DDList - */ - renderComponent: function() { - inputEx.MultiSelectField.superclass.renderComponent.call(this); - - this.ddlist = new inputEx.widget.DDList({parentEl: this.fieldContainer}); - }, - - /** - * Register the "change" event - */ - initEvents: function() { - YAHOO.util.Event.addListener(this.el, "change", this.onAddNewItem, this, true); - this.ddlist.itemRemovedEvt.subscribe(this.onItemRemoved, this, true); - this.ddlist.listReorderedEvt.subscribe(this.fireUpdatedEvt, this, true); - }, - - /** - * Re-enable the option element when an item is removed by the user - */ - onItemRemoved: function(e, params) { - var itemValue = params[0]; - var index = inputEx.indexOf(itemValue, this.options.selectValues); - this.el.childNodes[index].disabled = false; - this.fireUpdatedEvt(); - }, - - /** - * Add an item to the list when the select changed - */ - onAddNewItem: function() { - if (this.el.selectedIndex != 0) { - - // Add the value to the ddlist - this.ddlist.addItem(this.options.selectValues[this.el.selectedIndex]); - - // mark option disabled - this.el.childNodes[this.el.selectedIndex].disabled = true; - - // Return to the first Element - this.el.selectedIndex = 0; - - this.fireUpdatedEvt(); - } - }, - - /** - * Set the value of the list - * @param {String} value The value to set - * @param {boolean} [sendUpdatedEvt] (optional) Wether this setValue should fire the updatedEvt or not (default is true, pass false to NOT send the event) - */ - setValue: function(value, sendUpdatedEvt) { - - this.ddlist.setValue(value); - - // Re-enable all options - for (var i = 0; i < this.el.childNodes.length; i++) { - this.el.childNodes[i].disabled = false; - } - // disable selected options - for (i = 0; i < value.length; i++) { - var index = inputEx.indexOf(value[i], this.options.selectValues); - this.el.childNodes[index].disabled = true; - } - - if (sendUpdatedEvt !== false) { - // fire update event - this.fireUpdatedEvt(); - } - }, - - /** - * Return the value - * @return {Any} the selected value from the selectValues array - */ - getValue: function() { - return this.ddlist.getValue(); - } - - }); - - /** - * Register this class as "multiselect" type - */ - inputEx.registerType("multiselect", inputEx.MultiSelectField); - -})(); \ No newline at end of file diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/NumberField.js b/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/NumberField.js deleted file mode 100644 index 4eb4986a7..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/NumberField.js +++ /dev/null @@ -1,54 +0,0 @@ -(function() { - - var inputEx = YAHOO.inputEx, Event = YAHOO.util.Event, lang = YAHOO.lang; - - /** - * @class A field limited to number inputs (floating) - * @extends inputEx.StringField - * @constructor - * @param {Object} options inputEx.Field options object - */ - inputEx.NumberField = function(options) { - inputEx.NumberField.superclass.constructor.call(this, options); - }; - YAHOO.lang.extend(inputEx.NumberField, inputEx.StringField, - /** - * @scope inputEx.NumberField.prototype - */ - { - /** - * Return a parsed float (javascript type number) - * @return {Number} The parsed float - */ - getValue: function() { - // don't return NaN if empty field - if ((this.options.typeInvite && this.el.value == this.options.typeInvite) || this.el.value == '') { - return ''; - } - - return parseFloat(this.el.value); - }, - - /** - * Check if the entered number is a float - */ - validate: function() { - var v = this.getValue(); - - // empty field is OK - if (v == "") return true; - - if (isNaN(v)) return false; - - // We have to check the number with a regexp, otherwise "0.03a" is parsed to a valid number 0.03 - return !!this.el.value.match(/^([\+\-]?((([0-9]+(\.)?)|([0-9]*\.[0-9]+))([eE][+-]?[0-9]+)?))$/); - } - - }); - - /** - * Register this class as "number" type - */ - inputEx.registerType("number", inputEx.NumberField); - -})(); \ No newline at end of file diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/PairField.js b/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/PairField.js deleted file mode 100644 index e2f516bf6..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/PairField.js +++ /dev/null @@ -1,28 +0,0 @@ -(function() { - - var inputEx = YAHOO.inputEx; - - /** - * @class A meta field to put 2 fields on the same line - * @extends inputEx.Field - * @constructor - * @param {Object} options Added options: - *
    - *
  • leftFieldOptions: the left field type definition object (same as groups)
  • - *
  • rightFieldOptions: the right field type definition object (same as groups)
  • - *
- */ - inputEx.PairField = function(options) { - options.fields = [options.leftFieldOptions || {}, options.rightFieldOptions || {}]; - options.separators = [false, " : ", false]; - inputEx.PairField.superclass.constructor.call(this, options); - }; - - YAHOO.lang.extend(inputEx.PairField, inputEx.CombineField); - - /** - * Register this class as "pair" type - */ - inputEx.registerType("pair", inputEx.PairField); - -})(); \ No newline at end of file diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/PasswordField.js b/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/PasswordField.js deleted file mode 100644 index 7db3f34e6..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/PasswordField.js +++ /dev/null @@ -1,257 +0,0 @@ -(function() { - - var inputEx = YAHOO.inputEx,Event = YAHOO.util.Event,lang = YAHOO.lang; - - /** - * @class Create a password field. - * @extends inputEx.StringField - * @constructor - * @param {Object} options inputEx.Field options object - *
    - *
  • confirmPasswordField: the PasswordField instance to compare to when using 2 password fields for password creation (please use the setConfirmationField method)
  • - *
  • strengthIndicator: display a widget to indicate password strength (default false)
  • - *
  • capsLockWarning: display a warning if CapsLock is on (default false)
  • - *
- */ - inputEx.PasswordField = function(options) { - inputEx.PasswordField.superclass.constructor.call(this, options); - }; - lang.extend(inputEx.PasswordField, inputEx.StringField, - /** - * @scope inputEx.PasswordField.prototype - */ - { - - /** - * Add the password regexp, strengthIndicator, capsLockWarning - * @param {Object} options Options object (inputEx inputParams) as passed to the constructor - */ - setOptions: function(options) { - inputEx.PasswordField.superclass.setOptions.call(this, options); - - this.options.className = options.className ? options.className : "inputEx-Field inputEx-PasswordField"; - - // Add the password regexp - this.options.regexp = inputEx.regexps.password; - - // display a strength indicator - this.options.strengthIndicator = YAHOO.lang.isUndefined(options.strengthIndicator) ? false : options.strengthIndicator; - - // capsLockWarning - this.options.capsLockWarning = YAHOO.lang.isUndefined(options.capsLockWarning) ? false : options.capsLockWarning; - - }, - - /** - * Set the el type to 'password' - */ - renderComponent: function() { - // IE doesn't want to set the "type" property to 'password' if the node has a parent - // even if the parent is not in the DOM yet !! - - - // This element wraps the input node in a float: none div - this.wrapEl = inputEx.cn('div', {className: 'inputEx-StringField-wrapper'}); - - // Attributes of the input field - var attributes = {}; - attributes.type = 'password'; - attributes.size = this.options.size; - if (this.options.name) attributes.name = this.options.name; - - // Create the node - this.el = inputEx.cn('input', attributes); - - // Append it to the main element - this.wrapEl.appendChild(this.el); - this.fieldContainer.appendChild(this.wrapEl); - - // Caps lock warning - if (this.options.capsLockWarning) { - this.capsLockWarning = inputEx.cn('div', {className: 'capsLockWarning'}, {display: 'none'}, inputEx.messages.capslockWarning); - this.wrapEl.appendChild(this.capsLockWarning); - } - - // Password strength indicator - if (this.options.strengthIndicator) { - this.strengthEl = inputEx.cn('div', {className: 'inputEx-Password-StrengthIndicator'}, null, inputEx.messages.passwordStrength); - this.strengthBlocks = []; - for (var i = 0; i < 4; i++) { - this.strengthBlocks[i] = inputEx.cn('div', {className: 'inputEx-Password-StrengthIndicatorBlock'}); - this.strengthEl.appendChild(this.strengthBlocks[i]); - } - this.wrapEl.appendChild(this.strengthEl); - } - }, - - /** - * Set this field as the confirmation for the targeted password field: - * @param {inputEx.PasswordField} passwordField The target password field - */ - setConfirmationField: function(passwordField) { - this.options.confirmPasswordField = passwordField; - this.options.messages.invalid = inputEx.messages.invalidPasswordConfirmation; - this.options.confirmPasswordField.options.confirmationPasswordField = this; - }, - - /** - * The validation adds the confirmation password field support - */ - validate: function() { - if (this.options.confirmPasswordField) { - if (this.options.confirmPasswordField.getValue() != this.getValue()) { - return false; - } - } - return inputEx.PasswordField.superclass.validate.call(this); - }, - - /** - * Change the state string - */ - getStateString: function(state) { - if (state == inputEx.stateInvalid && this.options.minLength && this.el.value.length < this.options.minLength) { - return inputEx.messages.invalidPassword[0] + this.options.minLength + inputEx.messages.invalidPassword[1]; - } - return inputEx.StringField.superclass.getStateString.call(this, state); - }, - - /** - * Update the state of the confirmation field - * @param {Event} e The original input event - */ - onInput: function(e) { - inputEx.PasswordField.superclass.onInput.call(this, e); - if (this.options.confirmationPasswordField) { - this.options.confirmationPasswordField.setClassFromState(); - } - }, - - /** - * callback to display the capsLockWarning - */ - onKeyPress: function(e) { - inputEx.PasswordField.superclass.onKeyPress.call(this, e); - - if (this.options.capsLockWarning) { - var ev = e ? e : window.event; - if (!ev) { - return; - } - var targ = ev.target ? ev.target : ev.srcElement; - - // get key pressed - var which = -1; - if (ev.which) { - which = ev.which; - } else if (ev.keyCode) { - which = ev.keyCode; - } - // get shift status - var shift_status = false; - if (ev.shiftKey) { - shift_status = ev.shiftKey; - } else if (ev.modifiers) { - shift_status = !!(ev.modifiers & 4); - } - var displayWarning = ((which >= 65 && which <= 90) && !shift_status) || - ((which >= 97 && which <= 122) && shift_status); - this.setCapsLockWarning(displayWarning); - } - - }, - - /** - * onkeyup callback to update the strength indicator - */ - onKeyUp: function(e) { - inputEx.PasswordField.superclass.onKeyUp.call(this, e); - if (this.options.strengthIndicator) { - lang.later(0, this, this.updateStrengthIndicator); - } - }, - - /** - * Show or hide the caps lock warning given the status - */ - setCapsLockWarning: function(status) { - this.capsLockWarning.style.display = status ? '' : 'none'; - }, - - /** - * Update the strength indicator (called by onKeyPress) - */ - updateStrengthIndicator: function() { - var strength = inputEx.PasswordField.getPasswordStrength(this.getValue()); - for (var i = 0; i < 4; i++) { - var on = (strength >= i * 25) && (strength > 0); - YAHOO.util.Dom.setStyle(this.strengthBlocks[i], "background-color", on ? "#4AE817" : "#FFFFFF"); - } - } - - - }); - - /** - * Return an integer within [0,100] that quantify the password strength - * Function taken from Mozilla Code: (changed a little bit the values) - * http://lxr.mozilla.org/seamonkey/source/security/manager/pki/resources/content/password.js - */ - inputEx.PasswordField.getPasswordStrength = function(pw) { - // Here is how we weigh the quality of the password - // number of characters - // numbers - // non-alpha-numeric chars - // upper and lower case characters - - //length of the password - var pwlength = (pw.length); - //if (pwlength>5) - // pwlength=5; - if (pwlength > 7) - pwlength = 7; - - //use of numbers in the password - var numnumeric = pw.replace(/[0-9]/g, ""); - var numeric = (pw.length - numnumeric.length); - if (numeric > 3) - numeric = 3; - - //use of symbols in the password - var symbols = pw.replace(/\W/g, ""); - var numsymbols = (pw.length - symbols.length); - if (numsymbols > 3) - numsymbols = 3; - - //use of uppercase in the password - var numupper = pw.replace(/[A-Z]/g, ""); - var upper = (pw.length - numupper.length); - if (upper > 3) - upper = 3; - - //var pwstrength=((pwlength*10)-20) + (numeric*10) + (numsymbols*15) + (upper*10); - var pwstrength = ((pwlength * 10) - 20) + (numeric * 10) + (numsymbols * 20) + (upper * 10); - - // make sure we're give a value between 0 and 100 - if (pwstrength < 0) { - pwstrength = 0; - } - if (pwstrength > 100) { - pwstrength = 100; - } - return pwstrength; - }; - - -// Specific message for the password field - inputEx.messages.invalidPassword = ["The password schould contain at least "," numbers or characters"]; - inputEx.messages.invalidPasswordConfirmation = "Passwords are different !"; - inputEx.messages.capslockWarning = "Warning: CapsLock is on"; - inputEx.messages.passwordStrength = "Password Strength"; - - /** - * Register this class as "password" type - */ - inputEx.registerType("password", inputEx.PasswordField); - -})(); \ No newline at end of file diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/RTEField.js b/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/RTEField.js deleted file mode 100644 index 99a74002b..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/RTEField.js +++ /dev/null @@ -1,122 +0,0 @@ -(function() { - - var inputEx = YAHOO.inputEx, lang = YAHOO.lang; - - /** - * @class Wrapper for the Rich Text Editor from YUI - * @extends inputEx.Field - * @constructor - * @param {Object} options Added options: - *
    - *
  • opts: the options to be added when calling the RTE constructor (see YUI RTE)
  • - *
  • type: if == 'simple', the field will use the SimpleEditor. Any other value will use the Editor class.
  • - *
- */ - inputEx.RTEField = function(options) { - inputEx.RTEField.superclass.constructor.call(this, options); - }; - lang.extend(inputEx.RTEField, inputEx.Field, - /** - * @scope inputEx.RTEField.prototype - */ - { - /** - * Set the default values of the options - * @param {Object} options Options object (inputEx inputParams) as passed to the constructor - */ - setOptions: function(options) { - inputEx.RTEField.superclass.setOptions.call(this, options); - - this.options.opts = options.opts || {}; - this.options.type = options.type; - }, - - /** - * Render the field using the YUI Editor widget - */ - renderComponent: function() { - if (!inputEx.RTEfieldsNumber) { - inputEx.RTEfieldsNumber = 0; - } - - var id = "inputEx-RTEField-" + inputEx.RTEfieldsNumber; - var attributes = {id:id}; - if (this.options.name) attributes.name = this.options.name; - - this.el = inputEx.cn('textarea', attributes); - - inputEx.RTEfieldsNumber += 1; - this.fieldContainer.appendChild(this.el); - - //This is the default config - var _def = { - height: '300px', - width: '580px', - dompath: true - }; - //The options object - var o = this.options.opts; - //Walk it to set the new config object - for (var i in o) { - if (lang.hasOwnProperty(o, i)) { - _def[i] = o[i]; - } - } - //Check if options.type is present and set to simple, if it is use SimpleEditor instead of Editor - var editorType = ((this.options.type && (this.options.type == 'simple')) ? YAHOO.widget.SimpleEditor : YAHOO.widget.Editor); - - //If this fails then the code is not loaded on the page - if (editorType) { - this.editor = new editorType(id, _def); - this.editor.render(); - } else { - alert('Editor is not on the page'); - } - }, - - /** - * Set the html content - * @param {String} value The html string - * @param {boolean} [sendUpdatedEvt] (optional) Wether this setValue should fire the updatedEvt or not (default is true, pass false to NOT send the event) - */ - setValue: function(value, sendUpdatedEvt) { - if (this.editor) { - var iframeId = this.el.id + "_editor"; - - // if editor iframe not rendered - if (!YAHOO.util.Dom.get(iframeId)) { - // put value in textarea : will be processed by this.editor._setInitialContent (clean html, etc...) - this.el.value = value; - - } else { - this.editor.setEditorHTML(value); - } - } - - if (sendUpdatedEvt !== false) { - // fire update event - this.fireUpdatedEvt(); - } - }, - - /** - * Get the html string - * @return {String} the html string - */ - getValue: function() { - try { - this.editor.saveHTML(); - return this.el.value; - } - catch(ex) { - } - } - - }); - - /** - * Register this class as "html" type - */ - inputEx.registerType("html", inputEx.RTEField); - -})(); \ No newline at end of file diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/RadioButton.js b/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/RadioButton.js deleted file mode 100644 index a99feb635..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/RadioButton.js +++ /dev/null @@ -1,33 +0,0 @@ -(function() { - var inputEx = YAHOO.inputEx, lang = YAHOO.lang, Event = YAHOO.util.Event, Dom = YAHOO.util.Dom; - - /** - * @class Create a YUI Radio button. Here are the added options : - *
    - *
  • choices: list of choices (array of string)
  • - *
  • values: list of returned values (array )
  • - *
  • allowAny: add an option with a string field
  • - *
- * @extends inputEx.RadioField - * @constructor - * @param {Object} options inputEx.Field options object - */ - inputEx.RadioButton = function(options) { - inputEx.RadioButton.superclass.constructor.call(this, options); - }; - - lang.extend(inputEx.RadioButton, inputEx.RadioField, - /** - * @scope inputEx.RadioButton.prototype - */ - { - - - }); - - /** - * Register this class as "radio" type - */ - inputEx.registerType("radiobutton", inputEx.RadioButton); - -})(); \ No newline at end of file diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/RadioField.js b/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/RadioField.js deleted file mode 100644 index 536cd5b53..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/RadioField.js +++ /dev/null @@ -1,234 +0,0 @@ -(function() { - var inputEx = YAHOO.inputEx, lang = YAHOO.lang, Event = YAHOO.util.Event, Dom = YAHOO.util.Dom; - - /** - * @class Create a radio button. Here are the added options : - *
    - *
  • choices: list of choices (array of string)
  • - *
  • values: list of returned values (array )
  • - *
  • allowAny: add an option with a string field
  • - *
- * @extends inputEx.Field - * @constructor - * @param {Object} options inputEx.Field options object - */ - inputEx.RadioField = function(options) { - inputEx.RadioField.superclass.constructor.call(this, options); - }; - - lang.extend(inputEx.RadioField, inputEx.Field, - /** - * @scope inputEx.RadioField.prototype - */ - { - - /** - * Adds the Radio button specific options - * @param {Object} options Options object (inputEx inputParams) as passed to the constructor - */ - setOptions: function(options) { - inputEx.RadioField.superclass.setOptions.call(this, options); - - this.options.className = options.className ? options.className : 'inputEx-Field inputEx-RadioField'; - if (lang.isUndefined(options.allowAny) || options.allowAny === false) { - this.options.allowAny = false; - } else { - this.options.allowAny = {}; - if (lang.isArray(options.allowAny.separators)) { - this.options.allowAny.separators = options.allowAny.separators; - } - ; - this.options.allowAny.validator = (lang.isFunction(options.allowAny.validator)) ? options.allowAny.validator : function(val) { - return true; - }; - this.options.allowAny.value = (!lang.isUndefined(options.allowAny.value)) ? options.allowAny.value : ""; - } - - this.options.choices = options.choices; - // values == choices if not provided - this.options.values = lang.isArray(options.values) ? options.values : options.choices; - }, - - /** - * Render the checkbox and the hidden field - */ - renderComponent: function() { - - this.optionEls = []; - - for (var i = 0; i < this.options.choices.length; i++) { - - var div = inputEx.cn('div', {className: 'inputEx-RadioField-choice'}); - - // radioId MUST be different for each option, - // so add "-opt"+i (where i = option's position) to generated id - var radioId = this.divEl.id ? this.divEl.id + '-field-opt' + i : YAHOO.util.Dom.generateId(); - - var radio = inputEx.cn('input', { id: radioId,type: 'radio', name: this.options.name, value: this.options.values[i] }); - - div.appendChild(radio); - var label = inputEx.cn('label', {"for": radioId, className: 'inputEx-RadioField-rightLabel'}, null, "" + this.options.choices[i]); - div.appendChild(label); - - - this.fieldContainer.appendChild(div); - - this.optionEls.push(radio); - } - - // Build a "any" radio combined with a StringField - if (this.options.allowAny) { - var div = inputEx.cn('div', {className: 'inputEx-RadioField-choice'}); - - if (YAHOO.env.ua.ie) { - this.radioAny = document.createElement(""); - } - else { - this.radioAny = inputEx.cn('input', { type: 'radio', name: this.options.name }); - } - div.appendChild(this.radioAny); - - this.anyField = new inputEx.StringField({value:this.options.allowAny.value}); - Dom.setStyle(this.radioAny, "float", "left"); - Dom.setStyle(this.anyField.getEl(), "float", "left"); - this.anyField.disable(); - - if (this.options.allowAny.separators) { - var sep = inputEx.cn("div", null, {margin:"3px"}, this.options.allowAny.separators[0] || ''); - Dom.setStyle(sep, "float", "left"); - div.appendChild(sep); - } - - div.appendChild(this.anyField.getEl()); - - if (this.options.allowAny.separators) { - var sep = inputEx.cn("div", null, {margin:"3px"}, this.options.allowAny.separators[1] || ''); - Dom.setStyle(sep, "float", "left"); - div.appendChild(sep); - } - - this.fieldContainer.appendChild(div); - this.optionEls.push(this.radioAny); - } - - }, - - /** - * Listen for change events on all radios - */ - initEvents: function() { - Event.addListener(this.optionEls, "change", this.onChange, this, true); - - Event.addFocusListener(this.optionEls, this.onFocus, this, true); - Event.addBlurListener(this.optionEls, this.onBlur, this, true); - - - if (YAHOO.env.ua.ie) { - Event.addListener(this.optionEls, "click", function() { - YAHOO.lang.later(10, this, this.fireUpdatedEvt); - }, this, true); - } - - if (this.anyField) { - this.anyField.updatedEvt.subscribe(function(e) { - inputEx.RadioField.superclass.onChange.call(this, e); - }, this, true); - - // Update radio field style after editing anyField content ! - Event.addBlurListener(this.anyField.el, this.onBlur, this, true); - } - }, - - /** - * Function called when the checkbox is toggled - * @param {Event} e The original 'change' event - */ - onChange: function(e) { - // Enable/disable the "any" field - if (this.radioAny) { - if (this.radioAny == Event.getTarget(e)) { - this.anyField.enable(); - lang.later(50, this.anyField, "focus"); - } - else { - this.anyField.disable(); - } - } - // In IE the fireUpdatedEvent is sent by the click ! We need to send it only once ! - if (!YAHOO.env.ua.ie) { - inputEx.RadioField.superclass.onChange.call(this, e); - } - }, - - /** - * Get the field value - * @return {Any} - */ - getValue: function() { - for (var i = 0; i < this.optionEls.length; i++) { - if (this.optionEls[i].checked) { - if (this.radioAny && this.radioAny == this.optionEls[i]) { - var val = this.anyField.getValue(); - return val; - } - return this.options.values[i]; - } - } - return ""; - }, - - /** - * Set the value of the checkedbox - * @param {Any} value The value schould be one of this.options.values (which defaults to this.options.choices if missing) if allowAny option not true. - * @param {boolean} [sendUpdatedEvt] (optional) Wether this setValue should fire the updatedEvt or not (default is true, pass false to NOT send the event) - */ - setValue: function(value, sendUpdatedEvt) { - var checkAny = true, anyEl; - - for (var i = 0; i < this.optionEls.length; i++) { - if (value == this.options.values[i]) { - this.optionEls[i].checked = true; - checkAny = false; - } else { - this.optionEls[i].checked = false; - } - - if (this.radioAny && this.radioAny == this.optionEls[i]) { - anyEl = this.optionEls[i]; - } - } - - if (this.radioAny && checkAny) { - anyEl.checked = true; - this.anyField.enable(); // enable anyField - this.anyField.setValue(value, false); - } - - // call parent class method to set style and fire updatedEvt - inputEx.StringField.superclass.setValue.call(this, value, sendUpdatedEvt); - }, - - validate: function() { - if (this.options.allowAny) { - for (var i = 0; i < this.optionEls.length; i++) { - if (this.optionEls[i].checked) { - // if "any" option checked - if (this.radioAny && this.radioAny == this.optionEls[i]) { - var val = this.anyField.getValue(); - return this.options.allowAny.validator(val); - } - } - } - } - - return true; - } - - }); - - /** - * Register this class as "radio" type - */ - inputEx.registerType("radio", inputEx.RadioField); - -})(); \ No newline at end of file diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/SelectField.js b/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/SelectField.js deleted file mode 100644 index 9f7db28ab..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/SelectField.js +++ /dev/null @@ -1,234 +0,0 @@ -(function() { - - var inputEx = YAHOO.inputEx, Event = YAHOO.util.Event, lang = YAHOO.lang; - - /** - * @class Create a select field - * @extends inputEx.Field - * @constructor - * @param {Object} options Added options: - *
    - *
  • selectValues: contains the list of options values
  • - *
  • selectOptions: list of option element texts
  • - *
  • multiple: boolean to allow multiple selections
  • - *
- */ - inputEx.SelectField = function(options) { - inputEx.SelectField.superclass.constructor.call(this, options); - }; - lang.extend(inputEx.SelectField, inputEx.Field, - /** - * @scope inputEx.SelectField.prototype - */ - { - /** - * Set the default values of the options - * @param {Object} options Options object (inputEx inputParams) as passed to the constructor - */ - setOptions: function(options) { - inputEx.SelectField.superclass.setOptions.call(this, options); - - this.options.multiple = lang.isUndefined(options.multiple) ? false : options.multiple; - this.options.selectValues = []; - this.options.selectOptions = []; - - for (var i = 0, length = options.selectValues.length; i < length; i++) { - - this.options.selectValues.push(options.selectValues[i]); - // ""+ hack to convert into text (values may be 0 for example) - this.options.selectOptions.push("" + ((options.selectOptions && !lang.isUndefined(options.selectOptions[i])) ? options.selectOptions[i] : options.selectValues[i])); - - } - - }, - - /** - * Build a select tag with options - */ - renderComponent: function() { - - this.el = inputEx.cn('select', {id: this.divEl.id ? this.divEl.id + '-field' : YAHOO.util.Dom.generateId(), name: this.options.name || ''}); - - if (this.options.multiple) { - this.el.multiple = true; - this.el.size = this.options.selectValues.length; - } - - this.optionEls = {}; - - var optionEl; - for (var i = 0; i < this.options.selectValues.length; i++) { - - optionEl = inputEx.cn('option', {value: this.options.selectValues[i]}, null, this.options.selectOptions[i]); - - this.optionEls[this.options.selectOptions[i]] = optionEl; - this.el.appendChild(optionEl); - } - YAHOO.util.Dom.addClass(this.divEl,'selectFieldWrapper'); - this.fieldContainer.appendChild(this.el); - }, - - /** - * Register the "change" event - */ - initEvents: function() { - Event.addListener(this.el, "change", this.onChange, this, true); - Event.addFocusListener(this.el, this.onFocus, this, true); - Event.addBlurListener(this.el, this.onBlur, this, true); - }, - - /** - * Set the value - * @param {String} value The value to set - * @param {boolean} [sendUpdatedEvt] (optional) Wether this setValue should fire the updatedEvt or not (default is true, pass false to NOT send the event) - */ - setValue: function(value, sendUpdatedEvt) { - var index = 0; - var option; - for (var i = 0; i < this.options.selectValues.length; i++) { - if (value === this.options.selectValues[i]) { - option = this.el.childNodes[i]; - option.selected = "selected"; - } - } - - // Call Field.setValue to set class and fire updated event - inputEx.SelectField.superclass.setValue.call(this, value, sendUpdatedEvt); - }, - - /** - * Return the value - * @return {Any} the selected value from the selectValues array - */ - getValue: function() { - return this.options.selectValues[this.el.selectedIndex]; - }, - - /** - * Disable the field - */ - disable: function() { - this.el.disabled = true; - }, - - /** - * Enable the field - */ - enable: function() { - this.el.disabled = false; - }, - - /** - * Add an option in the selector - * @param {Object} item - */ - addOption: function(config) { - - var value = config.value; - var option = "" + (!lang.isUndefined(config.option) ? config.option : config.value); - var nbOptions = this.options.selectOptions.length; - - // position of new option (default last) - var position = nbOptions; - - if (lang.isNumber(config.position) && config.position >= 0 && config.position <= position) { - position = parseInt(config.position, 10); - - } else if (lang.isString(config.before)) { - - for (var i = 0; i < nbOptions; i++) { - if (this.options.selectOptions[i] === config.before) { - position = i; - break; - } - } - - } else if (lang.isString(config.after)) { - - for (var i = 0; i < nbOptions; i++) { - if (this.options.selectOptions[i] === config.after) { - position = i + 1; - break; - } - } - } - - // update values and options lists - this.options.selectValues = this.options.selectValues.slice(0, position).concat([value]).concat(this.options.selectValues.slice(position, nbOptions)); - this.options.selectOptions = this.options.selectOptions.slice(0, position).concat([option]).concat(this.options.selectOptions.slice(position, nbOptions)); - - // new option in select - var newOption = inputEx.cn('option', {value: value}, null, option); - this.optionEls[option] = newOption; - - if (position < nbOptions) { - YAHOO.util.Dom.insertBefore(newOption, this.el.childNodes[position]); - } else { - this.el.appendChild(newOption); - } - - // select new option - if (!!config.selected) { - // setTimeout for IE6 (let time to create dom option) - var that = this; - setTimeout(function() { - that.setValue(value); - }, 0); - } - }, - - removeOption: function(config) { - - var position; - var nbOptions = this.options.selectOptions.length; - var selectedIndex = this.el.selectedIndex; - - if (lang.isNumber(config.position) && config.position >= 0 && config.position <= nbOptions) { - - position = parseInt(config.position, 10); - - } else if (lang.isString(config.option)) { - - for (var i = 0; i < nbOptions; i++) { - if (this.options.selectOptions[i] === config.option) { - position = i; - break; - } - } - - } else if (lang.isString(config.value)) { - - for (var i = 0; i < nbOptions; i++) { - if (this.options.selectValues[i] === config.value) { - position = i; - break; - } - } - } - - if (!lang.isNumber(position)) { - throw new Error("SelectField : invalid or missing position, option or value in removeOption"); - } - - // remove from selectValues / selectOptions array - this.options.selectValues.splice(position, 1); - var removedOption = this.options.selectOptions.splice(position, 1); - - // remove from selector - this.el.removeChild(this.optionEls[removedOption]); - delete this.optionEls[removedOption]; - - // clear if previous selected value doesn't exist anymore - if (selectedIndex == position) { - this.clear(); - } - } - - }); - - /** - * Register this class as "select" type - */ - inputEx.registerType("select", inputEx.SelectField); - -})(); \ No newline at end of file diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/SliderField.js b/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/SliderField.js deleted file mode 100644 index cce178936..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/SliderField.js +++ /dev/null @@ -1,107 +0,0 @@ -(function () { - var inputEx = YAHOO.inputEx,lang = YAHOO.lang; - - /** - * @class Create a slider using YUI widgets - * @extends inputEx.Field - * @constructor - * @param {Object} options inputEx.Field options object - */ - inputEx.SliderField = function(options) { - inputEx.SliderField.superclass.constructor.call(this, options); - }; - - YAHOO.lang.extend(inputEx.SliderField, inputEx.Field, - /** - * @scope inputEx.SliderField.prototype - */ - { - /** - * Set the classname to 'inputEx-SliderField' - * @param {Object} options Options object (inputEx inputParams) as passed to the constructor - */ - setOptions: function(options) { - inputEx.SliderField.superclass.setOptions.call(this, options); - - this.options.className = options.className ? options.className : 'inputEx-SliderField'; - - this.options.minValue = lang.isUndefined(options.minValue) ? 0 : options.minValue; - this.options.maxValue = lang.isUndefined(options.maxValue) ? 100 : options.maxValue; - - this.options.displayValue = lang.isUndefined(options.displayValue) ? true : options.displayValue; - }, - - /** - * render a slider widget - */ - renderComponent: function() { - - this.sliderbg = inputEx.cn('div', {id: YAHOO.util.Dom.generateId(), className: 'inputEx-SliderField-bg'}); - this.sliderthumb = inputEx.cn('div', {className: 'inputEx-SliderField-thumb'}); - this.sliderbg.appendChild(this.sliderthumb); - this.fieldContainer.appendChild(this.sliderbg); - - if (this.options.displayValue) { - this.valueDisplay = inputEx.cn('div', {className: 'inputEx-SliderField-value'}, null, String(this.options.minValue)); - this.fieldContainer.appendChild(this.valueDisplay); - } - - this.fieldContainer.appendChild(inputEx.cn('div', null, {clear: 'both'})); - - this.slider = YAHOO.widget.Slider.getHorizSlider(this.sliderbg, this.sliderthumb, 0, 100); - }, - - initEvents: function() { - - // Fire the updated event when we released the slider - // the slider 'change' event would generate too much events (if used in a group, it gets validated too many times) - this.slider.on('slideEnd', this.fireUpdatedEvt, this, true); - - // Update the displayed value - if (this.options.displayValue) { - this.updatedEvt.subscribe(function(e, params) { - var val = params[0]; - this.valueDisplay.innerHTML = val; - }, this, true); - } - }, - - /** - * Function to set the value - * @param {Any} value The new value - * @param {boolean} [sendUpdatedEvt] (optional) Wether this setValue should fire the updatedEvt or not (default is true, pass false to NOT send the event) - */ - setValue: function(val, sendUpdatedEvt) { - - var v = val; - if (v < this.options.minValue) { - v = this.options.minValue; - } - if (v > this.options.maxValue) { - v = this.options.maxValue; - } - - var percent = Math.floor(v - this.options.minValue) * 100 / this.options.maxValue; - - this.slider.setValue(percent); - - inputEx.SliderField.superclass.setValue.call(this, val, sendUpdatedEvt); - }, - - /** - * Get the value from the slider - * @return {int} The integer value - */ - getValue: function() { - var val = Math.floor(this.options.minValue + (this.options.maxValue - this.options.minValue) * this.slider.getValue() / 100); - return val; - } - - }); - - /** - * Register this class as "slider" type - */ - inputEx.registerType("slider", inputEx.SliderField); - -})(); diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/StringField.js b/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/StringField.js deleted file mode 100644 index 15d875d3e..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/StringField.js +++ /dev/null @@ -1,289 +0,0 @@ -(function() { - - var inputEx = YAHOO.inputEx, lang = YAHOO.lang, Event = YAHOO.util.Event, Dom = YAHOO.util.Dom; - - /** - * @class Basic string field (equivalent to the input type "text") - * @extends inputEx.Field - * @constructor - * @param {Object} options Added options: - *
    - *
  • regexp: regular expression used to validate (otherwise it always validate)
  • - *
  • size: size attribute of the input
  • - *
  • maxLength: maximum size of the string field (no message display, uses the maxlength html attribute)
  • - *
  • minLength: minimum size of the string field (will display an error message if shorter)
  • - *
  • typeInvite: string displayed when the field is empty
  • - *
  • readonly: set the field as readonly
  • - *
- */ - inputEx.StringField = function(options) { - inputEx.StringField.superclass.constructor.call(this, options); - - if (this.options.typeInvite) { - this.updateTypeInvite(); - } - }; - - lang.extend(inputEx.StringField, inputEx.Field, - /** - * @scope inputEx.StringField.prototype - */ - { - /** - * Set the default values of the options - * @param {Object} options Options object (inputEx inputParams) as passed to the constructor - */ - setOptions: function(options) { - inputEx.StringField.superclass.setOptions.call(this, options); - this.options.regexp = options.regexp; - this.options.size = options.size; - this.options.maxLength = options.maxLength; - this.options.minLength = options.minLength; - this.options.typeInvite = options.typeInvite; - this.options.readonly = options.readonly; - this.options.forceLowerCase = options.forceLowerCase; - this.options.forceAlphaNumeric = options.forceAlphaNumeric; - this.options.forceAlphaNumericUnderscore = options.forceAlphaNumericUnderscore; - this.options.noSpaces = options.noSpaces; - this.options.ucFirst = options.ucFirst; - this.options.lcFirst = options.lcFirst; - this.options.firstCharNonNumeric = options.firstCharNonNumeric; - this.options.advancedMode = options.advancedMode ? options.advancedMode : false; - this.options.classname = options.classname; - this.options.placeholder = options.placeholder; - }, - - - /** - * Render an 'INPUT' DOM node - */ - renderComponent: function() { - - // This element wraps the input node in a float: none div - this.wrapEl = inputEx.cn('div', {className: 'inputEx-StringField-wrapper'}); - - // Attributes of the input field - var attributes = {}; - attributes.type = 'text'; - attributes.id = this.divEl.id ? this.divEl.id + '-field' : YAHOO.util.Dom.generateId(); - if (this.options.size) attributes.size = this.options.size; - if (this.options.name) attributes.name = this.options.name; - if (this.options.placeholder) attributes.placeholder = this.options.placeholder; - if (this.options.readonly) attributes.readonly = 'readonly'; - - if (this.options.maxLength) attributes.maxLength = this.options.maxLength; - - // Create the node - this.el = inputEx.cn('input', attributes); - - // Append it to the main element - this.wrapEl.appendChild(this.el); - Dom.addClass(this.divEl,'textfieldWrapper'); - if(this.options.advancedMode) { - Dom.addClass(this.divEl, "advancedMode"); - } - if(this.options.classname) { - Dom.addClass(this.divEl, this.options.classname); - } - this.fieldContainer.appendChild(this.wrapEl); - }, - - /** - * Register the change, focus and blur events - */ - initEvents: function() { - Event.addListener(this.el, "change", this.onChange, this, true); - - if (YAHOO.env.ua.ie) { // refer to inputEx-95 - var field = this.el; - new YAHOO.util.KeyListener(this.el, {keys:[13]}, {fn:function() { - field.blur(); - field.focus(); - }}).enable(); - } - - Event.addFocusListener(this.el, this.onFocus, this, true); - Event.addBlurListener(this.el, this.onBlur, this, true); - - Event.addListener(this.el, "keypress", this.onKeyPress, this, true); - Event.addListener(this.el, "keyup", this.onKeyUp, this, true); - }, - - /** - * Return the string value - * @param {String} The string value - */ - getValue: function() { - return (this.options.typeInvite && this.el.value == this.options.typeInvite) ? '' : this.el.value; - }, - - /** - * Function to set the value - * @param {String} value The new value - * @param {boolean} [sendUpdatedEvt] (optional) Wether this setValue should fire the updatedEvt or not (default is true, pass false to NOT send the event) - */ - setValue: function(value, sendUpdatedEvt) { - this.el.value = value; - this.el.setAttribute('title', value); - // call parent class method to set style and fire updatedEvt - inputEx.StringField.superclass.setValue.call(this, value, sendUpdatedEvt); - }, - - /** - * Uses the optional regexp to validate the field value - */ - validate: function() { - var val = this.getValue(); - - // empty field - if (val == '') { - // validate only if not required - return !this.options.required; - } - - // Check regex matching and minLength (both used in password field...) - var result = true; - - // if we are using a regular expression - if (this.options.regexp) { - var reg = new RegExp(this.options.regexp); - result = result && reg.test(val); - } - if (this.options.minLength) { - result = result && val.length >= this.options.minLength; - } - if (this.options.forceAlphaNumeric) { - var forceAlphaNumericRegex = new RegExp(/[^a-zA-Z0-9]/g); - result = result && !forceAlphaNumericRegex.test(val); - } - if (this.options.forceAlphaNumericUnderscore) { - var forceAlphaNumericUnderscoreRegex = new RegExp(/[^a-zA-Z0-9_]/g); - result = result && !forceAlphaNumericUnderscoreRegex.test(val); - } - if (this.options.firstCharNonNumeric) { - var firstCharNonNumericRegex = new RegExp(/(^[a-zA-Z])/); - result = result && firstCharNonNumericRegex.test(val); - } - return result; - }, - - /** - * Disable the field - */ - disable: function() { - this.el.disabled = true; - }, - - /** - * Enable the field - */ - enable: function() { - this.el.disabled = false; - }, - - /** - * Set the focus to this field - */ - focus: function() { - // Can't use lang.isFunction because IE >= 6 would say focus is not a function (IE says it's an object) !! - if (!!this.el && !lang.isUndefined(this.el.focus)) { - this.el.focus(); - } - }, - - /** - * Add the minLength string message handling - */ - getStateString: function(state) { - if (state == inputEx.stateInvalid && this.options.minLength && this.el.value.length < this.options.minLength) { - return inputEx.messages.stringTooShort[0] + this.options.minLength + inputEx.messages.stringTooShort[1]; - } - return inputEx.StringField.superclass.getStateString.call(this, state); - }, - - /** - * Display the type invite after setting the class - */ - setClassFromState: function() { - inputEx.StringField.superclass.setClassFromState.call(this); - - // display/mask typeInvite - if (this.options.typeInvite) { - this.updateTypeInvite(); - } - }, - - updateTypeInvite: function() { - - // field not focused - if (!Dom.hasClass(this.divEl, "inputEx-focused")) { - - // show type invite if field is empty - if (this.isEmpty()) { - Dom.addClass(this.divEl, "inputEx-typeInvite"); - this.el.value = this.options.typeInvite; - - // important for setValue to work with typeInvite - } else { - Dom.removeClass(this.divEl, "inputEx-typeInvite"); - } - - // field focused : remove type invite - } else { - if (Dom.hasClass(this.divEl, "inputEx-typeInvite")) { - // remove text - this.el.value = ""; - - // remove the "empty" state and class - this.previousState = null; - Dom.removeClass(this.divEl, "inputEx-typeInvite"); - } - } - }, - - /** - * Clear the typeInvite when the field gains focus - */ - onFocus: function(e) { - inputEx.StringField.superclass.onFocus.call(this, e); - - if (this.options.typeInvite) { - this.updateTypeInvite(); - } - }, - - onKeyPress: function(e) { - // override me - }, - - onKeyUp: function(e) { - if (this.options.forceLowerCase) { - this.el.value = this.el.value.toLowerCase(); - } - if (this.options.noSpaces) { - this.el.value = this.el.value.replace(/\s/g, ''); - } - if (this.options.lcFirst || this.options.ucFirst) { - var first = this.el.value.charAt(0); - var tmp = this.el.value.substr(1); - if (this.options.lcFirst) { - first = first.toLowerCase(); - } else { - first = first.toUpperCase(); - } - this.el.value = first + tmp; - } - } - - } - ); - - - inputEx.messages.stringTooShort = ["This field should contain at least "," numbers or characters"]; - - /** - * Register this class as "string" type - */ - inputEx.registerType("string", inputEx.StringField); - -})(); diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/Textarea.js b/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/Textarea.js deleted file mode 100644 index 433df343f..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/Textarea.js +++ /dev/null @@ -1,104 +0,0 @@ - (function() { - - var inputEx = YAHOO.inputEx, Event = YAHOO.util.Event; - - /** - * @class Create a textarea input - * @extends inputEx.Field - * @constructor - * @param {Object} options Added options: - *
    - *
  • rows: rows attribute
  • - *
  • cols: cols attribute
  • - *
- */ - inputEx.Textarea = function(options) { - inputEx.Textarea.superclass.constructor.call(this, options); - }; - YAHOO.lang.extend(inputEx.Textarea, inputEx.StringField, - /** - * @scope inputEx.Textarea.prototype - */ - { - - /** - * Set the specific options (rows and cols) - * @param {Object} options Options object (inputEx inputParams) as passed to the constructor - */ - setOptions: function(options) { - inputEx.Textarea.superclass.setOptions.call(this, options); - this.options.rows = options.rows || 6; - this.options.cols = options.cols || 23; - this.options.advancedMode = options.advancedMode ? options.advancedMode : false; - this.options.placeholder = options.placeholder; - }, - - /** - * Render an 'INPUT' DOM node - */ - renderComponent: function() { - - // This element wraps the input node in a float: none div - this.wrapEl = inputEx.cn('div', {className: 'inputEx-StringField-wrapper'}); - - // Attributes of the input field - var attributes = {}; - attributes.id = this.divEl.id ? this.divEl.id + '-field' : YAHOO.util.Dom.generateId(); - attributes.rows = this.options.rows; - attributes.cols = this.options.cols; - if (this.options.name) attributes.name = this.options.name; - if (this.options.placeholder) attributes.placeholder = this.options.placeholder; - - //if(this.options.maxLength) attributes.maxLength = this.options.maxLength; - - // Create the node - this.el = inputEx.cn('textarea', attributes, null, this.options.value); - - // Append it to the main element - this.wrapEl.appendChild(this.el); - YAHOO.util.Dom.addClass(this.divEl,'textfieldWrapper'); - if(this.options.advancedMode) { - YAHOO.util.Dom.addClass(this.divEl, "advancedMode"); - } - this.fieldContainer.appendChild(this.wrapEl); - }, - - /** - * Uses the optional regexp to validate the field value - */ - validate: function() { - var previous = inputEx.Textarea.superclass.validate.call(this); - - // emulate maxLength property for textarea - // -> user can still type but field is invalid - if (this.options.maxLength) { - previous = previous && this.getValue().length <= this.options.maxLength; - } - - return previous; - }, - - /** - * Add the minLength string message handling - */ - getStateString: function(state) { - if (state == inputEx.stateInvalid && this.options.minLength && this.el.value.length < this.options.minLength) { - return inputEx.messages.stringTooShort[0] + this.options.minLength + inputEx.messages.stringTooShort[1]; - - // Add message too long - } else if (state == inputEx.stateInvalid && this.options.maxLength && this.el.value.length > this.options.maxLength) { - return inputEx.messages.stringTooLong[0] + this.options.maxLength + inputEx.messages.stringTooLong[1]; - } - return inputEx.Textarea.superclass.getStateString.call(this, state); - } - - }); - - inputEx.messages.stringTooLong = ["This field should contain at most "," numbers or characters"]; - - /** - * Register this class as "text" type - */ - inputEx.registerType("text", inputEx.Textarea); - -})(); \ No newline at end of file diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/TimeField.js b/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/TimeField.js deleted file mode 100644 index bad3444dc..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/TimeField.js +++ /dev/null @@ -1,72 +0,0 @@ -(function() { - - var inputEx = YAHOO.inputEx, Event = YAHOO.util.Event, lang = YAHOO.lang; - - /** - * @class A field limited to number inputs (floating) - * @extends inputEx.CombineField - * @constructor - * @param {Object} options inputEx.Field options object - */ - inputEx.TimeField = function(options) { - - - var h = []; - for (var i = 0; i < 24; i++) { - var s = ""; - if (i < 10) { - s = "0"; - } - s += i; - h.push(s); - } - var m = []; - var secs = []; - for (var i = 0; i < 60; i++) { - var s = ""; - if (i < 10) { - s = "0"; - } - s += i; - m.push(s); - secs.push(s); - } - options.fields = [ - {type: 'select', inputParams: {selectOptions: h, selectValues: h} }, - {type: 'select', inputParams: {selectOptions: m, selectValues: m} }, - {type: 'select', inputParams: {selectOptions: secs, selectValues: secs} } - ]; - options.separators = options.separators || [false,":",":",false]; - inputEx.TimeField.superclass.constructor.call(this, options); - }; - lang.extend(inputEx.TimeField, inputEx.CombineField, - /** - * @scope inputEx.TimeField.prototype - */ - { - /** - * Returns a string like HH:MM:SS - * @return {String} Hour string - */ - getValue: function() { - var values = inputEx.TimeField.superclass.getValue.call(this); - return values.join(':'); - }, - - /** - * Set the value - * @param {String} str Hour string (format HH:MM:SS) - * @param {boolean} [sendUpdatedEvt] (optional) Wether this setValue should fire the updatedEvt or not (default is true, pass false to NOT send the event) - */ - setValue: function(str, sendUpdatedEvt) { - inputEx.TimeField.superclass.setValue.call(this, str.split(':'), sendUpdatedEvt); - } - - }); - - /** - * Register this class as "time" type - */ - inputEx.registerType("time", inputEx.TimeField); - -})(); \ No newline at end of file diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/TreeField.js b/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/TreeField.js deleted file mode 100644 index 85197566f..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/TreeField.js +++ /dev/null @@ -1,109 +0,0 @@ -(function() { - - var inputEx = YAHOO.inputEx, Event = YAHOO.util.Event, Dom = YAHOO.util.Dom; - - /** - * @class Meta field to create trees - * @extends inputEx.ListField - * @constructor - * @param {Object} options inputEx.Field options object - */ - inputEx.TreeField = function(options) { - inputEx.TreeField.superclass.constructor.call(this, options); - }; - YAHOO.lang.extend(inputEx.TreeField, inputEx.ListField, - /** - * @scope inputEx.TreeField.prototype - */ - { - /** - * Adds a new line to the List Field - * @param {Any} value Value of the subelement - * @return {inputEx.Field} instance of the created field (inputEx.Field or derivative) - */ - renderSubField: function(value) { - - // Div that wraps the deleteButton + the subField - var newDiv = inputEx.cn('div'); - - // Delete button - var delButton = inputEx.cn('img', {src: inputEx.spacerUrl, className: 'inputEx-ListField-delButton'}); - Event.addListener(delButton, 'click', this.onDelete, this, true); - newDiv.appendChild(delButton); - - var el = new inputEx.TreeField({parentNode: this, elementType: this.options.elementType, value: value }); - var subFieldEl = el.getEl(); - Dom.setStyle(subFieldEl, 'margin-left', '4px'); - Dom.setStyle(subFieldEl, 'float', 'left'); - newDiv.appendChild(subFieldEl); - - // Subscribe the onChange event to resend it - el.updatedEvt.subscribe(this.onChange, this, true); - - // Line breaker - newDiv.appendChild(inputEx.cn('div', null, {clear: "both"})); - - //this.divEl.appendChild(newDiv); - this.childContainer.appendChild(newDiv); - - return el; - }, - - - /** - * Render the addButton and childContainer - */ - renderComponent: function() { - - // Add element button - this.addButton = inputEx.cn('img', {src: inputEx.spacerUrl, className: 'inputEx-ListField-addButton'}); - Dom.setStyle(this.addButton, 'float', 'left'); - this.fieldContainer.appendChild(this.addButton); - - // Instanciate the new subField - this.subField = inputEx.buildField(this.options.elementType); - - var subFieldEl = this.subField.getEl(); - Dom.setStyle(subFieldEl, 'margin-left', '4px'); - Dom.setStyle(subFieldEl, 'float', 'left'); - this.fieldContainer.appendChild(subFieldEl); - - // Line breaker - this.fieldContainer.appendChild(inputEx.cn('div', null, {clear: "both"}, this.options.listLabel)); - - - // Div element to contain the children - this.childContainer = inputEx.cn('div', {className: 'inputEx-ListField-childContainer'}); - this.fieldContainer.appendChild(this.childContainer); - }, - - /** - * Set the value - * @param {Any} obj The tree object - * @param {boolean} [sendUpdatedEvt] (optional) Wether this setValue should fire the updatedEvt or not (default is true, pass false to NOT send the event) - */ - setValue: function(obj, sendUpdatedEvt) { - this.subField.setValue(obj.value, false); - inputEx.TreeField.superclass.setValue.call(this, obj.childValues, sendUpdatedEvt); - }, - - /** - * Get the value - * @return {Any} The tree object - */ - getValue: function() { - var obj = { - value: this.subField.getValue(), - childValues: inputEx.TreeField.superclass.getValue.call(this) - }; - return obj; - } - - }); - - /** - * Register this class as "tree" type - */ - inputEx.registerType("tree", inputEx.TreeField); - -})(); \ No newline at end of file diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/TypeField.js b/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/TypeField.js deleted file mode 100644 index 2f43fe07d..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/TypeField.js +++ /dev/null @@ -1,429 +0,0 @@ -(function() { - - var inputEx = YAHOO.inputEx, Event = YAHOO.util.Event, Dom = YAHOO.util.Dom, lang = YAHOO.lang; - - /** - * @class TypeField is a field to create fields. The user can create any value he wants by switching fields. - * @extends inputEx.Field - * @constructor - * @param {Object} options Standard inputEx inputParams definition - */ - inputEx.TypeField = function(options) { - inputEx.TypeField.superclass.constructor.call(this, options); - - // Build the updateFieldValue - if (lang.isUndefined(this.options.value)) { - this.updateFieldValue(); - } - }; - - lang.extend(inputEx.TypeField, inputEx.Field, - /** - * @scope inputEx.TypeField.prototype - */ - { - - /** - * Render the TypeField: create a button with a property panel that contains the field options - */ - renderComponent: function() { - // DIV element to wrap the Field "default value" - this.fieldValueWrapper = inputEx.cn('div', {className: "inputEx-TypeField-FieldValueWrapper"}); - this.fieldContainer.appendChild(this.fieldValueWrapper); - - // Render the popup that will contain the property form - this.propertyPanel = inputEx.cn('div', {className: "inputEx-TypeField-PropertiesPanel"}, {display: 'none'}); - - // The list of all inputEx declared types to be used in the "type" selector - var selectOptions = []; - for (var key in inputEx.typeClasses) { - if (inputEx.typeClasses.hasOwnProperty(key)) { - selectOptions.push(key); - } - } - this.typeSelect = new inputEx.SelectField({label: "Type", selectOptions: selectOptions, selectValues: selectOptions, parentEl: this.propertyPanel}); - - // DIV element to wrap the options group - this.groupOptionsWrapper = inputEx.cn('div'); - this.propertyPanel.appendChild(this.groupOptionsWrapper); - - // Button to switch the panel - this.button = inputEx.cn('div', {className: "inputEx-TypeField-EditButton"}); - this.button.appendChild(this.propertyPanel); - this.fieldContainer.appendChild(this.button); - - // Build the groupOptions - this.rebuildGroupOptions(); - }, - - /** - * Adds 2 event listeners: - * - on the button to toggel the propertiesPanel - */ - initEvents: function() { - inputEx.TypeField.superclass.initEvents.call(this); - - // "Toggle the properties panel" button : - Event.addListener(this.button, 'click', this.onTogglePropertiesPanel, this, true); - - // Prevent the button to receive a "click" event if the propertyPanel doesn't catch it - Event.addListener(this.propertyPanel, 'click', function(e) { - Event.stopPropagation(e); - }, this, true); - - // Listen the "type" selector to update the groupOptions - // Hack the type selector to rebuild the group option - this.typeSelect.updatedEvt.subscribe(this.rebuildGroupOptions, this, true); - }, - - /** - * Regenerate the property form - */ - rebuildGroupOptions: function() { - try { - - // Save the previous value: - var previousVal = null; - - // Close a previously created group - if (this.group) { - previousVal = this.group.getValue(); - this.group.close(); - this.group.destroy(); - this.groupOptionsWrapper.innerHTML = ""; - } - - // Get value is directly the class !! - var classO = inputEx.getFieldClass(this.typeSelect.getValue()); - - // Instanciate the group - var groupParams = {fields: classO.groupOptions, parentEl: this.groupOptionsWrapper}; - this.group = new inputEx.Group(groupParams); - - // Set the previous name/label - if (previousVal) { - this.group.setValue({ - name: previousVal.name, - label: previousVal.label - }, false); - } - - // Register the updated event - this.group.updatedEvt.subscribe(this.onChangeGroupOptions, this, true); - - // Create the value field - this.updateFieldValue(); - - } catch(ex) { - if (YAHOO.lang.isObject(window["console"]) && YAHOO.lang.isFunction(window["console"]["log"])) { - console.log("inputEx.TypeField.rebuildGroupOptions: ", ex); - } - } - - }, - - /** - * Toggle the property panel - */ - onTogglePropertiesPanel: function() { - if (this.propertyPanel.style.display == 'none') { - this.propertyPanel.style.display = ''; - Dom.addClass(this.button, "opened"); - } else { - this.propertyPanel.style.display = 'none'; - Dom.removeClass(this.button, "opened"); - } - }, - - /** - * Update the fieldValue with the changed properties - */ - onChangeGroupOptions: function() { - - // Update the field value - this.updateFieldValue(); - - // Fire updatedEvt - this.fireUpdatedEvt(); - }, - - /** - * Update the fieldValue - */ - updateFieldValue: function() { - try { - // Close previous field - if (this.fieldValue) { - this.fieldValue.close(); - this.fieldValue.destroy(); - this.fieldValue = null; - this.fieldValueWrapper.innerHTML = ''; - } - - // Re-build the fieldValue - var fieldOptions = { type: this.getValue().type, inputParams: this.group.getValue() }; - fieldOptions.inputParams.parentEl = this.fieldValueWrapper; - this.fieldValue = inputEx(fieldOptions); - - // Refire the event when the fieldValue is updated - this.fieldValue.updatedEvt.subscribe(this.fireUpdatedEvt, this, true); - } - catch(ex) { - console.log("Error while updateFieldValue", ex.message); - } - }, - - - /** - * Set the value of the label, typeProperties and group - * @param {Object} value Type object configuration - * @param {boolean} [sendUpdatedEvt] (optional) Wether this setValue should fire the updatedEvt or not (default is true, pass false to NOT send the event) - */ - setValue: function(value, sendUpdatedEvt) { - - // Set type in property panel - this.typeSelect.setValue(value.type, false); - - // Rebuild the panel propertues - this.rebuildGroupOptions(); - - // Set the parameters value - this.group.setValue(value.inputParams, false); - - // Rebuild the fieldValue - this.updateFieldValue(); - - // Set field value - if (lang.isObject(value.inputParams) && typeof value.inputParams.value != "undefined") { - this.fieldValue.setValue(value.inputParams.value); - } - - if (sendUpdatedEvt !== false) { - // fire update event - this.fireUpdatedEvt(); - } - }, - - /** - * Return the config for a entry in an Group - * @return {Object} Type object configuration - */ - getValue: function() { - - function getDefaultValueForField(classObj, paramName) { - for (var i = 0; i < classObj.groupOptions.length; i++) { - var f = classObj.groupOptions[i]; - if (f.inputParams.name == paramName) return f.inputParams.value; - } - return undefined; - } - - ; - - var inputParams = this.group.getValue(); - var classObj = inputEx.getFieldClass(this.typeSelect.getValue()); - - for (var key in inputParams) { - if (inputParams.hasOwnProperty(key)) { - var value1 = getDefaultValueForField(classObj, key); - var value2 = inputParams[key]; - if (value1 == value2) { - inputParams[key] = undefined; - } - } - } - - - var obj = { - // The field type - type: this.typeSelect.getValue(), - - // The field parameters - inputParams: inputParams - }; - - // The value defined by the fieldValue - if (this.fieldValue) obj.inputParams.value = this.fieldValue.getValue(); - - return obj; - } - - }); - - - /** - * Register this class as "select" type - */ - inputEx.registerType("type", inputEx.TypeField); - - - /** - * group Options for each field - */ - inputEx.Field.groupOptions = [ - { type: "string", inputParams:{label: "Label", name: "label", value: ''} }, - { type: "string", inputParams:{label: "Name", name: "name", value: ''} }, - { type: "string", inputParams: {label: "Description",name: "description", value: ''} }, - { type: "boolean", inputParams: {label: "Required?",name: "required", value: false} }, - { type: "boolean", inputParams: {label: "Show messages",name: "showMsg", value: false} } - ]; - - inputEx.StringField.groupOptions = inputEx.StringField.superclass.constructor.groupOptions.concat([ - { type: 'string', inputParams: { label: 'Type invite', name: 'typeInvite', value: ''}}, - { type: 'integer', inputParams: { label: 'Size', name: 'size', value: 20}}, - { type: 'integer', inputParams: { label: 'Min. length', name: 'minLength', value: 0}} - ]); - - - if (inputEx.CheckBox) { - inputEx.CheckBox.groupOptions = inputEx.CheckBox.superclass.constructor.groupOptions.concat([ - {type: 'string', inputParams: {label: 'Right Label', name: 'rightLabel'} } - ]); - } - - if (inputEx.ColorField) { - inputEx.ColorField.groupOptions = inputEx.ColorField.superclass.constructor.groupOptions.concat([]); - } - - if (inputEx.DateField) { - inputEx.DateField.groupOptions = inputEx.DateField.superclass.constructor.groupOptions.concat([ - {type: 'select', inputParams: {label: 'Date format', name: 'dateFormat', selectOptions: ["m/d/Y", "d/m/Y"], selectValues: ["m/d/Y", "d/m/Y"] } } - ]); - } - - if (inputEx.CombineField) { - inputEx.CombineField.groupOptions = inputEx.CombineField.superclass.constructor.groupOptions.concat([ - { type: 'list', inputParams: {name: 'fields', label: 'Elements', required: true, elementType: {type: 'type'} } }, - { type: 'list', inputParams: {name: 'separators', label: 'Separators', required: true } } - ]); - } - - if (inputEx.PairField) { - inputEx.PairField.groupOptions = inputEx.Field.groupOptions.concat([ - { type: 'type', inputParams: {label: 'Left field', name: 'leftFieldOptions', required: true} }, - { type: 'type', inputParams: {label: 'Right field', name: 'rightFieldOptions', required: true} } - ]); - } - - if (inputEx.EmailField) { - inputEx.EmailField.groupOptions = ([]).concat(inputEx.StringField.groupOptions); - } - - if (inputEx.IPv4Field) { - inputEx.IPv4Field.groupOptions = []; - } - - if (inputEx.PasswordField) { - inputEx.PasswordField.groupOptions = inputEx.PasswordField.superclass.constructor.groupOptions.concat([ - {type: 'boolean', inputParams: {label: 'Strength indicator', name: 'strengthIndicator', value: false} }, - {type: 'boolean', inputParams: {label: 'CapsLock warning', name: 'capsLockWarning', value: false} } - ]); - } - - - if (inputEx.RadioField) { - inputEx.RadioField.groupOptions = inputEx.RadioField.superclass.constructor.groupOptions.concat([ - {type: 'list', inputParams: {label: 'Options', name: 'choices', elementType: {type: 'string'} } }, - {type: 'boolean', inputParams: {label: 'Allow custom value', name: 'allowAny'}, value: false } - ]); - } - - if (inputEx.RTEField) { - inputEx.RTEField.groupOptions = inputEx.RTEField.superclass.constructor.groupOptions.concat([]); - } - - if (inputEx.UrlField) { - inputEx.UrlField.groupOptions = inputEx.UrlField.superclass.constructor.groupOptions.concat([ - { type: 'boolean', inputParams: {label: 'Display favicon', name:'favicon', value: true}} - ]); - } - - if (inputEx.Textarea) { - inputEx.Textarea.groupOptions = inputEx.Textarea.superclass.constructor.groupOptions.concat([ - { type: 'integer', inputParams: {label: 'Rows', name: 'rows', value: 6} }, - { type: 'integer', inputParams: {label: 'Cols', name: 'cols', value: 23} } - ]); - } - - if (inputEx.SelectField) { - inputEx.SelectField.groupOptions = inputEx.SelectField.superclass.constructor.groupOptions.concat([ - { type: 'list', inputParams: {name: 'selectValues', label: 'Values', elementType: {type: 'string'}, required: true } }, - { type: 'list', inputParams: {name: 'selectOptions', label: 'Options', elementType: {type: 'string'} } } - ]); - } - - - if (inputEx.SliderField) { - inputEx.SliderField.groupOptions = inputEx.SliderField.superclass.constructor.groupOptions.concat([ - { type: 'integer', inputParams: {label: 'Min. value', name: 'minValue', value: 0} }, - { type: 'integer', inputParams: {label: 'Max. value', name: 'maxValue', value: 100} } - ]); - } - - if (inputEx.ListField && typeof inputEx.ListField.superclass.constructor.groupOptions != 'undefined') { - inputEx.ListField.groupOptions = inputEx.ListField.superclass.constructor.groupOptions.concat([ - { type: 'string', inputParams: {label: 'List label', name: 'listLabel', value: ''}}, - { type: 'type', inputParams: {label: 'List element type', required: true, name: 'elementType'} } - ]); - } - - - if (inputEx.IntegerField) { - inputEx.IntegerField.groupOptions = inputEx.IntegerField.superclass.constructor.groupOptions.concat([ - //{ type: 'integer', inputParams: {label: 'Radix', name: 'radix', value: 10}}, - {type: 'boolean', inputParams: {label: 'Accept negative', name: 'negative', value: false} } - ]); - } - - if (inputEx.NumberField) { - inputEx.NumberField.groupOptions = inputEx.NumberField.superclass.constructor.groupOptions.concat([]); - } - - if (inputEx.VectorField) { - inputEx.VectorField.groupOptions = inputEx.Field.groupOptions.concat([ - { type: 'integer', inputParams: { label: 'Dimension', name:'dimension', value: 2}}, - { type: 'integer', inputParams: { label: 'Size', name:'size', value: 3}}, - { type: 'list', inputParams: {name: 'separators', label: 'Separators', required: true } } - ]); - } - - inputEx.TypeField.groupOptions = inputEx.TypeField.superclass.constructor.groupOptions.concat([]); - - - inputEx.Group.groupOptions = [ - { type: "string", inputParams:{label: "Name", name: "name", value: ''} }, - { type: 'string', inputParams: { label: 'Legend', name:'legend'}}, - { type: 'boolean', inputParams: {label: 'Collapsible', name:'collapsible', value: false}}, - { type: 'boolean', inputParams: {label: 'Collapsed', name:'collapsed', value: false}}, - { type: 'list', inputParams:{ label: 'Fields', name: 'fields', elementType: {type: 'type' } } } - ]; - - - if (inputEx.Form) { - inputEx.Form.groupOptions = inputEx.Form.superclass.constructor.groupOptions.concat([ - {type: 'list', inputParams:{ - label: 'Buttons', - name: 'buttons', - elementType: { - type: 'group', - inputParams: { - fields: [ - { inputParams: {label: 'Label', name: 'value'}}, - { type: 'select', inputParams: {label: 'Type', name: 'type', selectValues:["button", "submit"]} } - ] - } - } - } - } - ]); - } - - - if (inputEx.InPlaceEdit) { - inputEx.InPlaceEdit.groupOptions = inputEx.InPlaceEdit.superclass.constructor.groupOptions.concat([ - { type:'type', inputParams: {label: 'Editor', name: 'editorField'} } - ]); - } - - -})(); \ No newline at end of file diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/UneditableField.js b/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/UneditableField.js deleted file mode 100644 index 15c1d35cd..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/UneditableField.js +++ /dev/null @@ -1,61 +0,0 @@ -(function() { - - var inputEx = YAHOO.inputEx; - - /** - * @class Create a uneditable field where you can stick the html you want - * Added Options: - *
    - *
  • visu: inputEx visu type
  • - *
- * @extends inputEx.Field - * @constructor - * @param {Object} options inputEx.Field options object - */ - inputEx.UneditableField = function(options) { - inputEx.UneditableField.superclass.constructor.call(this, options); - }; - YAHOO.lang.extend(inputEx.UneditableField, inputEx.Field, - /** - * @scope inputEx.UneditableField.prototype - */ - { - - /** - * Set the default values of the options - * @param {Object} options Options object (inputEx inputParams) as passed to the constructor - */ - setOptions: function(options) { - inputEx.UneditableField.superclass.setOptions.call(this, options); - this.options.visu = options.visu; - }, - - /** - * Store the value and update the visu - * @param {Any} val The value that will be sent to the visu - * @param {boolean} [sendUpdatedEvt] (optional) Wether this setValue should fire the updatedEvt or not (default is true, pass false to NOT send the event) - */ - setValue: function(val, sendUpdatedEvt) { - this.value = val; - - inputEx.renderVisu(this.options.visu, val, this.fieldContainer); - - inputEx.UneditableField.superclass.setValue.call(this, val, sendUpdatedEvt); - }, - - /** - * Return the stored value - * @return {Any} The previously stored value - */ - getValue: function() { - return this.value; - } - - }); - - /** - * Register this class as "url" type - */ - inputEx.registerType("uneditable", inputEx.UneditableField); - -})(); \ No newline at end of file diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/UrlField.js b/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/UrlField.js deleted file mode 100644 index a242465d5..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/fields/UrlField.js +++ /dev/null @@ -1,112 +0,0 @@ -(function() { - - var inputEx = YAHOO.inputEx, lang = YAHOO.lang; - - /** - * @class Adds an url regexp, and display the favicon at this url - * @extends inputEx.StringField - * @constructor - * @param {Object} options inputEx.Field options object - *
    - *
  • favicon: boolean whether the domain favicon.ico should be displayed or not (default is true, except for https)
  • - *
- */ - inputEx.UrlField = function(options) { - inputEx.UrlField.superclass.constructor.call(this, options); - }; - - lang.extend(inputEx.UrlField, inputEx.StringField, - /** - * @scope inputEx.UrlField.prototype - */ - { - - /** - * Adds the invalid Url message - * @param {Object} options Options object (inputEx inputParams) as passed to the constructor - */ - setOptions: function(options) { - inputEx.UrlField.superclass.setOptions.call(this, options); - - this.options.className = options.className ? options.className : "inputEx-Field inputEx-UrlField"; - this.options.messages.invalid = inputEx.messages.invalidUrl; - this.options.favicon = lang.isUndefined(options.favicon) ? (("https:" == document.location.protocol) ? false : true) : options.favicon; - this.options.size = options.size || 50; - - // validate with url regexp - this.options.regexp = inputEx.regexps.url; - }, - - /** - * Adds a img tag before the field to display the favicon - */ - render: function() { - inputEx.UrlField.superclass.render.call(this); - this.el.size = this.options.size; - - if (!this.options.favicon) { - YAHOO.util.Dom.addClass(this.el, 'nofavicon'); - } - - // Create the favicon image tag - if (this.options.favicon) { - this.favicon = inputEx.cn('img', {src: inputEx.spacerUrl}); - this.fieldContainer.insertBefore(this.favicon, this.fieldContainer.childNodes[0]); - - // focus field when clicking on favicon - YAHOO.util.Event.addListener(this.favicon, "click", function() { - this.focus(); - }, this, true); - } - }, - - setClassFromState: function() { - inputEx.UrlField.superclass.setClassFromState.call(this); - - if (this.options.favicon) { - // try to update with url only if valid url (else pass null to display inputEx.spacerUrl) - this.updateFavicon((this.previousState == inputEx.stateValid) ? this.getValue() : null); - } - }, - - - updateFavicon: function(url) { - var newSrc = url ? url.match(/https?:\/\/[^\/]*/) + '/favicon.ico' : inputEx.spacerUrl; - if (newSrc != this.favicon.src) { - - // Hide the favicon - inputEx.sn(this.favicon, null, {visibility: 'hidden'}); - - // Change the src - this.favicon.src = newSrc; - - // Set the timer to launch displayFavicon in 1s - if (this.timer) { - clearTimeout(this.timer); - } - var that = this; - this.timer = setTimeout(function() { - that.displayFavicon(); - }, 1000); - } - }, - - /** - * Display the favicon if the icon was found (use of the naturalWidth property) - */ - displayFavicon: function() { - inputEx.sn(this.favicon, null, {visibility: (this.favicon.naturalWidth != 0) ? 'visible' : 'hidden'}); - } - - - }); - - inputEx.messages.invalidUrl = "Invalid URL, ex: http://www.test.com"; - - - /** - * Register this class as "url" type - */ - inputEx.registerType("url", inputEx.UrlField); - -})(); \ No newline at end of file diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/inputex-loader.js b/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/inputex-loader.js deleted file mode 100644 index cd99be09b..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/inputex-loader.js +++ /dev/null @@ -1,348 +0,0 @@ -(function() { - /** - * Add inputEx modules to a YUI loader - * @static - * @param {YUILoader} yuiLoader YUI Loader instance - * @param {String} inputExPath (optional) inputExPath - */ - YAHOO.addInputExModules = function(yuiLoader, inputExPath) { - var pathToInputEx = inputExPath || '../'; - var modules = [ - // inputEx base - { - name: 'inputex-css', - type: 'css', - fullpath: pathToInputEx + 'css/inputEx.css', - requires: ['reset', 'fonts'] - }, - { - name: 'inputex', - type: 'js', - fullpath: pathToInputEx + 'js/inputex.js', - varName: 'inputEx', - requires: ['yahoo', 'dom', 'event', 'inputex-css'] - }, - { - name: 'inputex-field', - type: 'js', - fullpath: pathToInputEx + 'js/Field.js', - varName: 'inputEx.Field', - requires: ['inputex'] - }, - { - name: 'inputex-visus', - type: 'js', - fullpath: pathToInputEx + 'js/Visus.js', - varName: 'inputEx.visus', - requires: ['inputex'] - }, - { - name: 'inputex-jsonschema', - type: 'js', - fullpath: pathToInputEx + 'js/json-schema.js', - varName: 'inputEx.JsonSchema', - requires: ['inputex'] - }, - // RPC - { - name: 'yui-rpc', - type: 'js', - fullpath: pathToInputEx + 'lib/yui-rpc.js', - varName: 'YAHOO.rpc', - requires: ['yahoo','connection'] - }, - { - name: 'inputex-rpc', - type: 'js', - fullpath: pathToInputEx + 'js/rpc/inputex-rpc.js', - varName: 'YAHOO.rpc', - requires: ['yui-rpc','inputex-jsonschema'] - }, - // Widgets - { - name: 'inputex-ddlist', - type: 'js', - fullpath: pathToInputEx + 'js/widgets/ddlist.js', - varName: 'inputEx.widget.DDList', - requires: ['inputex', 'dragdrop'] - }, - { - name: 'inputex-dialog', - type: 'js', - fullpath: pathToInputEx + 'js/widgets/Dialog-beta.js', - varName: 'inputEx.widget.Dialog', - requires: ['inputex', 'dragdrop', 'container'] - }, - - // MetaFields - { - name: 'inputex-group', - type: 'js', - fullpath: pathToInputEx + 'js/Group.js', - varName: 'inputEx.Group', - requires: ['inputex-field'] - }, - { - name: 'inputex-form', - type: 'js', - fullpath: pathToInputEx + 'js/Form.js', - varName: 'inputEx.Form', - requires: ['inputex-group'] - }, - { - name: 'inputex-listfield', - type: 'js', - fullpath: pathToInputEx + 'js/fields/ListField.js', - varName: 'inputEx.ListField', - requires: ['inputex-field'] - }, - { - name: 'inputex-treefield', - type: 'js', - fullpath: pathToInputEx + 'js/fields/TreeField.js', - varName: 'inputEx.TreeField', - requires: ['inputex-listfield'] - }, - { - name: 'inputex-combinefield', - type: 'js', - fullpath: pathToInputEx + 'js/fields/CombineField.js', - varName: 'inputEx.CombineField', - requires: ['inputex-field'] - }, - { - name: 'inputex-inplaceedit', - type: 'js', - fullpath: pathToInputEx + 'js/fields/InPlaceEdit.js', - varName: 'inputEx.InPlaceEdit', - requires: ['inputex-field', 'animation'] - }, - - // Fields - { - name: 'inputex-stringfield', - type: 'js', - fullpath: pathToInputEx + 'js/fields/StringField.js', - varName: 'inputEx.StringField', - requires: ['inputex-field'] - }, - { - name: 'inputex-autocomplete', - type: 'js', - fullpath: pathToInputEx + 'js/fields/AutoComplete.js', - varName: 'inputEx.AutoComplete', - requires: ['inputex-stringfield', 'autocomplete'] - }, - { - name: 'inputex-checkbox', - type: 'js', - fullpath: pathToInputEx + 'js/fields/CheckBox.js', - varName: 'inputEx.CheckBox', - requires: ['inputex-field'] - }, - { - name: 'inputex-colorfield', - type: 'js', - fullpath: pathToInputEx + 'js/fields/ColorField.js', - varName: 'inputEx.ColorField', - requires: ['inputex-field'] - }, - { - name: 'inputex-datefield', - type: 'js', - fullpath: pathToInputEx + 'js/fields/DateField.js', - varName: 'inputEx.DateField', - requires: ['inputex-stringfield'] - }, - { - name: 'inputex-datepickerfield', - type: 'js', - fullpath: pathToInputEx + 'js/fields/DatePickerField.js', - varName: 'inputEx.DatePickerField', - requires: ['inputex-datefield', 'calendar', 'container'] - }, - { - name: 'inputex-integerfield', - type: 'js', - fullpath: pathToInputEx + 'js/fields/IntegerField.js', - varName: 'inputEx.IntegerField', - requires: ['inputex-stringfield'] - }, - { - name: 'inputex-datesplitfield', - type: 'js', - fullpath: pathToInputEx + 'js/fields/DateSplitField.js', - varName: 'inputEx.DateSplitField', - requires: ['inputex-combinefield', 'inputex-integerfield'] - }, - { - name: 'inputex-selectfield', - type: 'js', - fullpath: pathToInputEx + 'js/fields/SelectField.js', - varName: 'inputEx.SelectField', - requires: ['inputex-field'] - }, - { - name: 'inputex-timefield', - type: 'js', - fullpath: pathToInputEx + 'js/fields/TimeField.js', - varName: 'inputEx.TimeField', - requires: ['inputex-combinefield', 'inputex-selectfield'] - }, - { - name: 'inputex-datetimefield', - type: 'js', - fullpath: pathToInputEx + 'js/fields/DateTimeField.js', - varName: 'inputEx.DateTimeField', - requires: ['inputex-combinefield', 'inputex-datepickerfield', 'inputex-timefield'] - }, - { - name: 'inputex-dsselectfield', - type: 'js', - fullpath: pathToInputEx + 'js/fields/DSSelectField.js', - varName: 'inputEx.DSSelectField', - requires: ['inputex-selectfield', 'datasource'] - }, - { - name: 'inputex-emailfield', - type: 'js', - fullpath: pathToInputEx + 'js/fields/EmailField.js', - varName: 'inputEx.EmailField', - requires: ['inputex-stringfield'] - }, - { - name: 'inputex-hiddenfield', - type: 'js', - fullpath: pathToInputEx + 'js/fields/HiddenField.js', - varName: 'inputEx.HiddenField', - requires: ['inputex-field'] - }, - { - name: 'inputex-multiautocomplete', - type: 'js', - fullpath: pathToInputEx + 'js/fields/MultiAutoComplete.js', - varName: 'inputEx.MultiAutoComplete', - requires: ['inputex-autocomplete', 'inputex-ddlist'] - }, - { - name: 'inputex-multiselectfield', - type: 'js', - fullpath: pathToInputEx + 'js/fields/MultiSelectField.js', - varName: 'inputEx.MultiSelectField', - requires: ['inputex-selectfield', 'inputex-ddlist'] - }, - { - name: 'inputex-numberfield', - type: 'js', - fullpath: pathToInputEx + 'js/fields/NumberField.js', - varName: 'inputEx.NumberField', - requires: ['inputex-stringfield'] - }, - { - name: 'inputex-passwordfield', - type: 'js', - fullpath: pathToInputEx + 'js/fields/PasswordField.js', - varName: 'inputEx.PasswordField', - requires: ['inputex-stringfield'] - }, - { - name: 'inputex-radiofield', - type: 'js', - fullpath: pathToInputEx + 'js/fields/RadioField.js', - varName: 'inputEx.RadioField', - requires: ['inputex-field'] - }, - { - name: 'inputex-rtefield', - type: 'js', - fullpath: pathToInputEx + 'js/fields/RTEField.js', - varName: 'inputEx.RTEField', - requires: ['inputex-field', 'editor'] - }, - { - name: 'inputex-sliderfield', - type: 'js', - fullpath: pathToInputEx + 'js/fields/SliderField.js', - varName: 'inputEx.SliderField', - requires: ['inputex-field', 'slider'] - }, - { - name: 'inputex-textarea', - type: 'js', - fullpath: pathToInputEx + 'js/fields/Textarea.js', - varName: 'inputEx.Textarea', - requires: ['inputex-field'] - }, - { - name: 'inputex-typefield', - type: 'js', - fullpath: pathToInputEx + 'js/fields/TypeField.js', - varName: 'inputEx.TypeField', - requires: ['inputex-field'] - }, - { - name: 'inputex-uneditable', - type: 'js', - fullpath: pathToInputEx + 'js/fields/UneditableField.js', - varName: 'inputEx.UneditableField', - requires: ['inputex-field', 'inputex-visus'] - }, - { - name: 'inputex-urlfield', - type: 'js', - fullpath: pathToInputEx + 'js/fields/UrlField.js', - varName: 'inputEx.UrlField', - requires: ['inputex-stringfield'] - }, - - // Ext fields - { - name: 'inputex-birthdatefield', - type: 'js', - fullpath: pathToInputEx + 'js/ext/BirthdateField/BirthdateField.js', - varName: 'inputEx.BirthdateField', - requires: ['inputex-combinefield', 'inputex-stringfield', 'inputex-selectfield'] - }, - { - name: 'inputex-ipv4field', - type: 'js', - fullpath: pathToInputEx + 'js/ext/IPv4Field/IPv4Field.js', - varName: 'inputEx.IPv4Field', - requires: ['inputex-stringfield'] - }, - { - name: 'inputex-vectorfield', - type: 'js', - fullpath: pathToInputEx + 'js/ext/VectorField/VectorField.js', - varName: 'inputEx.VectorField', - requires: ['inputex-combinefield'] - }, - { - name: 'inputex-mapfield', - type: 'js', - fullpath: pathToInputEx + 'js/ext/MapField/MapField.js', - varName: 'inputEx.MapField', - requires: ['inputex-field'] - }, - // Locals - { - name: 'inputex-lang-fr', - type: 'js', - fullpath: pathToInputEx + 'js/locals/fr.js', - varName: 'inputEx.lang_fr', - requires: ['inputex'] - }, - { - name: 'inputex-lang-it', - type: 'js', - fullpath: pathToInputEx + 'js/locals/it.js', - varName: 'inputEx.lang_it', - requires: ['inputex'] - } - ]; - for (var i = 0; i < modules.length; i++) { - yuiLoader.addModule(modules[i]); - } - }; - -})(); \ No newline at end of file diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/inputex.js b/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/inputex.js deleted file mode 100644 index 14fda2879..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/inputex.js +++ /dev/null @@ -1,284 +0,0 @@ -/** - * @fileoverview Main inputEx file. Define inputEx namespace in YAHOO.inputEx - */ -(function() { - - var lang = YAHOO.lang; - - /** - * Build a field from an object like: { type: 'color' or fieldClass: inputEx.ColorField, inputParams: {} }
- * The inputParams property is the object that will be passed as the options parameter to the field class constructor.
- * If the neither type or fieldClass are found, it uses inputEx.StringField - * @name inputEx - * @namespace The inputEx global namespace object. - * @static - * @param {Object} fieldOptions - * @return {inputEx.Field} Created field instance - */ - YAHOO.inputEx = function(fieldOptions) { - var fieldClass = null; - if (fieldOptions.type) { - fieldClass = YAHOO.inputEx.getFieldClass(fieldOptions.type); - if (fieldClass === null) fieldClass = YAHOO.inputEx.StringField; - } - else { - fieldClass = fieldOptions.fieldClass ? fieldOptions.fieldClass : inputEx.StringField; - } - - // Instanciate the field - var inputInstance = new fieldClass(fieldOptions.inputParams); - - // Add the flatten attribute if present in the params - /*if(fieldOptions.flatten) { - inputInstance._flatten = true; - }*/ - - return inputInstance; - }; - - /** - * Test de documentation inputEx - */ - var inputEx = YAHOO.inputEx; - - lang.augmentObject(inputEx, - /** - * @scope inputEx - */ - { - - VERSION: "0.2.1", - - /** - * Url to the spacer image. This url schould be changed according to your project directories - * @type String - */ - spacerUrl: "images/space.gif", // 1x1 px - - /** - * Field empty state constant - * @type String - */ - stateEmpty: 'empty', - - /** - * Field required state constant - * @type String - */ - stateRequired: 'required', - - /** - * Field valid state constant - * @type String - */ - stateValid: 'valid', - - /** - * Field invalid state constant - * @type String - */ - stateInvalid: 'invalid', - - /** - * Associative array containing field messages - */ - messages: { - required: "This field is required", - invalid: "This field is invalid", - valid: "This field is valid", - defaultDateFormat: "m/d/Y", - months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"] - }, - - /** - * @namespace inputEx widget namespace - */ - widget: {}, - - /** - * Associative array containing common regular expressions - */ - regexps: { - email: /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/, - url: /^(http|https):\/\/[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(([0-9]{1,5})?\/.*)?$/i, - password: /^[0-9a-zA-Z\x20-\x7E]*$/ - }, - - /** - * Hash between inputEx types and classes (ex: inputEx.typeClasses.color = inputEx.ColorField)
- * Please register the types with the registerType method - */ - typeClasses: {}, - - /** - * When you create a new inputEx Field Class, you can register it to give it a simple type. - * ex: inputEx.registerType("color", inputEx.ColorField); - * @static - */ - registerType: function(type, field) { - if (!lang.isString(type)) { - throw new Error("inputEx.registerType: first argument must be a string"); - } - if (!lang.isFunction(field)) { - throw new Error("inputEx.registerType: second argument must be a function"); - } - this.typeClasses[type] = field; - }, - - /** - * Returns the class for the given type - * ex: inputEx.getFieldClass("color") returns inputEx.ColorField - * @static - * @param {String} type String type of the field - */ - getFieldClass: function(type) { - return lang.isFunction(this.typeClasses[type]) ? this.typeClasses[type] : null; - }, - - /** - * Get the inputex type for the given class (ex: inputEx.getType(inputEx.ColorField) returns "color") - * @static - * @param {inputEx.Field} FieldClass An inputEx.Field or derivated class - * @return {String} returns the inputEx type string or null - */ - getType: function(FieldClass) { - for (var type in this.typeClasses) { - if (this.typeClasses.hasOwnProperty(type)) { - if (this.typeClasses[type] == FieldClass) { - return type; - } - } - } - return null; - }, - - /** - * Kept for backward compatibility - * @alias inputEx - * @param {Object} fieldOptions - * @return {inputEx.Field} Created field instance - */ - buildField: function(fieldOptions) { - return inputEx(fieldOptions); - }, - - /** - * Helper function to set DOM node attributes and style attributes. - * @static - * @param {HTMLElement} el The element to set attributes to - * @param {Object} domAttributes An object containing key/value pairs to set as node attributes (ex: {id: 'myElement', className: 'myCssClass', ...}) - * @param {Object} styleAttributes Same thing for style attributes. Please use camelCase for style attributes (ex: backgroundColor for 'background-color') - */ - sn: function(el, domAttributes, styleAttributes) { - if (!el) { - return; - } - - if (domAttributes) { - for (var i in domAttributes) { - var domAttribute = domAttributes[i]; - if (lang.isFunction(domAttribute)) { - continue; - } - if (i == "className") { - i = "class"; - el.className = domAttribute; - } - if (domAttribute !== el.getAttribute(i)) { - try { - if (domAttribute === false) { - el.removeAttribute(i); - } else { - el.setAttribute(i, domAttribute); - } - } - catch(err) { - //console.log("WARNING: WireIt.sn failed for "+el.tagName+", attr "+i+", val "+domAttribute); - } - } - } - } - - if (styleAttributes) { - for (var i in styleAttributes) { - if (lang.isFunction(styleAttributes[i])) { - continue; - } - if (el.style[i] != styleAttributes[i]) { - el.style[i] = styleAttributes[i]; - } - } - } - }, - - - /** - * Helper function to create a DOM node. (wrapps the document.createElement tag and the inputEx.sn functions) - * @static - * @param {String} tag The tagName to create (ex: 'div', 'a', ...) - * @param {Object} [domAttributes] see inputEx.sn - * @param {Object} [styleAttributes] see inputEx.sn - * @param {String} [innerHTML] The html string to append into the created element - * @return {HTMLElement} The created node - */ - cn: function(tag, domAttributes, styleAttributes, innerHTML) { - if (tag == 'input' && YAHOO.env.ua.ie) { //only limit to input tag that has no tag body - var strDom = '<' + tag; - if (domAttributes !== 'undefined') { - for (var k in domAttributes) { - strDom += ' ' + k + '="' + domAttributes[k] + '"'; - } - } - strDom += '/' + '>'; - return document.createElement(strDom); - - } else { - var el = document.createElement(tag); - this.sn(el, domAttributes, styleAttributes); - if (innerHTML) { - el.innerHTML = innerHTML; - } - return el; - } - }, - - - /** - * Find the position of the given element. (This method is not available in IE 6) - * @static - * @param {Object} el Value to search - * @param {Array} arr The array to search - * @return {number} Element position, -1 if not found - */ - indexOf: function(el, arr) { - var l = arr.length,i; - for (i = 0; i < l; i++) { - if (arr[i] == el) return i; - } - return -1; - }, - - - /** - * Create a new array without the null or undefined values - * @static - * @param {Array} arr The array to compact - * @return {Array} The new array - */ - compactArray: function(arr) { - var n = [], l = arr.length,i; - for (i = 0; i < l; i++) { - if (!lang.isNull(arr[i]) && !lang.isUndefined(arr[i])) { - n.push(arr[i]); - } - } - return n; - } - - }); - -})(); - - -// The main inputEx namespace shortcut -var inputEx = YAHOO.inputEx; diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/json-schema.js b/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/json-schema.js deleted file mode 100644 index 3b94c443d..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/json-schema.js +++ /dev/null @@ -1,291 +0,0 @@ -(function() { - var inputEx = YAHOO.inputEx, lang = YAHOO.lang; - - /** - * Namespace containing utility functions for conversion between inputEx JSON format and JSON Schema - * - * based on "Json Schema Proposal Working Draft": - * http://groups.google.com/group/json-schema/web/json-schema-proposal-working-draft - * The proposal is still under discussion and the implementation is very minimalist. - * - * - * TODO: - * - we should provide a lot of json schema examples and instances that should/should not validate - * - use the $ref (async calls => provide callbacks to methods) - * - Inheritance - * - * Limitations: - * - ??? Please do not trust inputEx: the getValue may return a value which do NOT validate the schema (provide an example ?) - * - no tuple typing for arrays - * - no "Union type definition" - * - * @class JsonSchema - * @static - * @namespace inputEx - */ - inputEx.JsonSchema = { - - /** - * Convert the inputEx JSON fields to a JSON schema - */ - inputExToSchema: function(inputExJson) { - // TODO :P - } - - }; - - - /** - * - * @class Builder - * @namespace inputEx.JsonSchema - */ - inputEx.JsonSchema.Builder = function(options) { - - var options = options || {}; - this.options = options; - - /** - * specify how other schema properties are mapped to inputParam properties - */ - this.schemaToParamMap = options.schemaToParamMap || { - 'title':'label', - 'description':'description', - '_inputex':null // null value means copy child key/value pairs into inputParams directly - }; - - /** - * @property referenceResolver - */ - this.referenceResolver = options.referenceResolver || null; - - /** - * options to be applied to inputParams unless already specified - * @property defaultOptions - */ - this.defaultOptions = options.defaultOptions || {}; - - /** - * key is reference, value is schema - * @property schemaIdentifierMap - */ - this.schemaIdentifierMap = options.schemaIdentifierMap || {}; - }; - - inputEx.JsonSchema.Builder.prototype = { - - /** - * return a schema based on the reference value - * default is to look up in map - * @method defaultReferenceResolver - */ - defaultReferenceResolver:function(reference) { - return this.schemaIdentifierMap[reference] || null; - }, - - /** - * Convert a JSON schema to inputEx JSON - * @method schemaToInputEx - * @param {JSONSchema} p - */ - schemaToInputEx:function(p, propertyName) { - - var fieldDef = {inputParams: { label: propertyName, name: propertyName} }; - var schemaMap = this.schemaToParamMap; - var referencedSchema = p["$ref"]; - - if (referencedSchema) { - var new_schema = null; - if (this.referenceResolver) { - new_schema = this.referenceResolver(referencedSchema); - } - if (new_schema === null) { - new_schema = this.defaultReferenceResolver(referencedSchema); - } - if (new_schema === null) { - throw "Schema for property :" + propertyName + " $references " + referencedSchema + ', not found'; - } - // copy options into new schema, for example we can overide presentation - // of a defined schema depending on where it is used - new_schema = lang.merge(new_schema); // copy new_schema - - for (var pk in p) { - if (p.hasOwnProperty(pk) && lang.isUndefined(new_schema[pk]) && pk != '$ref') { - new_schema[pk] = p[pk]; - } - } - p = new_schema; - } - - if (!p.optional) { - fieldDef.inputParams.required = true; - } - - for (var key in schemaMap) { - if (schemaMap.hasOwnProperty(key)) { - var paramName = schemaMap[key]; - var v = p[key]; - if (!lang.isUndefined(v)) { - if (paramName === null) { - // copy / merge values from v directly into inputParams - if (lang.isObject(v)) { - // v must be an object, copy key/value pairs into inputParams - for (var vkey in v) { - if (v.hasOwnProperty(vkey)) { - fieldDef.inputParams[vkey] = v[vkey]; - } - } - } - } else { - fieldDef.inputParams[paramName] = v; - } - } - } - } - if (p.type) { - var type = p.type; - - // If type is a "Union type definition", we'll use the first type for the field - // "array" <=> [] <=> ["any"] - if (lang.isArray(type)) { - if (type.length === 0 || (type.length == 1 && type[0] == "any")) { - type = "array"; - } - else { - type = type[0]; - } - } - else if (lang.isObject(type)) { - // What do we do ?? - //console.log("type is an object !!"); - } - - fieldDef.type = type; - - // default value - if (!lang.isUndefined(p["default"])) { - fieldDef.inputParams.value = p["default"]; - } - - if (type == "array") { - fieldDef.type = "list"; - if (lang.isObject(p.items) && !lang.isArray(p.items)) { - // when items is an object, it's a schema that describes each item in the list - fieldDef.inputParams.elementType = this.schemaToInputEx(p.items, propertyName); - } - } - else if (type == "object") { - fieldDef.type = "group"; - if (p.title && lang.isUndefined(fieldDef.inputParams.legend)) { - fieldDef.inputParams.legend = p.title; - } - //fieldDef.inputParams = this.schemaToInputEx(p, propertyName); - //fieldDef.inputParams = this._parseSchemaProperty(p, propertyName); - var fields = []; - if (propertyName) { - fieldDef.inputParams.name = propertyName; - } - - for (var key in p.properties) { - if (p.properties.hasOwnProperty(key)) { - fields.push(this.schemaToInputEx(p.properties[key], key)); - } - } - - fieldDef.inputParams.fields = fields; - - } - else if (type == "string" && p["enum"]) { - fieldDef.type = "select"; - - if (p.options) { - fieldDef.inputParams.selectOptions = []; - fieldDef.inputParams.selectValues = []; - for (var i = 0; i < p.options.length; i++) { - var o = p.options[i]; - fieldDef.inputParams.selectOptions[i] = o.label; - fieldDef.inputParams.selectValues[i] = o.value; - } - } - else { - fieldDef.inputParams.selectValues = p["enum"]; - } - } - else if (type == "string") { - if (!lang.isUndefined(p.pattern) && lang.isUndefined(fieldDef.inputParams.regexp)) { - if (lang.isString(p.pattern)) { - fieldDef.inputParams.regexp = new RegExp(p.pattern); - } else { - fieldDef.inputParams.regexp = p.pattern; - } - } - if (!lang.isUndefined(p.maxLength) && lang.isUndefined(fieldDef.inputParams.maxLength)) { - fieldDef.inputParams.maxLength = p.maxLength; - } - - if (!lang.isUndefined(p.minLength) && lang.isUndefined(fieldDef.inputParams.minLength)) { - fieldDef.inputParams.minLength = p.minLength; - } - - if (!lang.isUndefined(p.readonly) && lang.isUndefined(fieldDef.inputParams.readonly)) { - fieldDef.inputParams.readonly = p.readonly; - } - - // According to http://groups.google.com/group/json-schema/web/json-schema-possible-formats - if (p.format) { - if (p.format == "html") { - fieldDef.type = "html"; - } else if (p.format == "date") { - fieldDef.type = "date"; - fieldDef.inputParams.tooltipIcon = true; - } else if (p.format == 'url') { - fieldDef.type = 'url'; - } else if (p.format == 'email') { - fieldDef.type = 'email'; - } else if (p.format == 'text') { - fieldDef.type = 'text'; - } else if (p.format == 'time') { - fieldDef.type = 'time'; - } else if (p.format == 'ip-address') { - fieldDef.type = 'IPv4'; - } else if (p.format == 'color') { - fieldDef.type = 'color'; - } - } - } - } - - // Add the defaultOptions - for (var kk in this.defaultOptions) { - if (this.defaultOptions.hasOwnProperty(kk) && lang.isUndefined(fieldDef.inputParams[kk])) { - fieldDef.inputParams[kk] = this.defaultOptions[kk]; - } - } - return fieldDef; - }, - - /** - * Create an inputEx Json form definition from a json schema instance object - * Respect the "Self-Defined Schema Convention" - * @method formFromInstance - */ - formFromInstance: function(instanceObject) { - if (!instanceObject || !instanceObject["$schema"]) { - throw new Error("Invalid json schema instance object. Object must have a '$schema' property."); - } - - var formDef = this.schemaToInputEx(instanceObject["$schema"]); - - // Set the default value of each property to the instance value - for (var i = 0; i < formDef.fields.length; i++) { - var fieldName = formDef.fields[i].inputParams.name; - formDef.fields[i].inputParams.value = instanceObject[fieldName]; - } - - return formDef; - } - - }; - - -})(); \ No newline at end of file diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/locals/fr.js b/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/locals/fr.js deleted file mode 100644 index 517b8a671..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/locals/fr.js +++ /dev/null @@ -1,57 +0,0 @@ -/** - * InputEx French localization - */ -(function() { - - var msgs = YAHOO.inputEx.messages; - - msgs.required = "Ce champ est obligatoire"; - msgs.invalid = "Ce champ n'est pas valide"; - msgs.valid = "Ce champ est valide"; - msgs.invalidEmail = "Email non valide; ex: michel.dupont@fai.fr"; - msgs.selectColor = "Sélectionnez une couleur :"; - msgs.invalidPassword = ["Le mot de passe doit contenir au moins "," caractères (lettres ou chiffres)"]; - msgs.invalidPasswordConfirmation = "Les mots de passe entrés ne sont pas identiques !"; - msgs.passwordStrength = "Solidité du mot de passe"; - msgs.capslockWarning = "Attention: touche majuscule activée"; - msgs.invalidDate = "Date non valide; ex: 25/01/2007"; - msgs.defaultDateFormat = "d/m/Y"; - msgs.shortMonths = ["Jan", "Fév", "Mars", "Avril", "Mai", "Juin", "Juil", "Août", "Sept", "Oct", "Nov", "Déc"]; - msgs.months = ["Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre"]; - msgs.weekdays1char = ["D", "L", "M", "M", "J", "V", "S"]; - msgs.shortWeekdays = ["Di","Lu","Ma","Me","Je","Ve","Sa"]; - msgs.selectMonth = "- Choisissez -"; - msgs.dayTypeInvite = "Jour"; - msgs.monthTypeInvite = "Mois"; - msgs.yearTypeInvite = "Année"; - msgs.cancelEditor = "annuler"; - msgs.okEditor = "Ok"; - msgs.defautCalendarOpts = { - navigator: { - strings : { - month: "Choisissez un mois", - year: "Entrez une année", - submit: "Ok", - cancel: "Annuler", - invalidYear: "Année non valide" - } - }, - start_weekday: 1 // la semaine commence un lundi - }; - msgs.stringTooShort = ["Ce champ doit contenir au moins "," caractères (lettres ou chiffres)"]; - msgs.stringTooLong = ["Ce champ doit contenir au plus "," caractères (lettres ou chiffres)"]; - msgs.ajaxWait = "Envoi en cours..."; - msgs.menuInvite = "Cliquez ici pour choisir"; - - // Datatable - msgs.saveText = "Sauver"; - msgs.cancelText = "Annuler"; - msgs.modifyText = "modifier"; - msgs.deleteText = "supprimer"; - msgs.insertItemText = "Ajouter"; - msgs.confirmDeletion = "Êtes-vous sûr ?"; - - // for YUI loader - YAHOO.inputEx.lang_fr = true; - -})(); \ No newline at end of file diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/locals/it.js b/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/locals/it.js deleted file mode 100644 index ab898a9bf..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/locals/it.js +++ /dev/null @@ -1,49 +0,0 @@ -/** - * InputEx Italian localization (Big Thanks to alexodus !) - */ -(function() { - - var msgs = YAHOO.inputEx.messages; - - msgs.required = "Questo campo è obbligatorio"; - msgs.invalid = "Questo campo non è stato validato"; - msgs.valid = "Questo campo è stato validato"; - msgs.invalidEmail = "Email non valida; es: antonio.rossi@fai.it"; - msgs.selectColor = "Seleziona un colore:"; - msgs.invalidPassword = ["La password deve contenere almeno ","numeri o lettere"]; - msgs.invalidPasswordConfirmation = "le password sono differenti !"; - msgs.capslockWarning = "Attenzione: tasto maiuscole attive"; - msgs.invalidDate = "Data non valida; es: 25/01/2007"; - msgs.defaultDateFormat = "d/m/Y"; - msgs.shortMonths = ["Gen", "Feb", "Mar", "Apr", "Mag", "Giu","Lug", "Ago", "Set", "Ott", "Nov", "Dic"]; - msgs.months = ["Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio","Giugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre","Dicembre"]; - msgs.weekdays1char = ["D", "L", "M", "M", "G", "V", "S"]; - msgs.shortWeekdays = ["Do","Lu","Ma","Me","Gi","Ve","Sa"]; - msgs.selectMonth = "- Seleziona Mese -"; - msgs.dayTypeInvite = "Giorno"; - msgs.monthTypeInvite = "Mese"; - msgs.yearTypeInvite = "Anno"; - msgs.cancelEditor = "Annulla"; - msgs.okEditor = "Ok"; - msgs.defautCalendarOpts = { - navigator: { - strings : { - month: "Seleziona un mese", - year: "Digita un anno", - submit: "Ok", - cancel: "Annulla", - invalidYear: "Anno non valido" - } - }, - start_weekday: 1 // la semaine commence un lundi - }; - - // Datatable - msgs.saveText = "Salva"; - msgs.cancelText = "Annulla"; - msgs.modifyText = "Modifica"; - msgs.deleteText = "Elimina"; - msgs.insertItemText = "Aggiungi"; - msgs.confirmDeletion = "Sei sicuro?" - -})(); \ No newline at end of file diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/rpc/inputex-rpc.js b/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/rpc/inputex-rpc.js deleted file mode 100644 index 9d4ce21fb..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/rpc/inputex-rpc.js +++ /dev/null @@ -1,82 +0,0 @@ -/** - * Build a form to run a service ! - * built for yui-rpc - * @namespace inputEx - * @method generateServiceForm - * @param {function} method A method created through YAHOO.rpc.Service - * @param {Object} formOpts - */ -inputEx.generateServiceForm = function(method, formOpts, callback) { - - var options = null; - if (YAHOO.lang.isObject(formOpts) && YAHOO.lang.isArray(formOpts.fields)) { - options = { - inputParams: formOpts - }; - } - // create the form directly from the method params - else { - options = inputEx.formForMethod(method); - // Add user options from formOpts - YAHOO.lang.augmentObject(options.inputParams, formOpts, true); - } - - // Add buttons to launch the service - options.type = "form"; - if (!options.inputParams.buttons) { - options.inputParams.buttons = [ - {type: 'submit', value: method.name, onClick: function(e) { - YAHOO.util.Event.stopEvent(e); - form.showMask(); - method(form.getValue(), { - success: function(results) { - form.hideMask(); - if (YAHOO.lang.isObject(callback) && YAHOO.lang.isFunction(callback.success)) { - callback.success.call(callback.scope || this, results); - } - }, - failure: function() { - form.hideMask(); - } - }); - }} - ]; - } - - var form = YAHOO.inputEx(options); - - return form; -}; - - -/** - * Return the inputEx form options from a method - * @namespace inputEx - * @method formForMethod - * @param {function} method A method created through YAHOO.rpc.Service - */ -inputEx.formForMethod = function(method) { - - // convert the method parameters into a json-schema : - var schemaIdentifierMap = {}; - schemaIdentifierMap[method.name] = { - id: method.name, - type:'object', - properties:{} - }; - for (var i = 0; i < method._parameters.length; i++) { - var p = method._parameters[i]; - schemaIdentifierMap[method.name].properties[p.name] = p; - } - - // Use the builder to build an inputEx form from the json-schema - var builder = new YAHOO.inputEx.JsonSchema.Builder({ - 'schemaIdentifierMap': schemaIdentifierMap, - 'defaultOptions':{ - 'showMsg':true - } - }); - var options = builder.schemaToInputEx(schemaIdentifierMap[method.name]); - - return options; -}; \ No newline at end of file diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/widgets/DataTable-beta.js b/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/widgets/DataTable-beta.js deleted file mode 100644 index 76180ba15..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/widgets/DataTable-beta.js +++ /dev/null @@ -1,471 +0,0 @@ -(function() { - - var lang = YAHOO.lang, Dom = YAHOO.util.Dom, Event = YAHOO.util.Event, inputEx = YAHOO.inputEx; - - /** - * @class Create an editable datatable - * @constructor - * @param {Object} options Options: - *
    - *
  • id
  • - *
  • parentEl
  • - *
  • editing 'formeditor' (default) or 'celleditor'
  • - *
  • tableColumns: (optional) list of visible columns in the datatable
  • - *
  • sortable: (optional) are the columns sortable, default true
  • - *
  • resizeable: (optional) are the columns resizeable, default true
  • - *
  • allowInsert: default true
  • - *
  • allowModify: default true
  • - *
  • allowDelete: default true
  • - *
- */ - inputEx.widget.DataTable = function(options) { - - // Options - this.options = options || {}; - this.options.id = this.options.id || Dom.generateId(); - this.options.parentEl = lang.isString(options.parentEl) ? Dom.get(options.parentEl) : options.parentEl; - this.options.editing = this.options.editing || 'formeditor'; - // + this.options.tableColumns - this.options.sortable = lang.isUndefined(this.options.sortable) ? true : this.options.sortable; - this.options.resizeable = lang.isUndefined(this.options.resizeable) ? true : this.options.resizeable; - this.options.allowInsert = lang.isUndefined(this.options.allowInsert) ? true : this.options.allowInsert; - this.options.allowModify = lang.isUndefined(this.options.allowModify) ? true : this.options.allowModify; - this.options.allowDelete = lang.isUndefined(this.options.allowDelete) ? true : this.options.allowDelete; - - // Create main container and append it immediatly to the parent DOM element - this.element = inputEx.cn('div', {id: this.options.id }); - this.options.parentEl.appendChild(this.element); - - // Call the rendering method when the container is available - Event.onAvailable(this.options.id, this.renderDatatable, this, true); - - /** - * @event - * @param {YAHOO.widget.Record} Removed record - * @desc YAHOO custom event fired when an item is removed - */ - this.itemRemovedEvt = new YAHOO.util.CustomEvent('itemRemoved', this); - - /** - * @event - * @param {YAHOO.widget.Record} Added record - * @desc YAHOO custom event fired when an item is added - */ - this.itemAddedEvt = new YAHOO.util.CustomEvent('itemAdded', this); - - /** - * @event - * @param {YAHOO.widget.Record} Modified record - * @desc YAHOO custom event fired when an item is modified - */ - this.itemModifiedEvt = new YAHOO.util.CustomEvent('itemModified', this); - - }; - - inputEx.widget.DataTable.prototype = { - - /** - * Render the datatable - */ - renderDatatable: function() { - - this.columndefs = this.fieldsToColumndefs(this.options.fields); - - this.datatable = new YAHOO.widget.DataTable(this.element, this.columndefs, this.options.datasource, this.options.datatableOpts); - - this.datatable.subscribe('cellClickEvent', this.onCellClick, this, true); - - // Select the editing method - if (this.options.editing == "formeditor") { - this.initFormEditor(); - } - else if (this.options.editing == "celleditor") { - this.initCellEditor(); - } - - // Insert button - if (this.options.allowInsert) { - this.insertButton = inputEx.cn('button', null, null, inputEx.messages.insertItemText); - Event.addListener(this.insertButton, 'click', this.onInsertButton, this, true); - this.options.parentEl.appendChild(this.insertButton); - } - }, - - /** - * Create an inputEx form next to the datatable. - * If this.options.editing == "formeditor" - */ - initFormEditor: function() { - - // Subscribe to events for row selection - this.datatable.subscribe("rowMouseoverEvent", this.datatable.onEventHighlightRow); - this.datatable.subscribe("rowMouseoutEvent", this.datatable.onEventUnhighlightRow); - this.datatable.subscribe("rowClickEvent", this.datatable.onEventSelectRow); - - // Listener for row selection - this.datatable.subscribe("rowSelectEvent", this.onEventSelectRow, this, true); - - // Form container - this.formContainer = inputEx.cn('div', {className: "inputEx-DataTable-formContainer"}, null, " "); - this.options.parentEl.appendChild(this.formContainer); - - // Build the form - var that = this; - this.subForm = new inputEx.Form({ - parentEl: this.formContainer, - fields: this.options.fields, - legend: this.options.legend, - buttons: [ - { type: 'submit', onClick: function(e) { - that.onSaveForm(e); - }, value: inputEx.messages.saveText}, - { type: 'button', onClick: function(e) { - that.onCancelForm(e); - }, value: inputEx.messages.cancelText} - ] - }); - - // Programmatically select the first row - this.datatable.selectRow(this.datatable.getTrEl(0)); - - // Programmatically bring focus to the instance so arrow selection works immediately - this.datatable.focus(); - - // Positionning - var dt = this.datatable.get('element'); - Dom.setStyle(dt, "float", "left"); - - // Hiding subform - this.hideSubform(); - - // Add class to style the popup - Dom.addClass(this.subForm.divEl, "inputEx-DataTable-formWrapper"); - - this.options.parentEl.appendChild(inputEx.cn('div', null, {"clear":"both"})); - }, - - - /** - * Make the datatable inplace editable with inputEx fields - * If this.options.editing == "celleditor" - */ - initCellEditor: function() { - - // Set up editing flow - var highlightEditableCell = function(oArgs) { - var elCell = oArgs.target; - if (YAHOO.util.Dom.hasClass(elCell, "yui-dt-editable")) { - this.highlightCell(elCell); - } - }; - this.datatable.subscribe("cellMouseoverEvent", highlightEditableCell); - this.datatable.subscribe("cellMouseoutEvent", this.datatable.onEventUnhighlightCell); - }, - - /** - * Handling cell click events - */ - onCellClick: function(ev, args) { - var target = Event.getTarget(ev); - var column = this.datatable.getColumn(target); - var rowIndex = this.datatable.getTrIndex(target); - if (column.key == 'delete') { - if (confirm(inputEx.messages.confirmDeletion)) { - var record = this.datatable.getRecord(target); - if (this.editingNewRecord) { - this.editingNewRecord = false; - } - else { - this.itemRemovedEvt.fire(record); - } - this.datatable.deleteRow(target); - this.hideSubform(); - } - } - else if (column.key == 'modify') { - // make the form appear - this.showSubform(rowIndex); - - } - else { - this.datatable.onEventShowCellEditor(ev); - this.deplaceSubForm(rowIndex); - } - }, - - /** - * Insert button event handler - */ - onInsertButton: function(e) { - - // Insert a new row - this.datatable.addRow({}); - - // Select the new row - this.datatable.unselectRow(this.selectedRecord); - var rs = this.datatable.getRecordSet(); - var row = this.datatable.getTrEl(rs.getLength() - 1); - this.datatable.selectRow(row); - - if (this.options.editing == "formeditor") { - this.editingNewRecord = true; - this.showSubform(rs.getLength() - 1); - } - - }, - - /** - * Set the subForm value when a row is selected - */ - onEventSelectRow: function(args) { - - if (this.editingNewRecord && this.selectedRecord != args.record) { - this.removeUnsavedRecord(); - this.editingNewRecord = false; - } - - this.selectedRecord = args.record; - this.subForm.setValue(this.selectedRecord.getData()); - }, - - /** - * Save the form value in the dataset - */ - onSaveForm: function(e) { - // Prevent submitting the form - Event.stopEvent(e); - - // Update the record - var newvalues = this.subForm.getValue(); - this.datatable.updateRow(this.selectedRecord, newvalues); - - // Hide the subForm - this.hideSubform(); - - if (this.editingNewRecord) { - // Fire the modify event - this.itemAddedEvt.fire(this.selectedRecord); - this.editingNewRecord = false; - } - else { - // Fire the modify event - this.itemModifiedEvt.fire(this.selectedRecord); - } - - }, - - /** - * Remove the record that has not been saved - */ - removeUnsavedRecord: function() { - this.datatable.deleteRow(this.selectedRecord); - }, - - /** - * Cancel row edition - */ - onCancelForm: function(e) { - Event.stopEvent(e); - this.hideSubform(); - - if (this.editingNewRecord) { - this.removeUnsavedRecord(); - this.editingNewRecord = false; - } - }, - - /** - * Hide the form - */ - hideSubform: function() { - Dom.setStyle(this.formContainer, "display", "none"); - }, - - /** - * Show the form - */ - showSubform: function(rowIndex) { - Dom.setStyle(this.formContainer, "display", ""); - this.deplaceSubForm(rowIndex); - this.subForm.focus(); - }, - - /** - * Deplace the form - */ - deplaceSubForm: function(rowIndex) { - var columnSet = this.datatable.getColumnSet(); - // Hack : it seems that the getTdEl function add a bug for rowIndex == 0 - if (rowIndex == 0) { - var tableFirstRow = this.datatable.getFirstTrEl(); - Dom.setY(this.formContainer, Dom.getY(tableFirstRow) - 18); - } else { - var column = columnSet.keys[columnSet.keys.length - 1]; - var cell = this.datatable.getTdEl({column: column, record: rowIndex}); - Dom.setY(this.formContainer, Dom.getY(cell) - 18); - } - }, - /** - * Convert an inputEx fields definition to a DataTable columns definition - */ - fieldsToColumndefs: function(fields) { - var columndefs = []; - for (var i = 0; i < fields.length; i++) { - if (!this.options.tableColumns || inputEx.indexOf(fields[i].inputParams.name, this.options.tableColumns) != -1) { - columndefs.push(this.fieldToColumndef(fields[i])); - } - } - - // Adding modify column if we use form editing and if allowModify is true - if (this.options.editing == "formeditor" && this.options.allowModify) { - columndefs.push({ - key:'modify', - label:' ', - formatter:function(elCell) { - elCell.innerHTML = inputEx.messages.modifyText; - elCell.style.cursor = 'pointer'; - } - }); - } - - // Adding delete column - if (this.options.allowDelete) { - columndefs.push({ - key:'delete', - label:' ', - formatter:function(elCell) { - elCell.innerHTML = inputEx.messages.deleteText; - elCell.style.cursor = 'pointer'; - } - }); - } - - - return columndefs; - }, - - /** - * Convert a single inputEx field definition to a DataTable column definition - */ - fieldToColumndef: function(field) { - var columnDef = { - key: field.inputParams.name, - label: field.inputParams.label, - sortable: this.options.sortable, - resizeable: this.options.resizeable - }; - - // In cell editing if the field is listed in this.options.editableFields - if (this.options.editing && lang.isArray(this.options.editableFields)) { - if (inputEx.indexOf(field.inputParams.name, this.options.editableFields) != -1) { - columnDef.editor = new inputEx.widget.InputExCellEditor(field); - } - } - - // Field formatter - if (field.formatter) { - columnDef.formatter = field.formatter; - } - else { - if (field.type == "date") { - columnDef.formatter = YAHOO.widget.DataTable.formatDate; - } - } - // TODO: other formatters - return columnDef; - } - - }; - - - /** - * The InputExCellEditor class provides functionality for inline editing - * using the inputEx field definition. - * - * @class InputExCellEditor - * @extends YAHOO.widget.BaseCellEditor - * @constructor - * @param {Object} inputExFieldDef InputEx field definition object - */ - inputEx.widget.InputExCellEditor = function(inputExFieldDef) { - this._inputExFieldDef = inputExFieldDef; - - this._sId = "yui-textboxceditor" + YAHOO.widget.BaseCellEditor._nCount++; - inputEx.widget.InputExCellEditor.superclass.constructor.call(this, "inputEx", {disableBtns:true}); - }; - -// InputExCellEditor extends BaseCellEditor - lang.extend(inputEx.widget.InputExCellEditor, YAHOO.widget.BaseCellEditor, - /** - * @scope inputEx.widget.InputExCellEditor.prototype - */ - { - - /** - * Render the inputEx field editor - */ - renderForm : function() { - - // Build the inputEx field - this._inputExField = inputEx(this._inputExFieldDef); - this.getContainerEl().appendChild(this._inputExField.getEl()); - - // Save the cell value at updatedEvt - this._inputExField.updatedEvt.subscribe(function(e, args) { - // Hack to NOT close the field at the first updatedEvt (fired when we set the value) - if (this._updatedEvtForSetValue) { - this._updatedEvtForSetValue = false; - return; - } - this.save(); - }, this, true); - - if (this.disableBtns) { - // By default this is no-op since enter saves by default - this.handleDisabledBtns(); - } - }, - - /** - * Hack to NOT close the field at the first updatedEvt (fired when we set the value) - */ - show: function() { - inputEx.widget.InputExCellEditor.superclass.show.call(this); - this._updatedEvtForSetValue = true; - }, - - /** - * Resets InputExCellEditor UI to initial state. - */ - resetForm : function() { - this._inputExField.setValue(lang.isValue(this.value) ? this.value.toString() : ""); - }, - - /** - * Sets focus in InputExCellEditor. - */ - focus : function() { - this._inputExField.focus(); - }, - - /** - * Returns new value for InputExCellEditor. - */ - getInputValue : function() { - return this._inputExField.getValue(); - } - - }); - -// Copy static members to InputExCellEditor class - lang.augmentObject(inputEx.widget.InputExCellEditor, YAHOO.widget.BaseCellEditor); - - - inputEx.messages.saveText = "Save"; - inputEx.messages.cancelText = "Cancel"; - inputEx.messages.deleteText = "delete"; - inputEx.messages.modifyText = "modify"; - inputEx.messages.insertItemText = "Insert"; - inputEx.messages.confirmDeletion = "Are you sure?"; - -})(); \ No newline at end of file diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/widgets/Dialog-beta.js b/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/widgets/Dialog-beta.js deleted file mode 100644 index 2c9e29aca..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/widgets/Dialog-beta.js +++ /dev/null @@ -1,90 +0,0 @@ -(function() { - - var inputEx = YAHOO.inputEx, Dom = YAHOO.util.Dom, Event = YAHOO.util.Event; - - /** - * @class Create a Dialog from an inputEx field definition - * @constructor - * @param {Object} options Config object, options are : - *
    - *
  • inputExDef: an inputEx type definition (ex: {type: 'form', inputParams: {fields: [...]}})
  • - *
  • id: an optional id for the dialog
  • - *
  • parentEl: optional parentEl (default document.body)
  • - *
  • title: the dialog title
  • - *
  • panelConfig: the YAHOO.widget.Panel userConfig object
  • - *
- */ - inputEx.widget.Dialog = function(options) { - - // options - this._inputExOptions = {}; - this._inputExOptions.id = options.id || Dom.generateId(); - this._inputExOptions.parentEl = options.parentEl || document.body; - this._inputExOptions.title = options.title || 'Please fill in the form'; - this._inputExOptions.panelConfig = options.panelConfig || { - constraintoviewport: true, - underlay:"shadow", - close:true, - fixedcenter: true, - visible:false, - draggable:true - }; - this._inputExOptions.inputExDef = options.inputExDef; - - inputEx.widget.Dialog.superclass.constructor.call(this, this._inputExOptions.id, this._inputExOptions.panelConfig); - - // Generate an id for a div inside the panel body - this._inputExBodyId = Dom.generateId(); - - this.setHeader(this._inputExOptions.title); - this.setBody("
"); - - Event.onAvailable(this._inputExBodyId, this.buildForm, this, true); - - this.render(this._inputExOptions.parentEl); - }; - - YAHOO.lang.extend(inputEx.widget.Dialog, YAHOO.widget.Panel, - /** - * @scope inputEx.widget.Dialog - */ - { - /** - * render the inputExDef as a inputEx field - */ - buildForm: function() { - this._inputExOptions.inputExDef.inputParams.parentEl = this._inputExBodyId; - this._inputExFieldInstance = inputEx(this._inputExOptions.inputExDef); - this._inputExFieldInstance._inputExDialog = this; - this.center(); - }, - - /** - * Return the inputEx field instance created - * @return {inputEx.Field} the field instance - */ - getForm: function() { - return this._inputExFieldInstance; - }, - - /** - * Shortcut to get value - * @return {Any} the field value - */ - getValue: function() { - return this.getForm().getValue(); - }, - - - /** - * Shortcut to set value - * @param {Any} value The value to set on the field - * @param {boolean} [sendUpdatedEvt] (optional) Wether this setValue should fire the updatedEvt or not (default is true, pass false to NOT send the event) - */ - setValue: function(value, sendUpdatedEvt) { - this.getForm().setValue(value, sendUpdatedEvt); - } - - }); - -})(); \ No newline at end of file diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/widgets/ddlist.js b/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/widgets/ddlist.js deleted file mode 100644 index 02795db0b..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/widgets/ddlist.js +++ /dev/null @@ -1,236 +0,0 @@ -(function() { - - var inputEx = YAHOO.inputEx, DD = YAHOO.util.DragDropMgr, Dom = YAHOO.util.Dom, Event = YAHOO.util.Event; - - - /** - * @class DDProxy for DDList items (used by DDList) - * @extends YAHOO.util.DDProxy - * @constructor - * @param {String} id - */ - inputEx.widget.DDListItem = function(id) { - - inputEx.widget.DDListItem.superclass.constructor.call(this, id); - - // Prevent lateral draggability - this.setXConstraint(0, 0); - - this.goingUp = false; - this.lastY = 0; - }; - - YAHOO.extend(inputEx.widget.DDListItem, YAHOO.util.DDProxy, { - - startDrag: function(x, y) { - // make the proxy look like the source element - var dragEl = this.getDragEl(); - var clickEl = this.getEl(); - Dom.setStyle(clickEl, "visibility", "hidden"); - this._originalIndex = inputEx.indexOf(clickEl, clickEl.parentNode.childNodes); - dragEl.className = clickEl.className; - dragEl.innerHTML = clickEl.innerHTML; - }, - - endDrag: function(e) { - Dom.setStyle(this.id, "visibility", ""); - - // Fire the reordered event if position in list has changed - var clickEl = this.getEl(); - var newIndex = inputEx.indexOf(clickEl, clickEl.parentNode.childNodes); - if (this._originalIndex != newIndex) { - this._list.listReorderedEvt.fire(); - } - }, - - onDragDrop: function(e, id) { - - // If there is one drop interaction, the li was dropped either on the list, - // or it was dropped on the current location of the source element. - if (DD.interactionInfo.drop.length === 1) { - - // The position of the cursor at the time of the drop (YAHOO.util.Point) - var pt = DD.interactionInfo.point; - - // The region occupied by the source element at the time of the drop - var region = DD.interactionInfo.sourceRegion; - - // Check to see if we are over the source element's location. We will - // append to the bottom of the list once we are sure it was a drop in - // the negative space (the area of the list without any list items) - if (!region.intersect(pt)) { - var destEl = Dom.get(id); - if (destEl.nodeName.toLowerCase() != "li") { - var destDD = DD.getDDById(id); - destEl.appendChild(this.getEl()); - destDD.isEmpty = false; - DD.refreshCache(); - } - } - - } - }, - - onDrag: function(e) { - - // Keep track of the direction of the drag for use during onDragOver - var y = Event.getPageY(e); - - if (y < this.lastY) { - this.goingUp = true; - } else if (y > this.lastY) { - this.goingUp = false; - } - - this.lastY = y; - }, - - onDragOver: function(e, id) { - - var srcEl = this.getEl(); - var destEl = Dom.get(id); - - // We are only concerned with list items, we ignore the dragover - // notifications for the list. - if (destEl.nodeName.toLowerCase() == "li") { - var orig_p = srcEl.parentNode; - var p = destEl.parentNode; - - if (this.goingUp) { - p.insertBefore(srcEl, destEl); // insert above - } else { - p.insertBefore(srcEl, destEl.nextSibling); // insert below - } - - DD.refreshCache(); - } - } - }); - - - /** - * @class Create a sortable list - * @extends inputEx.widget.DDList - * @constructor - * @param {Object} options Options: - *
    - *
  • id: id of the ul element
  • - *
  • value: initial value of the list
  • - *
- */ - inputEx.widget.DDList = function(options) { - - this.ul = inputEx.cn('ul'); - - if (options.id) { - this.ul.id = options.id; - } - - if (options.value) { - this.setValue(options.value); - } - - /** - * @event - * @param {Any} itemValue value of the removed item - * @desc YAHOO custom event fired when an item is removed - */ - this.itemRemovedEvt = new YAHOO.util.CustomEvent('itemRemoved', this); - - /** - * @event - * @desc YAHOO custom event fired when the list is reordered - */ - this.listReorderedEvt = new YAHOO.util.CustomEvent('listReordered', this); - - // append it immediatly to the parent DOM element - if (options.parentEl) { - if (YAHOO.lang.isString(options.parentEl)) { - Dom.get(options.parentEl).appendChild(this.ul); - } - else { - options.parentEl.appendChild(this.ul); - } - } - }; - - inputEx.widget.DDList.prototype = { - - addItem: function(value) { - var li = inputEx.cn('li', {className: 'inputEx-DDList-item'}); - li.appendChild(inputEx.cn('span', null, null, value)); - var removeLink = inputEx.cn('a', null, null, "remove"); - li.appendChild(removeLink); - Event.addListener(removeLink, 'click', function(e) { - var a = Event.getTarget(e); - var li = a.parentNode; - this.removeItem(inputEx.indexOf(li, this.ul.childNodes)); - }, this, true); - var item = new inputEx.widget.DDListItem(li); - item._list = this; - this.ul.appendChild(li); - }, - - /* - * private method to remove an item - */ - _removeItem: function(i) { - - var itemValue = this.ul.childNodes[i].childNodes[0].innerHTML; - - this.ul.removeChild(this.ul.childNodes[i]); - - return itemValue; - }, - - /* - * public metnod to remove an item - * _removeItem function + event firing - */ - removeItem: function(i) { - var itemValue = this._removeItem(i); - - // Fire the itemRemoved Event - this.itemRemovedEvt.fire(itemValue); - }, - - getValue: function() { - var value = []; - for (var i = 0; i < this.ul.childNodes.length; i++) { - value.push(this.ul.childNodes[i].childNodes[0].innerHTML); - } - return value; - }, - - updateItem: function(i, value) { - this.ul.childNodes[i].childNodes[0].innerHTML = value; - }, - - setValue: function(value) { - // if trying to set wrong value (or ""), reset - if (!YAHOO.lang.isArray(value)) { - value = []; - } - - var oldNb = this.ul.childNodes.length; - var newNb = value.length; - - for (var i = 0; i < newNb; i++) { - if (i < oldNb) { - this.updateItem(i, value[i]); - } - else { - this.addItem(value[i]); - } - } - - // remove extra li items if any - for (var j = newNb; j < oldNb; j++) { - this._removeItem(newNb); // newNb is always the index of first li to remove (not j !) - } - } - - }; - - -})(); \ No newline at end of file diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/widgets/json-tree-inspector.js b/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/widgets/json-tree-inspector.js deleted file mode 100644 index c5f688fe9..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/inputex/js/widgets/json-tree-inspector.js +++ /dev/null @@ -1,112 +0,0 @@ -(function() { - - var inputEx = YAHOO.inputEx, lang = YAHOO.lang, Dom = YAHOO.util.Dom, Event = YAHOO.util.Event; - - /** - * @class Create a treeview to inspect a javascript object - * @constructor - * @param {String|HTMLElement} parentEl where to append the tree - * @param {Object} object the object to inspect - */ - inputEx.widget.JsonTreeInspector = function(parentEl, object) { - - this.hash = {}; // Hash to contain the li/value - - this.el = inputEx.cn('div'); - this.buildBranch(object, this.el); - (lang.isString(parentEl) ? Dom.get(parentEl) : parentEl).appendChild(this.el); - }; - - inputEx.widget.JsonTreeInspector.prototype = { - - /** - * TODO: Expand branches with a maximum depth - * - expand: function() { - - },*/ - - /** - * Build the sub-branch for obj - */ - buildBranch: function(obj, parentEl) { - - var ul = inputEx.cn('ul', {className: 'inputEx-JsonTreeInspector'}); - - for (var key in obj) { - if (obj.hasOwnProperty(key)) { - var value = obj[key]; - - var id = Dom.generateId(); - var li = inputEx.cn('li', {id: id}, null, key + ':'); - this.hash[id] = {value: value, expanded: false}; - - - if (lang.isObject(value) || lang.isArray(value)) { - if (lang.isArray(value)) { - li.appendChild(inputEx.cn('span', null, null, "[ " + value.length + " element" + (value.length > 1 ? 's' : '') + "]")); - } - Dom.addClass(li, 'collapsed'); - Event.addListener(li, 'click', this.onItemClick, this, true); - } - else { - var spanContent = ''; - if (lang.isString(value)) { - spanContent = '"' + value + '"'; - } - else { - if (value === null) { - spanContent = "null"; - } - else { - spanContent = value.toString(); - } - } - li.appendChild(inputEx.cn('span', {className: 'type-' + (value === null ? "null" : (typeof value))}, null, spanContent)); - } - - - ul.appendChild(li); - } - } - - parentEl.appendChild(ul); - - return ul; - }, - - - /** - * When the user click on a node - */ - onItemClick: function(e, params) { - Event.stopEvent(e); - var tgt = Event.getTarget(e); - var id = tgt.id; - - if (!Dom.hasClass(tgt, 'expanded') && !Dom.hasClass(tgt, 'collapsed')) return; - - // Class - var isExpanded = Dom.hasClass(tgt, 'expanded'); - Dom.replaceClass(tgt, isExpanded ? 'expanded' : 'collapsed', isExpanded ? 'collapsed' : 'expanded'); - - var h = this.hash[id]; - - if (isExpanded) { - // hide the sub-branch - h.expanded.style.display = 'none'; - } - else { - if (h.expanded === false) { - // generate the sub-branch - h.expanded = this.buildBranch(h.value, tgt); - } - // show the sub-branch - h.expanded.style.display = ''; - } - } - - }; - - -})(); \ No newline at end of file diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/lib/XML/ObjTree.js b/Resources/Public/jsDomainModeling/wireit/lib/inputex/lib/XML/ObjTree.js deleted file mode 100644 index 33abef9a6..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/inputex/lib/XML/ObjTree.js +++ /dev/null @@ -1,531 +0,0 @@ -// ======================================================================== -// XML.ObjTree -- XML source code from/to JavaScript object like E4X -// ======================================================================== - -if (typeof(XML) == 'undefined') XML = function() { -}; - -// constructor - -XML.ObjTree = function () { - return this; -}; - -// class variables - -XML.ObjTree.VERSION = "0.24"; - -// object prototype - -XML.ObjTree.prototype.xmlDecl = '\n'; -XML.ObjTree.prototype.attr_prefix = '-'; -XML.ObjTree.prototype.overrideMimeType = 'text/xml'; - -// method: parseXML( xmlsource ) - -XML.ObjTree.prototype.parseXML = function (xml) { - var root; - if (window.DOMParser) { - var xmldom = new DOMParser(); -// xmldom.async = false; // DOMParser is always sync-mode - var dom = xmldom.parseFromString(xml, "application/xml"); - if (! dom) return; - root = dom.documentElement; - } else if (window.ActiveXObject) { - xmldom = new ActiveXObject('Microsoft.XMLDOM'); - xmldom.async = false; - xmldom.loadXML(xml); - root = xmldom.documentElement; - } - if (! root) return; - return this.parseDOM(root); -}; - -// method: parseHTTP( url, options, callback ) - -XML.ObjTree.prototype.parseHTTP = function (url, options, callback) { - var myopt = {}; - for (var key in options) { - myopt[key] = options[key]; // copy object - } - if (! myopt.method) { - if (typeof(myopt.postBody) == "undefined" && - typeof(myopt.postbody) == "undefined" && - typeof(myopt.parameters) == "undefined") { - myopt.method = "get"; - } else { - myopt.method = "post"; - } - } - if (callback) { - myopt.asynchronous = true; // async-mode - var __this = this; - var __func = callback; - var __save = myopt.onComplete; - myopt.onComplete = function (trans) { - var tree; - if (trans && trans.responseXML && trans.responseXML.documentElement) { - tree = __this.parseDOM(trans.responseXML.documentElement); - } else if (trans && trans.responseText) { - tree = __this.parseXML(trans.responseText); - } - __func(tree, trans); - if (__save) __save(trans); - }; - } else { - myopt.asynchronous = false; // sync-mode - } - var trans; - if (typeof(HTTP) != "undefined" && HTTP.Request) { - myopt.uri = url; - var req = new HTTP.Request(myopt); // JSAN - if (req) trans = req.transport; - } else if (typeof(Ajax) != "undefined" && Ajax.Request) { - var req = new Ajax.Request(url, myopt); // ptorotype.js - if (req) trans = req.transport; - } -// if ( trans && typeof(trans.overrideMimeType) != "undefined" ) { -// trans.overrideMimeType( this.overrideMimeType ); -// } - if (callback) return trans; - if (trans && trans.responseXML && trans.responseXML.documentElement) { - return this.parseDOM(trans.responseXML.documentElement); - } else if (trans && trans.responseText) { - return this.parseXML(trans.responseText); - } -} - -// method: parseDOM( documentroot ) - -XML.ObjTree.prototype.parseDOM = function (root) { - if (! root) return; - - this.__force_array = {}; - if (this.force_array) { - for (var i = 0; i < this.force_array.length; i++) { - this.__force_array[this.force_array[i]] = 1; - } - } - - var json = this.parseElement(root); // parse root node - if (this.__force_array[root.nodeName]) { - json = [ json ]; - } - if (root.nodeType != 11) { // DOCUMENT_FRAGMENT_NODE - var tmp = {}; - tmp[root.nodeName] = json; // root nodeName - json = tmp; - } - return json; -}; - -// method: parseElement( element ) - -XML.ObjTree.prototype.parseElement = function (elem) { - // COMMENT_NODE - if (elem.nodeType == 7) { - return; - } - - // TEXT_NODE CDATA_SECTION_NODE - if (elem.nodeType == 3 || elem.nodeType == 4) { - var bool = elem.nodeValue.match(/[^\x00-\x20]/); - if (bool == null) return; // ignore white spaces - return elem.nodeValue; - } - - var retval; - var cnt = {}; - - // parse attributes - if (elem.attributes && elem.attributes.length) { - retval = {}; - for (var i = 0; i < elem.attributes.length; i++) { - var key = elem.attributes[i].nodeName; - if (typeof(key) != "string") continue; - var val = elem.attributes[i].nodeValue; - if (! val) continue; - key = this.attr_prefix + key; - if (typeof(cnt[key]) == "undefined") cnt[key] = 0; - cnt[key] ++; - this.addNode(retval, key, cnt[key], val); - } - } - - // parse child nodes (recursive) - if (elem.childNodes && elem.childNodes.length) { - var textonly = true; - if (retval) textonly = false; // some attributes exists - for (var i = 0; i < elem.childNodes.length && textonly; i++) { - var ntype = elem.childNodes[i].nodeType; - if (ntype == 3 || ntype == 4) continue; - textonly = false; - } - if (textonly) { - if (! retval) retval = ""; - for (var i = 0; i < elem.childNodes.length; i++) { - retval += elem.childNodes[i].nodeValue; - } - } else { - if (! retval) retval = {}; - for (var i = 0; i < elem.childNodes.length; i++) { - var key = elem.childNodes[i].nodeName; - if (typeof(key) != "string") continue; - var val = this.parseElement(elem.childNodes[i]); - if (! val) continue; - if (typeof(cnt[key]) == "undefined") cnt[key] = 0; - cnt[key] ++; - this.addNode(retval, key, cnt[key], val); - } - } - } - return retval; -}; - -// method: addNode( hash, key, count, value ) - -XML.ObjTree.prototype.addNode = function (hash, key, cnts, val) { - if (this.__force_array[key]) { - if (cnts == 1) hash[key] = []; - hash[key][hash[key].length] = val; // push - } else if (cnts == 1) { // 1st sibling - hash[key] = val; - } else if (cnts == 2) { // 2nd sibling - hash[key] = [ hash[key], val ]; - } else { // 3rd sibling and more - hash[key][hash[key].length] = val; - } -}; - -// method: writeXML( tree ) - -XML.ObjTree.prototype.writeXML = function (tree) { - var xml = this.hash_to_xml(null, tree); - return this.xmlDecl + xml; -}; - -// method: hash_to_xml( tagName, tree ) - -XML.ObjTree.prototype.hash_to_xml = function (name, tree) { - var elem = []; - var attr = []; - for (var key in tree) { - if (! tree.hasOwnProperty(key)) continue; - var val = tree[key]; - if (key.charAt(0) != this.attr_prefix) { - if (typeof(val) == "undefined" || val == null) { - elem[elem.length] = "<" + key + " />"; - } else if (typeof(val) == "object" && val.constructor == Array) { - elem[elem.length] = this.array_to_xml(key, val); - } else if (typeof(val) == "object") { - elem[elem.length] = this.hash_to_xml(key, val); - } else { - elem[elem.length] = this.scalar_to_xml(key, val); - } - } else { - attr[attr.length] = " " + (key.substring(1)) + '="' + (this.xml_escape(val)) + '"'; - } - } - var jattr = attr.join(""); - var jelem = elem.join(""); - if (typeof(name) == "undefined" || name == null) { - // no tag - } else if (elem.length > 0) { - if (jelem.match(/\n/)) { - jelem = "<" + name + jattr + ">\n" + jelem + "\n"; - } else { - jelem = "<" + name + jattr + ">" + jelem + "\n"; - } - } else { - jelem = "<" + name + jattr + " />\n"; - } - return jelem; -}; - -// method: array_to_xml( tagName, array ) - -XML.ObjTree.prototype.array_to_xml = function (name, array) { - var out = []; - for (var i = 0; i < array.length; i++) { - var val = array[i]; - if (typeof(val) == "undefined" || val == null) { - out[out.length] = "<" + name + " />"; - } else if (typeof(val) == "object" && val.constructor == Array) { - out[out.length] = this.array_to_xml(name, val); - } else if (typeof(val) == "object") { - out[out.length] = this.hash_to_xml(name, val); - } else { - out[out.length] = this.scalar_to_xml(name, val); - } - } - return out.join(""); -}; - -// method: scalar_to_xml( tagName, text ) - -XML.ObjTree.prototype.scalar_to_xml = function (name, text) { - if (name == "#text") { - return this.xml_escape(text); - } else { - return "<" + name + ">" + this.xml_escape(text) + "\n"; - } -}; - -// method: xml_escape( text ) - -XML.ObjTree.prototype.xml_escape = function (text) { - return String(text).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); -}; - -/* - // ======================================================================== - - =head1 NAME - - XML.ObjTree -- XML source code from/to JavaScript object like E4X - - =head1 SYNOPSIS - - var xotree = new XML.ObjTree(); - var tree1 = { - root: { - node: "Hello, World!" - } - }; - var xml1 = xotree.writeXML( tree1 ); // object tree to XML source - alert( "xml1: "+xml1 ); - - var xml2 = '0'; - var tree2 = xotree.parseXML( xml2 ); // XML source to object tree - alert( "error: "+tree2.response.error ); - - =head1 DESCRIPTION - - XML.ObjTree class is a parser/generater between XML source code - and JavaScript object like E4X, ECMAScript for XML. - This is a JavaScript version of the XML::TreePP module for Perl. - This also works as a wrapper for XMLHTTPRequest and successor to JKL.ParseXML class - when this is used with prototype.js or JSAN's HTTP.Request class. - - =head2 JavaScript object tree format - - A sample XML source: - - - - Yasuhisa - Chizuko - - Shiori - Yusuke - Kairi - - - - Its JavaScript object tree like JSON/E4X: - - { - 'family': { - '-name': 'Kawasaki', - 'father': 'Yasuhisa', - 'mother': 'Chizuko', - 'children': { - 'girl': 'Shiori' - 'boy': [ - 'Yusuke', - 'Kairi' - ] - } - } - }; - - Each elements are parsed into objects: - - tree.family.father; # the father's given name. - - Prefix '-' is inserted before every attributes' name. - - tree.family["-name"]; # this family's family name - - A array is used because this family has two boys. - - tree.family.children.boy[0]; # first boy's name - tree.family.children.boy[1]; # second boy's name - tree.family.children.girl; # (girl has no other sisiters) - - =head1 METHODS - - =head2 xotree = new XML.ObjTree() - - This constructor method returns a new XML.ObjTree object. - - =head2 xotree.force_array = [ "rdf:li", "item", "-xmlns" ]; - - This property allows you to specify a list of element names - which should always be forced into an array representation. - The default value is null, it means that context of the elements - will determine to make array or to keep it scalar. - - =head2 xotree.attr_prefix = '@'; - - This property allows you to specify a prefix character which is - inserted before each attribute names. - Instead of default prefix '-', E4X-style prefix '@' is also available. - The default character is '-'. - Or set '@' to access attribute values like E4X, ECMAScript for XML. - The length of attr_prefix must be just one character and not be empty. - - =head2 xotree.xmlDecl = ''; - - This library generates an XML declaration on writing an XML code per default. - This property forces to change or leave it empty. - - =head2 tree = xotree.parseXML( xmlsrc ); - - This method loads an XML document using the supplied string - and returns its JavaScript object converted. - - =head2 tree = xotree.parseDOM( domnode ); - - This method parses a DOM tree (ex. responseXML.documentElement) - and returns its JavaScript object converted. - - =head2 tree = xotree.parseHTTP( url, options ); - - This method loads a XML file from remote web server - and returns its JavaScript object converted. - XMLHTTPRequest's synchronous mode is always used. - This mode blocks the process until the response is completed. - - First argument is a XML file's URL - which must exist in the same domain as parent HTML file's. - Cross-domain loading is not available for security reasons. - - Second argument is options' object which can contains some parameters: - method, postBody, parameters, onLoading, etc. - - This method requires JSAN's L class or prototype.js's Ajax.Request class. - - =head2 xotree.parseHTTP( url, options, callback ); - - If a callback function is set as third argument, - XMLHTTPRequest's asynchronous mode is used. - - This mode calls a callback function with XML file's JavaScript object converted - after the response is completed. - - =head2 xmlsrc = xotree.writeXML( tree ); - - This method parses a JavaScript object tree - and returns its XML source generated. - - =head1 EXAMPLES - - =head2 Text node and attributes - - If a element has both of a text node and attributes - or both of a text node and other child nodes, - text node's value is moved to a special node named "#text". - - var xotree = new XML.ObjTree(); - var xmlsrc = 'Kawasaki Yusuke'; - var tree = xotree.parseXML( xmlsrc ); - var class = tree.span["-class"]; # attribute - var name = tree.span["#text"]; # text node - - =head2 parseHTTP() method with HTTP-GET and sync-mode - - HTTP/Request.js or prototype.js must be loaded before calling this method. - - var xotree = new XML.ObjTree(); - var url = "http://example.com/index.html"; - var tree = xotree.parseHTTP( url ); - xotree.attr_prefix = '@'; // E4X-style - alert( tree.html["@lang"] ); - - This code shows C attribute from a X-HTML source code. - - =head2 parseHTTP() method with HTTP-POST and async-mode - - Third argument is a callback function which is called on onComplete. - - var xotree = new XML.ObjTree(); - var url = "http://example.com/mt-tb.cgi"; - var opts = { - postBody: "title=...&excerpt=...&url=...&blog_name=..." - }; - var func = function ( tree ) { - alert( tree.response.error ); - }; - xotree.parseHTTP( url, opts, func ); - - This code send a trackback ping and shows its response code. - - =head2 Simple RSS reader - - This is a RSS reader which loads RDF file and displays all items. - - var xotree = new XML.ObjTree(); - xotree.force_array = [ "rdf:li", "item" ]; - var url = "http://example.com/news-rdf.xml"; - var func = function( tree ) { - var elem = document.getElementById("rss_here"); - for( var i=0; i schema.maxItems) { - addError("There must be a maximum of " + schema.maxItems + " in the array"); - } - } - else if (schema.properties && typeof value == 'object') { - errors.concat(checkObj(value, schema.properties, path, schema.additionalProperties)); - } - if (schema.pattern && typeof value == 'string' && !value.match(schema.pattern)) - addError("does not match the regex pattern " + schema.pattern); - if (schema.maxLength && typeof value == 'string' && value.maxLength > schema.maxLength) - addError("may only be " + schema.maxLength + " characters long"); - if (schema.minLength && typeof value == 'string' && value.minLength < schema.minLength) - addError("must be at least " + schema.minLength + " characters long"); - if (typeof schema.minimum !== undefined && typeof value == typeof schema.minimum && schema.minimum > value) - addError("must have a minimum value of " + schema.minimum); - if (typeof schema.maximum !== undefined && typeof value == typeof schema.maximum && schema.maximum < value) - addError("must have a maximum value of " + schema.maximum); - if (schema['enum']) { - var enumer = schema['enum']; - var l = enumer.length; - var found; - for (var j = 0; j < l; j++) - if (enumer[j] === value) { - found = 1; - break; - } - if (!found) { - addError("does not have a value in the enumeration " + enumer.join(", ")); - } - } - if (typeof schema.maxDecimal == 'number' && (value * 10 ^ schema.maxDecimal) % 1) - addError("may only have " + schema.maxDecimal + " digits of decimal places"); - } - } - - } - - // validate an object against a schema - function checkObj(instance, objTypeDef, path, additionalProp) { - - if (typeof objTypeDef == 'object') { - if (typeof instance != 'object' || instance instanceof Array) - errors.push({property:path,message:"an object is required"}); - - for (var i in objTypeDef) - if (objTypeDef.hasOwnProperty(i)) { - var value = instance[i]; - var propDef = objTypeDef[i]; - checkProp(value, propDef, path, i); - } - } - for (var i in instance) { - if (instance.hasOwnProperty(i) && objTypeDef && !objTypeDef[i] && additionalProp === false) - errors.push({property:path,message:(typeof value) + "The property " + i + " is not defined in the objTypeDef and the objTypeDef does not allow additional properties"}); - var requires = objTypeDef && objTypeDef[i] && objTypeDef[i].requires; - if (requires && !(requires in instance)) - errors.push({property:path,message:"the presence of the property " + i + " requires that " + requires + " also be present"}); - value = instance[i]; - if (objTypeDef && typeof objTypeDef == 'object' && !(i in objTypeDef)) - checkProp(value, additionalProp, path, i); -// if (!_changing && value && value.type) - // errors = errors.concat(checkObj(value,value.type,path + '.' + i)); - if (!_changing && value && value.$schema) - errors = errors.concat(checkProp(value, value.$schema, path, i)); - } - return errors; - } - - if (schema) - checkProp(instance, schema, '', '') - if (!_changing && instance.$schema) - checkProp(instance, instance.$schema, '', ''); - return {valid:!errors.length,errors:errors}; - } - /* will add this later - newFromSchema : function() { - } - */ -} diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/lib/jsont.js b/Resources/Public/jsDomainModeling/wireit/lib/inputex/lib/jsont.js deleted file mode 100644 index 2dda10ab7..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/inputex/lib/jsont.js +++ /dev/null @@ -1,74 +0,0 @@ -/* This work is licensed under Creative Commons GNU LGPL License. - - License: http://creativecommons.org/licenses/LGPL/2.1/ - Version: 0.9 - Author: Stefan Goessner/2006 - Web: http://goessner.net/ - */ - -function jsonT(self, rules) { - var T = { - output: false, - init: function() { - for (var rule in rules) - if (rule.substr(0, 4) != "self") - rules["self." + rule] = rules[rule]; - return this; - }, - apply: function(expr) { - var trf = function(s) { - return s.replace(/{([A-Za-z0-9_\$\.\[\]\'@\(\)]+)}/g, - function($0, $1) { - return T.processArg($1, expr); - }) - }, - x = expr.replace(/\[[0-9]+\]/g, "[*]"), res; - if (x in rules) { - if (typeof(rules[x]) == "string") - res = trf(rules[x]); - else if (typeof(rules[x]) == "function") - res = trf(rules[x](eval(expr)).toString()); - } - else - res = T.eval(expr); - return res; - }, - processArg: function(arg, parentExpr) { - var expand = function(a, e) { - return (e = a.replace(/^\$/, e)).substr(0, 4) != "self" ? ("self." + e) : e; - }, - res = ""; - T.output = true; - if (arg.charAt(0) == "@") - res = eval(arg.replace(/@([A-za-z0-9_]+)\(([A-Za-z0-9_\$\.\[\]\']+)\)/, - function($0, $1, $2) { - return "rules['self." + $1 + "'](" + expand($2, parentExpr) + ")"; - })); - else if (arg != "$") - res = T.apply(expand(arg, parentExpr)); - else - res = T.eval(parentExpr); - T.output = false; - return res; - }, - eval: function(expr) { - var v = eval(expr), res = ""; - if (typeof(v) != "undefined") { - if (v instanceof Array) { - for (var i = 0; i < v.length; i++) - if (typeof(v[i]) != "undefined") - res += T.apply(expr + "[" + i + "]"); - } - else if (typeof(v) == "object") { - for (var m in v) - if (typeof(v[m]) != "undefined") - res += T.apply(expr + "." + m); - } - else if (T.output) - res += v; - } - return res; - } - }; - return T.init().apply("self"); -} diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/lib/trimpath-template-1.0.38.js b/Resources/Public/jsDomainModeling/wireit/lib/inputex/lib/trimpath-template-1.0.38.js deleted file mode 100644 index ae751d537..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/inputex/lib/trimpath-template-1.0.38.js +++ /dev/null @@ -1,417 +0,0 @@ -/** - * TrimPath Template. Release 1.0.38. - * Copyright (C) 2004, 2005 Metaha. - * - * TrimPath Template is licensed under the GNU General Public License - * and the Apache License, Version 2.0, as follows: - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed WITHOUT ANY WARRANTY; without even the - * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * See the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -var TrimPath; - -// TODO: Debugging mode vs stop-on-error mode - runtime flag. -// TODO: Handle || (or) characters and backslashes. -// TODO: Add more modifiers. - -(function() { // Using a closure to keep global namespace clean. - if (TrimPath == null) - TrimPath = new Object(); - if (TrimPath.evalEx == null) - TrimPath.evalEx = function(src) { - return eval(src); - }; - - var UNDEFINED; - if (Array.prototype.pop == null) // IE 5.x fix from Igor Poteryaev. - Array.prototype.pop = function() { - if (this.length === 0) { - return UNDEFINED; - } - return this[--this.length]; - }; - if (Array.prototype.push == null) // IE 5.x fix from Igor Poteryaev. - Array.prototype.push = function() { - for (var i = 0; i < arguments.length; ++i) { - this[this.length] = arguments[i]; - } - return this.length; - }; - - TrimPath.parseTemplate = function(tmplContent, optTmplName, optEtc) { - if (optEtc == null) - optEtc = TrimPath.parseTemplate_etc; - var funcSrc = parse(tmplContent, optTmplName, optEtc); - var func = TrimPath.evalEx(funcSrc, optTmplName, 1); - if (func != null) - return new optEtc.Template(optTmplName, tmplContent, funcSrc, func, optEtc); - return null; - } - - try { - String.prototype.process = function(context, optFlags) { - var template = TrimPath.parseTemplate(this, null); - if (template != null) - return template.process(context, optFlags); - return this; - } - } catch (e) { // Swallow exception, such as when String.prototype is sealed. - } - - TrimPath.parseTemplate_etc = {}; // Exposed for extensibility. - TrimPath.parseTemplate_etc.statementTag = "forelse|for|if|elseif|else|var|macro"; - TrimPath.parseTemplate_etc.statementDef = { // Lookup table for statement tags. - "if" : { delta: 1, prefix: "if (", suffix: ") {", paramMin: 1 }, - "else" : { delta: 0, prefix: "} else {" }, - "elseif" : { delta: 0, prefix: "} else if (", suffix: ") {", paramDefault: "true" }, - "/if" : { delta: -1, prefix: "}" }, - "for" : { delta: 1, paramMin: 3, - prefixFunc : function(stmtParts, state, tmplName, etc) { - if (stmtParts[2] != "in") - throw new etc.ParseError(tmplName, state.line, "bad for loop statement: " + stmtParts.join(' ')); - var iterVar = stmtParts[1]; - var listVar = "__LIST__" + iterVar; - return [ "var ", listVar, " = ", stmtParts[3], ";", - // Fix from Ross Shaull for hash looping, make sure that we have an array of loop lengths to treat like a stack. - "var __LENGTH_STACK__;", - "if (typeof(__LENGTH_STACK__) == 'undefined' || !__LENGTH_STACK__.length) __LENGTH_STACK__ = new Array();", - "__LENGTH_STACK__[__LENGTH_STACK__.length] = 0;", // Push a new for-loop onto the stack of loop lengths. - "if ((", listVar, ") != null) { ", - "var ", iterVar, "_ct = 0;", // iterVar_ct variable, added by B. Bittman - "for (var ", iterVar, "_index in ", listVar, ") { ", - iterVar, "_ct++;", - "if (typeof(", listVar, "[", iterVar, "_index]) == 'function') {continue;}", // IE 5.x fix from Igor Poteryaev. - "__LENGTH_STACK__[__LENGTH_STACK__.length - 1]++;", - "var ", iterVar, " = ", listVar, "[", iterVar, "_index];" ].join(""); - } }, - "forelse" : { delta: 0, prefix: "} } if (__LENGTH_STACK__[__LENGTH_STACK__.length - 1] == 0) { if (", suffix: ") {", paramDefault: "true" }, - "/for" : { delta: -1, prefix: "} }; delete __LENGTH_STACK__[__LENGTH_STACK__.length - 1];" }, // Remove the just-finished for-loop from the stack of loop lengths. - "var" : { delta: 0, prefix: "var ", suffix: ";" }, - "macro" : { delta: 1, - prefixFunc : function(stmtParts, state, tmplName, etc) { - var macroName = stmtParts[1].split('(')[0]; - return [ "var ", macroName, " = function", - stmtParts.slice(1).join(' ').substring(macroName.length), - "{ var _OUT_arr = []; var _OUT = { write: function(m) { if (m) _OUT_arr.push(m); } }; " ].join(''); - } }, - "/macro" : { delta: -1, prefix: " return _OUT_arr.join(''); };" } - } - TrimPath.parseTemplate_etc.modifierDef = { - "eat" : function(v) { - return ""; - }, - "escape" : function(s) { - return String(s).replace(/&/g, "&").replace(//g, ">"); - }, - "capitalize" : function(s) { - return String(s).toUpperCase(); - }, - "default" : function(s, d) { - return s != null ? s : d; - } - } - TrimPath.parseTemplate_etc.modifierDef.h = TrimPath.parseTemplate_etc.modifierDef.escape; - - TrimPath.parseTemplate_etc.Template = function(tmplName, tmplContent, funcSrc, func, etc) { - this.process = function(context, flags) { - if (context == null) - context = {}; - if (context._MODIFIERS == null) - context._MODIFIERS = {}; - if (context.defined == null) - context.defined = function(str) { - return (context[str] != undefined); - }; - for (var k in etc.modifierDef) { - if (context._MODIFIERS[k] == null) - context._MODIFIERS[k] = etc.modifierDef[k]; - } - if (flags == null) - flags = {}; - var resultArr = []; - var resultOut = { write: function(m) { - resultArr.push(m); - } }; - try { - func(resultOut, context, flags); - } catch (e) { - if (flags.throwExceptions == true) - throw e; - var result = new String(resultArr.join("") + "[ERROR: " + e.toString() + (e.message ? '; ' + e.message : '') + "]"); - result["exception"] = e; - return result; - } - return resultArr.join(""); - } - this.name = tmplName; - this.source = tmplContent; - this.sourceFunc = funcSrc; - this.toString = function() { - return "TrimPath.Template [" + tmplName + "]"; - } - } - TrimPath.parseTemplate_etc.ParseError = function(name, line, message) { - this.name = name; - this.line = line; - this.message = message; - } - TrimPath.parseTemplate_etc.ParseError.prototype.toString = function() { - return ("TrimPath template ParseError in " + this.name + ": line " + this.line + ", " + this.message); - } - - var parse = function(body, tmplName, etc) { - body = cleanWhiteSpace(body); - var funcText = [ "var TrimPath_Template_TEMP = function(_OUT, _CONTEXT, _FLAGS) { with (_CONTEXT) {" ]; - var state = { stack: [], line: 1 }; // TODO: Fix line number counting. - var endStmtPrev = -1; - while (endStmtPrev + 1 < body.length) { - var begStmt = endStmtPrev; - // Scan until we find some statement markup. - begStmt = body.indexOf("{", begStmt + 1); - while (begStmt >= 0) { - var endStmt = body.indexOf('}', begStmt + 1); - var stmt = body.substring(begStmt, endStmt); - var blockrx = stmt.match(/^\{(cdata|minify|eval)/); // From B. Bittman, minify/eval/cdata implementation. - if (blockrx) { - var blockType = blockrx[1]; - var blockMarkerBeg = begStmt + blockType.length + 1; - var blockMarkerEnd = body.indexOf('}', blockMarkerBeg); - if (blockMarkerEnd >= 0) { - var blockMarker; - if (blockMarkerEnd - blockMarkerBeg <= 0) { - blockMarker = "{/" + blockType + "}"; - } else { - blockMarker = body.substring(blockMarkerBeg + 1, blockMarkerEnd); - } - - var blockEnd = body.indexOf(blockMarker, blockMarkerEnd + 1); - if (blockEnd >= 0) { - emitSectionText(body.substring(endStmtPrev + 1, begStmt), funcText); - - var blockText = body.substring(blockMarkerEnd + 1, blockEnd); - if (blockType == 'cdata') { - emitText(blockText, funcText); - } else if (blockType == 'minify') { - emitText(scrubWhiteSpace(blockText), funcText); - } else if (blockType == 'eval') { - if (blockText != null && blockText.length > 0) // From B. Bittman, eval should not execute until process(). - funcText.push('_OUT.write( (function() { ' + blockText + ' })() );'); - } - begStmt = endStmtPrev = blockEnd + blockMarker.length - 1; - } - } - } else if (body.charAt(begStmt - 1) != '$' && // Not an expression or backslashed, - body.charAt(begStmt - 1) != '\\') { // so check if it is a statement tag. - var offset = (body.charAt(begStmt + 1) == '/' ? 2 : 1); // Close tags offset of 2 skips '/'. - // 10 is larger than maximum statement tag length. - if (body.substring(begStmt + offset, begStmt + 10 + offset).search(TrimPath.parseTemplate_etc.statementTag) == 0) - break; // Found a match. - } - begStmt = body.indexOf("{", begStmt + 1); - } - if (begStmt < 0) // In "a{for}c", begStmt will be 1. - break; - var endStmt = body.indexOf("}", begStmt + 1); // In "a{for}c", endStmt will be 5. - if (endStmt < 0) - break; - emitSectionText(body.substring(endStmtPrev + 1, begStmt), funcText); - emitStatement(body.substring(begStmt, endStmt + 1), state, funcText, tmplName, etc); - endStmtPrev = endStmt; - } - emitSectionText(body.substring(endStmtPrev + 1), funcText); - if (state.stack.length != 0) - throw new etc.ParseError(tmplName, state.line, "unclosed, unmatched statement(s): " + state.stack.join(",")); - funcText.push("}}; TrimPath_Template_TEMP"); - return funcText.join(""); - } - - var emitStatement = function(stmtStr, state, funcText, tmplName, etc) { - var parts = stmtStr.slice(1, -1).split(' '); - var stmt = etc.statementDef[parts[0]]; // Here, parts[0] == for/if/else/... - if (stmt == null) { // Not a real statement. - emitSectionText(stmtStr, funcText); - return; - } - if (stmt.delta < 0) { - if (state.stack.length <= 0) - throw new etc.ParseError(tmplName, state.line, "close tag does not match any previous statement: " + stmtStr); - state.stack.pop(); - } - if (stmt.delta > 0) - state.stack.push(stmtStr); - - if (stmt.paramMin != null && - stmt.paramMin >= parts.length) - throw new etc.ParseError(tmplName, state.line, "statement needs more parameters: " + stmtStr); - if (stmt.prefixFunc != null) - funcText.push(stmt.prefixFunc(parts, state, tmplName, etc)); - else - funcText.push(stmt.prefix); - if (stmt.suffix != null) { - if (parts.length <= 1) { - if (stmt.paramDefault != null) - funcText.push(stmt.paramDefault); - } else { - for (var i = 1; i < parts.length; i++) { - if (i > 1) - funcText.push(' '); - funcText.push(parts[i]); - } - } - funcText.push(stmt.suffix); - } - } - - var emitSectionText = function(text, funcText) { - if (text.length <= 0) - return; - var nlPrefix = 0; // Index to first non-newline in prefix. - var nlSuffix = text.length - 1; // Index to first non-space/tab in suffix. - while (nlPrefix < text.length && (text.charAt(nlPrefix) == '\n')) - nlPrefix++; - while (nlSuffix >= 0 && (text.charAt(nlSuffix) == ' ' || text.charAt(nlSuffix) == '\t')) - nlSuffix--; - if (nlSuffix < nlPrefix) - nlSuffix = nlPrefix; - if (nlPrefix > 0) { - funcText.push('if (_FLAGS.keepWhitespace == true) _OUT.write("'); - var s = text.substring(0, nlPrefix).replace('\n', '\\n'); // A macro IE fix from BJessen. - if (s.charAt(s.length - 1) == '\n') - s = s.substring(0, s.length - 1); - funcText.push(s); - funcText.push('");'); - } - var lines = text.substring(nlPrefix, nlSuffix + 1).split('\n'); - for (var i = 0; i < lines.length; i++) { - emitSectionTextLine(lines[i], funcText); - if (i < lines.length - 1) - funcText.push('_OUT.write("\\n");\n'); - } - if (nlSuffix + 1 < text.length) { - funcText.push('if (_FLAGS.keepWhitespace == true) _OUT.write("'); - var s = text.substring(nlSuffix + 1).replace('\n', '\\n'); - if (s.charAt(s.length - 1) == '\n') - s = s.substring(0, s.length - 1); - funcText.push(s); - funcText.push('");'); - } - } - - var emitSectionTextLine = function(line, funcText) { - var endMarkPrev = '}'; - var endExprPrev = -1; - while (endExprPrev + endMarkPrev.length < line.length) { - var begMark = "${", endMark = "}"; - var begExpr = line.indexOf(begMark, endExprPrev + endMarkPrev.length); // In "a${b}c", begExpr == 1 - if (begExpr < 0) - break; - if (line.charAt(begExpr + 2) == '%') { - begMark = "${%"; - endMark = "%}"; - } - var endExpr = line.indexOf(endMark, begExpr + begMark.length); // In "a${b}c", endExpr == 4; - if (endExpr < 0) - break; - emitText(line.substring(endExprPrev + endMarkPrev.length, begExpr), funcText); - // Example: exprs == 'firstName|default:"John Doe"|capitalize'.split('|') - var exprArr = line.substring(begExpr + begMark.length, endExpr).replace(/\|\|/g, "#@@#").split('|'); - for (var k in exprArr) { - if (exprArr[k].replace) // IE 5.x fix from Igor Poteryaev. - exprArr[k] = exprArr[k].replace(/#@@#/g, '||'); - } - funcText.push('_OUT.write('); - emitExpression(exprArr, exprArr.length - 1, funcText); - funcText.push(');'); - endExprPrev = endExpr; - endMarkPrev = endMark; - } - emitText(line.substring(endExprPrev + endMarkPrev.length), funcText); - } - - var emitText = function(text, funcText) { - if (text == null || - text.length <= 0) - return; - text = text.replace(/\\/g, '\\\\'); - text = text.replace(/\n/g, '\\n'); - text = text.replace(/"/g, '\\"'); - funcText.push('_OUT.write("'); - funcText.push(text); - funcText.push('");'); - } - - var emitExpression = function(exprArr, index, funcText) { - // Ex: foo|a:x|b:y1,y2|c:z1,z2 is emitted as c(b(a(foo,x),y1,y2),z1,z2) - var expr = exprArr[index]; // Ex: exprArr == [firstName,capitalize,default:"John Doe"] - if (index <= 0) { // Ex: expr == 'default:"John Doe"' - funcText.push(expr); - return; - } - var parts = expr.split(':'); - funcText.push('_MODIFIERS["'); - funcText.push(parts[0]); // The parts[0] is a modifier function name, like capitalize. - funcText.push('"]('); - emitExpression(exprArr, index - 1, funcText); - if (parts.length > 1) { - funcText.push(','); - funcText.push(parts[1]); - } - funcText.push(')'); - } - - var cleanWhiteSpace = function(result) { - result = result.replace(/\t/g, " "); - result = result.replace(/\r\n/g, "\n"); - result = result.replace(/\r/g, "\n"); - result = result.replace(/^(\s*\S*(\s+\S+)*)\s*$/, '$1'); // Right trim by Igor Poteryaev. - return result; - } - - var scrubWhiteSpace = function(result) { - result = result.replace(/^\s+/g, ""); - result = result.replace(/\s+$/g, ""); - result = result.replace(/\s+/g, " "); - result = result.replace(/^(\s*\S*(\s+\S+)*)\s*$/, '$1'); // Right trim by Igor Poteryaev. - return result; - } - - // The DOM helper functions depend on DOM/DHTML, so they only work in a browser. - // However, these are not considered core to the engine. - // - TrimPath.parseDOMTemplate = function(elementId, optDocument, optEtc) { - if (optDocument == null) - optDocument = document; - var element = optDocument.getElementById(elementId); - var content = element.value; // Like textarea.value. - if (content == null) - content = element.innerHTML; // Like textarea.innerHTML. - content = content.replace(/</g, "<").replace(/>/g, ">"); - return TrimPath.parseTemplate(content, elementId, optEtc); - } - - TrimPath.processDOMTemplate = function(elementId, context, optFlags, optDocument, optEtc) { - return TrimPath.parseDOMTemplate(elementId, optDocument, optEtc).process(context, optFlags); - } -})(); diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/lib/yui-rpc.js b/Resources/Public/jsDomainModeling/wireit/lib/inputex/lib/yui-rpc.js deleted file mode 100644 index b3734c831..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/inputex/lib/yui-rpc.js +++ /dev/null @@ -1,307 +0,0 @@ -/** - * Provide SMD support - * http://groups.google.com/group/json-schema/web/service-mapping-description-proposal - * Not implemented: REST envelope, TCP/IP transport - * - * @namespace YAHOO.rpc - */ -YAHOO.namespace("rpc"); - -(function() { - - var rpc = YAHOO.rpc, lang = YAHOO.lang, util = YAHOO.util; - - /** - * Take a string as a url to retrieve an smd or an object that is an smd or partial smd to use - * as a definition for the service - * @class YAHOO.rpc.Service - * @constructor - */ - YAHOO.rpc.Service = function(smd, callback) { - - if (lang.isString(smd)) { - this.smdUrl = smd; - this.fetch(smd, callback); - } else if (lang.isObject(smd)) { - this._smd = smd; - this.process(callback); - } else { - throw new Error("smd should be an object or an url"); - } - }; - - - YAHOO.rpc.Service.prototype = { - - /** - * Generate the function from a service definition - * @method _generateService - * @param {String} serviceName - * @param {Method definition} method - */ - _generateService: function(serviceName, method) { - - if (this[method]) { - throw new Error("WARNING: " + serviceName + " already exists for service. Unable to generate function"); - } - method.name = serviceName; - - var self = this; - var func = function(data, opts) { - var envelope = rpc.Envelope[method.envelope || self._smd.envelope]; - var callback = { - success: function(o) { - var results = envelope.deserialize(o); - opts.success.call(opts.scope || self, results); - }, - failure: function(o) { - if (lang.isFunction(opts.failure)) { - opts.failure.call(opts.scope || self, {error: "unable to transport"}); - } - }, - scope: self - }; - - - var params = {}; - if (self._smd.additionalParameters && lang.isArray(self._smd.parameters)) { - for (var i = 0; i < self._smd.parameters.length; i++) { - var p = self._smd.parameters[i]; - params[p.name] = p["default"]; - } - } - lang.augmentObject(params, data, true); - - var url = method.target || self._smd.target; - if (url.match(/^\//)) { - var hostname = window.location.hostname; - if (window.location.port) { - hostname = hostname + ':' + window.location.port; - } - url = window.location.protocol + '//' + hostname + url; - } - - var r = { - target: url, - callback: callback, - data: params, - origData: data, - opts: opts, - callbackParamName: method.callbackParamName || self._smd.callbackParamName, - transport: method.transport || self._smd.transport - }; - var serialized = envelope.serialize(self._smd, method, params); - lang.augmentObject(r, serialized, true); - - rpc.Transport[r.transport].call(self, r); - }; - - func.name = serviceName; - func.description = method.description; - func._parameters = method.parameters; - - return func; - }, - - /** - * Process the SMD definition - * @method process - */ - process: function(callback) { - - var serviceDefs = this._smd.services; - - // Generate the methods to this object - for (var serviceName in serviceDefs) { - if (serviceDefs.hasOwnProperty(serviceName)) { - - // Get the object that will contain the method. - // handles "namespaced" services by breaking apart by '.' - var current = this; - var pieces = serviceName.split("."); - for (var i = 0; i < pieces.length - 1; i++) { - current = current[pieces[i]] || (current[pieces[i]] = {}); - } - - current[pieces[pieces.length - 1]] = this._generateService(serviceName, serviceDefs[serviceName]); - } - } - - // call the success handler - if (lang.isObject(callback) && lang.isFunction(callback.success)) { - callback.success.call(callback.scope || this); - } - }, - - /** - * Download the SMD at the given url - * @method fetch - * @param {String} Absolute or relative url - */ - fetch: function(url, callback) { - - /** - * TODO: if url is not in the same domain, we should use jsonp ! - */ - - util.Connect.asyncRequest('GET', url, { - success: function(o) { - try { - this._smd = lang.JSON.parse(o.responseText); - this.process(callback); - } - catch(ex) { - if (lang.isObject(console) && lang.isFunction(console.log)) - console.log(ex); - if (lang.isFunction(callback.failure)) { - callback.failure.call(callback.scope || this, {error: ex}); - } - } - }, - failure: function(o) { - if (lang.isFunction(callback.failure)) { - callback.failure.call(callback.scope || this, {error: "unable to fetch url " + url}); - } - }, - scope: this - }); - } - }; - - - YAHOO.rpc.Service._requestId = 1; - - - /** - * @namespace YAHOO.rpc.Transport - */ - YAHOO.rpc.Transport = { - - "POST": function(r) { - return util.Connect.asyncRequest('POST', r.target, r.callback, r.data); - }, - - "GET": function(r) { - return util.Connect.asyncRequest('GET', r.target + (r.data ? '?' + r.data : ''), r.callback, ''); - }, - - "REST": function(r) { - // TODO - }, - - jsonp_id: 0, - "JSONP": function(r) { - r.callbackParamName = r.callbackParamName || "callback"; - var fctName = encodeURIComponent("YAHOO.rpc.Transport.JSONP.jsonpCallback" + YAHOO.rpc.Transport.jsonp_id); - YAHOO.rpc.Transport["JSONP"]["jsonpCallback" + YAHOO.rpc.Transport.jsonp_id] = function(results) { - if (lang.isObject(r.callback) && lang.isFunction(r.callback.success)) { - r.callback.success.call(r.callback.scope || this, results); - } - }; - YAHOO.rpc.Transport.jsonp_id += 1; - return util.Get.script(r.target + ((r.target.indexOf("?") == -1) ? '?' : '&') + r.data + "&" + r.callbackParamName + "=" + fctName); - }, - - "TCP/IP": function(r) { - throw new Error("TCP/IP transport not implemented !"); - } - }; - - - /** - * @namespace YAHOO.rpc.Envelope - */ - YAHOO.rpc.Envelope = { - - "URL": { - serialize: function(smd, method, data) { - var eURI = encodeURIComponent; - var params = []; - for (var name in data) { - if (data.hasOwnProperty(name)) { - var value = data[name]; - if (lang.isArray(value)) { - for (var i = 0; i < value.length; i++) { - params.push(eURI(name) + "=" + eURI(value[i])); - } - } else { - params.push(eURI(name) + "=" + eURI(value)); - } - } - } - return { - data: params.join("&") - }; - }, - deserialize: function(results) { - return results; - } - }, - - "PATH": { - serialize: function(smd, method, data) { - var target = method.target || smd.target, i; - if (lang.isArray(data)) { - for (i = 0; i < data.length; i++) { - target += '/' + data[i]; - } - } else { - for (i in data) { - if (data.hasOwnProperty(i)) { - target += '/' + i + '/' + data[i]; - } - } - } - return { - data: '', - target: target - }; - }, - deserialize: function(results) { - return results; - } - }, - - "JSON": { - serialize: function(smd, method, data) { - return { - data: lang.JSON.stringify(data) - }; - }, - deserialize: function(results) { - return results; - } - }, - - "JSON-RPC-1.0": { - serialize: function(smd, method, data) { - return { - data: lang.JSON.stringify({ - "id": rpc.Service._requestId++, - "method": method.name, - "params": data - }) - }; - }, - deserialize: function(results) { - return lang.JSON.parse(results.responseText); - } - }, - - "JSON-RPC-2.0": { - serialize: function(smd, method, data) { - return { - data: lang.JSON.stringify({ - "id": rpc.Service._requestId++, - "method": method.name, - "version": "json-rpc-2.0", - "params": data - }) - }; - }, - deserialize: function(results) { - return lang.JSON.parse(results.responseText); - } - } - }; -})(); diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/license.txt b/Resources/Public/jsDomainModeling/wireit/lib/inputex/license.txt deleted file mode 100644 index 38140ad32..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/inputex/license.txt +++ /dev/null @@ -1,24 +0,0 @@ -/* -Distributed under the MIT License : -Visit http://javascript.neyric.com/inputex for more informations - -Copyright (c) 2007-2008, Eric Abouaf - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -*/ diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/res/inputEx-class-diagram.png b/Resources/Public/jsDomainModeling/wireit/lib/inputex/res/inputEx-class-diagram.png deleted file mode 100644 index bbe4eeefe..000000000 Binary files a/Resources/Public/jsDomainModeling/wireit/lib/inputex/res/inputEx-class-diagram.png and /dev/null differ diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/res/inputEx-doap.xml b/Resources/Public/jsDomainModeling/wireit/lib/inputex/res/inputEx-doap.xml deleted file mode 100644 index 92e53ce35..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/inputex/res/inputEx-doap.xml +++ /dev/null @@ -1,49 +0,0 @@ - - - inputEx - 2007-08-26 - Javascript framework to build forms and fields - Javascript framework to build forms and fields - - - - - - - - Eric Abouaf - - cbc9cef234ee9118eee1e4a0f21b8cf723172184 - - - - - - - - - - - inputEx-0.2.2 - 03/06/2009 - 0.2.2 - - - - inputEx-0.2.1 - 01/22/2009 - 0.2.1 - - - - inputEx-0.2.0 - 11/01/2008 - 0.2.0 - - - inputEx-0.1.0 - 05/07/2008 - 0.1.0 - - - \ No newline at end of file diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/res/inputEx-logo.png b/Resources/Public/jsDomainModeling/wireit/lib/inputex/res/inputEx-logo.png deleted file mode 100644 index 1f47e44c0..000000000 Binary files a/Resources/Public/jsDomainModeling/wireit/lib/inputex/res/inputEx-logo.png and /dev/null differ diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/res/logo-inputex.jpg b/Resources/Public/jsDomainModeling/wireit/lib/inputex/res/logo-inputex.jpg deleted file mode 100644 index 82f8c0677..000000000 Binary files a/Resources/Public/jsDomainModeling/wireit/lib/inputex/res/logo-inputex.jpg and /dev/null differ diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/res/rss.png b/Resources/Public/jsDomainModeling/wireit/lib/inputex/res/rss.png deleted file mode 100644 index 1dc6ff30b..000000000 Binary files a/Resources/Public/jsDomainModeling/wireit/lib/inputex/res/rss.png and /dev/null differ diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/res/star.png b/Resources/Public/jsDomainModeling/wireit/lib/inputex/res/star.png deleted file mode 100644 index b88c85789..000000000 Binary files a/Resources/Public/jsDomainModeling/wireit/lib/inputex/res/star.png and /dev/null differ diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/res/style.css b/Resources/Public/jsDomainModeling/wireit/lib/inputex/res/style.css deleted file mode 100644 index 417588be4..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/inputex/res/style.css +++ /dev/null @@ -1,96 +0,0 @@ - -body { - background-color: white; - margin: 0; - padding: 0; - font-family:"Trebuchet MS",Helvetica,Arial,Verdana; - font-size: 13px; -} - -p { - font-size: 13px; -} -ul li { - font-size: 13px; -} - -#headbar { - background-image: url(logo-inputex.jpg); - height: 160px; - margin: 0; - padding: 0; -} - -#navigation { - position: absolute; - margin: 6px 0 0 380px; -} - -#navigation li { - margin: 0; - display: inline; - margin-right: 30px; -} - -#navigation li a { - color: white; - text-decoration: none; - font-size: 14px; -} - -#navigation li a:hover { - color: #cccc33; - text-decoration: underline; -} - -.layout { - width: 70%; - text-align: left; -} - -.layout td.left { width: 55%;} -.layout td.right { width: 45%;} -.layout td.left, .layout td.right { - padding: 15px 30px; - vertical-align: top; -} - -p.title { - font-weight: bold; - font-size: 22px; -} - -ul.starlist { - list-style-image: url(star.png); -} - -div.appBox { - width: 100%; - height: 144px; - position: relative; - margin-top: 10px; -} - -div.appBox p { - position: absolute; - left: 160px; - top: 10px; - font-size: 18px; - text-decoration: none; -} - -div.appBox a { - text-decoration: none; -} - -div.appBox p span { - color: #aaa; - font-size: 12pt; -} - - -div.appBox p span.big { - color: #ffb73e; - font-size: 20pt; - font-weight: bold; -} \ No newline at end of file diff --git a/Resources/Public/jsDomainModeling/wireit/lib/inputex/version.txt b/Resources/Public/jsDomainModeling/wireit/lib/inputex/version.txt deleted file mode 100644 index 7f15e89fd..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/inputex/version.txt +++ /dev/null @@ -1,145 +0,0 @@ - _ _ _____ -(_)_ __ _ __ _ _| |_| ____|_ __ -| | '_ \| '_ \| | | | __| _| \ \/ / version 0.2.2 -| | | | | |_) | |_| | |_| |___ > < Distributed under the MIT License (see license.txt) -|_|_| |_| .__/ \____|\__|_____/_/\_\ - |_| - - -Release Notes: -============== - -version 0.2.2: --------------- - -released on March, 6th 2009 - - - RPC: - * uses yui-rpc (http://github.com/neyric/yui-rpc/) that implements the Service Mapping Description - http://groups.google.com/group/json-schema/web/service-mapping-description-proposal - - * inputex-rpc : automatically build forms to call methods defined in a SMD - - * SMD-tester example - - - Field enhancements: - * added "collapsed" option for Group/Form - * added "className" option for Group/Form - * added listAddLabel/listRemoveLabel options for List - * added addOption/removeOption methods on SelectField - - - Widgets: - * Added JsonTreeInspector widget - - - Various - * moving to github (git repository) - * moving tickets to Lighthouse - * new page for examples - * some fixes on inputex-loader - * updates on json-schema - * fixing first json-schema example - - -version 0.2.1: --------------- - -released on January, 22nd 2009 - - - API changes: - * setValue takes a second argument (sendUpdatedEvt) to prevent firing the updatedEvt if false - * setOptions takes the options object as argument so we don't have to make a copy of the object. - this method should be mandatory in surclassing ? - * inputEx-required CSS class is permanently set on required fields (allow custom style for required fields, labels...) - inputEx-invalid class is added on required fields that are empty to mark them as invalid (no more CSS rules for inputEx-required class) - 'empty' state still in use - * ColorField : colors option must be provided in ["#FFCEA5",...] format instead of ["FFCEA5",...] (so palettes are also modified) - - - Added Fields - * MenuField : new field to perform a selection in a multi-level selector (menu style) - * VectorField : returns an array of number - * FileField-beta : for file upload using standard form post upload - * MapField from David Janes - - - Field enhancements: - * Datatable: added options and CSS - * TypeField has been changed. Many bugfixes + cleaner way to defined fields parameters - - - Various: - * Switching to GIT repository - * Better examples (dialog, yuiloader, multiselect) - * inputExBuilder much better (now with page generation !) - * stylesheet for IE6 css fix (still not full support) - * field.destroy was buggy - * RTEField fixed (doesn't ignore name option anymore, accept initial value and setValue just after init) - * Form does not send values in ajax when doesn't validate - * italian localization - - -version 0.2.0: --------------- - -released on November 1st 2008 - - - Added fields: - * RadioField - * DatePickerField (type: datepicker) - * DateTimeField (type: datetime) - * IntegerField (type: integer) and removed the "numbersOnly" option from StringField - * NumberField (type: number) - * TimeField (type: time) - * MultiAutoComplete - * MultiSelectField - * CombineField: replace PairField, but for N fields - * SliderField (type: slider) - * DSSelectField (type: dsselect) : uses YUI datasources to populate a SelectField - - - Added widgets: - * DDList widget: sortable list widget - * Datatable (beta): combine YUI datatable widget with inputEx forms - * Dialog (beta): create a panel from a inputEx type definition - - - Field enhancements: - * Field: Added a "destroy" method, focus method to set the focus on inputs - * StringField: added typeInvitation, maxLength, minLength, readonly attributes - * Group: flatten option on type JSON, getFieldByName method, collapsible option - * Form mask - * PasswordField: Strength indicator, CapsLock indicator - * PairField inherit from CombineField (deprecated, kept for compatibility) - * TypeField: implemented setValue, the builder can now "load" a group config - * UrlField: case sensitive URLs, make favicon optional otherwise it breaks https - * ListField: set the focus to the added element, use links or buttons - * RTEField: added SimpleEditor support and "opts" option to configure the toolbar (added by Dav Glass) - * TypeField/FormBuilder update: includes more options for more fields - - - Various: - * module definitions for the YUI loader - * Markup and CSS refactoring: the "description" and "label" attributes are now in the field JSON, uses "label" and "fieldset" tags - * small visualization/templating engine (Visus.js) - * Added an inputEx.importJsonSchema (experimental) method to create a form from a JSON Schema - * Documentation now uses JsDocToolkit 2 and http://code.google.com/p/neyricjslibs-template/ - * alias namespace from inputEx to YAHOO.inputEx - * enclosed components in anonymous functions with shortcuts - * use YAHOO.lang.extend(...,...,{ methods: }) to save some bytes - * moved build/inputex-all.js to build/inputex.js for YUI loader - * VERSION added in inputEx object - * Moved the two functions (Array.prototype compact & indexOf) into the inputEx namespace as static functions - * use YAHOO.lang.isMethods instead of typeof - * inputExChart example - - -version 0.1.0 -------------- - -released on Wed May 07 2008 - - - Initial public release - - Added Fields: Group,Form,AutoComplete,CheckBox,Color,Date,Email - Hidden,InPlaceEdit,IPv4,List,Pair,Password,RTE,Select - String,Text,Tree,Type,Uneditable,UpperCase,Url - - - Application examples: - * inputExBuilder - * inputExHTML - * TaskManager - - diff --git a/Resources/Public/jsDomainModeling/wireit/lib/yui-rpc.js b/Resources/Public/jsDomainModeling/wireit/lib/yui-rpc.js deleted file mode 100644 index fc6b1897b..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/yui-rpc.js +++ /dev/null @@ -1,334 +0,0 @@ -/** - * Provide SMD support - * http://groups.google.com/group/json-schema/web/service-mapping-description-proposal - * Not implemented: REST envelope, TCP/IP transport - * - * @namespace YAHOO.rpc - */ -YAHOO.namespace("rpc"); - -(function() { - - var rpc = YAHOO.rpc, lang = YAHOO.lang, util = YAHOO.util; - - /** - * Take a string as a url to retrieve an smd or an object that is an smd or partial smd to use - * as a definition for the service - * @class YAHOO.rpc.Service - * @constructor - */ - YAHOO.rpc.Service = function(smd, callback) { - - if (lang.isString(smd)) { - this.smdUrl = smd; - this.fetch(smd, callback); - } else if (lang.isObject(smd)) { - this._smd = smd; - this.process(callback); - } else { - throw new Error("smd should be an object or an url"); - } - }; - - - YAHOO.rpc.Service.prototype = { - - /** - * Generate the function from a service definition - * @method _generateService - * @param {String} serviceName - * @param {Method definition} method - */ - _generateService: function(serviceName, method) { - - if (this[method]) { - throw new Error("WARNING: " + serviceName + " already exists for service. Unable to generate function"); - } - method.name = serviceName; - - var self = this; - var func = function(data, opts) { - var envelope = rpc.Envelope[method.envelope || self._smd.envelope]; - var callback = { - success: function(o) { - var results = envelope.deserialize(o); - opts.success.call(opts.scope || self, results); - }, - failure: function(o) { - if (lang.isFunction(opts.failure)) { - parent.console.log(o); - var errorMessage = "Server responded with Status-Code: " + o.status + "
Statustext: " + o.statusText; - if (typeof o.error != 'undefined') { - errorMessage += 'Response:
' + o.error + '
'; - } - if (typeof o.responseText != 'undefined') { - errorMessage += '
Show response'; - window.setTimeout(function() { - document.getElementById('debugPopup').onclick = function() { - var f = window.open('', "Debug", "width=900,height=400,scrollbars=yes"); - f.document.write(o.responseText); - f.focus(); - }; - }, 1000); - } - opts.failure.call(opts.scope || self, {error:errorMessage}); - } - }, - scope: self - }; - - - var params = {}; - if (self._smd.additionalParameters && lang.isArray(self._smd.parameters)) { - for (var i = 0; i < self._smd.parameters.length; i++) { - var p = self._smd.parameters[i]; - params[p.name] = p["default"]; - } - } - lang.augmentObject(params, data, true); - - var url = method.target || self._smd.target; - if (url.match(/^\//)) { - var hostname = window.location.hostname; - if (window.location.port) { - hostname = hostname + ':' + window.location.port; - } - url = window.location.protocol + '//' + hostname + url; - } - - var r = { - target: url, - callback: callback, - data: params, - origData: data, - opts: opts, - callbackParamName: method.callbackParamName || self._smd.callbackParamName, - transport: method.transport || self._smd.transport - }; - var serialized = envelope.serialize(self._smd, method, params); - lang.augmentObject(r, serialized, true); - - rpc.Transport[r.transport].call(self, r); - }; - - func.name = serviceName; - func.description = method.description; - func._parameters = method.parameters; - - return func; - }, - - /** - * Process the SMD definition - * @method process - */ - process: function(callback) { - - var serviceDefs = this._smd.services; - - // Generate the methods to this object - for (var serviceName in serviceDefs) { - if (serviceDefs.hasOwnProperty(serviceName)) { - - // Get the object that will contain the method. - // handles "namespaced" services by breaking apart by '.' - var current = this; - var pieces = serviceName.split("."); - for (var i = 0; i < pieces.length - 1; i++) { - current = current[pieces[i]] || (current[pieces[i]] = {}); - } - - current[pieces[pieces.length - 1]] = this._generateService(serviceName, serviceDefs[serviceName]); - } - } - - // call the success handler - if (lang.isObject(callback) && lang.isFunction(callback.success)) { - callback.success.call(callback.scope || this); - } - }, - - /** - * Download the SMD at the given url - * @method fetch - * @param {String} Absolute or relative url - */ - fetch: function(url, callback) { - - /** - * TODO: if url is not in the same domain, we should use jsonp ! - */ - - util.Connect.asyncRequest('GET', url, { - success: function(o) { - try { - this._smd = lang.JSON.parse(o.responseText); - this.process(callback); - } - catch(ex) { - if (lang.isObject(console) && lang.isFunction(console.log)) - console.log(ex); - if (lang.isFunction(callback.failure)) { - callback.failure.call(callback.scope || this, {error: ex}); - } - } - }, - failure: function(o) { - if (lang.isFunction(callback.failure)) { - callback.failure.call(callback.scope || this, {error: "unable to fetch url " + url}); - } - }, - scope: this - }); - } - }; - - - YAHOO.rpc.Service._requestId = 1; - - - /** - * @namespace YAHOO.rpc.Transport - */ - YAHOO.rpc.Transport = { - - "POST": function(r) { - return util.Connect.asyncRequest('POST', r.target, r.callback, r.data); - }, - - "GET": function(r) { - return util.Connect.asyncRequest('GET', r.target + (r.data ? '?' + r.data : ''), r.callback, ''); - }, - - "REST": function(r) { - // TODO - }, - - jsonp_id: 0, - "JSONP": function(r) { - r.callbackParamName = r.callbackParamName || "callback"; - var fctName = encodeURIComponent("YAHOO.rpc.Transport.JSONP.jsonpCallback" + YAHOO.rpc.Transport.jsonp_id); - YAHOO.rpc.Transport["JSONP"]["jsonpCallback" + YAHOO.rpc.Transport.jsonp_id] = function(results) { - if (lang.isObject(r.callback) && lang.isFunction(r.callback.success)) { - r.callback.success.call(r.callback.scope || this, results); - } - }; - YAHOO.rpc.Transport.jsonp_id += 1; - return util.Get.script(r.target + ((r.target.indexOf("?") == -1) ? '?' : '&') + r.data + "&" + r.callbackParamName + "=" + fctName); - }, - - "TCP/IP": function(r) { - throw new Error("TCP/IP transport not implemented !"); - } - }; - - - /** - * @namespace YAHOO.rpc.Envelope - */ - YAHOO.rpc.Envelope = { - - "URL": { - serialize: function(smd, method, data) { - var eURI = encodeURIComponent; - var params = []; - for (var name in data) { - if (data.hasOwnProperty(name)) { - var value = data[name]; - if (lang.isArray(value)) { - for (var i = 0; i < value.length; i++) { - params.push(eURI(name) + "=" + eURI(value[i])); - } - } else { - params.push(eURI(name) + "=" + eURI(value)); - } - } - } - return { - data: params.join("&") - }; - }, - deserialize: function(results) { - return results; - } - }, - - "PATH": { - serialize: function(smd, method, data) { - var target = method.target || smd.target, i; - if (lang.isArray(data)) { - for (i = 0; i < data.length; i++) { - target += '/' + data[i]; - } - } else { - for (i in data) { - if (data.hasOwnProperty(i)) { - target += '/' + i + '/' + data[i]; - } - } - } - return { - data: '', - target: target - }; - }, - deserialize: function(results) { - return results; - } - }, - - "JSON": { - serialize: function(smd, method, data) { - return { - data: lang.JSON.stringify(data) - }; - }, - deserialize: function(results) { - return results; - } - }, - - "JSON-RPC-1.0": { - serialize: function(smd, method, data) { - return { - data: lang.JSON.stringify({ - "id": rpc.Service._requestId++, - "method": method.name, - "params": data - }) - }; - }, - deserialize: function(results) { - try { - lang.JSON.parse(results.responseText); - } catch(err) { - //parent.console.log(results); - return {'error' : results.responseText}; - } - return lang.JSON.parse(results.responseText); - } - }, - - "JSON-RPC-2.0": { - serialize: function(smd, method, data) { - return { - data: lang.JSON.stringify({ - "id": rpc.Service._requestId++, - "method": method.name, - "version": "json-rpc-2.0", - "params": data - }) - }; - }, - deserialize: function(results) { - try { - lang.JSON.parse(results.responseText); - } catch(err) { - //parent.console.log(results); - return {'error' : results.responseText}; - } - return lang.JSON.parse(results.responseText); - } - } - }; -})(); diff --git a/Resources/Public/jsDomainModeling/wireit/lib/yui/animation/animation-min.js b/Resources/Public/jsDomainModeling/wireit/lib/yui/animation/animation-min.js deleted file mode 100644 index d05c77119..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/yui/animation/animation-min.js +++ /dev/null @@ -1,631 +0,0 @@ -/* - Copyright (c) 2009, Yahoo! Inc. All rights reserved. - Code licensed under the BSD License: - http://developer.yahoo.net/yui/license.txt - version: 2.7.0 - */ -(function() { - var B = YAHOO.util; - var A = function(D, C, E, F) { - if (!D) { - } - this.init(D, C, E, F); - }; - A.NAME = "Anim"; - A.prototype = {toString:function() { - var C = this.getEl() || {}; - var D = C.id || C.tagName; - return(this.constructor.NAME + ": " + D); - },patterns:{noNegatives:/width|height|opacity|padding/i,offsetAttribute:/^((width|height)|(top|left))$/,defaultUnit:/width|height|top$|bottom$|left$|right$/i,offsetUnit:/\d+(em|%|en|ex|pt|in|cm|mm|pc)$/i},doMethod:function(C, E, D) { - return this.method(this.currentFrame, E, D - E, this.totalFrames); - },setAttribute:function(C, F, E) { - var D = this.getEl(); - if (this.patterns.noNegatives.test(C)) { - F = (F > 0) ? F : 0; - } - if ("style" in D) { - B.Dom.setStyle(D, C, F + E); - } else { - if (C in D) { - D[C] = F; - } - } - },getAttribute:function(C) { - var E = this.getEl(); - var G = B.Dom.getStyle(E, C); - if (G !== "auto" && !this.patterns.offsetUnit.test(G)) { - return parseFloat(G); - } - var D = this.patterns.offsetAttribute.exec(C) || []; - var H = !!(D[3]); - var F = !!(D[2]); - if ("style" in E) { - if (F || (B.Dom.getStyle(E, "position") == "absolute" && H)) { - G = E["offset" + D[0].charAt(0).toUpperCase() + D[0].substr(1)]; - } else { - G = 0; - } - } else { - if (C in E) { - G = E[C]; - } - } - return G; - },getDefaultUnit:function(C) { - if (this.patterns.defaultUnit.test(C)) { - return"px"; - } - return""; - },setRuntimeAttribute:function(D) { - var I; - var E; - var F = this.attributes; - this.runtimeAttributes[D] = {}; - var H = function(J) { - return(typeof J !== "undefined"); - }; - if (!H(F[D]["to"]) && !H(F[D]["by"])) { - return false; - } - I = (H(F[D]["from"])) ? F[D]["from"] : this.getAttribute(D); - if (H(F[D]["to"])) { - E = F[D]["to"]; - } else { - if (H(F[D]["by"])) { - if (I.constructor == Array) { - E = []; - for (var G = 0,C = I.length; G < C; ++G) { - E[G] = I[G] + F[D]["by"][G] * 1; - } - } else { - E = I + F[D]["by"] * 1; - } - } - } - this.runtimeAttributes[D].start = I; - this.runtimeAttributes[D].end = E; - this.runtimeAttributes[D].unit = (H(F[D].unit)) ? F[D]["unit"] : this.getDefaultUnit(D); - return true; - },init:function(E, J, I, C) { - var D = false; - var F = null; - var H = 0; - E = B.Dom.get(E); - this.attributes = J || {}; - this.duration = !YAHOO.lang.isUndefined(I) ? I : 1; - this.method = C || B.Easing.easeNone; - this.useSeconds = true; - this.currentFrame = 0; - this.totalFrames = B.AnimMgr.fps; - this.setEl = function(M) { - E = B.Dom.get(M); - }; - this.getEl = function() { - return E; - }; - this.isAnimated = function() { - return D; - }; - this.getStartTime = function() { - return F; - }; - this.runtimeAttributes = {}; - this.animate = function() { - if (this.isAnimated()) { - return false; - } - this.currentFrame = 0; - this.totalFrames = (this.useSeconds) ? Math.ceil(B.AnimMgr.fps * this.duration) : this.duration; - if (this.duration === 0 && this.useSeconds) { - this.totalFrames = 1; - } - B.AnimMgr.registerElement(this); - return true; - }; - this.stop = function(M) { - if (!this.isAnimated()) { - return false; - } - if (M) { - this.currentFrame = this.totalFrames; - this._onTween.fire(); - } - B.AnimMgr.stop(this); - }; - var L = function() { - this.onStart.fire(); - this.runtimeAttributes = {}; - for (var M in this.attributes) { - this.setRuntimeAttribute(M); - } - D = true; - H = 0; - F = new Date(); - }; - var K = function() { - var O = {duration:new Date() - this.getStartTime(),currentFrame:this.currentFrame}; - O.toString = function() { - return("duration: " + O.duration + ", currentFrame: " + O.currentFrame); - }; - this.onTween.fire(O); - var N = this.runtimeAttributes; - for (var M in N) { - this.setAttribute(M, this.doMethod(M, N[M].start, N[M].end), N[M].unit); - } - H += 1; - }; - var G = function() { - var M = (new Date() - F) / 1000; - var N = {duration:M,frames:H,fps:H / M}; - N.toString = function() { - return("duration: " + N.duration + ", frames: " + N.frames + ", fps: " + N.fps); - }; - D = false; - H = 0; - this.onComplete.fire(N); - }; - this._onStart = new B.CustomEvent("_start", this, true); - this.onStart = new B.CustomEvent("start", this); - this.onTween = new B.CustomEvent("tween", this); - this._onTween = new B.CustomEvent("_tween", this, true); - this.onComplete = new B.CustomEvent("complete", this); - this._onComplete = new B.CustomEvent("_complete", this, true); - this._onStart.subscribe(L); - this._onTween.subscribe(K); - this._onComplete.subscribe(G); - }}; - B.Anim = A; -})(); -YAHOO.util.AnimMgr = new function() { - var C = null; - var B = []; - var A = 0; - this.fps = 1000; - this.delay = 1; - this.registerElement = function(F) { - B[B.length] = F; - A += 1; - F._onStart.fire(); - this.start(); - }; - this.unRegister = function(G, F) { - F = F || E(G); - if (!G.isAnimated() || F == -1) { - return false; - } - G._onComplete.fire(); - B.splice(F, 1); - A -= 1; - if (A <= 0) { - this.stop(); - } - return true; - }; - this.start = function() { - if (C === null) { - C = setInterval(this.run, this.delay); - } - }; - this.stop = function(H) { - if (!H) { - clearInterval(C); - for (var G = 0,F = B.length; G < F; ++G) { - this.unRegister(B[0], 0); - } - B = []; - C = null; - A = 0; - } else { - this.unRegister(H); - } - }; - this.run = function() { - for (var H = 0,F = B.length; H < F; ++H) { - var G = B[H]; - if (!G || !G.isAnimated()) { - continue; - } - if (G.currentFrame < G.totalFrames || G.totalFrames === null) { - G.currentFrame += 1; - if (G.useSeconds) { - D(G); - } - G._onTween.fire(); - } else { - YAHOO.util.AnimMgr.stop(G, H); - } - } - }; - var E = function(H) { - for (var G = 0,F = B.length; G < F; ++G) { - if (B[G] == H) { - return G; - } - } - return -1; - }; - var D = function(G) { - var J = G.totalFrames; - var I = G.currentFrame; - var H = (G.currentFrame * G.duration * 1000 / G.totalFrames); - var F = (new Date() - G.getStartTime()); - var K = 0; - if (F < G.duration * 1000) { - K = Math.round((F / H - 1) * G.currentFrame); - } else { - K = J - (I + 1); - } - if (K > 0 && isFinite(K)) { - if (G.currentFrame + K >= J) { - K = J - (I + 1); - } - G.currentFrame += K; - } - }; -}; -YAHOO.util.Bezier = new function() { - this.getPosition = function(E, D) { - var F = E.length; - var C = []; - for (var B = 0; B < F; ++B) { - C[B] = [E[B][0],E[B][1]]; - } - for (var A = 1; A < F; ++A) { - for (B = 0; B < F - A; ++B) { - C[B][0] = (1 - D) * C[B][0] + D * C[parseInt(B + 1, 10)][0]; - C[B][1] = (1 - D) * C[B][1] + D * C[parseInt(B + 1, 10)][1]; - } - } - return[C[0][0],C[0][1]]; - }; -}; -(function() { - var A = function(F, E, G, H) { - A.superclass.constructor.call(this, F, E, G, H); - }; - A.NAME = "ColorAnim"; - A.DEFAULT_BGCOLOR = "#fff"; - var C = YAHOO.util; - YAHOO.extend(A, C.Anim); - var D = A.superclass; - var B = A.prototype; - B.patterns.color = /color$/i; - B.patterns.rgb = /^rgb\(([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\)$/i; - B.patterns.hex = /^#?([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})$/i; - B.patterns.hex3 = /^#?([0-9A-F]{1})([0-9A-F]{1})([0-9A-F]{1})$/i; - B.patterns.transparent = /^transparent|rgba\(0, 0, 0, 0\)$/; - B.parseColor = function(E) { - if (E.length == 3) { - return E; - } - var F = this.patterns.hex.exec(E); - if (F && F.length == 4) { - return[parseInt(F[1], 16),parseInt(F[2], 16),parseInt(F[3], 16)]; - } - F = this.patterns.rgb.exec(E); - if (F && F.length == 4) { - return[parseInt(F[1], 10),parseInt(F[2], 10),parseInt(F[3], 10)]; - } - F = this.patterns.hex3.exec(E); - if (F && F.length == 4) { - return[parseInt(F[1] + F[1], 16),parseInt(F[2] + F[2], 16),parseInt(F[3] + F[3], 16)]; - } - return null; - }; - B.getAttribute = function(E) { - var G = this.getEl(); - if (this.patterns.color.test(E)) { - var I = YAHOO.util.Dom.getStyle(G, E); - var H = this; - if (this.patterns.transparent.test(I)) { - var F = YAHOO.util.Dom.getAncestorBy(G, function(J) { - return !H.patterns.transparent.test(I); - }); - if (F) { - I = C.Dom.getStyle(F, E); - } else { - I = A.DEFAULT_BGCOLOR; - } - } - } else { - I = D.getAttribute.call(this, E); - } - return I; - }; - B.doMethod = function(F, J, G) { - var I; - if (this.patterns.color.test(F)) { - I = []; - for (var H = 0,E = J.length; H < E; ++H) { - I[H] = D.doMethod.call(this, F, J[H], G[H]); - } - I = "rgb(" + Math.floor(I[0]) + "," + Math.floor(I[1]) + "," + Math.floor(I[2]) + ")"; - } else { - I = D.doMethod.call(this, F, J, G); - } - return I; - }; - B.setRuntimeAttribute = function(F) { - D.setRuntimeAttribute.call(this, F); - if (this.patterns.color.test(F)) { - var H = this.attributes; - var J = this.parseColor(this.runtimeAttributes[F].start); - var G = this.parseColor(this.runtimeAttributes[F].end); - if (typeof H[F]["to"] === "undefined" && typeof H[F]["by"] !== "undefined") { - G = this.parseColor(H[F].by); - for (var I = 0,E = J.length; I < E; ++I) { - G[I] = J[I] + G[I]; - } - } - this.runtimeAttributes[F].start = J; - this.runtimeAttributes[F].end = G; - } - }; - C.ColorAnim = A; -})(); -/* - TERMS OF USE - EASING EQUATIONS - Open source under the BSD License. - Copyright 2001 Robert Penner All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - * Neither the name of the author nor the names of contributors may be used to endorse or promote products derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -YAHOO.util.Easing = {easeNone:function(B, A, D, C) { - return D * B / C + A; -},easeIn:function(B, A, D, C) { - return D * (B /= C) * B + A; -},easeOut:function(B, A, D, C) { - return -D * (B /= C) * (B - 2) + A; -},easeBoth:function(B, A, D, C) { - if ((B /= C / 2) < 1) { - return D / 2 * B * B + A; - } - return -D / 2 * ((--B) * (B - 2) - 1) + A; -},easeInStrong:function(B, A, D, C) { - return D * (B /= C) * B * B * B + A; -},easeOutStrong:function(B, A, D, C) { - return -D * ((B = B / C - 1) * B * B * B - 1) + A; -},easeBothStrong:function(B, A, D, C) { - if ((B /= C / 2) < 1) { - return D / 2 * B * B * B * B + A; - } - return -D / 2 * ((B -= 2) * B * B * B - 2) + A; -},elasticIn:function(C, A, G, F, B, E) { - if (C == 0) { - return A; - } - if ((C /= F) == 1) { - return A + G; - } - if (!E) { - E = F * 0.3; - } - if (!B || B < Math.abs(G)) { - B = G; - var D = E / 4; - } else { - var D = E / (2 * Math.PI) * Math.asin(G / B); - } - return -(B * Math.pow(2, 10 * (C -= 1)) * Math.sin((C * F - D) * (2 * Math.PI) / E)) + A; -},elasticOut:function(C, A, G, F, B, E) { - if (C == 0) { - return A; - } - if ((C /= F) == 1) { - return A + G; - } - if (!E) { - E = F * 0.3; - } - if (!B || B < Math.abs(G)) { - B = G; - var D = E / 4; - } else { - var D = E / (2 * Math.PI) * Math.asin(G / B); - } - return B * Math.pow(2, -10 * C) * Math.sin((C * F - D) * (2 * Math.PI) / E) + G + A; -},elasticBoth:function(C, A, G, F, B, E) { - if (C == 0) { - return A; - } - if ((C /= F / 2) == 2) { - return A + G; - } - if (!E) { - E = F * (0.3 * 1.5); - } - if (!B || B < Math.abs(G)) { - B = G; - var D = E / 4; - } else { - var D = E / (2 * Math.PI) * Math.asin(G / B); - } - if (C < 1) { - return -0.5 * (B * Math.pow(2, 10 * (C -= 1)) * Math.sin((C * F - D) * (2 * Math.PI) / E)) + A; - } - return B * Math.pow(2, -10 * (C -= 1)) * Math.sin((C * F - D) * (2 * Math.PI) / E) * 0.5 + G + A; -},backIn:function(B, A, E, D, C) { - if (typeof C == "undefined") { - C = 1.70158; - } - return E * (B /= D) * B * ((C + 1) * B - C) + A; -},backOut:function(B, A, E, D, C) { - if (typeof C == "undefined") { - C = 1.70158; - } - return E * ((B = B / D - 1) * B * ((C + 1) * B + C) + 1) + A; -},backBoth:function(B, A, E, D, C) { - if (typeof C == "undefined") { - C = 1.70158; - } - if ((B /= D / 2) < 1) { - return E / 2 * (B * B * (((C *= (1.525)) + 1) * B - C)) + A; - } - return E / 2 * ((B -= 2) * B * (((C *= (1.525)) + 1) * B + C) + 2) + A; -},bounceIn:function(B, A, D, C) { - return D - YAHOO.util.Easing.bounceOut(C - B, 0, D, C) + A; -},bounceOut:function(B, A, D, C) { - if ((B /= C) < (1 / 2.75)) { - return D * (7.5625 * B * B) + A; - } else { - if (B < (2 / 2.75)) { - return D * (7.5625 * (B -= (1.5 / 2.75)) * B + 0.75) + A; - } else { - if (B < (2.5 / 2.75)) { - return D * (7.5625 * (B -= (2.25 / 2.75)) * B + 0.9375) + A; - } - } - } - return D * (7.5625 * (B -= (2.625 / 2.75)) * B + 0.984375) + A; -},bounceBoth:function(B, A, D, C) { - if (B < C / 2) { - return YAHOO.util.Easing.bounceIn(B * 2, 0, D, C) * 0.5 + A; - } - return YAHOO.util.Easing.bounceOut(B * 2 - C, 0, D, C) * 0.5 + D * 0.5 + A; -}}; -(function() { - var A = function(H, G, I, J) { - if (H) { - A.superclass.constructor.call(this, H, G, I, J); - } - }; - A.NAME = "Motion"; - var E = YAHOO.util; - YAHOO.extend(A, E.ColorAnim); - var F = A.superclass; - var C = A.prototype; - C.patterns.points = /^points$/i; - C.setAttribute = function(G, I, H) { - if (this.patterns.points.test(G)) { - H = H || "px"; - F.setAttribute.call(this, "left", I[0], H); - F.setAttribute.call(this, "top", I[1], H); - } else { - F.setAttribute.call(this, G, I, H); - } - }; - C.getAttribute = function(G) { - if (this.patterns.points.test(G)) { - var H = [F.getAttribute.call(this, "left"),F.getAttribute.call(this, "top")]; - } else { - H = F.getAttribute.call(this, G); - } - return H; - }; - C.doMethod = function(G, K, H) { - var J = null; - if (this.patterns.points.test(G)) { - var I = this.method(this.currentFrame, 0, 100, this.totalFrames) / 100; - J = E.Bezier.getPosition(this.runtimeAttributes[G], I); - } else { - J = F.doMethod.call(this, G, K, H); - } - return J; - }; - C.setRuntimeAttribute = function(P) { - if (this.patterns.points.test(P)) { - var H = this.getEl(); - var J = this.attributes; - var G; - var L = J["points"]["control"] || []; - var I; - var M,O; - if (L.length > 0 && !(L[0] instanceof Array)) { - L = [L]; - } else { - var K = []; - for (M = 0,O = L.length; M < O; ++M) { - K[M] = L[M]; - } - L = K; - } - if (E.Dom.getStyle(H, "position") == "static") { - E.Dom.setStyle(H, "position", "relative"); - } - if (D(J["points"]["from"])) { - E.Dom.setXY(H, J["points"]["from"]); - } else { - E.Dom.setXY(H, E.Dom.getXY(H)); - } - G = this.getAttribute("points"); - if (D(J["points"]["to"])) { - I = B.call(this, J["points"]["to"], G); - var N = E.Dom.getXY(this.getEl()); - for (M = 0,O = L.length; M < O; ++M) { - L[M] = B.call(this, L[M], G); - } - } else { - if (D(J["points"]["by"])) { - I = [G[0] + J["points"]["by"][0],G[1] + J["points"]["by"][1]]; - for (M = 0,O = L.length; M < O; ++M) { - L[M] = [G[0] + L[M][0],G[1] + L[M][1]]; - } - } - } - this.runtimeAttributes[P] = [G]; - if (L.length > 0) { - this.runtimeAttributes[P] = this.runtimeAttributes[P].concat(L); - } - this.runtimeAttributes[P][this.runtimeAttributes[P].length] = I; - } else { - F.setRuntimeAttribute.call(this, P); - } - }; - var B = function(G, I) { - var H = E.Dom.getXY(this.getEl()); - G = [G[0] - H[0] + I[0],G[1] - H[1] + I[1]]; - return G; - }; - var D = function(G) { - return(typeof G !== "undefined"); - }; - E.Motion = A; -})(); -(function() { - var D = function(F, E, G, H) { - if (F) { - D.superclass.constructor.call(this, F, E, G, H); - } - }; - D.NAME = "Scroll"; - var B = YAHOO.util; - YAHOO.extend(D, B.ColorAnim); - var C = D.superclass; - var A = D.prototype; - A.doMethod = function(E, H, F) { - var G = null; - if (E == "scroll") { - G = [this.method(this.currentFrame, H[0], F[0] - H[0], this.totalFrames),this.method(this.currentFrame, H[1], F[1] - H[1], this.totalFrames)]; - } else { - G = C.doMethod.call(this, E, H, F); - } - return G; - }; - A.getAttribute = function(E) { - var G = null; - var F = this.getEl(); - if (E == "scroll") { - G = [F.scrollLeft,F.scrollTop]; - } else { - G = C.getAttribute.call(this, E); - } - return G; - }; - A.setAttribute = function(E, H, G) { - var F = this.getEl(); - if (E == "scroll") { - F.scrollLeft = H[0]; - F.scrollTop = H[1]; - } else { - C.setAttribute.call(this, E, H, G); - } - }; - B.Scroll = D; -})(); -YAHOO.register("animation", YAHOO.util.Anim, {version:"2.7.0",build:"1799"}); \ No newline at end of file diff --git a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/ajax-loader.gif b/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/ajax-loader.gif deleted file mode 100644 index fe2cd23b3..000000000 Binary files a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/ajax-loader.gif and /dev/null differ diff --git a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/asc.gif b/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/asc.gif deleted file mode 100644 index a1fe7385d..000000000 Binary files a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/asc.gif and /dev/null differ diff --git a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/autocomplete.css b/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/autocomplete.css deleted file mode 100644 index 9f7e5b4c1..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/autocomplete.css +++ /dev/null @@ -1,73 +0,0 @@ -/* -Copyright (c) 2009, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.7.0 -*/ -.yui-skin-sam .yui-ac { - position: relative; - font-family: arial; - font-size: 100%; -} - -.yui-skin-sam .yui-ac-input { - position: absolute; - width: 100%; -} - -.yui-skin-sam .yui-ac-container { - position: absolute; - top: 1.6em; - width: 100%; -} - -.yui-skin-sam .yui-ac-content { - position: absolute; - width: 100%; - border: 1px solid #808080; - background: #fff; - overflow: hidden; - z-index: 9050; -} - -.yui-skin-sam .yui-ac-shadow { - position: absolute; - margin: .3em; - width: 100%; - background: #000; - -moz-opacity: .10; - opacity: .10; - filter: alpha(opacity = 10); - z-index: 9049; -} - -.yui-skin-sam .yui-ac iframe { - opacity: 0; - filter: alpha(opacity = 0); - padding-right: .3em; - padding-bottom: .3em; -} - -.yui-skin-sam .yui-ac-content ul { - margin: 0; - padding: 0; - width: 100%; -} - -.yui-skin-sam .yui-ac-content li { - margin: 0; - padding: 2px 5px; - cursor: default; - white-space: nowrap; - list-style: none; - zoom: 1; -} - -.yui-skin-sam .yui-ac-content li.yui-ac-prehighlight { - background: #B3D4FF; -} - -.yui-skin-sam .yui-ac-content li.yui-ac-highlight { - background: #426FD9; - color: #FFF; -} diff --git a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/bg-h.gif b/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/bg-h.gif deleted file mode 100644 index 996288916..000000000 Binary files a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/bg-h.gif and /dev/null differ diff --git a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/bg-v.gif b/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/bg-v.gif deleted file mode 100644 index 8e287cd52..000000000 Binary files a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/bg-v.gif and /dev/null differ diff --git a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/blankimage.png b/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/blankimage.png deleted file mode 100644 index b87bb2485..000000000 Binary files a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/blankimage.png and /dev/null differ diff --git a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/button.css b/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/button.css deleted file mode 100644 index bbabfd434..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/button.css +++ /dev/null @@ -1,173 +0,0 @@ -/* -Copyright (c) 2009, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.7.0 -*/ -.yui-button { - display: -moz-inline-box; - display: inline-block; - vertical-align: text-bottom; -} - -.yui-button .first-child { - display: block; - *display: inline-block; -} - -.yui-button button, .yui-button a { - display: block; - *display: inline-block; - border: none; - margin: 0; -} - -.yui-button button { - background-color: transparent; - *overflow: visible; - cursor: pointer; -} - -.yui-button a { - text-decoration: none; -} - -.yui-skin-sam .yui-button { - border-width: 1px 0; - border-style: solid; - border-color: #808080; - background: url(sprite.png) repeat-x 0 0; - margin: auto .25em; -} - -.yui-skin-sam .yui-button .first-child { - border-width: 0 1px; - border-style: solid; - border-color: #808080; - margin: 0 -1px; - _margin: 0; -} - -.yui-skin-sam .yui-button button, .yui-skin-sam .yui-button a { - padding: 0 10px; - font-size: 93%; - line-height: 2; - *line-height: 1.7; - min-height: 2em; - *min-height: auto; - color: #000; -} - -.yui-skin-sam .yui-button a { - *line-height: 1.875; - *padding-bottom: 1px; -} - -.yui-skin-sam .yui-split-button button, .yui-skin-sam .yui-menu-button button { - padding-right: 20px; - background-position: right center; - background-repeat: no-repeat; -} - -.yui-skin-sam .yui-menu-button button { - background-image: url(menu-button-arrow.png); -} - -.yui-skin-sam .yui-split-button button { - background-image: url(split-button-arrow.png); -} - -.yui-skin-sam .yui-button-focus { - border-color: #7D98B8; - background-position: 0 -1300px; -} - -.yui-skin-sam .yui-button-focus .first-child { - border-color: #7D98B8; -} - -.yui-skin-sam .yui-button-focus button, .yui-skin-sam .yui-button-focus a { - color: #000; -} - -.yui-skin-sam .yui-split-button-focus button { - background-image: url(split-button-arrow-focus.png); -} - -.yui-skin-sam .yui-button-hover { - border-color: #7D98B8; - background-position: 0 -1300px; -} - -.yui-skin-sam .yui-button-hover .first-child { - border-color: #7D98B8; -} - -.yui-skin-sam .yui-button-hover button, .yui-skin-sam .yui-button-hover a { - color: #000; -} - -.yui-skin-sam .yui-split-button-hover button { - background-image: url(split-button-arrow-hover.png); -} - -.yui-skin-sam .yui-button-active { - border-color: #7D98B8; - background-position: 0 -1700px; -} - -.yui-skin-sam .yui-button-active .first-child { - border-color: #7D98B8; -} - -.yui-skin-sam .yui-button-active button, .yui-skin-sam .yui-button-active a { - color: #000; -} - -.yui-skin-sam .yui-split-button-activeoption { - border-color: #808080; - background-position: 0 0; -} - -.yui-skin-sam .yui-split-button-activeoption .first-child { - border-color: #808080; -} - -.yui-skin-sam .yui-split-button-activeoption button { - background-image: url(split-button-arrow-active.png); -} - -.yui-skin-sam .yui-radio-button-checked, .yui-skin-sam .yui-checkbox-button-checked { - border-color: #304369; - background-position: 0 -1400px; -} - -.yui-skin-sam .yui-radio-button-checked .first-child, .yui-skin-sam .yui-checkbox-button-checked .first-child { - border-color: #304369; -} - -.yui-skin-sam .yui-radio-button-checked button, .yui-skin-sam .yui-checkbox-button-checked button { - color: #fff; -} - -.yui-skin-sam .yui-button-disabled { - border-color: #ccc; - background-position: 0 -1500px; -} - -.yui-skin-sam .yui-button-disabled .first-child { - border-color: #ccc; -} - -.yui-skin-sam .yui-button-disabled button, .yui-skin-sam .yui-button-disabled a { - color: #A6A6A6; - cursor: default; -} - -.yui-skin-sam .yui-menu-button-disabled button { - background-image: url(menu-button-arrow-disabled.png); -} - -.yui-skin-sam .yui-split-button-disabled button { - background-image: url(split-button-arrow-disabled.png); -} diff --git a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/calendar.css b/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/calendar.css deleted file mode 100644 index 2c41bf7f3..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/calendar.css +++ /dev/null @@ -1,429 +0,0 @@ -/* -Copyright (c) 2009, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.7.0 -*/ -.yui-calcontainer { - position: relative; - float: left; - _overflow: hidden; -} - -.yui-calcontainer iframe { - position: absolute; - border: none; - margin: 0; - padding: 0; - z-index: 0; - width: 100%; - height: 100%; - left: 0; - top: 0; -} - -.yui-calcontainer iframe.fixedsize { - width: 50em; - height: 50em; - top: -1px; - left: -1px; -} - -.yui-calcontainer.multi .groupcal { - z-index: 1; - float: left; - position: relative; -} - -.yui-calcontainer .title { - position: relative; - z-index: 1; -} - -.yui-calcontainer .close-icon { - position: absolute; - z-index: 1; - text-indent: -10000em; - overflow: hidden; -} - -.yui-calendar { - position: relative; -} - -.yui-calendar .calnavleft { - position: absolute; - z-index: 1; - text-indent: -10000em; - overflow: hidden; -} - -.yui-calendar .calnavright { - position: absolute; - z-index: 1; - text-indent: -10000em; - overflow: hidden; -} - -.yui-calendar .calheader { - position: relative; - width: 100%; - text-align: center; -} - -.yui-calcontainer .yui-cal-nav-mask { - position: absolute; - z-index: 2; - margin: 0; - padding: 0; - width: 100%; - height: 100%; - _width: 0; - _height: 0; - left: 0; - top: 0; - display: none; -} - -.yui-calcontainer .yui-cal-nav { - position: absolute; - z-index: 3; - top: 0; - display: none; -} - -.yui-calcontainer .yui-cal-nav .yui-cal-nav-btn { - display: -moz-inline-box; - display: inline-block; -} - -.yui-calcontainer .yui-cal-nav .yui-cal-nav-btn button { - display: block; - *display: inline-block; - *overflow: visible; - border: none; - background-color: transparent; - cursor: pointer; -} - -.yui-calendar .calbody a:hover { - background: inherit; -} - -p#clear { - clear: left; - padding-top: 10px; -} - -.yui-skin-sam .yui-calcontainer { - background-color: #f2f2f2; - border: 1px solid #808080; - padding: 10px; -} - -.yui-skin-sam .yui-calcontainer.multi { - padding: 0 5px 0 5px; -} - -.yui-skin-sam .yui-calcontainer.multi .groupcal { - background-color: transparent; - border: none; - padding: 10px 5px 10px 5px; - margin: 0; -} - -.yui-skin-sam .yui-calcontainer .title { - background: url(sprite.png) repeat-x 0 0; - border-bottom: 1px solid #ccc; - font: 100% sans-serif; - color: #000; - font-weight: bold; - height: auto; - padding: .4em; - margin: 0 -10px 10px -10px; - top: 0; - left: 0; - text-align: left; -} - -.yui-skin-sam .yui-calcontainer.multi .title { - margin: 0 -5px 0 -5px; -} - -.yui-skin-sam .yui-calcontainer.withtitle { - padding-top: 0; -} - -.yui-skin-sam .yui-calcontainer .calclose { - background: url(sprite.png) no-repeat 0 -300px; - width: 25px; - height: 15px; - top: .4em; - right: .4em; - cursor: pointer; -} - -.yui-skin-sam .yui-calendar { - border-spacing: 0; - border-collapse: collapse; - font: 100% sans-serif; - text-align: center; - margin: 0; -} - -.yui-skin-sam .yui-calendar .calhead { - background: transparent; - border: none; - vertical-align: middle; - padding: 0; -} - -.yui-skin-sam .yui-calendar .calheader { - background: transparent; - font-weight: bold; - padding: 0 0 .6em 0; - text-align: center; -} - -.yui-skin-sam .yui-calendar .calheader img { - border: none; -} - -.yui-skin-sam .yui-calendar .calnavleft { - background: url(sprite.png) no-repeat 0 -450px; - width: 25px; - height: 15px; - top: 0; - bottom: 0; - left: -10px; - margin-left: .4em; - cursor: pointer; -} - -.yui-skin-sam .yui-calendar .calnavright { - background: url(sprite.png) no-repeat 0 -500px; - width: 25px; - height: 15px; - top: 0; - bottom: 0; - right: -10px; - margin-right: .4em; - cursor: pointer; -} - -.yui-skin-sam .yui-calendar .calweekdayrow { - height: 2em; -} - -.yui-skin-sam .yui-calendar .calweekdayrow th { - padding: 0; - border: none; -} - -.yui-skin-sam .yui-calendar .calweekdaycell { - color: #000; - font-weight: bold; - text-align: center; - width: 2em; -} - -.yui-skin-sam .yui-calendar .calfoot { - background-color: #f2f2f2; -} - -.yui-skin-sam .yui-calendar .calrowhead, .yui-skin-sam .yui-calendar .calrowfoot { - color: #a6a6a6; - font-size: 85%; - font-style: normal; - font-weight: normal; - border: none; -} - -.yui-skin-sam .yui-calendar .calrowhead { - text-align: right; - padding: 0 2px 0 0; -} - -.yui-skin-sam .yui-calendar .calrowfoot { - text-align: left; - padding: 0 0 0 2px; -} - -.yui-skin-sam .yui-calendar td.calcell { - border: 1px solid #ccc; - background: #fff; - padding: 1px; - height: 1.6em; - line-height: 1.6em; - text-align: center; - white-space: nowrap; -} - -.yui-skin-sam .yui-calendar td.calcell a { - color: #06c; - display: block; - height: 100%; - text-decoration: none; -} - -.yui-skin-sam .yui-calendar td.calcell.today { - background-color: #000; -} - -.yui-skin-sam .yui-calendar td.calcell.today a { - background-color: #fff; -} - -.yui-skin-sam .yui-calendar td.calcell.oom { - background-color: #ccc; - color: #a6a6a6; - cursor: default; -} - -.yui-skin-sam .yui-calendar td.calcell.selected { - background-color: #fff; - color: #000; -} - -.yui-skin-sam .yui-calendar td.calcell.selected a { - background-color: #b3d4ff; - color: #000; -} - -.yui-skin-sam .yui-calendar td.calcell.calcellhover { - background-color: #426fd9; - color: #fff; - cursor: pointer; -} - -.yui-skin-sam .yui-calendar td.calcell.calcellhover a { - background-color: #426fd9; - color: #fff; -} - -.yui-skin-sam .yui-calendar td.calcell.previous { - color: #e0e0e0; -} - -.yui-skin-sam .yui-calendar td.calcell.restricted { - text-decoration: line-through; -} - -.yui-skin-sam .yui-calendar td.calcell.highlight1 { - background-color: #cf9; -} - -.yui-skin-sam .yui-calendar td.calcell.highlight2 { - background-color: #9cf; -} - -.yui-skin-sam .yui-calendar td.calcell.highlight3 { - background-color: #fcc; -} - -.yui-skin-sam .yui-calendar td.calcell.highlight4 { - background-color: #cf9; -} - -.yui-skin-sam .yui-calendar a.calnav { - border: 1px solid #f2f2f2; - padding: 0 4px; - text-decoration: none; - color: #000; - zoom: 1; -} - -.yui-skin-sam .yui-calendar a.calnav:hover { - background: url(sprite.png) repeat-x 0 0; - border-color: #A0A0A0; - cursor: pointer; -} - -.yui-skin-sam .yui-calcontainer .yui-cal-nav-mask { - background-color: #000; - opacity: .25; - filter: alpha(opacity = 25); -} - -.yui-skin-sam .yui-calcontainer .yui-cal-nav { - font-family: arial, helvetica, clean, sans-serif; - font-size: 93%; - border: 1px solid #808080; - left: 50%; - margin-left: -7em; - width: 14em; - padding: 0; - top: 2.5em; - background-color: #f2f2f2; -} - -.yui-skin-sam .yui-calcontainer.withtitle .yui-cal-nav { - top: 4.5em; -} - -.yui-skin-sam .yui-calcontainer.multi .yui-cal-nav { - width: 16em; - margin-left: -8em; -} - -.yui-skin-sam .yui-calcontainer .yui-cal-nav-y, .yui-skin-sam .yui-calcontainer .yui-cal-nav-m, .yui-skin-sam .yui-calcontainer .yui-cal-nav-b { - padding: 5px 10px 5px 10px; -} - -.yui-skin-sam .yui-calcontainer .yui-cal-nav-b { - text-align: center; -} - -.yui-skin-sam .yui-calcontainer .yui-cal-nav-e { - margin-top: 5px; - padding: 5px; - background-color: #EDF5FF; - border-top: 1px solid black; - display: none; -} - -.yui-skin-sam .yui-calcontainer .yui-cal-nav label { - display: block; - font-weight: bold; -} - -.yui-skin-sam .yui-calcontainer .yui-cal-nav-mc { - width: 100%; - _width: auto; -} - -.yui-skin-sam .yui-calcontainer .yui-cal-nav-y input.yui-invalid { - background-color: #FFEE69; - border: 1px solid #000; -} - -.yui-skin-sam .yui-calcontainer .yui-cal-nav-yc { - width: 4em; -} - -.yui-skin-sam .yui-calcontainer .yui-cal-nav .yui-cal-nav-btn { - border: 1px solid #808080; - background: url(sprite.png) repeat-x 0 0; - background-color: #ccc; - margin: auto .15em; -} - -.yui-skin-sam .yui-calcontainer .yui-cal-nav .yui-cal-nav-btn button { - padding: 0 8px; - font-size: 93%; - line-height: 2; - *line-height: 1.7; - min-height: 2em; - *min-height: auto; - color: #000; -} - -.yui-skin-sam .yui-calcontainer .yui-cal-nav .yui-cal-nav-btn.yui-default { - border: 1px solid #304369; - background-color: #426fd9; - background: url(sprite.png) repeat-x 0 -1400px; -} - -.yui-skin-sam .yui-calcontainer .yui-cal-nav .yui-cal-nav-btn.yui-default button { - color: #fff; -} diff --git a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/carousel.css b/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/carousel.css deleted file mode 100644 index 8f9b8eceb..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/carousel.css +++ /dev/null @@ -1,211 +0,0 @@ -/* -Copyright (c) 2009, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.7.0 -*/ -.yui-carousel { - visibility: hidden; - overflow: hidden; - position: relative; - text-align: left; - zoom: 1; -} - -.yui-carousel.yui-carousel-visible { - visibility: visible; -} - -.yui-carousel-content { - overflow: hidden; - position: relative; -} - -.yui-carousel-element { - margin: 5px 0; - overflow: hidden; - padding: 0; - position: relative; - width: 32000px; - z-index: 1; -} - -.yui-carousel-vertical .yui-carousel-element { - margin: 0 5px; -} - -.yui-carousel-element li { - border: 1px solid #ccc; - float: left; - list-style: none; - margin: 1px; - overflow: hidden; - padding: 0; - text-align: center; - *float: none; - *display: inline-block; - *zoom: 1; - *display: inline; -} - -.yui-carousel .yui-carousel-item-selected { - border: 1px dashed #000; - margin: 1px; -} - -.yui-carousel-vertical { - height: 32000px; - margin: 0 5px; - width: auto; -} - -.yui-carousel-vertical .yui-carousel-element li { - display: block; - float: none; -} - -.yui-log .carousel { - background: #f2e886; -} - -.yui-carousel-nav { - zoom: 1; -} - -.yui-carousel-nav:after { - clear: both; - content: ""; - display: block; -} - -.yui-carousel-button-focus { - outline: 1px dotted #000; -} - -.yui-carousel-min-width .yui-carousel-content { - margin: 0 auto; -} - -.yui-skin-sam .yui-carousel, .yui-skin-sam .yui-carousel-vertical { - border: 1px solid #808080; -} - -.yui-skin-sam .yui-carousel-nav { - background: url(sprite.png) repeat-x 0 0; - padding: 3px; - text-align: right; -} - -.yui-skin-sam .yui-carousel-button { - background: url(sprite.png) no-repeat 0 -600px; - float: right; - height: 19px; - margin: 5px; - overflow: hidden; - width: 40px; -} - -.yui-skin-sam .yui-carousel-vertical .yui-carousel-button { - background-position: 0 -800px; -} - -.yui-skin-sam .yui-carousel-button-disabled { - background-position: 0 -2000px; -} - -.yui-skin-sam .yui-carousel-vertical .yui-carousel-button-disabled { - background-position: 0 -2100px; -} - -.yui-skin-sam .yui-carousel-button input, .yui-skin-sam .yui-carousel-button button { - background-color: transparent; - border: 0; - cursor: pointer; - display: block; - height: 44px; - margin: -2px 0 0 -2px; - padding: 0 0 0 50px; -} - -.yui-skin-sam span.yui-carousel-first-button { - background-position: 0 -550px; - margin-left: -100px; - margin-right: 50px; - *margin: 5px 5px 5px -90px; -} - -.yui-skin-sam .yui-carousel-vertical span.yui-carousel-first-button { - background-position: 0 -750px; -} - -.yui-skin-sam span.yui-carousel-first-button-disabled { - background-position: 0 -1950px; -} - -.yui-skin-sam .yui-carousel-vertical span.yui-carousel-first-button-disabled { - background-position: 0 -2050px; -} - -.yui-skin-sam .yui-carousel-nav ul { - float: right; - height: 19px; - margin: 0; - margin-left: -220px; - margin-right: 100px; - *margin-left: -160px; - *margin-right: 0; - padding: 0; -} - -.yui-skin-sam .yui-carousel-min-width .yui-carousel-nav ul { - *margin-left: -170px; -} - -.yui-skin-sam .yui-carousel-nav select { - position: relative; - *right: 50px; - top: 4px; -} - -.yui-skin-sam .yui-carousel-vertical .yui-carousel-nav ul, .yui-skin-sam .yui-carousel-vertical .yui-carousel-nav select { - float: none; - margin: 0; - *zoom: 1; -} - -.yui-skin-sam .yui-carousel-nav ul li { - background: url(sprite.png) no-repeat 0 -650px; - cursor: pointer; - float: left; - height: 9px; - list-style: none; - margin: 10px 0 0 5px; - overflow: hidden; - padding: 0; - width: 9px; -} - -.yui-skin-sam .yui-carousel-nav ul:after { - clear: both; - content: ""; - display: block; -} - -.yui-skin-sam .yui-carousel-nav ul li a { - left: -10000px; - position: absolute; -} - -.yui-skin-sam .yui-carousel-nav ul li.yui-carousel-nav-page-focus { - outline: 1px dotted #000; -} - -.yui-skin-sam .yui-carousel-nav ul li.yui-carousel-nav-page-selected { - background-position: 0 -700px; -} - -.yui-skin-sam .yui-carousel-item-loading { - background: url(ajax-loader.gif) no-repeat 50% 50%; - position: relative; - text-indent: -150px; -} diff --git a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/colorpicker.css b/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/colorpicker.css deleted file mode 100644 index 244c42567..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/colorpicker.css +++ /dev/null @@ -1,161 +0,0 @@ -/* -Copyright (c) 2009, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.7.0 -*/ -.yui-picker-panel { - background: #e3e3e3; - border-color: #888; -} - -.yui-picker-panel .hd { - background-color: #ccc; - font-size: 100%; - line-height: 100%; - border: 1px solid #e3e3e3; - font-weight: bold; - overflow: hidden; - padding: 6px; - color: #000; -} - -.yui-picker-panel .bd { - background: #e8e8e8; - margin: 1px; - height: 200px; -} - -.yui-picker-panel .ft { - background: #e8e8e8; - margin: 1px; - padding: 1px; -} - -.yui-picker { - position: relative; -} - -.yui-picker-hue-thumb { - cursor: default; - width: 18px; - height: 18px; - top: -8px; - left: -2px; - z-index: 9; - position: absolute; -} - -.yui-picker-hue-bg { - -moz-outline: none; - outline: 0 none; - position: absolute; - left: 200px; - height: 183px; - width: 14px; - background: url(hue_bg.png) no-repeat; - top: 4px; -} - -.yui-picker-bg { - -moz-outline: none; - outline: 0 none; - position: absolute; - top: 4px; - left: 4px; - height: 182px; - width: 182px; - background-color: #F00; - background-image: url(picker_mask.png); -} - -*html .yui-picker-bg { - background-image: none; - filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src = '../../build/colorpicker/assets/picker_mask.png', sizingMethod = 'scale'); -} - -.yui-picker-mask { - position: absolute; - z-index: 1; - top: 0; - left: 0; -} - -.yui-picker-thumb { - cursor: default; - width: 11px; - height: 11px; - z-index: 9; - position: absolute; - top: -4px; - left: -4px; -} - -.yui-picker-swatch { - position: absolute; - left: 240px; - top: 4px; - height: 60px; - width: 55px; - border: 1px solid #888; -} - -.yui-picker-websafe-swatch { - position: absolute; - left: 304px; - top: 4px; - height: 24px; - width: 24px; - border: 1px solid #888; -} - -.yui-picker-controls { - position: absolute; - top: 72px; - left: 226px; - font: 1em monospace; -} - -.yui-picker-controls .hd { - background: transparent; - border-width: 0 !important; -} - -.yui-picker-controls .bd { - height: 100px; - border-width: 0 !important; -} - -.yui-picker-controls ul { - float: left; - padding: 0 2px 0 0; - margin: 0; -} - -.yui-picker-controls li { - padding: 2px; - list-style: none; - margin: 0; -} - -.yui-picker-controls input { - font-size: .85em; - width: 2.4em; -} - -.yui-picker-hex-controls { - clear: both; - padding: 2px; -} - -.yui-picker-hex-controls input { - width: 4.6em; -} - -.yui-picker-controls a { - font: 1em arial, helvetica, clean, sans-serif; - display: block; - *display: inline-block; - padding: 0; - color: #000; -} diff --git a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/container.css b/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/container.css deleted file mode 100644 index 1a0c6defe..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/container.css +++ /dev/null @@ -1,296 +0,0 @@ -/* -Copyright (c) 2009, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.7.0 -*/ -.yui-overlay, .yui-panel-container { - visibility: hidden; - position: absolute; - z-index: 2; -} - -.yui-panel { - position: relative; -} - -.yui-panel-container form { - margin: 0; -} - -.mask { - z-index: 1; - display: none; - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; -} - -.mask.block-scrollbars { - overflow: auto; -} - -.masked select, .drag select, .hide-select select { - _visibility: hidden; -} - -.yui-panel-container select { - _visibility: inherit; -} - -.hide-scrollbars, .hide-scrollbars * { - overflow: hidden; -} - -.hide-scrollbars select { - display: none; -} - -.show-scrollbars { - overflow: auto; -} - -.yui-panel-container.show-scrollbars, .yui-tt.show-scrollbars { - overflow: visible; -} - -.yui-panel-container.show-scrollbars .underlay, .yui-tt.show-scrollbars .yui-tt-shadow { - overflow: auto; -} - -.yui-panel-container.shadow .underlay.yui-force-redraw { - padding-bottom: 1px; -} - -.yui-effect-fade .underlay, .yui-effect-fade .yui-tt-shadow { - display: none; -} - -.yui-tt-shadow { - position: absolute; -} - -.yui-override-padding { - padding: 0 !important; -} - -.yui-panel-container .container-close { - overflow: hidden; - text-indent: -10000em; - text-decoration: none; -} - -.yui-overlay.yui-force-redraw, .yui-panel-container.yui-force-redraw { - margin-bottom: 1px; -} - -.yui-skin-sam .mask { - background-color: #000; - opacity: .25; - filter: alpha(opacity = 25); -} - -.yui-skin-sam .yui-panel-container { - padding: 0 1px; - *padding: 2px; -} - -.yui-skin-sam .yui-panel { - position: relative; - left: 0; - top: 0; - border-style: solid; - border-width: 1px 0; - border-color: #808080; - z-index: 1; - *border-width: 1px; - *zoom: 1; - _zoom: normal; -} - -.yui-skin-sam .yui-panel .hd, .yui-skin-sam .yui-panel .bd, .yui-skin-sam .yui-panel .ft { - border-style: solid; - border-width: 0 1px; - border-color: #808080; - margin: 0 -1px; - *margin: 0; - *border: 0; -} - -.yui-skin-sam .yui-panel .hd { - border-bottom: solid 1px #ccc; -} - -.yui-skin-sam .yui-panel .bd, .yui-skin-sam .yui-panel .ft { - background-color: #F2F2F2; -} - -.yui-skin-sam .yui-panel .hd { - padding: 0 10px; - font-size: 93%; - line-height: 2; - *line-height: 1.9; - font-weight: bold; - color: #000; - background: url(sprite.png) repeat-x 0 -200px; -} - -.yui-skin-sam .yui-panel .bd { - padding: 10px; -} - -.yui-skin-sam .yui-panel .ft { - border-top: solid 1px #808080; - padding: 5px 10px; - font-size: 77%; -} - -.yui-skin-sam .container-close { - position: absolute; - top: 5px; - right: 6px; - width: 25px; - height: 15px; - background: url(sprite.png) no-repeat 0 -300px; - cursor: pointer; -} - -.yui-skin-sam .yui-panel-container .underlay { - right: -1px; - left: -1px; -} - -.yui-skin-sam .yui-panel-container.matte { - padding: 9px 10px; - background-color: #fff; -} - -.yui-skin-sam .yui-panel-container.shadow { - _padding: 2px 4px 0 2px; -} - -.yui-skin-sam .yui-panel-container.shadow .underlay { - position: absolute; - top: 2px; - left: -3px; - right: -3px; - bottom: -3px; - *top: 4px; - *left: -1px; - *right: -1px; - *bottom: -1px; - _top: 0; - _left: 0; - _right: 0; - _bottom: 0; - _margin-top: 3px; - _margin-left: -1px; - background-color: #000; - opacity: .12; - filter: alpha(opacity = 12); -} - -.yui-skin-sam .yui-dialog .ft { - border-top: none; - padding: 0 10px 10px 10px; - font-size: 100%; -} - -.yui-skin-sam .yui-dialog .ft .button-group { - display: block; - text-align: right; -} - -.yui-skin-sam .yui-dialog .ft button.default { - font-weight: bold; -} - -.yui-skin-sam .yui-dialog .ft span.default { - border-color: #304369; - background-position: 0 -1400px; -} - -.yui-skin-sam .yui-dialog .ft span.default .first-child { - border-color: #304369; -} - -.yui-skin-sam .yui-dialog .ft span.default button { - color: #fff; -} - -.yui-skin-sam .yui-dialog .ft span.yui-button-disabled { - background-position: 0 -1500px; - border-color: #ccc; -} - -.yui-skin-sam .yui-dialog .ft span.yui-button-disabled .first-child { - border-color: #ccc; -} - -.yui-skin-sam .yui-dialog .ft span.yui-button-disabled button { - color: #a6a6a6; -} - -.yui-skin-sam .yui-simple-dialog .bd .yui-icon { - background: url(sprite.png) no-repeat 0 0; - width: 16px; - height: 16px; - margin-right: 10px; - float: left; -} - -.yui-skin-sam .yui-simple-dialog .bd span.blckicon { - background-position: 0 -1100px; -} - -.yui-skin-sam .yui-simple-dialog .bd span.alrticon { - background-position: 0 -1050px; -} - -.yui-skin-sam .yui-simple-dialog .bd span.hlpicon { - background-position: 0 -1150px; -} - -.yui-skin-sam .yui-simple-dialog .bd span.infoicon { - background-position: 0 -1200px; -} - -.yui-skin-sam .yui-simple-dialog .bd span.warnicon { - background-position: 0 -1900px; -} - -.yui-skin-sam .yui-simple-dialog .bd span.tipicon { - background-position: 0 -1250px; -} - -.yui-skin-sam .yui-tt .bd { - position: relative; - top: 0; - left: 0; - z-index: 1; - color: #000; - padding: 2px 5px; - border-color: #D4C237 #A6982B #A6982B #A6982B; - border-width: 1px; - border-style: solid; - background-color: #FFEE69; -} - -.yui-skin-sam .yui-tt.show-scrollbars .bd { - overflow: auto; -} - -.yui-skin-sam .yui-tt-shadow { - top: 2px; - right: -3px; - left: -3px; - bottom: -3px; - background-color: #000; -} - -.yui-skin-sam .yui-tt-shadow-visible { - opacity: .12; - filter: alpha(opacity = 12); -} diff --git a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/datatable.css b/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/datatable.css deleted file mode 100644 index 239d06c31..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/datatable.css +++ /dev/null @@ -1,363 +0,0 @@ -/* -Copyright (c) 2009, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.7.0 -*/ -.yui-skin-sam .yui-dt-mask { - position: absolute; - z-index: 9500; -} - -.yui-dt-tmp { - position: absolute; - left: -9000px; -} - -.yui-dt-scrollable .yui-dt-bd { - overflow: auto; -} - -.yui-dt-scrollable .yui-dt-hd { - overflow: hidden; - position: relative; -} - -.yui-dt-scrollable .yui-dt-bd thead tr, .yui-dt-scrollable .yui-dt-bd thead th { - position: absolute; - left: -1500px; -} - -.yui-dt-scrollable tbody { - -moz-outline: none; -} - -.yui-skin-sam thead .yui-dt-sortable { - cursor: pointer; -} - -.yui-skin-sam thead .yui-dt-draggable { - cursor: move; -} - -.yui-dt-coltarget { - position: absolute; - z-index: 999; -} - -.yui-dt-hd { - zoom: 1; -} - -th.yui-dt-resizeable .yui-dt-resizerliner { - position: relative; -} - -.yui-dt-resizer { - position: absolute; - right: 0; - bottom: 0; - height: 100%; - cursor: e-resize; - cursor: col-resize; - background-color: #CCC; - opacity: 0; - filter: alpha(opacity = 0); -} - -.yui-dt-resizerproxy { - visibility: hidden; - position: absolute; - z-index: 9000; - background-color: #CCC; - opacity: 0; - filter: alpha(opacity = 0); -} - -th.yui-dt-hidden .yui-dt-liner, td.yui-dt-hidden .yui-dt-liner, th.yui-dt-hidden .yui-dt-resizer { - display: none; -} - -.yui-dt-editor { - position: absolute; - z-index: 9000; -} - -.yui-skin-sam .yui-dt table { - margin: 0; - padding: 0; - font-family: arial; - font-size: inherit; - border-collapse: separate; - *border-collapse: collapse; - border-spacing: 0; - border: 1px solid #7F7F7F; -} - -.yui-skin-sam .yui-dt thead { - border-spacing: 0; -} - -.yui-skin-sam .yui-dt caption { - color: #000; - font-size: 85%; - font-weight: normal; - font-style: italic; - line-height: 1; - padding: 1em 0; - text-align: center; -} - -.yui-skin-sam .yui-dt th { - background: #D8D8DA url(sprite.png) repeat-x 0 0; -} - -.yui-skin-sam .yui-dt th, .yui-skin-sam .yui-dt th a { - font-weight: normal; - text-decoration: none; - color: #000; - vertical-align: bottom; -} - -.yui-skin-sam .yui-dt th { - margin: 0; - padding: 0; - border: none; - border-right: 1px solid #CBCBCB; -} - -.yui-skin-sam .yui-dt tr.yui-dt-first td { - border-top: 1px solid #7F7F7F; -} - -.yui-skin-sam .yui-dt th .yui-dt-liner { - white-space: nowrap; -} - -.yui-skin-sam .yui-dt-liner { - margin: 0; - padding: 0; - padding: 4px 10px 4px 10px; -} - -.yui-skin-sam .yui-dt-coltarget { - width: 5px; - background-color: red; -} - -.yui-skin-sam .yui-dt td { - margin: 0; - padding: 0; - border: none; - border-right: 1px solid #CBCBCB; - text-align: left; -} - -.yui-skin-sam .yui-dt-list td { - border-right: none; -} - -.yui-skin-sam .yui-dt-resizer { - width: 6px; -} - -.yui-skin-sam .yui-dt-mask { - background-color: #000; - opacity: .25; - filter: alpha(opacity = 25); -} - -.yui-skin-sam .yui-dt-message { - background-color: #FFF; -} - -.yui-skin-sam .yui-dt-scrollable table { - border: none; -} - -.yui-skin-sam .yui-dt-scrollable .yui-dt-hd { - border-left: 1px solid #7F7F7F; - border-top: 1px solid #7F7F7F; - border-right: 1px solid #7F7F7F; -} - -.yui-skin-sam .yui-dt-scrollable .yui-dt-bd { - border-left: 1px solid #7F7F7F; - border-bottom: 1px solid #7F7F7F; - border-right: 1px solid #7F7F7F; - background-color: #FFF; -} - -.yui-skin-sam .yui-dt-scrollable .yui-dt-data tr.yui-dt-last td { - border-bottom: 1px solid #7F7F7F; -} - -.yui-skin-sam th.yui-dt-asc, .yui-skin-sam th.yui-dt-desc { - background: url(sprite.png) repeat-x 0 -100px; -} - -.yui-skin-sam th.yui-dt-sortable .yui-dt-label { - margin-right: 10px; -} - -.yui-skin-sam th.yui-dt-asc .yui-dt-liner { - background: url(dt-arrow-up.png) no-repeat right; -} - -.yui-skin-sam th.yui-dt-desc .yui-dt-liner { - background: url(dt-arrow-dn.png) no-repeat right; -} - -tbody .yui-dt-editable { - cursor: pointer; -} - -.yui-dt-editor { - text-align: left; - background-color: #F2F2F2; - border: 1px solid #808080; - padding: 6px; -} - -.yui-dt-editor label { - padding-left: 4px; - padding-right: 6px; -} - -.yui-dt-editor .yui-dt-button { - padding-top: 6px; - text-align: right; -} - -.yui-dt-editor .yui-dt-button button { - background: url(sprite.png) repeat-x 0 0; - border: 1px solid #999; - width: 4em; - height: 1.8em; - margin-left: 6px; -} - -.yui-dt-editor .yui-dt-button button.yui-dt-default { - background: url(sprite.png) repeat-x 0 -1400px; - background-color: #5584E0; - border: 1px solid #304369; - color: #FFF; -} - -.yui-dt-editor .yui-dt-button button:hover { - background: url(sprite.png) repeat-x 0 -1300px; - color: #000; -} - -.yui-dt-editor .yui-dt-button button:active { - background: url(sprite.png) repeat-x 0 -1700px; - color: #000; -} - -.yui-skin-sam tr.yui-dt-even { - background-color: #FFF; -} - -.yui-skin-sam tr.yui-dt-odd { - background-color: #EDF5FF; -} - -.yui-skin-sam tr.yui-dt-even td.yui-dt-asc, .yui-skin-sam tr.yui-dt-even td.yui-dt-desc { - background-color: #EDF5FF; -} - -.yui-skin-sam tr.yui-dt-odd td.yui-dt-asc, .yui-skin-sam tr.yui-dt-odd td.yui-dt-desc { - background-color: #DBEAFF; -} - -.yui-skin-sam .yui-dt-list tr.yui-dt-even { - background-color: #FFF; -} - -.yui-skin-sam .yui-dt-list tr.yui-dt-odd { - background-color: #FFF; -} - -.yui-skin-sam .yui-dt-list tr.yui-dt-even td.yui-dt-asc, .yui-skin-sam .yui-dt-list tr.yui-dt-even td.yui-dt-desc { - background-color: #EDF5FF; -} - -.yui-skin-sam .yui-dt-list tr.yui-dt-odd td.yui-dt-asc, .yui-skin-sam .yui-dt-list tr.yui-dt-odd td.yui-dt-desc { - background-color: #EDF5FF; -} - -.yui-skin-sam th.yui-dt-highlighted, .yui-skin-sam th.yui-dt-highlighted a { - background-color: #B2D2FF; -} - -.yui-skin-sam tr.yui-dt-highlighted, .yui-skin-sam tr.yui-dt-highlighted td.yui-dt-asc, .yui-skin-sam tr.yui-dt-highlighted td.yui-dt-desc, .yui-skin-sam tr.yui-dt-even td.yui-dt-highlighted, .yui-skin-sam tr.yui-dt-odd td.yui-dt-highlighted { - cursor: pointer; - background-color: #B2D2FF; -} - -.yui-skin-sam .yui-dt-list th.yui-dt-highlighted, .yui-skin-sam .yui-dt-list th.yui-dt-highlighted a { - background-color: #B2D2FF; -} - -.yui-skin-sam .yui-dt-list tr.yui-dt-highlighted, .yui-skin-sam .yui-dt-list tr.yui-dt-highlighted td.yui-dt-asc, .yui-skin-sam .yui-dt-list tr.yui-dt-highlighted td.yui-dt-desc, .yui-skin-sam .yui-dt-list tr.yui-dt-even td.yui-dt-highlighted, .yui-skin-sam .yui-dt-list tr.yui-dt-odd td.yui-dt-highlighted { - cursor: pointer; - background-color: #B2D2FF; -} - -.yui-skin-sam th.yui-dt-selected, .yui-skin-sam th.yui-dt-selected a { - background-color: #446CD7; -} - -.yui-skin-sam tr.yui-dt-selected td, .yui-skin-sam tr.yui-dt-selected td.yui-dt-asc, .yui-skin-sam tr.yui-dt-selected td.yui-dt-desc { - background-color: #426FD9; - color: #FFF; -} - -.yui-skin-sam tr.yui-dt-even td.yui-dt-selected, .yui-skin-sam tr.yui-dt-odd td.yui-dt-selected { - background-color: #446CD7; - color: #FFF; -} - -.yui-skin-sam .yui-dt-list th.yui-dt-selected, .yui-skin-sam .yui-dt-list th.yui-dt-selected a { - background-color: #446CD7; -} - -.yui-skin-sam .yui-dt-list tr.yui-dt-selected td, .yui-skin-sam .yui-dt-list tr.yui-dt-selected td.yui-dt-asc, .yui-skin-sam .yui-dt-list tr.yui-dt-selected td.yui-dt-desc { - background-color: #426FD9; - color: #FFF; -} - -.yui-skin-sam .yui-dt-list tr.yui-dt-even td.yui-dt-selected, .yui-skin-sam .yui-dt-list tr.yui-dt-odd td.yui-dt-selected { - background-color: #446CD7; - color: #FFF; -} - -.yui-skin-sam .yui-dt-paginator { - display: block; - margin: 6px 0; - white-space: nowrap; -} - -.yui-skin-sam .yui-dt-paginator .yui-dt-first, .yui-skin-sam .yui-dt-paginator .yui-dt-last, .yui-skin-sam .yui-dt-paginator .yui-dt-selected { - padding: 2px 6px; -} - -.yui-skin-sam .yui-dt-paginator a.yui-dt-first, .yui-skin-sam .yui-dt-paginator a.yui-dt-last { - text-decoration: none; -} - -.yui-skin-sam .yui-dt-paginator .yui-dt-previous, .yui-skin-sam .yui-dt-paginator .yui-dt-next { - display: none; -} - -.yui-skin-sam a.yui-dt-page { - border: 1px solid #CBCBCB; - padding: 2px 6px; - text-decoration: none; - background-color: #fff; -} - -.yui-skin-sam .yui-dt-selected { - border: 1px solid #fff; - background-color: #fff; -} diff --git a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/desc.gif b/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/desc.gif deleted file mode 100644 index c114f290c..000000000 Binary files a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/desc.gif and /dev/null differ diff --git a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/dt-arrow-dn.png b/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/dt-arrow-dn.png deleted file mode 100644 index 85fda0bbc..000000000 Binary files a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/dt-arrow-dn.png and /dev/null differ diff --git a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/dt-arrow-up.png b/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/dt-arrow-up.png deleted file mode 100644 index 1c674316a..000000000 Binary files a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/dt-arrow-up.png and /dev/null differ diff --git a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/editor-knob.gif b/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/editor-knob.gif deleted file mode 100644 index 03feab3b0..000000000 Binary files a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/editor-knob.gif and /dev/null differ diff --git a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/editor-sprite-active.gif b/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/editor-sprite-active.gif deleted file mode 100644 index 3e9d4200b..000000000 Binary files a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/editor-sprite-active.gif and /dev/null differ diff --git a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/editor-sprite.gif b/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/editor-sprite.gif deleted file mode 100644 index 02042fa14..000000000 Binary files a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/editor-sprite.gif and /dev/null differ diff --git a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/editor.css b/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/editor.css deleted file mode 100644 index 4c87721eb..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/editor.css +++ /dev/null @@ -1,1217 +0,0 @@ -/* -Copyright (c) 2009, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.7.0 -*/ -.yui-busy { - cursor: wait !important; -} - -.yui-toolbar-container fieldset, .yui-editor-container fieldset { - padding: 0; - margin: 0; - border: 0; -} - -.yui-toolbar-container legend { - display: none; -} - -.yui-toolbar-container .yui-toolbar-subcont { - padding: .25em 0; - zoom: 1; -} - -.yui-toolbar-container-collapsed .yui-toolbar-subcont { - display: none; -} - -.yui-toolbar-container .yui-toolbar-subcont:after { - display: block; - clear: both; - visibility: hidden; - content: '.'; - height: 0; -} - -.yui-toolbar-container span.yui-toolbar-draghandle { - cursor: move; - border-left: 1px solid #999; - border-right: 1px solid #999; - overflow: hidden; - text-indent: 77777px; - width: 2px; - height: 20px; - display: block; - clear: none; - float: left; - margin: 0 0 0 .2em; -} - -.yui-toolbar-container .yui-toolbar-titlebar.draggable { - cursor: move; -} - -.yui-toolbar-container .yui-toolbar-titlebar { - position: relative; -} - -.yui-toolbar-container .yui-toolbar-titlebar h2 { - font-weight: bold; - letter-spacing: 0; - border: none; - color: #000; - margin: 0; - padding: .2em; -} - -.yui-toolbar-container .yui-toolbar-titlebar h2 a { - text-decoration: none; - color: #000; - cursor: default; -} - -.yui-toolbar-container.yui-toolbar-grouped span.yui-toolbar-draghandle { - height: 40px; -} - -.yui-toolbar-container .yui-toolbar-group { - float: left; - margin-right: .5em; - zoom: 1; -} - -.yui-toolbar-container .yui-toolbar-group:after { - display: block; - clear: both; - visibility: hidden; - content: '.'; - height: 0; -} - -.yui-toolbar-container .yui-toolbar-group h3 { - font-size: 75%; - padding: 0 0 0 .25em; - margin: 0; -} - -.yui-toolbar-container span.yui-toolbar-separator { - width: 2px; - padding: 0; - height: 18px; - margin: .2em 0 .2em .1em; - display: none; - float: left; -} - -.yui-toolbar-container.yui-toolbar-grouped span.yui-toolbar-separator { - height: 45px; - *height: 50px; -} - -.yui-toolbar-container.yui-toolbar-grouped .yui-toolbar-group span.yui-toolbar-separator { - height: 18px; - display: block; -} - -.yui-toolbar-container ul li { - margin: 0; - padding: 0; - list-style-type: none; -} - -.yui-toolbar-container .yui-toolbar-nogrouplabels h3 { - display: none; -} - -.yui-toolbar-container .yui-push-button, .yui-toolbar-container .yui-color-button, .yui-toolbar-container .yui-menu-button { - position: relative; - cursor: pointer; -} - -.yui-toolbar-container .yui-button .first-child, .yui-toolbar-container .yui-button .first-child a { - height: 100%; - width: 100%; - overflow: hidden; - font-size: 0; -} - -.yui-toolbar-container .yui-button-disabled { - cursor: default; -} - -.yui-toolbar-container .yui-button-disabled .yui-toolbar-icon { - opacity: .5; - filter: alpha(opacity = 50); -} - -.yui-toolbar-container .yui-button-disabled .up, .yui-toolbar-container .yui-button-disabled .down { - opacity: .5; - filter: alpha(opacity = 50); -} - -.yui-toolbar-container .yui-button a { - overflow: hidden; -} - -.yui-toolbar-container .yui-toolbar-select .first-child a { - cursor: pointer; -} - -.yui-toolbar-fontname-arial { - font-family: Arial; -} - -.yui-toolbar-fontname-arial-black { - font-family: Arial Black; -} - -.yui-toolbar-fontname-comic-sans-ms { - font-family: Comic Sans MS; -} - -.yui-toolbar-fontname-courier-new { - font-family: Courier New; -} - -.yui-toolbar-fontname-times-new-roman { - font-family: Times New Roman; -} - -.yui-toolbar-fontname-verdana { - font-family: Verdana; -} - -.yui-toolbar-fontname-impact { - font-family: Impact; -} - -.yui-toolbar-fontname-lucida-console { - font-family: Lucida Console; -} - -.yui-toolbar-fontname-tahoma { - font-family: Tahoma; -} - -.yui-toolbar-fontname-trebuchet-ms { - font-family: Trebuchet MS; -} - -.yui-toolbar-container .yui-toolbar-spinbutton { - position: relative; -} - -.yui-toolbar-container .yui-toolbar-spinbutton .first-child a { - z-index: 0; - opacity: 1; -} - -.yui-toolbar-container .yui-toolbar-spinbutton a.up, .yui-toolbar-container .yui-toolbar-spinbutton a.down { - position: absolute; - display: block right: 0; - cursor: pointer; - z-index: 1; - padding: 0; - margin: 0; -} - -.yui-toolbar-container .yui-overlay { - position: absolute; -} - -.yui-toolbar-container .yui-overlay ul li { - margin: 0; - list-style-type: none; -} - -.yui-toolbar-container { - z-index: 1; -} - -.yui-editor-container .yui-editor-editable-container { - position: relative; - z-index: 0; - width: 100%; -} - -.yui-editor-container .yui-editor-masked { - background-color: #CCC; - height: 100%; - width: 100%; - position: absolute; - top: 0; - left: 0; - opacity: .5; - filter: alpha(opacity = 50); -} - -.yui-editor-container iframe { - border: 0; - padding: 0; - margin: 0; - zoom: 1; - display: block; -} - -.yui-editor-container .yui-editor-editable { - padding: 0; - margin: 0; -} - -.yui-editor-container .dompath { - font-size: 85%; -} - -.yui-editor-panel .hd { - text-align: left; - position: relative; -} - -.yui-editor-panel .hd h3 { - font-weight: bold; - padding: .25em 0 .25em .25em; - margin: 0; -} - -.yui-editor-panel .bd { - width: 100%; - zoom: 1; - position: relative; -} - -.yui-editor-panel .bd div.yui-editor-body-cont { - padding: .25em .1em; - zoom: 1; -} - -.yui-editor-panel .bd .gecko form { - overflow: auto; -} - -.yui-editor-panel .bd div.yui-editor-body-cont:after { - display: block; - clear: both; - visibility: hidden; - content: '.'; - height: 0; -} - -.yui-editor-panel .ft { - text-align: right; - width: 99%; - float: left; - clear: both; -} - -.yui-editor-panel .ft span.tip { - display: block; - position: relative; - padding: .5em .5em .5em 23px; - text-align: left; - zoom: 1; -} - -.yui-editor-panel label { - clear: both; - float: left; - padding: 0; - width: 100%; - text-align: left; - zoom: 1; -} - -.yui-editor-panel .gecko label { - overflow: auto; -} - -.yui-editor-panel label strong { - float: left; - width: 6em; -} - -.yui-editor-panel .removeLink { - width: 80%; - text-align: right; -} - -.yui-editor-panel label input { - margin-left: .25em; - float: left; -} - -.yui-editor-panel .yui-toolbar-group { - margin-bottom: .75em; -} - -.yui-editor-panel .height-width { - float: left; -} - -.yui-editor-panel .height-width span { - font-style: italic; - display: block; - float: left; - overflow: visible; -} - -.yui-editor-panel .height-width span.info { - font-size: 70%; - margin-top: 3px; -} - -.yui-editor-panel .yui-toolbar-bordersize, .yui-editor-panel .yui-toolbar-bordertype { - font-size: 75%; -} - -.yui-editor-panel .yui-toolbar-container span.yui-toolbar-separator { - border: none; -} - -.yui-editor-panel .yui-toolbar-bordersize span a span, .yui-editor-panel .yui-toolbar-bordertype span a span { - display: block; - height: 8px; - left: 4px; - position: absolute; - top: 3px; - _top: -5px; - width: 24px; - text-indent: 52px; - font-size: 0; -} - -.yui-editor-panel .yui-toolbar-bordertype span a span.yui-toolbar-bordertype-solid { - border-bottom: 1px solid black; -} - -.yui-editor-panel .yui-toolbar-bordertype span a span.yui-toolbar-bordertype-dotted { - border-bottom: 1px dotted black; -} - -.yui-editor-panel .yui-toolbar-bordertype span a span.yui-toolbar-bordertype-dashed { - border-bottom: 1px dashed black; -} - -.yui-editor-panel .yui-toolbar-bordersize span a span.yui-toolbar-bordersize-0 { - *top: 0; - text-indent: 0; - font-size: 75%; -} - -.yui-editor-panel .yui-toolbar-bordersize span a span.yui-toolbar-bordersize-1 { - border-bottom: 1px solid black; -} - -.yui-editor-panel .yui-toolbar-bordersize span a span.yui-toolbar-bordersize-2 { - border-bottom: 2px solid black; -} - -.yui-editor-panel .yui-toolbar-bordersize span a span.yui-toolbar-bordersize-3 { - top: 2px; - *top: -5px; - border-bottom: 3px solid black; -} - -.yui-editor-panel .yui-toolbar-bordersize span a span.yui-toolbar-bordersize-4 { - top: 1px; - *top: -5px; - border-bottom: 4px solid black; -} - -.yui-editor-panel .yui-toolbar-bordersize span a span.yui-toolbar-bordersize-5 { - top: 1px; - *top: -5px; - border-bottom: 5px solid black; -} - -.yui-toolbar-container .yui-toolbar-bordersize-menu, .yui-toolbar-container .yui-toolbar-bordertype-menu { - width: 95px !important; -} - -.yui-toolbar-bordersize-menu .yuimenuitemlabel, .yui-toolbar-bordertype-menu .yuimenuitemlabel, .yui-toolbar-bordersize-menu .yuimenuitemlabel, .yui-toolbar-bordertype-menu .yuimenuitemlabel:hover { - margin: 0 3px 7px 17px; -} - -.yui-toolbar-bordersize-menu .yuimenuitemlabel .checkedindicator, .yui-toolbar-bordertype-menu .yuimenuitemlabel .checkedindicator { - position: absolute; - left: -12px; - *top: 14px; - *left: 0; -} - -.yui-toolbar-bordersize-menu li.yui-toolbar-bordersize-1 a { - border-bottom: 1px solid black; - height: 14px; -} - -.yui-toolbar-bordersize-menu li.yui-toolbar-bordersize-2 a { - border-bottom: 2px solid black; - height: 14px; -} - -.yui-toolbar-bordersize-menu li.yui-toolbar-bordersize-3 a { - border-bottom: 3px solid black; - height: 14px; -} - -.yui-toolbar-bordersize-menu li.yui-toolbar-bordersize-4 a { - border-bottom: 4px solid black; - height: 14px; -} - -.yui-toolbar-bordersize-menu li.yui-toolbar-bordersize-5 a { - border-bottom: 5px solid black; - height: 14px; -} - -.yui-toolbar-bordertype-menu li.yui-toolbar-bordertype-solid a { - border-bottom: 1px solid black; - height: 14px; -} - -.yui-toolbar-bordertype-menu li.yui-toolbar-bordertype-dashed a { - border-bottom: 1px dashed black; - height: 14px; -} - -.yui-toolbar-bordertype-menu li.yui-toolbar-bordertype-dotted a { - border-bottom: 1px dotted black; - height: 14px; -} - -h2.yui-editor-skipheader, h3.yui-editor-skipheader { - height: 0; - margin: 0; - padding: 0; - border: none; - width: 0; - overflow: hidden; - position: absolute; -} - -.yui-toolbar-colors { - width: 133px; - zoom: 1; - display: none; - z-index: 100; - overflow: hidden; -} - -.yui-toolbar-colors:after { - display: block; - clear: both; - visibility: hidden; - content: '.'; - height: 0; -} - -.yui-toolbar-colors a { - height: 9px; - width: 9px; - float: left; - display: block; - overflow: hidden; - text-indent: 999px; - margin: 0; - cursor: pointer; - border: 1px solid #F6F7EE; -} - -.yui-toolbar-colors a:hover { - border: 1px solid black; -} - -.yui-color-button-menu { - overflow: visible; - background-color: transparent; -} - -.yui-toolbar-colors span { - position: relative; - display: block; - padding: 3px; - overflow: hidden; - float: left; - width: 100%; - zoom: 1; -} - -.yui-toolbar-colors span:after { - display: block; - clear: both; - visibility: hidden; - content: '.'; - height: 0; -} - -.yui-toolbar-colors span em { - height: 35px; - width: 30px; - float: left; - display: block; - overflow: hidden; - text-indent: 999px; - margin: .75px; - border: 1px solid black; -} - -.yui-toolbar-colors span strong { - font-weight: normal; - padding-left: 3px; - display: block; - font-size: 85%; - float: left; - width: 65%; -} - -.yui-toolbar-group-undoredo h3, .yui-toolbar-group-insertitem h3, .yui-toolbar-group-indentlist h3 { - width: 68px; -} - -.yui-toolbar-group-indentlist2 h3 { - width: 122px; -} - -.yui-toolbar-group-alignment h3 { - width: 130px; -} - -.yui-skin-sam .yui-editor-container { - border: 1px solid #808080; -} - -.yui-skin-sam .yui-toolbar-container { - zoom: 1; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-titlebar { - background: url(sprite.png) repeat-x 0 -200px; - position: relative; -} - -.yui-skin-sam .yui-editor-container .draggable .yui-toolbar-titlebar { - cursor: move; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-titlebar h2 { - color: #000; - font-weight: bold; - margin: 0; - padding: .3em 1em; - font-size: 100%; - text-align: left; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-group h3 { - color: #808080; - font-size: 75%; - margin: 1em 0 0; - padding-bottom: 0; - padding-left: .25em; - text-align: left; -} - -.yui-toolbar-container span.yui-toolbar-separator { - border: none; - text-indent: 33px; - overflow: hidden; - margin: 0 .25em; -} - -.yui-skin-sam .yui-toolbar-container { - background-color: #F2F2F2; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-subcont { - padding: 0 1em .35em; - border-bottom: 1px solid #808080; -} - -.yui-skin-sam .yui-toolbar-container-collapsed .yui-toolbar-titlebar { - border-bottom: 1px solid #808080; -} - -.yui-skin-sam .yui-editor-container .visible .yui-menu-shadow, .yui-skin-sam .yui-editor-panel .visible .yui-menu-shadow { - display: none; -} - -.yui-skin-sam .yui-editor-container ul { - list-style-type: none; - margin: 0; - padding: 0; -} - -.yui-skin-sam .yui-editor-container ul li { - list-style-type: none; - margin: 0; - padding: 0; -} - -.yui-skin-sam .yui-toolbar-group ul li.yui-toolbar-groupitem { - float: left; -} - -.yui-skin-sam .yui-editor-container .dompath { - background-color: #F2F2F2; - border-top: 1px solid #808080; - color: #999; - text-align: left; - padding: .25em; -} - -.yui-skin-sam .yui-toolbar-container .collapse { - background: url(sprite.png) no-repeat 0 -400px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-titlebar span.collapse { - cursor: pointer; - position: absolute; - top: 4px; - right: 2px; - display: block; - overflow: hidden; - height: 15px; - width: 15px; - text-indent: 9999px; -} - -.yui-skin-sam .yui-toolbar-container .yui-push-button, .yui-skin-sam .yui-toolbar-container .yui-color-button, .yui-skin-sam .yui-toolbar-container .yui-menu-button { - background: url(sprite.png) repeat-x 0 0; - position: relative; - display: block; - height: 22px; - width: 30px; - _font-size: 0; - margin: 0; - border-color: #808080; - color: #f2f2f2; - border-style: solid; - border-width: 1px 0; - zoom: 1; -} - -.yui-skin-sam .yui-toolbar-container .yui-push-button a, .yui-skin-sam .yui-toolbar-container .yui-color-button a, .yui-skin-sam .yui-toolbar-container .yui-menu-button a { - padding-left: 35px; - height: 20px; - text-decoration: none; - font-size: 0; - line-height: 2; - display: block; - color: #000; - overflow: hidden; - white-space: nowrap; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-spinbutton a, .yui-skin-sam .yui-toolbar-container .yui-toolbar-select a { - font-size: 12px; -} - -.yui-skin-sam .yui-toolbar-container .yui-push-button .first-child, .yui-skin-sam .yui-toolbar-container .yui-color-button .first-child, .yui-skin-sam .yui-toolbar-container .yui-menu-button .first-child { - border-color: #808080; - border-style: solid; - border-width: 0 1px; - margin: 0 -1px; - display: block; - position: relative; -} - -.yui-skin-sam .yui-toolbar-container .yui-push-button-disabled .first-child, .yui-skin-sam .yui-toolbar-container .yui-color-button-disabled .first-child, .yui-skin-sam .yui-toolbar-container .yui-menu-button-disabled .first-child { - border-color: #ccc; -} - -.yui-skin-sam .yui-toolbar-container .yui-push-button-disabled a, .yui-skin-sam .yui-toolbar-container .yui-color-button-disabled a, .yui-skin-sam .yui-toolbar-container .yui-menu-button-disabled a { - color: #A6A6A6; - cursor: default; -} - -.yui-skin-sam .yui-toolbar-container .yui-push-button-disabled, .yui-skin-sam .yui-toolbar-container .yui-color-button-disabled, .yui-skin-sam .yui-toolbar-container .yui-menu-button-disabled { - border-color: #ccc; -} - -.yui-skin-sam .yui-toolbar-container .yui-button .first-child { - *left: 0; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-fontname { - width: 135px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-heading { - width: 92px; -} - -.yui-skin-sam .yui-toolbar-container .yui-button-hover { - background: url(sprite.png) repeat-x 0 -1300px; - border-color: #808080; -} - -.yui-skin-sam .yui-toolbar-container .yui-button-selected { - background: url(sprite.png) repeat-x 0 -1700px; - border-color: #808080; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-nogrouplabels h3 { - display: none; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-nogrouplabels .yui-toolbar-group { - margin-top: .75em; -} - -.yui-skin-sam .yui-toolbar-container .yui-push-button span.yui-toolbar-icon, .yui-skin-sam .yui-toolbar-container .yui-color-button span.yui-toolbar-icon, .yui-skin-sam .yui-toolbar-container .yui-menu-button span.yui-toolbar-icon { - display: block; - position: absolute; - top: 2px; - height: 18px; - width: 18px; - overflow: hidden; - background: url(editor-sprite.gif) no-repeat 30px 30px; -} - -.yui-skin-sam .yui-toolbar-container .yui-button-selected span.yui-toolbar-icon, .yui-skin-sam .yui-toolbar-container .yui-button-hover span.yui-toolbar-icon { - background-image: url(editor-sprite-active.gif); -} - -.yui-skin-sam .yui-toolbar-container .visible .yuimenuitemlabel { - cursor: pointer; - color: #000; - *position: relative; -} - -.yui-skin-sam .yui-toolbar-container .yui-button-menu { - background-color: #fff; -} - -.yui-skin-sam .yui-toolbar-container .yui-button-menu .yui-menu-body-scrolled { - position: relative; -} - -.yui-skin-sam div.yuimenu li.selected { - background-color: #B3D4FF; -} - -.yui-skin-sam div.yuimenu li.selected a.selected { - color: #000; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-bold span.yui-toolbar-icon { - background-position: 0 0; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-strikethrough span.yui-toolbar-icon { - background-position: 0 -108px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-italic span.yui-toolbar-icon { - background-position: 0 -36px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-undo span.yui-toolbar-icon { - background-position: 0 -1326px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-redo span.yui-toolbar-icon { - background-position: 0 -1355px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-underline span.yui-toolbar-icon { - background-position: 0 -72px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-subscript span.yui-toolbar-icon { - background-position: 0 -180px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-superscript span.yui-toolbar-icon { - background-position: 0 -144px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-forecolor span.yui-toolbar-icon { - background-position: 0 -216px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-backcolor span.yui-toolbar-icon { - background-position: 0 -288px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-justifyleft span.yui-toolbar-icon { - background-position: 0 -324px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-justifycenter span.yui-toolbar-icon { - background-position: 0 -360px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-justifyright span.yui-toolbar-icon { - background-position: 0 -396px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-justifyfull span.yui-toolbar-icon { - background-position: 0 -432px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-indent span.yui-toolbar-icon { - background-position: 0 -720px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-outdent span.yui-toolbar-icon { - background-position: 0 -684px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-createlink span.yui-toolbar-icon { - background-position: 0 -792px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-insertimage span.yui-toolbar-icon { - background-position: 1px -756px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-left span.yui-toolbar-icon { - background-position: 0 -972px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-right span.yui-toolbar-icon { - background-position: 0 -936px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-inline span.yui-toolbar-icon { - background-position: 0 -900px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-block span.yui-toolbar-icon { - background-position: 0 -864px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-bordercolor span.yui-toolbar-icon { - background-position: 0 -252px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-removeformat span.yui-toolbar-icon { - background-position: 0 -1080px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-hiddenelements span.yui-toolbar-icon { - background-position: 0 -1044px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-insertunorderedlist span.yui-toolbar-icon { - background-position: 0 -468px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-insertorderedlist span.yui-toolbar-icon { - background-position: 0 -504px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-spinbutton, .yui-skin-sam .yui-toolbar-container .yui-toolbar-spinbutton .first-child { - width: 35px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-spinbutton .first-child a { - padding-left: 2px; - text-align: left; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-spinbutton span.yui-toolbar-icon { - display: none; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-spinbutton a.up, .yui-skin-sam .yui-toolbar-container .yui-toolbar-spinbutton a.down { - right: 2px; - background: url(editor-sprite.gif) no-repeat 0 -1222px; - overflow: hidden; - height: 6px; - width: 7px; - min-height: 0; - padding: 0; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-spinbutton a.up { - top: 2px; - background-position: 0 -1222px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-spinbutton a.down { - bottom: 2px; - background-position: 0 -1187px; -} - -.yui-skin-sam .yui-toolbar-container select { - height: 22px; - border: 1px solid #808080; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-select .first-child a { - padding-left: 5px; - text-align: left; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-select span.yui-toolbar-icon { - background: url(editor-sprite.gif) no-repeat 0 -1144px; - overflow: hidden; - right: -2px; - top: 0; - height: 20px; -} - -.yui-skin-sam .yui-editor-panel .yui-color-button-menu .bd { - background-color: transparent; - border: none; - width: 135px; -} - -.yui-skin-sam .yui-color-button-menu .yui-toolbar-colors { - border: 1px solid #808080; -} - -.yui-skin-sam .yui-editor-panel { - padding: 0; - margin: 0; - border: none; - background-color: transparent; - overflow: visible; - position: absolute; -} - -.yui-skin-sam .yui-editor-panel .hd { - margin: 10px 0 0; - padding: 0; - border: none; -} - -.yui-skin-sam .yui-editor-panel .hd h3 { - color: #000; - border: 1px solid #808080; - background: url(sprite.png) repeat-x 0 -200px; - width: 99%; - position: relative; - margin: 0; - padding: 3px 0 0 0; - font-size: 93%; - text-indent: 5px; - height: 20px; -} - -.yui-skin-sam .yui-editor-panel .bd { - background-color: #F2F2F2; - border-left: 1px solid #808080; - border-right: 1px solid #808080; - width: 99%; - margin: 0; - padding: 0; - overflow: visible; -} - -.yui-skin-sam .yui-editor-panel ul { - list-style-type: none; - margin: 0; - padding: 0; -} - -.yui-skin-sam .yui-editor-panel ul li { - margin: 0; - padding: 0; -} - -.yui-skin-sam .yui-editor-panel .yui-toolbar-container .yui-toolbar-subcont { - padding: 0; - border: none; - margin-top: .35em; -} - -.yui-skin-sam .yui-editor-panel .yui-toolbar-bordersize, .yui-skin-sam .yui-editor-panel .yui-toolbar-bordertype { - width: 50px; -} - -.yui-skin-sam .yui-editor-panel label { - display: block; - float: none; - padding: 4px 0; - margin-bottom: 7px; -} - -.yui-skin-sam .yui-editor-panel label strong { - font-weight: normal; - font-size: 93%; - text-align: right; - padding-top: 2px; -} - -.yui-skin-sam .yui-editor-panel label input { - width: 75%; -} - -.yui-skin-sam .yui-editor-panel .createlink_target, .yui-skin-sam .yui-editor-panel .insertimage_target { - width: auto; - margin-right: 5px; -} - -.yui-skin-sam .yui-editor-panel .removeLink { - width: 98%; -} - -.yui-skin-sam .yui-editor-panel label input.warning { - background-color: #FFEE69; -} - -.yui-skin-sam .yui-editor-panel .yui-toolbar-group h3 { - color: #000; - float: left; - font-weight: normal; - font-size: 93%; - margin: 5px 0 0 0; - padding: 0 3px 0 0; - text-align: right; -} - -.yui-skin-sam .yui-editor-panel .height-width h3 { - margin: 3px 0 0 10px; -} - -.yui-skin-sam .yui-editor-panel .height-width { - margin: 3px 0 0 35px; - *margin-left: 14px; - width: 42%; - *width: 44%; -} - -.yui-skin-sam .yui-editor-panel .yui-toolbar-group-border { - width: 190px; -} - -.yui-skin-sam .yui-editor-panel .no-button .yui-toolbar-group-border { - width: 210px; -} - -.yui-skin-sam .yui-editor-panel .yui-toolbar-group-padding { - width: 203px; - _width: 198px; -} - -.yui-skin-sam .yui-editor-panel .no-button .yui-toolbar-group-padding { - width: 172px; -} - -.yui-skin-sam .yui-editor-panel .yui-toolbar-group-padding h3 { - margin-left: 25px; - *margin-left: 12px; -} - -.yui-skin-sam .yui-editor-panel .yui-toolbar-group-textflow { - width: 182px; -} - -.yui-skin-sam .yui-editor-panel .hd { - background: none; -} - -.yui-skin-sam .yui-editor-panel .ft { - background-color: #F2F2F2; - border: 1px solid #808080; - border-top: none; - padding: 0; - margin: 0 0 2px 0; -} - -.yui-skin-sam .yui-editor-panel .hd span.close { - background: url(sprite.png) no-repeat 0 -300px; - cursor: pointer; - display: block; - height: 16px; - overflow: hidden; - position: absolute; - right: 5px; - text-indent: 500px; - top: 2px; - width: 26px; -} - -.yui-skin-sam .yui-editor-panel .ft span.tip { - background-color: #EDF5FF; - border-top: 1px solid #808080; - font-size: 85%; -} - -.yui-skin-sam .yui-editor-panel .ft span.tip strong { - display: block; - float: left; - margin: 0 2px 8px 0; -} - -.yui-skin-sam .yui-editor-panel .ft span.tip span.icon { - background: url(editor-sprite.gif) no-repeat 0 -1260px; - display: block; - height: 20px; - left: 2px; - position: absolute; - top: 8px; - width: 20px; -} - -.yui-skin-sam .yui-editor-panel .ft span.tip span.icon-info { - background-position: 2px -1260px; -} - -.yui-skin-sam .yui-editor-panel .ft span.tip span.icon-warn { - background-position: 2px -1296px; -} - -.yui-skin-sam .yui-editor-panel .hd span.knob { - position: absolute; - height: 10px; - width: 28px; - top: -10px; - left: 25px; - text-indent: 9999px; - overflow: hidden; - background: url(editor-knob.gif) no-repeat 0 0; -} - -.yui-skin-sam .yui-editor-panel .yui-toolbar-container { - float: left; - width: 100%; - background-image: none; - border: none; -} - -.yui-skin-sam .yui-editor-panel .yui-toolbar-container .bd { - background-color: #fff; -} - -.yui-editor-blankimage { - background-image: url(blankimage.png); -} - -.yui-skin-sam .yui-editor-container .yui-resize-handle-br { - height: 11px; - width: 11px; - background-position: -20px -60px; - background-color: transparent; -} diff --git a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/header_background.png b/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/header_background.png deleted file mode 100644 index 3ef7909d3..000000000 Binary files a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/header_background.png and /dev/null differ diff --git a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/hue_bg.png b/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/hue_bg.png deleted file mode 100644 index d9bcdeb5c..000000000 Binary files a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/hue_bg.png and /dev/null differ diff --git a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/imagecropper.css b/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/imagecropper.css deleted file mode 100644 index b57977914..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/imagecropper.css +++ /dev/null @@ -1,44 +0,0 @@ -/* -Copyright (c) 2009, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.7.0 -*/ -.yui-crop { - position: relative; -} - -.yui-crop .yui-crop-mask { - position: absolute; - top: 0; - left: 0; - height: 100%; - width: 100%; -} - -.yui-crop .yui-resize { - position: absolute; - top: 10px; - left: 10px; - border: 0; -} - -.yui-crop .yui-crop-resize-mask { - position: absolute; - top: 0; - left: 0; - height: 100%; - width: 100%; - background-position: -10px -10px; - overflow: hidden; -} - -.yui-skin-sam .yui-crop .yui-crop-mask { - background-color: #000; - opacity: .5; - filter: alpha(opacity = 50); -} - -.yui-skin-sam .yui-crop .yui-resize { - border: 1px dashed #fff; -} diff --git a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/layout.css b/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/layout.css deleted file mode 100644 index f9e45262a..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/layout.css +++ /dev/null @@ -1,337 +0,0 @@ -/* -Copyright (c) 2009, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.7.0 -*/ -.yui-layout-loading { - visibility: hidden; -} - -body.yui-layout { - overflow: hidden; - position: relative; - padding: 0; - margin: 0; -} - -.yui-layout-doc { - position: relative; - overflow: hidden; - padding: 0; - margin: 0; -} - -.yui-layout-unit { - height: 50px; - width: 50px; - padding: 0; - margin: 0; - float: none; - z-index: 0; -} - -.yui-layout-unit-top { - position: absolute; - top: 0; - left: 0; - width: 100%; -} - -.yui-layout-unit-left { - position: absolute; - top: 0; - left: 0; -} - -.yui-layout-unit-right { - position: absolute; - top: 0; - right: 0; -} - -.yui-layout-unit-bottom { - position: absolute; - bottom: 0; - left: 0; - width: 100%; -} - -.yui-layout-unit-center { - position: absolute; - top: 0; - left: 0; - width: 100%; -} - -.yui-layout div.yui-layout-hd { - position: absolute; - top: 0; - left: 0; - zoom: 1; - width: 100%; -} - -.yui-layout div.yui-layout-bd { - position: absolute; - top: 0; - left: 0; - zoom: 1; - width: 100%; -} - -.yui-layout .yui-layout-noscroll div.yui-layout-bd { - overflow: hidden; -} - -.yui-layout .yui-layout-scroll div.yui-layout-bd { - overflow: auto; -} - -.yui-layout div.yui-layout-ft { - position: absolute; - bottom: 0; - left: 0; - width: 100%; - zoom: 1; -} - -.yui-layout .yui-layout-unit div.yui-layout-hd h2 { - text-align: left; -} - -.yui-layout .yui-layout-unit div.yui-layout-hd .collapse { - cursor: pointer; - height: 13px; - position: absolute; - right: 2px; - top: 2px; - width: 17px; - font-size: 0; -} - -.yui-layout .yui-layout-unit div.yui-layout-hd .close { - cursor: pointer; - height: 13px; - position: absolute; - right: 2px; - top: 2px; - width: 17px; - font-size: 0; -} - -.yui-layout .yui-layout-unit div.yui-layout-hd .collapse-close { - right: 25px; -} - -.yui-layout .yui-layout-clip { - position: absolute; - height: 20px; - background-color: #c0c0c0; - display: none; -} - -.yui-layout .yui-layout-clip .collapse { - cursor: pointer; - height: 13px; - position: absolute; - right: 2px; - top: 2px; - width: 17px; - font-size: 0px; -} - -.yui-layout .yui-layout-wrap { - height: 100%; - width: 100%; - position: absolute; - left: 0; -} - -.yui-skin-sam .yui-layout .yui-resize-proxy { - border: none; - font-size: 0; - margin: 0; - padding: 0; -} - -.yui-skin-sam .yui-layout .yui-resize-resizing .yui-resize-handle { - visibility: hidden; -} - -.yui-skin-sam .yui-layout .yui-resize-proxy div { - position: absolute; - border: 1px solid #808080; - background-color: #EDF5FF; -} - -.yui-skin-sam .yui-layout .yui-resize .yui-resize-handle-active { -} - -.yui-skin-sam .yui-layout .yui-resize-proxy .yui-layout-handle-l { - width: 5px; - height: 100%; - top: 0; - left: 0; -} - -.yui-skin-sam .yui-layout .yui-resize-proxy .yui-layout-handle-r { - width: 5px; - top: 0; - right: 0; - height: 100%; - position: absolute; - zoom: 1; -} - -.yui-skin-sam .yui-layout .yui-resize-proxy .yui-layout-handle-b { - width: 100%; - bottom: 0; - left: 0; - height: 5px; -} - -.yui-skin-sam .yui-layout .yui-resize-proxy .yui-layout-handle-t { - width: 100%; - top: 0; - left: 0; - height: 5px; -} - -.yui-skin-sam .yui-layout .yui-layout-unit-left div.yui-layout-hd .collapse { - background: transparent url(layout_sprite.png) no-repeat -20px -160px; - border: 1px solid #808080; -} - -.yui-skin-sam .yui-layout .yui-layout-clip-left .collapse { - background: transparent url(layout_sprite.png) no-repeat -20px -140px; - border: 1px solid #808080; -} - -.yui-skin-sam .yui-layout .yui-layout-unit-right div.yui-layout-hd .collapse { - background: transparent url(layout_sprite.png) no-repeat -20px -200px; - border: 1px solid #808080; -} - -.yui-skin-sam .yui-layout .yui-layout-clip-right .collapse { - background: transparent url(layout_sprite.png) no-repeat -20px -120px; - border: 1px solid #808080; -} - -.yui-skin-sam .yui-layout .yui-layout-unit-top div.yui-layout-hd .collapse { - background: transparent url(layout_sprite.png) no-repeat -20px -220px; - border: 1px solid #808080; -} - -.yui-skin-sam .yui-layout .yui-layout-clip-top .collapse { - background: transparent url(layout_sprite.png) no-repeat -20px -240px; - border: 1px solid #808080; -} - -.yui-skin-sam .yui-layout .yui-layout-unit-bottom div.yui-layout-hd .collapse { - background: transparent url(layout_sprite.png) no-repeat -20px -260px; - border: 1px solid #808080; -} - -.yui-skin-sam .yui-layout .yui-layout-clip-bottom .collapse { - background: transparent url(layout_sprite.png) no-repeat -20px -180px; - border: 1px solid #808080; -} - -.yui-skin-sam .yui-layout .yui-layout-unit div.yui-layout-hd .close { - background: transparent url(layout_sprite.png) no-repeat -20px -100px; - border: 1px solid #808080; -} - -.yui-skin-sam .yui-layout .yui-layout-hd { - background: url(sprite.png) repeat-x 0 -1400px; - border: 1px solid #808080; -} - -.yui-skin-sam .yui-layout { - background-color: #EDF5FF; -} - -.yui-skin-sam .yui-layout .yui-layout-unit div.yui-layout-hd h2 { - font-weight: bold; - color: #fff; - padding: 3px; -} - -.yui-skin-sam .yui-layout .yui-layout-unit div.yui-layout-bd { - border: 1px solid #808080; - border-bottom: none; - border-top: none; - *border-bottom-width: 0; - *border-top-width: 0; - background-color: #f2f2f2; - text-align: left; -} - -.yui-skin-sam .yui-layout .yui-layout-unit div.yui-layout-bd-noft { - border-bottom: 1px solid #808080; -} - -.yui-skin-sam .yui-layout .yui-layout-unit div.yui-layout-bd-nohd { - border-top: 1px solid #808080; -} - -.yui-skin-sam .yui-layout .yui-layout-clip { - position: absolute; - height: 20px; - background-color: #EDF5FF; - display: none; - border: 1px solid #808080; -} - -.yui-skin-sam .yui-layout div.yui-layout-ft { - border: 1px solid #808080; - border-top: none; - *border-top-width: 0; - background-color: #f2f2f2; -} - -.yui-skin-sam .yui-layout-unit .yui-resize-handle { - background-color: transparent; -} - -.yui-skin-sam .yui-layout-unit .yui-resize-handle-r { - right: 0; - top: 0; - background-image: none; -} - -.yui-skin-sam .yui-layout-unit .yui-resize-handle-l { - left: 0; - top: 0; - background-image: none; -} - -.yui-skin-sam .yui-layout-unit .yui-resize-handle-b { - right: 0; - bottom: 0; - background-image: none; -} - -.yui-skin-sam .yui-layout-unit .yui-resize-handle-t { - right: 0; - top: 0; - background-image: none; -} - -.yui-skin-sam .yui-layout-unit .yui-resize-handle-r .yui-layout-resize-knob, .yui-skin-sam .yui-layout-unit .yui-resize-handle-l .yui-layout-resize-knob { - position: absolute; - height: 16px; - width: 6px; - top: 45%; - left: 0px; - background: transparent url(layout_sprite.png) no-repeat 0 -5px; -} - -.yui-skin-sam .yui-layout-unit .yui-resize-handle-t .yui-layout-resize-knob, .yui-skin-sam .yui-layout-unit .yui-resize-handle-b .yui-layout-resize-knob { - position: absolute; - height: 6px; - width: 16px; - left: 45%; - background: transparent url(layout_sprite.png) no-repeat -20px 0; -} diff --git a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/layout_sprite.png b/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/layout_sprite.png deleted file mode 100644 index d6fce3c7a..000000000 Binary files a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/layout_sprite.png and /dev/null differ diff --git a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/loading.gif b/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/loading.gif deleted file mode 100644 index 0bbf3bc0c..000000000 Binary files a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/loading.gif and /dev/null differ diff --git a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/logger.css b/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/logger.css deleted file mode 100644 index 822962835..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/logger.css +++ /dev/null @@ -1,115 +0,0 @@ -/* -Copyright (c) 2009, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.7.0 -*/ -.yui-skin-sam .yui-log { - padding: 1em; - width: 31em; - background-color: #AAA; - color: #000; - border: 1px solid black; - font-family: monospace; - font-size: 77%; - text-align: left; - z-index: 9000; -} - -.yui-skin-sam .yui-log-container { - position: absolute; - top: 1em; - right: 1em; -} - -.yui-skin-sam .yui-log input { - margin: 0; - padding: 0; - font-family: arial; - font-size: 100%; - font-weight: normal; -} - -.yui-skin-sam .yui-log .yui-log-btns { - position: relative; - float: right; - bottom: .25em; -} - -.yui-skin-sam .yui-log .yui-log-hd { - margin-top: 1em; - padding: .5em; - background-color: #575757; -} - -.yui-skin-sam .yui-log .yui-log-hd h4 { - margin: 0; - padding: 0; - font-size: 108%; - font-weight: bold; - color: #FFF; -} - -.yui-skin-sam .yui-log .yui-log-bd { - width: 100%; - height: 20em; - background-color: #FFF; - border: 1px solid gray; - overflow: auto; -} - -.yui-skin-sam .yui-log p { - margin: 1px; - padding: .1em; -} - -.yui-skin-sam .yui-log pre { - margin: 0; - padding: 0; -} - -.yui-skin-sam .yui-log pre.yui-log-verbose { - white-space: pre-wrap; - white-space: -moz-pre-wrap !important; - white-space: -pre-wrap; - white-space: -o-pre-wrap; - word-wrap: break-word; -} - -.yui-skin-sam .yui-log .yui-log-ft { - margin-top: .5em; -} - -.yui-skin-sam .yui-log .yui-log-ft .yui-log-categoryfilters { -} - -.yui-skin-sam .yui-log .yui-log-ft .yui-log-sourcefilters { - width: 100%; - border-top: 1px solid #575757; - margin-top: .75em; - padding-top: .75em; -} - -.yui-skin-sam .yui-log .yui-log-filtergrp { - margin-right: .5em; -} - -.yui-skin-sam .yui-log .info { - background-color: #A7CC25; -} - -.yui-skin-sam .yui-log .warn { - background-color: #F58516; -} - -.yui-skin-sam .yui-log .error { - background-color: #E32F0B; -} - -.yui-skin-sam .yui-log .time { - background-color: #A6C9D7; -} - -.yui-skin-sam .yui-log .window { - background-color: #F2E886; -} diff --git a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/menu-button-arrow-disabled.png b/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/menu-button-arrow-disabled.png deleted file mode 100644 index 8cef2abb3..000000000 Binary files a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/menu-button-arrow-disabled.png and /dev/null differ diff --git a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/menu-button-arrow.png b/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/menu-button-arrow.png deleted file mode 100644 index f03dfee4e..000000000 Binary files a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/menu-button-arrow.png and /dev/null differ diff --git a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/menu.css b/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/menu.css deleted file mode 100644 index d4cbcc785..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/menu.css +++ /dev/null @@ -1,282 +0,0 @@ -/* -Copyright (c) 2009, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.7.0 -*/ -.yuimenu { - top: -999em; - left: -999em; -} - -.yuimenubar { - position: static; -} - -.yuimenu .yuimenu, .yuimenubar .yuimenu { - position: absolute; -} - -.yuimenubar li, .yuimenu li { - list-style-type: none; -} - -.yuimenubar ul, .yuimenu ul, .yuimenubar li, .yuimenu li, .yuimenu h6, .yuimenubar h6 { - margin: 0; - padding: 0; -} - -.yuimenuitemlabel, .yuimenubaritemlabel { - text-align: left; - white-space: nowrap; -} - -.yuimenubar ul { - *zoom: 1; -} - -.yuimenubar .yuimenu ul { - *zoom: normal; -} - -.yuimenubar>.bd>ul:after { - content: "."; - display: block; - clear: both; - visibility: hidden; - height: 0; - line-height: 0; -} - -.yuimenubaritem { - float: left; -} - -.yuimenubaritemlabel, .yuimenuitemlabel { - display: block; -} - -.yuimenuitemlabel .helptext { - font-style: normal; - display: block; - margin: -1em 0 0 10em; -} - -.yui-menu-shadow { - position: absolute; - visibility: hidden; - z-index: -1; -} - -.yui-menu-shadow-visible { - top: 2px; - right: -3px; - left: -3px; - bottom: -3px; - visibility: visible; -} - -.hide-scrollbars * { - overflow: hidden; -} - -.hide-scrollbars select { - display: none; -} - -.yuimenu.show-scrollbars, .yuimenubar.show-scrollbars { - overflow: visible; -} - -.yuimenu.hide-scrollbars .yui-menu-shadow, .yuimenubar.hide-scrollbars .yui-menu-shadow { - overflow: hidden; -} - -.yuimenu.show-scrollbars .yui-menu-shadow, .yuimenubar.show-scrollbars .yui-menu-shadow { - overflow: auto; -} - -.yui-overlay.yui-force-redraw { - margin-bottom: 1px; -} - -.yui-skin-sam .yuimenubar { - font-size: 93%; - line-height: 2; - *line-height: 1.9; - border: solid 1px #808080; - background: url(sprite.png) repeat-x 0 0; -} - -.yui-skin-sam .yuimenubarnav .yuimenubaritem { - border-right: solid 1px #ccc; -} - -.yui-skin-sam .yuimenubaritemlabel { - padding: 0 10px; - color: #000; - text-decoration: none; - cursor: default; - border-style: solid; - border-color: #808080; - border-width: 1px 0; - *position: relative; - margin: -1px 0; -} - -.yui-skin-sam .yuimenubarnav .yuimenubaritemlabel { - padding-right: 20px; - *display: inline-block; -} - -.yui-skin-sam .yuimenubarnav .yuimenubaritemlabel-hassubmenu { - background: url(menubaritem_submenuindicator.png) right center no-repeat; -} - -.yui-skin-sam .yuimenubaritem-selected { - background: url(sprite.png) repeat-x 0 -1700px; -} - -.yui-skin-sam .yuimenubaritemlabel-selected { - border-color: #7D98B8; -} - -.yui-skin-sam .yuimenubarnav .yuimenubaritemlabel-selected { - border-left-width: 1px; - margin-left: -1px; - *left: -1px; -} - -.yui-skin-sam .yuimenubaritemlabel-disabled { - cursor: default; - color: #A6A6A6; -} - -.yui-skin-sam .yuimenubarnav .yuimenubaritemlabel-hassubmenu-disabled { - background-image: url(menubaritem_submenuindicator_disabled.png); -} - -.yui-skin-sam .yuimenu { - font-size: 93%; - line-height: 1.5; - *line-height: 1.45; -} - -.yui-skin-sam .yuimenubar .yuimenu, .yui-skin-sam .yuimenu .yuimenu { - font-size: 100%; -} - -.yui-skin-sam .yuimenu .bd { - *zoom: 1; - _zoom: normal; - border: solid 1px #808080; - background-color: #fff; -} - -.yui-skin-sam .yuimenu .yuimenu .bd { - *zoom: normal; -} - -.yui-skin-sam .yuimenu ul { - padding: 3px 0; - border-width: 1px 0 0 0; - border-color: #ccc; - border-style: solid; -} - -.yui-skin-sam .yuimenu ul.first-of-type { - border-width: 0; -} - -.yui-skin-sam .yuimenu h6 { - font-weight: bold; - border-style: solid; - border-color: #ccc; - border-width: 1px 0 0 0; - color: #a4a4a4; - padding: 3px 10px 0 10px; -} - -.yui-skin-sam .yuimenu ul.hastitle, .yui-skin-sam .yuimenu h6.first-of-type { - border-width: 0; -} - -.yui-skin-sam .yuimenu .yui-menu-body-scrolled { - border-color: #ccc #808080; - overflow: hidden; -} - -.yui-skin-sam .yuimenu .topscrollbar, .yui-skin-sam .yuimenu .bottomscrollbar { - height: 16px; - border: solid 1px #808080; - background: #fff url(sprite.png) no-repeat 0 0; -} - -.yui-skin-sam .yuimenu .topscrollbar { - border-bottom-width: 0; - background-position: center -950px; -} - -.yui-skin-sam .yuimenu .topscrollbar_disabled { - background-position: center -975px; -} - -.yui-skin-sam .yuimenu .bottomscrollbar { - border-top-width: 0; - background-position: center -850px; -} - -.yui-skin-sam .yuimenu .bottomscrollbar_disabled { - background-position: center -875px; -} - -.yui-skin-sam .yuimenuitem { - _border-bottom: solid 1px #fff; -} - -.yui-skin-sam .yuimenuitemlabel { - padding: 0 20px; - color: #000; - text-decoration: none; - cursor: default; -} - -.yui-skin-sam .yuimenuitemlabel .helptext { - margin-top: -1.5em; - *margin-top: -1.45em; -} - -.yui-skin-sam .yuimenuitem-hassubmenu { - background-image: url(menuitem_submenuindicator.png); - background-position: right center; - background-repeat: no-repeat; -} - -.yui-skin-sam .yuimenuitem-checked { - background-image: url(menuitem_checkbox.png); - background-position: left center; - background-repeat: no-repeat; -} - -.yui-skin-sam .yui-menu-shadow-visible { - background-color: #000; - opacity: .12; - filter: alpha(opacity = 12); -} - -.yui-skin-sam .yuimenuitem-selected { - background-color: #B3D4FF; -} - -.yui-skin-sam .yuimenuitemlabel-disabled { - cursor: default; - color: #A6A6A6; -} - -.yui-skin-sam .yuimenuitem-hassubmenu-disabled { - background-image: url(menuitem_submenuindicator_disabled.png); -} - -.yui-skin-sam .yuimenuitem-checked-disabled { - background-image: url(menuitem_checkbox_disabled.png); -} diff --git a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/menubaritem_submenuindicator.png b/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/menubaritem_submenuindicator.png deleted file mode 100644 index 030941c9c..000000000 Binary files a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/menubaritem_submenuindicator.png and /dev/null differ diff --git a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/menubaritem_submenuindicator_disabled.png b/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/menubaritem_submenuindicator_disabled.png deleted file mode 100644 index 6c1612230..000000000 Binary files a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/menubaritem_submenuindicator_disabled.png and /dev/null differ diff --git a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/menuitem_checkbox.png b/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/menuitem_checkbox.png deleted file mode 100644 index 1437a4f4b..000000000 Binary files a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/menuitem_checkbox.png and /dev/null differ diff --git a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/menuitem_checkbox_disabled.png b/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/menuitem_checkbox_disabled.png deleted file mode 100644 index 5d5b9985e..000000000 Binary files a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/menuitem_checkbox_disabled.png and /dev/null differ diff --git a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/menuitem_submenuindicator.png b/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/menuitem_submenuindicator.png deleted file mode 100644 index ea4f66029..000000000 Binary files a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/menuitem_submenuindicator.png and /dev/null differ diff --git a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/menuitem_submenuindicator_disabled.png b/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/menuitem_submenuindicator_disabled.png deleted file mode 100644 index 427d60a38..000000000 Binary files a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/menuitem_submenuindicator_disabled.png and /dev/null differ diff --git a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/paginator.css b/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/paginator.css deleted file mode 100644 index 97886678f..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/paginator.css +++ /dev/null @@ -1,68 +0,0 @@ -/* -Copyright (c) 2009, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.7.0 -*/ -.yui-skin-sam .yui-pg-container { - display: block; - margin: 6px 0; - white-space: nowrap; -} - -.yui-skin-sam .yui-pg-first, .yui-skin-sam .yui-pg-previous, .yui-skin-sam .yui-pg-next, .yui-skin-sam .yui-pg-last, .yui-skin-sam .yui-pg-current, .yui-skin-sam .yui-pg-pages, .yui-skin-sam .yui-pg-page { - display: inline-block; - font-family: arial, helvetica, clean, sans-serif; - padding: 3px 6px; - zoom: 1; -} - -.yui-skin-sam .yui-pg-pages { - padding: 0; -} - -.yui-skin-sam .yui-pg-current { - padding: 3px 0; -} - -.yui-skin-sam a.yui-pg-first:link, .yui-skin-sam a.yui-pg-first:visited, .yui-skin-sam a.yui-pg-first:active, .yui-skin-sam a.yui-pg-first:hover, .yui-skin-sam a.yui-pg-previous:link, .yui-skin-sam a.yui-pg-previous:visited, .yui-skin-sam a.yui-pg-previous:active, .yui-skin-sam a.yui-pg-previous:hover, .yui-skin-sam a.yui-pg-next:link, .yui-skin-sam a.yui-pg-next:visited, .yui-skin-sam a.yui-pg-next:active, .yui-skin-sam a.yui-pg-next:hover, .yui-skin-sam a.yui-pg-last:link, .yui-skin-sam a.yui-pg-last:visited, .yui-skin-sam a.yui-pg-last:active, .yui-skin-sam a.yui-pg-last:hover, .yui-skin-sam a.yui-pg-page:link, .yui-skin-sam a.yui-pg-page:visited, .yui-skin-sam a.yui-pg-page:active, .yui-skin-sam a.yui-pg-page:hover { - color: #06c; - text-decoration: underline; - outline: 0; -} - -.yui-skin-sam span.yui-pg-first, .yui-skin-sam span.yui-pg-previous, .yui-skin-sam span.yui-pg-next, .yui-skin-sam span.yui-pg-last { - color: #a6a6a6; -} - -.yui-skin-sam .yui-pg-page { - background-color: #fff; - border: 1px solid #CBCBCB; - padding: 2px 6px; - text-decoration: none; -} - -.yui-skin-sam .yui-pg-current-page { - background-color: transparent; - border: none; - font-weight: bold; - padding: 3px 6px; -} - -.yui-skin-sam .yui-pg-page { - margin-left: 1px; - margin-right: 1px; -} - -.yui-skin-sam .yui-pg-first, .yui-skin-sam .yui-pg-previous { - padding-left: 0; -} - -.yui-skin-sam .yui-pg-next, .yui-skin-sam .yui-pg-last { - padding-right: 0; -} - -.yui-skin-sam .yui-pg-current, .yui-skin-sam .yui-pg-rpp-options { - margin-left: 1em; - margin-right: 1em; -} diff --git a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/picker_mask.png b/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/picker_mask.png deleted file mode 100644 index f8d91932b..000000000 Binary files a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/picker_mask.png and /dev/null differ diff --git a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/profilerviewer.css b/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/profilerviewer.css deleted file mode 100644 index ade402f94..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/profilerviewer.css +++ /dev/null @@ -1,172 +0,0 @@ -/* -Copyright (c) 2009, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.7.0 -*/ -.yui-skin-sam .yui-pv { - background-color: #4a4a4a; - font: arial; - position: relative; - width: 99%; - z-index: 1000; - margin-bottom: 1em; - overflow: hidden; -} - -.yui-skin-sam .yui-pv .hd { - background: url(header_background.png) repeat-x; - min-height: 30px; - overflow: hidden; - zoom: 1; - padding: 2px 0; -} - -.yui-skin-sam .yui-pv .hd h4 { - padding: 8px 10px; - margin: 0; - font: bold 14px arial; - color: #fff; -} - -.yui-skin-sam .yui-pv .hd a { - background: #3f6bc3; - font: bold 11px arial; - color: #fff; - padding: 4px; - margin: 3px 10px 0 0; - border: 1px solid #3f567d; - cursor: pointer; - display: block; - float: right; -} - -.yui-skin-sam .yui-pv .hd span { - display: none; -} - -.yui-skin-sam .yui-pv .hd span.yui-pv-busy { - height: 18px; - width: 18px; - background: url(wait.gif) no-repeat; - overflow: hidden; - display: block; - float: right; - margin: 4px 10px 0 0; -} - -.yui-skin-sam .yui-pv .hd:after, .yui-pv .bd:after, .yui-skin-sam .yui-pv-chartlegend dl:after { - content: '.'; - visibility: hidden; - clear: left; - height: 0; - display: block; -} - -.yui-skin-sam .yui-pv .bd { - position: relative; - zoom: 1; - overflow-x: auto; - overflow-y: hidden; -} - -.yui-skin-sam .yui-pv .yui-pv-table { - padding: 0 10px; - margin: 5px 0 10px 0; -} - -.yui-skin-sam .yui-pv .yui-pv-table .yui-dt-bd td { - color: #eeee5c; - font: 12px arial; -} - -.yui-skin-sam .yui-pv .yui-pv-table tr.yui-dt-odd { - background: #929292; -} - -.yui-skin-sam .yui-pv .yui-pv-table tr.yui-dt-even { - background: #58637a; -} - -.yui-skin-sam .yui-pv .yui-pv-table tr.yui-dt-even td.yui-dt-asc, .yui-skin-sam .yui-pv .yui-pv-table tr.yui-dt-even td.yui-dt-desc { - background: #384970; -} - -.yui-skin-sam .yui-pv .yui-pv-table tr.yui-dt-odd td.yui-dt-asc, .yui-skin-sam .yui-pv .yui-pv-table tr.yui-dt-odd td.yui-dt-desc { - background: #6F6E6E; -} - -.yui-skin-sam .yui-pv .yui-pv-table .yui-dt-hd th { - background-image: none; - background: #2E2D2D; -} - -.yui-skin-sam .yui-pv th.yui-dt-asc .yui-dt-liner { - background: transparent url(asc.gif) no-repeat scroll right center; -} - -.yui-skin-sam .yui-pv th.yui-dt-desc .yui-dt-liner { - background: transparent url(desc.gif) no-repeat scroll right center; -} - -.yui-skin-sam .yui-pv .yui-pv-table .yui-dt-hd th a { - color: #fff; - font: bold 12px arial; -} - -.yui-skin-sam .yui-pv .yui-pv-table .yui-dt-hd th.yui-dt-asc, .yui-skin-sam .yui-pv .yui-pv-table .yui-dt-hd th.yui-dt-desc { - background: #333; -} - -.yui-skin-sam .yui-pv-chartcontainer { - padding: 0 10px; -} - -.yui-skin-sam .yui-pv-chart { - height: 250px; - clear: right; - margin: 5px 0 0 0; - color: #fff; -} - -.yui-skin-sam .yui-pv-chartlegend div { - float: right; - margin: 0 0 0 10px; - _width: 250px; -} - -.yui-skin-sam .yui-pv-chartlegend dl { - border: 1px solid #999; - padding: .2em 0 .2em .5em; - zoom: 1; - margin: 5px 0; -} - -.yui-skin-sam .yui-pv-chartlegend dt { - float: left; - display: block; - height: .7em; - width: .7em; - padding: 0; -} - -.yui-skin-sam .yui-pv-chartlegend dd { - float: left; - display: block; - color: #fff; - margin: 0 1em 0 .5em; - padding: 0; - font: 11px arial; -} - -.yui-skin-sam .yui-pv-minimized { - height: 35px; -} - -.yui-skin-sam .yui-pv-minimized .bd { - top: -3000px; -} - -.yui-skin-sam .yui-pv-minimized .hd a.yui-pv-refresh { - display: none; -} diff --git a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/resize.css b/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/resize.css deleted file mode 100644 index 64a1cf88b..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/resize.css +++ /dev/null @@ -1,291 +0,0 @@ -/* -Copyright (c) 2009, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.7.0 -*/ -.yui-resize { - position: relative; - zoom: 1; - z-index: 0; -} - -.yui-resize-wrap { - zoom: 1; -} - -.yui-draggable { - cursor: move; -} - -.yui-resize .yui-resize-handle { - position: absolute; - z-index: 1; - font-size: 0; - margin: 0; - padding: 0; - zoom: 1; - height: 1px; - width: 1px; -} - -.yui-resize .yui-resize-handle-br { - height: 5px; - width: 5px; - bottom: 0; - right: 0; - cursor: se-resize; - z-index: 2; - zoom: 1; -} - -.yui-resize .yui-resize-handle-bl { - height: 5px; - width: 5px; - bottom: 0; - left: 0; - cursor: sw-resize; - z-index: 2; - zoom: 1; -} - -.yui-resize .yui-resize-handle-tl { - height: 5px; - width: 5px; - top: 0; - left: 0; - cursor: nw-resize; - z-index: 2; - zoom: 1; -} - -.yui-resize .yui-resize-handle-tr { - height: 5px; - width: 5px; - top: 0; - right: 0; - cursor: ne-resize; - z-index: 2; - zoom: 1; -} - -.yui-resize .yui-resize-handle-r { - width: 5px; - height: 100%; - top: 0; - right: 0; - cursor: e-resize; - zoom: 1; -} - -.yui-resize .yui-resize-handle-l { - height: 100%; - width: 5px; - top: 0; - left: 0; - cursor: w-resize; - zoom: 1; -} - -.yui-resize .yui-resize-handle-b { - width: 100%; - height: 5px; - bottom: 0; - right: 0; - cursor: s-resize; - zoom: 1; -} - -.yui-resize .yui-resize-handle-t { - width: 100%; - height: 5px; - top: 0; - right: 0; - cursor: n-resize; - zoom: 1; -} - -.yui-resize-proxy { - position: absolute; - border: 1px dashed #000; - visibility: hidden; - z-index: 1000; -} - -.yui-resize-hover .yui-resize-handle, .yui-resize-hidden .yui-resize-handle { - opacity: 0; - filter: alpha(opacity = 0); -} - -.yui-resize-ghost { - opacity: .5; - filter: alpha(opacity = 50); -} - -.yui-resize-knob .yui-resize-handle { - height: 6px; - width: 6px; -} - -.yui-resize-knob .yui-resize-handle-tr { - right: -3px; - top: -3px; -} - -.yui-resize-knob .yui-resize-handle-tl { - left: -3px; - top: -3px; -} - -.yui-resize-knob .yui-resize-handle-bl { - left: -3px; - bottom: -3px; -} - -.yui-resize-knob .yui-resize-handle-br { - right: -3px; - bottom: -3px; -} - -.yui-resize-knob .yui-resize-handle-t { - left: 45%; - top: -3px; -} - -.yui-resize-knob .yui-resize-handle-r { - right: -3px; - top: 45%; -} - -.yui-resize-knob .yui-resize-handle-l { - left: -3px; - top: 45%; -} - -.yui-resize-knob .yui-resize-handle-b { - left: 45%; - bottom: -3px; -} - -.yui-resize-status { - position: absolute; - top: -999px; - left: -999px; - padding: 2px; - font-size: 80%; - display: none; - zoom: 1; - z-index: 9999; -} - -.yui-resize-status strong, .yui-resize-status em { - font-weight: normal; - font-style: normal; - padding: 1px; - zoom: 1; -} - -.yui-skin-sam .yui-resize .yui-resize-handle { - background-color: #F2F2F2; - zoom: 1; -} - -.yui-skin-sam .yui-resize .yui-resize-handle-active { - background-color: #7D98B8; - zoom: 1; -} - -.yui-skin-sam .yui-resize .yui-resize-handle-l, .yui-skin-sam .yui-resize .yui-resize-handle-r, .yui-skin-sam .yui-resize .yui-resize-handle-l-active, .yui-skin-sam .yui-resize .yui-resize-handle-r-active { - height: 100%; - zoom: 1; -} - -.yui-skin-sam .yui-resize-knob .yui-resize-handle { - border: 1px solid #808080; -} - -.yui-skin-sam .yui-resize-hover .yui-resize-handle-active { - opacity: 1; - filter: alpha(opacity = 100); -} - -.yui-skin-sam .yui-resize-proxy { - border: 1px dashed #426FD9; -} - -.yui-skin-sam .yui-resize-status { - border: 1px solid #A6982B; - border-top: 1px solid #D4C237; - background-color: #FFEE69; - color: #000; -} - -.yui-skin-sam .yui-resize-status strong, .yui-skin-sam .yui-resize-status em { - float: left; - display: block; - clear: both; - padding: 1px; - text-align: center; -} - -.yui-skin-sam .yui-resize .yui-resize-handle-inner-r, .yui-skin-sam .yui-resize .yui-resize-handle-inner-l { - background: transparent url(layout_sprite.png) no-repeat 0 -5px; - height: 16px; - width: 5px; - position: absolute; - top: 45%; -} - -.yui-skin-sam .yui-resize .yui-resize-handle-inner-t, .yui-skin-sam .yui-resize .yui-resize-handle-inner-b { - background: transparent url(layout_sprite.png) no-repeat -20px 0; - height: 5px; - width: 16px; - position: absolute; - left: 50%; -} - -.yui-skin-sam .yui-resize .yui-resize-handle-br { - background-image: url(layout_sprite.png); - background-repeat: no-repeat; - background-position: -22px -62px; -} - -.yui-skin-sam .yui-resize .yui-resize-handle-tr { - background-image: url(layout_sprite.png); - background-repeat: no-repeat; - background-position: -22px -42px; -} - -.yui-skin-sam .yui-resize .yui-resize-handle-tl { - background-image: url(layout_sprite.png); - background-repeat: no-repeat; - background-position: -22px -82px; -} - -.yui-skin-sam .yui-resize .yui-resize-handle-bl { - background-image: url(layout_sprite.png); - background-repeat: no-repeat; - background-position: -22px -23px; -} - -.yui-skin-sam .yui-resize-knob .yui-resize-handle-t, .yui-skin-sam .yui-resize-knob .yui-resize-handle-r, .yui-skin-sam .yui-resize-knob .yui-resize-handle-b, .yui-skin-sam .yui-resize-knob .yui-resize-handle-l, .yui-skin-sam .yui-resize-knob .yui-resize-handle-tl, .yui-skin-sam .yui-resize-knob .yui-resize-handle-tr, .yui-skin-sam .yui-resize-knob .yui-resize-handle-bl, .yui-skin-sam .yui-resize-knob .yui-resize-handle-br, .yui-skin-sam .yui-resize-knob .yui-resize-handle-inner-t, .yui-skin-sam .yui-resize-knob .yui-resize-handle-inner-r, .yui-skin-sam .yui-resize-knob .yui-resize-handle-inner-b, .yui-skin-sam .yui-resize-knob .yui-resize-handle-inner-l, .yui-skin-sam .yui-resize-knob .yui-resize-handle-inner-tl, .yui-skin-sam .yui-resize-knob .yui-resize-handle-inner-tr, .yui-skin-sam .yui-resize-knob .yui-resize-handle-inner-bl, .yui-skin-sam .yui-resize-knob .yui-resize-handle-inner-br { - background-image: none; -} - -.yui-skin-sam .yui-resize-knob .yui-resize-handle-l, .yui-skin-sam .yui-resize-knob .yui-resize-handle-r, .yui-skin-sam .yui-resize-knob .yui-resize-handle-l-active, .yui-skin-sam .yui-resize-knob .yui-resize-handle-r-active { - height: 6px; - width: 6px; -} - -.yui-skin-sam .yui-resize-textarea .yui-resize-handle-r { - right: -8px; -} - -.yui-skin-sam .yui-resize-textarea .yui-resize-handle-b { - bottom: -8px; -} - -.yui-skin-sam .yui-resize-textarea .yui-resize-handle-br { - right: -8px; - bottom: -8px; -} diff --git a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/simpleeditor.css b/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/simpleeditor.css deleted file mode 100644 index 4c87721eb..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/simpleeditor.css +++ /dev/null @@ -1,1217 +0,0 @@ -/* -Copyright (c) 2009, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.7.0 -*/ -.yui-busy { - cursor: wait !important; -} - -.yui-toolbar-container fieldset, .yui-editor-container fieldset { - padding: 0; - margin: 0; - border: 0; -} - -.yui-toolbar-container legend { - display: none; -} - -.yui-toolbar-container .yui-toolbar-subcont { - padding: .25em 0; - zoom: 1; -} - -.yui-toolbar-container-collapsed .yui-toolbar-subcont { - display: none; -} - -.yui-toolbar-container .yui-toolbar-subcont:after { - display: block; - clear: both; - visibility: hidden; - content: '.'; - height: 0; -} - -.yui-toolbar-container span.yui-toolbar-draghandle { - cursor: move; - border-left: 1px solid #999; - border-right: 1px solid #999; - overflow: hidden; - text-indent: 77777px; - width: 2px; - height: 20px; - display: block; - clear: none; - float: left; - margin: 0 0 0 .2em; -} - -.yui-toolbar-container .yui-toolbar-titlebar.draggable { - cursor: move; -} - -.yui-toolbar-container .yui-toolbar-titlebar { - position: relative; -} - -.yui-toolbar-container .yui-toolbar-titlebar h2 { - font-weight: bold; - letter-spacing: 0; - border: none; - color: #000; - margin: 0; - padding: .2em; -} - -.yui-toolbar-container .yui-toolbar-titlebar h2 a { - text-decoration: none; - color: #000; - cursor: default; -} - -.yui-toolbar-container.yui-toolbar-grouped span.yui-toolbar-draghandle { - height: 40px; -} - -.yui-toolbar-container .yui-toolbar-group { - float: left; - margin-right: .5em; - zoom: 1; -} - -.yui-toolbar-container .yui-toolbar-group:after { - display: block; - clear: both; - visibility: hidden; - content: '.'; - height: 0; -} - -.yui-toolbar-container .yui-toolbar-group h3 { - font-size: 75%; - padding: 0 0 0 .25em; - margin: 0; -} - -.yui-toolbar-container span.yui-toolbar-separator { - width: 2px; - padding: 0; - height: 18px; - margin: .2em 0 .2em .1em; - display: none; - float: left; -} - -.yui-toolbar-container.yui-toolbar-grouped span.yui-toolbar-separator { - height: 45px; - *height: 50px; -} - -.yui-toolbar-container.yui-toolbar-grouped .yui-toolbar-group span.yui-toolbar-separator { - height: 18px; - display: block; -} - -.yui-toolbar-container ul li { - margin: 0; - padding: 0; - list-style-type: none; -} - -.yui-toolbar-container .yui-toolbar-nogrouplabels h3 { - display: none; -} - -.yui-toolbar-container .yui-push-button, .yui-toolbar-container .yui-color-button, .yui-toolbar-container .yui-menu-button { - position: relative; - cursor: pointer; -} - -.yui-toolbar-container .yui-button .first-child, .yui-toolbar-container .yui-button .first-child a { - height: 100%; - width: 100%; - overflow: hidden; - font-size: 0; -} - -.yui-toolbar-container .yui-button-disabled { - cursor: default; -} - -.yui-toolbar-container .yui-button-disabled .yui-toolbar-icon { - opacity: .5; - filter: alpha(opacity = 50); -} - -.yui-toolbar-container .yui-button-disabled .up, .yui-toolbar-container .yui-button-disabled .down { - opacity: .5; - filter: alpha(opacity = 50); -} - -.yui-toolbar-container .yui-button a { - overflow: hidden; -} - -.yui-toolbar-container .yui-toolbar-select .first-child a { - cursor: pointer; -} - -.yui-toolbar-fontname-arial { - font-family: Arial; -} - -.yui-toolbar-fontname-arial-black { - font-family: Arial Black; -} - -.yui-toolbar-fontname-comic-sans-ms { - font-family: Comic Sans MS; -} - -.yui-toolbar-fontname-courier-new { - font-family: Courier New; -} - -.yui-toolbar-fontname-times-new-roman { - font-family: Times New Roman; -} - -.yui-toolbar-fontname-verdana { - font-family: Verdana; -} - -.yui-toolbar-fontname-impact { - font-family: Impact; -} - -.yui-toolbar-fontname-lucida-console { - font-family: Lucida Console; -} - -.yui-toolbar-fontname-tahoma { - font-family: Tahoma; -} - -.yui-toolbar-fontname-trebuchet-ms { - font-family: Trebuchet MS; -} - -.yui-toolbar-container .yui-toolbar-spinbutton { - position: relative; -} - -.yui-toolbar-container .yui-toolbar-spinbutton .first-child a { - z-index: 0; - opacity: 1; -} - -.yui-toolbar-container .yui-toolbar-spinbutton a.up, .yui-toolbar-container .yui-toolbar-spinbutton a.down { - position: absolute; - display: block right: 0; - cursor: pointer; - z-index: 1; - padding: 0; - margin: 0; -} - -.yui-toolbar-container .yui-overlay { - position: absolute; -} - -.yui-toolbar-container .yui-overlay ul li { - margin: 0; - list-style-type: none; -} - -.yui-toolbar-container { - z-index: 1; -} - -.yui-editor-container .yui-editor-editable-container { - position: relative; - z-index: 0; - width: 100%; -} - -.yui-editor-container .yui-editor-masked { - background-color: #CCC; - height: 100%; - width: 100%; - position: absolute; - top: 0; - left: 0; - opacity: .5; - filter: alpha(opacity = 50); -} - -.yui-editor-container iframe { - border: 0; - padding: 0; - margin: 0; - zoom: 1; - display: block; -} - -.yui-editor-container .yui-editor-editable { - padding: 0; - margin: 0; -} - -.yui-editor-container .dompath { - font-size: 85%; -} - -.yui-editor-panel .hd { - text-align: left; - position: relative; -} - -.yui-editor-panel .hd h3 { - font-weight: bold; - padding: .25em 0 .25em .25em; - margin: 0; -} - -.yui-editor-panel .bd { - width: 100%; - zoom: 1; - position: relative; -} - -.yui-editor-panel .bd div.yui-editor-body-cont { - padding: .25em .1em; - zoom: 1; -} - -.yui-editor-panel .bd .gecko form { - overflow: auto; -} - -.yui-editor-panel .bd div.yui-editor-body-cont:after { - display: block; - clear: both; - visibility: hidden; - content: '.'; - height: 0; -} - -.yui-editor-panel .ft { - text-align: right; - width: 99%; - float: left; - clear: both; -} - -.yui-editor-panel .ft span.tip { - display: block; - position: relative; - padding: .5em .5em .5em 23px; - text-align: left; - zoom: 1; -} - -.yui-editor-panel label { - clear: both; - float: left; - padding: 0; - width: 100%; - text-align: left; - zoom: 1; -} - -.yui-editor-panel .gecko label { - overflow: auto; -} - -.yui-editor-panel label strong { - float: left; - width: 6em; -} - -.yui-editor-panel .removeLink { - width: 80%; - text-align: right; -} - -.yui-editor-panel label input { - margin-left: .25em; - float: left; -} - -.yui-editor-panel .yui-toolbar-group { - margin-bottom: .75em; -} - -.yui-editor-panel .height-width { - float: left; -} - -.yui-editor-panel .height-width span { - font-style: italic; - display: block; - float: left; - overflow: visible; -} - -.yui-editor-panel .height-width span.info { - font-size: 70%; - margin-top: 3px; -} - -.yui-editor-panel .yui-toolbar-bordersize, .yui-editor-panel .yui-toolbar-bordertype { - font-size: 75%; -} - -.yui-editor-panel .yui-toolbar-container span.yui-toolbar-separator { - border: none; -} - -.yui-editor-panel .yui-toolbar-bordersize span a span, .yui-editor-panel .yui-toolbar-bordertype span a span { - display: block; - height: 8px; - left: 4px; - position: absolute; - top: 3px; - _top: -5px; - width: 24px; - text-indent: 52px; - font-size: 0; -} - -.yui-editor-panel .yui-toolbar-bordertype span a span.yui-toolbar-bordertype-solid { - border-bottom: 1px solid black; -} - -.yui-editor-panel .yui-toolbar-bordertype span a span.yui-toolbar-bordertype-dotted { - border-bottom: 1px dotted black; -} - -.yui-editor-panel .yui-toolbar-bordertype span a span.yui-toolbar-bordertype-dashed { - border-bottom: 1px dashed black; -} - -.yui-editor-panel .yui-toolbar-bordersize span a span.yui-toolbar-bordersize-0 { - *top: 0; - text-indent: 0; - font-size: 75%; -} - -.yui-editor-panel .yui-toolbar-bordersize span a span.yui-toolbar-bordersize-1 { - border-bottom: 1px solid black; -} - -.yui-editor-panel .yui-toolbar-bordersize span a span.yui-toolbar-bordersize-2 { - border-bottom: 2px solid black; -} - -.yui-editor-panel .yui-toolbar-bordersize span a span.yui-toolbar-bordersize-3 { - top: 2px; - *top: -5px; - border-bottom: 3px solid black; -} - -.yui-editor-panel .yui-toolbar-bordersize span a span.yui-toolbar-bordersize-4 { - top: 1px; - *top: -5px; - border-bottom: 4px solid black; -} - -.yui-editor-panel .yui-toolbar-bordersize span a span.yui-toolbar-bordersize-5 { - top: 1px; - *top: -5px; - border-bottom: 5px solid black; -} - -.yui-toolbar-container .yui-toolbar-bordersize-menu, .yui-toolbar-container .yui-toolbar-bordertype-menu { - width: 95px !important; -} - -.yui-toolbar-bordersize-menu .yuimenuitemlabel, .yui-toolbar-bordertype-menu .yuimenuitemlabel, .yui-toolbar-bordersize-menu .yuimenuitemlabel, .yui-toolbar-bordertype-menu .yuimenuitemlabel:hover { - margin: 0 3px 7px 17px; -} - -.yui-toolbar-bordersize-menu .yuimenuitemlabel .checkedindicator, .yui-toolbar-bordertype-menu .yuimenuitemlabel .checkedindicator { - position: absolute; - left: -12px; - *top: 14px; - *left: 0; -} - -.yui-toolbar-bordersize-menu li.yui-toolbar-bordersize-1 a { - border-bottom: 1px solid black; - height: 14px; -} - -.yui-toolbar-bordersize-menu li.yui-toolbar-bordersize-2 a { - border-bottom: 2px solid black; - height: 14px; -} - -.yui-toolbar-bordersize-menu li.yui-toolbar-bordersize-3 a { - border-bottom: 3px solid black; - height: 14px; -} - -.yui-toolbar-bordersize-menu li.yui-toolbar-bordersize-4 a { - border-bottom: 4px solid black; - height: 14px; -} - -.yui-toolbar-bordersize-menu li.yui-toolbar-bordersize-5 a { - border-bottom: 5px solid black; - height: 14px; -} - -.yui-toolbar-bordertype-menu li.yui-toolbar-bordertype-solid a { - border-bottom: 1px solid black; - height: 14px; -} - -.yui-toolbar-bordertype-menu li.yui-toolbar-bordertype-dashed a { - border-bottom: 1px dashed black; - height: 14px; -} - -.yui-toolbar-bordertype-menu li.yui-toolbar-bordertype-dotted a { - border-bottom: 1px dotted black; - height: 14px; -} - -h2.yui-editor-skipheader, h3.yui-editor-skipheader { - height: 0; - margin: 0; - padding: 0; - border: none; - width: 0; - overflow: hidden; - position: absolute; -} - -.yui-toolbar-colors { - width: 133px; - zoom: 1; - display: none; - z-index: 100; - overflow: hidden; -} - -.yui-toolbar-colors:after { - display: block; - clear: both; - visibility: hidden; - content: '.'; - height: 0; -} - -.yui-toolbar-colors a { - height: 9px; - width: 9px; - float: left; - display: block; - overflow: hidden; - text-indent: 999px; - margin: 0; - cursor: pointer; - border: 1px solid #F6F7EE; -} - -.yui-toolbar-colors a:hover { - border: 1px solid black; -} - -.yui-color-button-menu { - overflow: visible; - background-color: transparent; -} - -.yui-toolbar-colors span { - position: relative; - display: block; - padding: 3px; - overflow: hidden; - float: left; - width: 100%; - zoom: 1; -} - -.yui-toolbar-colors span:after { - display: block; - clear: both; - visibility: hidden; - content: '.'; - height: 0; -} - -.yui-toolbar-colors span em { - height: 35px; - width: 30px; - float: left; - display: block; - overflow: hidden; - text-indent: 999px; - margin: .75px; - border: 1px solid black; -} - -.yui-toolbar-colors span strong { - font-weight: normal; - padding-left: 3px; - display: block; - font-size: 85%; - float: left; - width: 65%; -} - -.yui-toolbar-group-undoredo h3, .yui-toolbar-group-insertitem h3, .yui-toolbar-group-indentlist h3 { - width: 68px; -} - -.yui-toolbar-group-indentlist2 h3 { - width: 122px; -} - -.yui-toolbar-group-alignment h3 { - width: 130px; -} - -.yui-skin-sam .yui-editor-container { - border: 1px solid #808080; -} - -.yui-skin-sam .yui-toolbar-container { - zoom: 1; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-titlebar { - background: url(sprite.png) repeat-x 0 -200px; - position: relative; -} - -.yui-skin-sam .yui-editor-container .draggable .yui-toolbar-titlebar { - cursor: move; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-titlebar h2 { - color: #000; - font-weight: bold; - margin: 0; - padding: .3em 1em; - font-size: 100%; - text-align: left; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-group h3 { - color: #808080; - font-size: 75%; - margin: 1em 0 0; - padding-bottom: 0; - padding-left: .25em; - text-align: left; -} - -.yui-toolbar-container span.yui-toolbar-separator { - border: none; - text-indent: 33px; - overflow: hidden; - margin: 0 .25em; -} - -.yui-skin-sam .yui-toolbar-container { - background-color: #F2F2F2; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-subcont { - padding: 0 1em .35em; - border-bottom: 1px solid #808080; -} - -.yui-skin-sam .yui-toolbar-container-collapsed .yui-toolbar-titlebar { - border-bottom: 1px solid #808080; -} - -.yui-skin-sam .yui-editor-container .visible .yui-menu-shadow, .yui-skin-sam .yui-editor-panel .visible .yui-menu-shadow { - display: none; -} - -.yui-skin-sam .yui-editor-container ul { - list-style-type: none; - margin: 0; - padding: 0; -} - -.yui-skin-sam .yui-editor-container ul li { - list-style-type: none; - margin: 0; - padding: 0; -} - -.yui-skin-sam .yui-toolbar-group ul li.yui-toolbar-groupitem { - float: left; -} - -.yui-skin-sam .yui-editor-container .dompath { - background-color: #F2F2F2; - border-top: 1px solid #808080; - color: #999; - text-align: left; - padding: .25em; -} - -.yui-skin-sam .yui-toolbar-container .collapse { - background: url(sprite.png) no-repeat 0 -400px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-titlebar span.collapse { - cursor: pointer; - position: absolute; - top: 4px; - right: 2px; - display: block; - overflow: hidden; - height: 15px; - width: 15px; - text-indent: 9999px; -} - -.yui-skin-sam .yui-toolbar-container .yui-push-button, .yui-skin-sam .yui-toolbar-container .yui-color-button, .yui-skin-sam .yui-toolbar-container .yui-menu-button { - background: url(sprite.png) repeat-x 0 0; - position: relative; - display: block; - height: 22px; - width: 30px; - _font-size: 0; - margin: 0; - border-color: #808080; - color: #f2f2f2; - border-style: solid; - border-width: 1px 0; - zoom: 1; -} - -.yui-skin-sam .yui-toolbar-container .yui-push-button a, .yui-skin-sam .yui-toolbar-container .yui-color-button a, .yui-skin-sam .yui-toolbar-container .yui-menu-button a { - padding-left: 35px; - height: 20px; - text-decoration: none; - font-size: 0; - line-height: 2; - display: block; - color: #000; - overflow: hidden; - white-space: nowrap; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-spinbutton a, .yui-skin-sam .yui-toolbar-container .yui-toolbar-select a { - font-size: 12px; -} - -.yui-skin-sam .yui-toolbar-container .yui-push-button .first-child, .yui-skin-sam .yui-toolbar-container .yui-color-button .first-child, .yui-skin-sam .yui-toolbar-container .yui-menu-button .first-child { - border-color: #808080; - border-style: solid; - border-width: 0 1px; - margin: 0 -1px; - display: block; - position: relative; -} - -.yui-skin-sam .yui-toolbar-container .yui-push-button-disabled .first-child, .yui-skin-sam .yui-toolbar-container .yui-color-button-disabled .first-child, .yui-skin-sam .yui-toolbar-container .yui-menu-button-disabled .first-child { - border-color: #ccc; -} - -.yui-skin-sam .yui-toolbar-container .yui-push-button-disabled a, .yui-skin-sam .yui-toolbar-container .yui-color-button-disabled a, .yui-skin-sam .yui-toolbar-container .yui-menu-button-disabled a { - color: #A6A6A6; - cursor: default; -} - -.yui-skin-sam .yui-toolbar-container .yui-push-button-disabled, .yui-skin-sam .yui-toolbar-container .yui-color-button-disabled, .yui-skin-sam .yui-toolbar-container .yui-menu-button-disabled { - border-color: #ccc; -} - -.yui-skin-sam .yui-toolbar-container .yui-button .first-child { - *left: 0; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-fontname { - width: 135px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-heading { - width: 92px; -} - -.yui-skin-sam .yui-toolbar-container .yui-button-hover { - background: url(sprite.png) repeat-x 0 -1300px; - border-color: #808080; -} - -.yui-skin-sam .yui-toolbar-container .yui-button-selected { - background: url(sprite.png) repeat-x 0 -1700px; - border-color: #808080; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-nogrouplabels h3 { - display: none; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-nogrouplabels .yui-toolbar-group { - margin-top: .75em; -} - -.yui-skin-sam .yui-toolbar-container .yui-push-button span.yui-toolbar-icon, .yui-skin-sam .yui-toolbar-container .yui-color-button span.yui-toolbar-icon, .yui-skin-sam .yui-toolbar-container .yui-menu-button span.yui-toolbar-icon { - display: block; - position: absolute; - top: 2px; - height: 18px; - width: 18px; - overflow: hidden; - background: url(editor-sprite.gif) no-repeat 30px 30px; -} - -.yui-skin-sam .yui-toolbar-container .yui-button-selected span.yui-toolbar-icon, .yui-skin-sam .yui-toolbar-container .yui-button-hover span.yui-toolbar-icon { - background-image: url(editor-sprite-active.gif); -} - -.yui-skin-sam .yui-toolbar-container .visible .yuimenuitemlabel { - cursor: pointer; - color: #000; - *position: relative; -} - -.yui-skin-sam .yui-toolbar-container .yui-button-menu { - background-color: #fff; -} - -.yui-skin-sam .yui-toolbar-container .yui-button-menu .yui-menu-body-scrolled { - position: relative; -} - -.yui-skin-sam div.yuimenu li.selected { - background-color: #B3D4FF; -} - -.yui-skin-sam div.yuimenu li.selected a.selected { - color: #000; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-bold span.yui-toolbar-icon { - background-position: 0 0; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-strikethrough span.yui-toolbar-icon { - background-position: 0 -108px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-italic span.yui-toolbar-icon { - background-position: 0 -36px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-undo span.yui-toolbar-icon { - background-position: 0 -1326px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-redo span.yui-toolbar-icon { - background-position: 0 -1355px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-underline span.yui-toolbar-icon { - background-position: 0 -72px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-subscript span.yui-toolbar-icon { - background-position: 0 -180px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-superscript span.yui-toolbar-icon { - background-position: 0 -144px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-forecolor span.yui-toolbar-icon { - background-position: 0 -216px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-backcolor span.yui-toolbar-icon { - background-position: 0 -288px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-justifyleft span.yui-toolbar-icon { - background-position: 0 -324px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-justifycenter span.yui-toolbar-icon { - background-position: 0 -360px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-justifyright span.yui-toolbar-icon { - background-position: 0 -396px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-justifyfull span.yui-toolbar-icon { - background-position: 0 -432px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-indent span.yui-toolbar-icon { - background-position: 0 -720px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-outdent span.yui-toolbar-icon { - background-position: 0 -684px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-createlink span.yui-toolbar-icon { - background-position: 0 -792px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-insertimage span.yui-toolbar-icon { - background-position: 1px -756px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-left span.yui-toolbar-icon { - background-position: 0 -972px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-right span.yui-toolbar-icon { - background-position: 0 -936px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-inline span.yui-toolbar-icon { - background-position: 0 -900px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-block span.yui-toolbar-icon { - background-position: 0 -864px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-bordercolor span.yui-toolbar-icon { - background-position: 0 -252px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-removeformat span.yui-toolbar-icon { - background-position: 0 -1080px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-hiddenelements span.yui-toolbar-icon { - background-position: 0 -1044px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-insertunorderedlist span.yui-toolbar-icon { - background-position: 0 -468px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-insertorderedlist span.yui-toolbar-icon { - background-position: 0 -504px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-spinbutton, .yui-skin-sam .yui-toolbar-container .yui-toolbar-spinbutton .first-child { - width: 35px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-spinbutton .first-child a { - padding-left: 2px; - text-align: left; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-spinbutton span.yui-toolbar-icon { - display: none; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-spinbutton a.up, .yui-skin-sam .yui-toolbar-container .yui-toolbar-spinbutton a.down { - right: 2px; - background: url(editor-sprite.gif) no-repeat 0 -1222px; - overflow: hidden; - height: 6px; - width: 7px; - min-height: 0; - padding: 0; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-spinbutton a.up { - top: 2px; - background-position: 0 -1222px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-spinbutton a.down { - bottom: 2px; - background-position: 0 -1187px; -} - -.yui-skin-sam .yui-toolbar-container select { - height: 22px; - border: 1px solid #808080; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-select .first-child a { - padding-left: 5px; - text-align: left; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-select span.yui-toolbar-icon { - background: url(editor-sprite.gif) no-repeat 0 -1144px; - overflow: hidden; - right: -2px; - top: 0; - height: 20px; -} - -.yui-skin-sam .yui-editor-panel .yui-color-button-menu .bd { - background-color: transparent; - border: none; - width: 135px; -} - -.yui-skin-sam .yui-color-button-menu .yui-toolbar-colors { - border: 1px solid #808080; -} - -.yui-skin-sam .yui-editor-panel { - padding: 0; - margin: 0; - border: none; - background-color: transparent; - overflow: visible; - position: absolute; -} - -.yui-skin-sam .yui-editor-panel .hd { - margin: 10px 0 0; - padding: 0; - border: none; -} - -.yui-skin-sam .yui-editor-panel .hd h3 { - color: #000; - border: 1px solid #808080; - background: url(sprite.png) repeat-x 0 -200px; - width: 99%; - position: relative; - margin: 0; - padding: 3px 0 0 0; - font-size: 93%; - text-indent: 5px; - height: 20px; -} - -.yui-skin-sam .yui-editor-panel .bd { - background-color: #F2F2F2; - border-left: 1px solid #808080; - border-right: 1px solid #808080; - width: 99%; - margin: 0; - padding: 0; - overflow: visible; -} - -.yui-skin-sam .yui-editor-panel ul { - list-style-type: none; - margin: 0; - padding: 0; -} - -.yui-skin-sam .yui-editor-panel ul li { - margin: 0; - padding: 0; -} - -.yui-skin-sam .yui-editor-panel .yui-toolbar-container .yui-toolbar-subcont { - padding: 0; - border: none; - margin-top: .35em; -} - -.yui-skin-sam .yui-editor-panel .yui-toolbar-bordersize, .yui-skin-sam .yui-editor-panel .yui-toolbar-bordertype { - width: 50px; -} - -.yui-skin-sam .yui-editor-panel label { - display: block; - float: none; - padding: 4px 0; - margin-bottom: 7px; -} - -.yui-skin-sam .yui-editor-panel label strong { - font-weight: normal; - font-size: 93%; - text-align: right; - padding-top: 2px; -} - -.yui-skin-sam .yui-editor-panel label input { - width: 75%; -} - -.yui-skin-sam .yui-editor-panel .createlink_target, .yui-skin-sam .yui-editor-panel .insertimage_target { - width: auto; - margin-right: 5px; -} - -.yui-skin-sam .yui-editor-panel .removeLink { - width: 98%; -} - -.yui-skin-sam .yui-editor-panel label input.warning { - background-color: #FFEE69; -} - -.yui-skin-sam .yui-editor-panel .yui-toolbar-group h3 { - color: #000; - float: left; - font-weight: normal; - font-size: 93%; - margin: 5px 0 0 0; - padding: 0 3px 0 0; - text-align: right; -} - -.yui-skin-sam .yui-editor-panel .height-width h3 { - margin: 3px 0 0 10px; -} - -.yui-skin-sam .yui-editor-panel .height-width { - margin: 3px 0 0 35px; - *margin-left: 14px; - width: 42%; - *width: 44%; -} - -.yui-skin-sam .yui-editor-panel .yui-toolbar-group-border { - width: 190px; -} - -.yui-skin-sam .yui-editor-panel .no-button .yui-toolbar-group-border { - width: 210px; -} - -.yui-skin-sam .yui-editor-panel .yui-toolbar-group-padding { - width: 203px; - _width: 198px; -} - -.yui-skin-sam .yui-editor-panel .no-button .yui-toolbar-group-padding { - width: 172px; -} - -.yui-skin-sam .yui-editor-panel .yui-toolbar-group-padding h3 { - margin-left: 25px; - *margin-left: 12px; -} - -.yui-skin-sam .yui-editor-panel .yui-toolbar-group-textflow { - width: 182px; -} - -.yui-skin-sam .yui-editor-panel .hd { - background: none; -} - -.yui-skin-sam .yui-editor-panel .ft { - background-color: #F2F2F2; - border: 1px solid #808080; - border-top: none; - padding: 0; - margin: 0 0 2px 0; -} - -.yui-skin-sam .yui-editor-panel .hd span.close { - background: url(sprite.png) no-repeat 0 -300px; - cursor: pointer; - display: block; - height: 16px; - overflow: hidden; - position: absolute; - right: 5px; - text-indent: 500px; - top: 2px; - width: 26px; -} - -.yui-skin-sam .yui-editor-panel .ft span.tip { - background-color: #EDF5FF; - border-top: 1px solid #808080; - font-size: 85%; -} - -.yui-skin-sam .yui-editor-panel .ft span.tip strong { - display: block; - float: left; - margin: 0 2px 8px 0; -} - -.yui-skin-sam .yui-editor-panel .ft span.tip span.icon { - background: url(editor-sprite.gif) no-repeat 0 -1260px; - display: block; - height: 20px; - left: 2px; - position: absolute; - top: 8px; - width: 20px; -} - -.yui-skin-sam .yui-editor-panel .ft span.tip span.icon-info { - background-position: 2px -1260px; -} - -.yui-skin-sam .yui-editor-panel .ft span.tip span.icon-warn { - background-position: 2px -1296px; -} - -.yui-skin-sam .yui-editor-panel .hd span.knob { - position: absolute; - height: 10px; - width: 28px; - top: -10px; - left: 25px; - text-indent: 9999px; - overflow: hidden; - background: url(editor-knob.gif) no-repeat 0 0; -} - -.yui-skin-sam .yui-editor-panel .yui-toolbar-container { - float: left; - width: 100%; - background-image: none; - border: none; -} - -.yui-skin-sam .yui-editor-panel .yui-toolbar-container .bd { - background-color: #fff; -} - -.yui-editor-blankimage { - background-image: url(blankimage.png); -} - -.yui-skin-sam .yui-editor-container .yui-resize-handle-br { - height: 11px; - width: 11px; - background-position: -20px -60px; - background-color: transparent; -} diff --git a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/skin.css b/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/skin.css deleted file mode 100644 index 123bc04ae..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/skin.css +++ /dev/null @@ -1,5854 +0,0 @@ -/* -Copyright (c) 2009, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.7.0 -*/ -.yui-skin-sam .yui-ac { - position: relative; - font-family: arial; - font-size: 100%; -} - -.yui-skin-sam .yui-ac-input { - position: absolute; - width: 100%; -} - -.yui-skin-sam .yui-ac-container { - position: absolute; - top: 1.6em; - width: 100%; -} - -.yui-skin-sam .yui-ac-content { - position: absolute; - width: 100%; - border: 1px solid #808080; - background: #fff; - overflow: hidden; - z-index: 9050; -} - -.yui-skin-sam .yui-ac-shadow { - position: absolute; - margin: .3em; - width: 100%; - background: #000; - -moz-opacity: .10; - opacity: .10; - filter: alpha(opacity = 10); - z-index: 9049; -} - -.yui-skin-sam .yui-ac iframe { - opacity: 0; - filter: alpha(opacity = 0); - padding-right: .3em; - padding-bottom: .3em; -} - -.yui-skin-sam .yui-ac-content ul { - margin: 0; - padding: 0; - width: 100%; -} - -.yui-skin-sam .yui-ac-content li { - margin: 0; - padding: 2px 5px; - cursor: default; - white-space: nowrap; - list-style: none; - zoom: 1; -} - -.yui-skin-sam .yui-ac-content li.yui-ac-prehighlight { - background: #B3D4FF; -} - -.yui-skin-sam .yui-ac-content li.yui-ac-highlight { - background: #426FD9; - color: #FFF; -} - -.yui-button { - display: -moz-inline-box; - display: inline-block; - vertical-align: text-bottom; -} - -.yui-button .first-child { - display: block; - *display: inline-block; -} - -.yui-button button, .yui-button a { - display: block; - *display: inline-block; - border: none; - margin: 0; -} - -.yui-button button { - background-color: transparent; - *overflow: visible; - cursor: pointer; -} - -.yui-button a { - text-decoration: none; -} - -.yui-skin-sam .yui-button { - border-width: 1px 0; - border-style: solid; - border-color: #808080; - background: url(sprite.png) repeat-x 0 0; - margin: auto .25em; -} - -.yui-skin-sam .yui-button .first-child { - border-width: 0 1px; - border-style: solid; - border-color: #808080; - margin: 0 -1px; - _margin: 0; -} - -.yui-skin-sam .yui-button button, .yui-skin-sam .yui-button a { - padding: 0 10px; - font-size: 93%; - line-height: 2; - *line-height: 1.7; - min-height: 2em; - *min-height: auto; - color: #000; -} - -.yui-skin-sam .yui-button a { - *line-height: 1.875; - *padding-bottom: 1px; -} - -.yui-skin-sam .yui-split-button button, .yui-skin-sam .yui-menu-button button { - padding-right: 20px; - background-position: right center; - background-repeat: no-repeat; -} - -.yui-skin-sam .yui-menu-button button { - background-image: url(menu-button-arrow.png); -} - -.yui-skin-sam .yui-split-button button { - background-image: url(split-button-arrow.png); -} - -.yui-skin-sam .yui-button-focus { - border-color: #7D98B8; - background-position: 0 -1300px; -} - -.yui-skin-sam .yui-button-focus .first-child { - border-color: #7D98B8; -} - -.yui-skin-sam .yui-button-focus button, .yui-skin-sam .yui-button-focus a { - color: #000; -} - -.yui-skin-sam .yui-split-button-focus button { - background-image: url(split-button-arrow-focus.png); -} - -.yui-skin-sam .yui-button-hover { - border-color: #7D98B8; - background-position: 0 -1300px; -} - -.yui-skin-sam .yui-button-hover .first-child { - border-color: #7D98B8; -} - -.yui-skin-sam .yui-button-hover button, .yui-skin-sam .yui-button-hover a { - color: #000; -} - -.yui-skin-sam .yui-split-button-hover button { - background-image: url(split-button-arrow-hover.png); -} - -.yui-skin-sam .yui-button-active { - border-color: #7D98B8; - background-position: 0 -1700px; -} - -.yui-skin-sam .yui-button-active .first-child { - border-color: #7D98B8; -} - -.yui-skin-sam .yui-button-active button, .yui-skin-sam .yui-button-active a { - color: #000; -} - -.yui-skin-sam .yui-split-button-activeoption { - border-color: #808080; - background-position: 0 0; -} - -.yui-skin-sam .yui-split-button-activeoption .first-child { - border-color: #808080; -} - -.yui-skin-sam .yui-split-button-activeoption button { - background-image: url(split-button-arrow-active.png); -} - -.yui-skin-sam .yui-radio-button-checked, .yui-skin-sam .yui-checkbox-button-checked { - border-color: #304369; - background-position: 0 -1400px; -} - -.yui-skin-sam .yui-radio-button-checked .first-child, .yui-skin-sam .yui-checkbox-button-checked .first-child { - border-color: #304369; -} - -.yui-skin-sam .yui-radio-button-checked button, .yui-skin-sam .yui-checkbox-button-checked button { - color: #fff; -} - -.yui-skin-sam .yui-button-disabled { - border-color: #ccc; - background-position: 0 -1500px; -} - -.yui-skin-sam .yui-button-disabled .first-child { - border-color: #ccc; -} - -.yui-skin-sam .yui-button-disabled button, .yui-skin-sam .yui-button-disabled a { - color: #A6A6A6; - cursor: default; -} - -.yui-skin-sam .yui-menu-button-disabled button { - background-image: url(menu-button-arrow-disabled.png); -} - -.yui-skin-sam .yui-split-button-disabled button { - background-image: url(split-button-arrow-disabled.png); -} - -.yui-calcontainer { - position: relative; - float: left; - _overflow: hidden; -} - -.yui-calcontainer iframe { - position: absolute; - border: none; - margin: 0; - padding: 0; - z-index: 0; - width: 100%; - height: 100%; - left: 0; - top: 0; -} - -.yui-calcontainer iframe.fixedsize { - width: 50em; - height: 50em; - top: -1px; - left: -1px; -} - -.yui-calcontainer.multi .groupcal { - z-index: 1; - float: left; - position: relative; -} - -.yui-calcontainer .title { - position: relative; - z-index: 1; -} - -.yui-calcontainer .close-icon { - position: absolute; - z-index: 1; - text-indent: -10000em; - overflow: hidden; -} - -.yui-calendar { - position: relative; -} - -.yui-calendar .calnavleft { - position: absolute; - z-index: 1; - text-indent: -10000em; - overflow: hidden; -} - -.yui-calendar .calnavright { - position: absolute; - z-index: 1; - text-indent: -10000em; - overflow: hidden; -} - -.yui-calendar .calheader { - position: relative; - width: 100%; - text-align: center; -} - -.yui-calcontainer .yui-cal-nav-mask { - position: absolute; - z-index: 2; - margin: 0; - padding: 0; - width: 100%; - height: 100%; - _width: 0; - _height: 0; - left: 0; - top: 0; - display: none; -} - -.yui-calcontainer .yui-cal-nav { - position: absolute; - z-index: 3; - top: 0; - display: none; -} - -.yui-calcontainer .yui-cal-nav .yui-cal-nav-btn { - display: -moz-inline-box; - display: inline-block; -} - -.yui-calcontainer .yui-cal-nav .yui-cal-nav-btn button { - display: block; - *display: inline-block; - *overflow: visible; - border: none; - background-color: transparent; - cursor: pointer; -} - -.yui-calendar .calbody a:hover { - background: inherit; -} - -p#clear { - clear: left; - padding-top: 10px; -} - -.yui-skin-sam .yui-calcontainer { - background-color: #f2f2f2; - border: 1px solid #808080; - padding: 10px; -} - -.yui-skin-sam .yui-calcontainer.multi { - padding: 0 5px 0 5px; -} - -.yui-skin-sam .yui-calcontainer.multi .groupcal { - background-color: transparent; - border: none; - padding: 10px 5px 10px 5px; - margin: 0; -} - -.yui-skin-sam .yui-calcontainer .title { - background: url(sprite.png) repeat-x 0 0; - border-bottom: 1px solid #ccc; - font: 100% sans-serif; - color: #000; - font-weight: bold; - height: auto; - padding: .4em; - margin: 0 -10px 10px -10px; - top: 0; - left: 0; - text-align: left; -} - -.yui-skin-sam .yui-calcontainer.multi .title { - margin: 0 -5px 0 -5px; -} - -.yui-skin-sam .yui-calcontainer.withtitle { - padding-top: 0; -} - -.yui-skin-sam .yui-calcontainer .calclose { - background: url(sprite.png) no-repeat 0 -300px; - width: 25px; - height: 15px; - top: .4em; - right: .4em; - cursor: pointer; -} - -.yui-skin-sam .yui-calendar { - border-spacing: 0; - border-collapse: collapse; - font: 100% sans-serif; - text-align: center; - margin: 0; -} - -.yui-skin-sam .yui-calendar .calhead { - background: transparent; - border: none; - vertical-align: middle; - padding: 0; -} - -.yui-skin-sam .yui-calendar .calheader { - background: transparent; - font-weight: bold; - padding: 0 0 .6em 0; - text-align: center; -} - -.yui-skin-sam .yui-calendar .calheader img { - border: none; -} - -.yui-skin-sam .yui-calendar .calnavleft { - background: url(sprite.png) no-repeat 0 -450px; - width: 25px; - height: 15px; - top: 0; - bottom: 0; - left: -10px; - margin-left: .4em; - cursor: pointer; -} - -.yui-skin-sam .yui-calendar .calnavright { - background: url(sprite.png) no-repeat 0 -500px; - width: 25px; - height: 15px; - top: 0; - bottom: 0; - right: -10px; - margin-right: .4em; - cursor: pointer; -} - -.yui-skin-sam .yui-calendar .calweekdayrow { - height: 2em; -} - -.yui-skin-sam .yui-calendar .calweekdayrow th { - padding: 0; - border: none; -} - -.yui-skin-sam .yui-calendar .calweekdaycell { - color: #000; - font-weight: bold; - text-align: center; - width: 2em; -} - -.yui-skin-sam .yui-calendar .calfoot { - background-color: #f2f2f2; -} - -.yui-skin-sam .yui-calendar .calrowhead, .yui-skin-sam .yui-calendar .calrowfoot { - color: #a6a6a6; - font-size: 85%; - font-style: normal; - font-weight: normal; - border: none; -} - -.yui-skin-sam .yui-calendar .calrowhead { - text-align: right; - padding: 0 2px 0 0; -} - -.yui-skin-sam .yui-calendar .calrowfoot { - text-align: left; - padding: 0 0 0 2px; -} - -.yui-skin-sam .yui-calendar td.calcell { - border: 1px solid #ccc; - background: #fff; - padding: 1px; - height: 1.6em; - line-height: 1.6em; - text-align: center; - white-space: nowrap; -} - -.yui-skin-sam .yui-calendar td.calcell a { - color: #06c; - display: block; - height: 100%; - text-decoration: none; -} - -.yui-skin-sam .yui-calendar td.calcell.today { - background-color: #000; -} - -.yui-skin-sam .yui-calendar td.calcell.today a { - background-color: #fff; -} - -.yui-skin-sam .yui-calendar td.calcell.oom { - background-color: #ccc; - color: #a6a6a6; - cursor: default; -} - -.yui-skin-sam .yui-calendar td.calcell.selected { - background-color: #fff; - color: #000; -} - -.yui-skin-sam .yui-calendar td.calcell.selected a { - background-color: #b3d4ff; - color: #000; -} - -.yui-skin-sam .yui-calendar td.calcell.calcellhover { - background-color: #426fd9; - color: #fff; - cursor: pointer; -} - -.yui-skin-sam .yui-calendar td.calcell.calcellhover a { - background-color: #426fd9; - color: #fff; -} - -.yui-skin-sam .yui-calendar td.calcell.previous { - color: #e0e0e0; -} - -.yui-skin-sam .yui-calendar td.calcell.restricted { - text-decoration: line-through; -} - -.yui-skin-sam .yui-calendar td.calcell.highlight1 { - background-color: #cf9; -} - -.yui-skin-sam .yui-calendar td.calcell.highlight2 { - background-color: #9cf; -} - -.yui-skin-sam .yui-calendar td.calcell.highlight3 { - background-color: #fcc; -} - -.yui-skin-sam .yui-calendar td.calcell.highlight4 { - background-color: #cf9; -} - -.yui-skin-sam .yui-calendar a.calnav { - border: 1px solid #f2f2f2; - padding: 0 4px; - text-decoration: none; - color: #000; - zoom: 1; -} - -.yui-skin-sam .yui-calendar a.calnav:hover { - background: url(sprite.png) repeat-x 0 0; - border-color: #A0A0A0; - cursor: pointer; -} - -.yui-skin-sam .yui-calcontainer .yui-cal-nav-mask { - background-color: #000; - opacity: .25; - filter: alpha(opacity = 25); -} - -.yui-skin-sam .yui-calcontainer .yui-cal-nav { - font-family: arial, helvetica, clean, sans-serif; - font-size: 93%; - border: 1px solid #808080; - left: 50%; - margin-left: -7em; - width: 14em; - padding: 0; - top: 2.5em; - background-color: #f2f2f2; -} - -.yui-skin-sam .yui-calcontainer.withtitle .yui-cal-nav { - top: 4.5em; -} - -.yui-skin-sam .yui-calcontainer.multi .yui-cal-nav { - width: 16em; - margin-left: -8em; -} - -.yui-skin-sam .yui-calcontainer .yui-cal-nav-y, .yui-skin-sam .yui-calcontainer .yui-cal-nav-m, .yui-skin-sam .yui-calcontainer .yui-cal-nav-b { - padding: 5px 10px 5px 10px; -} - -.yui-skin-sam .yui-calcontainer .yui-cal-nav-b { - text-align: center; -} - -.yui-skin-sam .yui-calcontainer .yui-cal-nav-e { - margin-top: 5px; - padding: 5px; - background-color: #EDF5FF; - border-top: 1px solid black; - display: none; -} - -.yui-skin-sam .yui-calcontainer .yui-cal-nav label { - display: block; - font-weight: bold; -} - -.yui-skin-sam .yui-calcontainer .yui-cal-nav-mc { - width: 100%; - _width: auto; -} - -.yui-skin-sam .yui-calcontainer .yui-cal-nav-y input.yui-invalid { - background-color: #FFEE69; - border: 1px solid #000; -} - -.yui-skin-sam .yui-calcontainer .yui-cal-nav-yc { - width: 4em; -} - -.yui-skin-sam .yui-calcontainer .yui-cal-nav .yui-cal-nav-btn { - border: 1px solid #808080; - background: url(sprite.png) repeat-x 0 0; - background-color: #ccc; - margin: auto .15em; -} - -.yui-skin-sam .yui-calcontainer .yui-cal-nav .yui-cal-nav-btn button { - padding: 0 8px; - font-size: 93%; - line-height: 2; - *line-height: 1.7; - min-height: 2em; - *min-height: auto; - color: #000; -} - -.yui-skin-sam .yui-calcontainer .yui-cal-nav .yui-cal-nav-btn.yui-default { - border: 1px solid #304369; - background-color: #426fd9; - background: url(sprite.png) repeat-x 0 -1400px; -} - -.yui-skin-sam .yui-calcontainer .yui-cal-nav .yui-cal-nav-btn.yui-default button { - color: #fff; -} - -.yui-carousel { - visibility: hidden; - overflow: hidden; - position: relative; - text-align: left; - zoom: 1; -} - -.yui-carousel.yui-carousel-visible { - visibility: visible; -} - -.yui-carousel-content { - overflow: hidden; - position: relative; -} - -.yui-carousel-element { - margin: 5px 0; - overflow: hidden; - padding: 0; - position: relative; - width: 32000px; - z-index: 1; -} - -.yui-carousel-vertical .yui-carousel-element { - margin: 0 5px; -} - -.yui-carousel-element li { - border: 1px solid #ccc; - float: left; - list-style: none; - margin: 1px; - overflow: hidden; - padding: 0; - text-align: center; - *float: none; - *display: inline-block; - *zoom: 1; - *display: inline; -} - -.yui-carousel .yui-carousel-item-selected { - border: 1px dashed #000; - margin: 1px; -} - -.yui-carousel-vertical { - height: 32000px; - margin: 0 5px; - width: auto; -} - -.yui-carousel-vertical .yui-carousel-element li { - display: block; - float: none; -} - -.yui-log .carousel { - background: #f2e886; -} - -.yui-carousel-nav { - zoom: 1; -} - -.yui-carousel-nav:after { - clear: both; - content: ""; - display: block; -} - -.yui-carousel-button-focus { - outline: 1px dotted #000; -} - -.yui-carousel-min-width .yui-carousel-content { - margin: 0 auto; -} - -.yui-skin-sam .yui-carousel, .yui-skin-sam .yui-carousel-vertical { - border: 1px solid #808080; -} - -.yui-skin-sam .yui-carousel-nav { - background: url(sprite.png) repeat-x 0 0; - padding: 3px; - text-align: right; -} - -.yui-skin-sam .yui-carousel-button { - background: url(sprite.png) no-repeat 0 -600px; - float: right; - height: 19px; - margin: 5px; - overflow: hidden; - width: 40px; -} - -.yui-skin-sam .yui-carousel-vertical .yui-carousel-button { - background-position: 0 -800px; -} - -.yui-skin-sam .yui-carousel-button-disabled { - background-position: 0 -2000px; -} - -.yui-skin-sam .yui-carousel-vertical .yui-carousel-button-disabled { - background-position: 0 -2100px; -} - -.yui-skin-sam .yui-carousel-button input, .yui-skin-sam .yui-carousel-button button { - background-color: transparent; - border: 0; - cursor: pointer; - display: block; - height: 44px; - margin: -2px 0 0 -2px; - padding: 0 0 0 50px; -} - -.yui-skin-sam span.yui-carousel-first-button { - background-position: 0 -550px; - margin-left: -100px; - margin-right: 50px; - *margin: 5px 5px 5px -90px; -} - -.yui-skin-sam .yui-carousel-vertical span.yui-carousel-first-button { - background-position: 0 -750px; -} - -.yui-skin-sam span.yui-carousel-first-button-disabled { - background-position: 0 -1950px; -} - -.yui-skin-sam .yui-carousel-vertical span.yui-carousel-first-button-disabled { - background-position: 0 -2050px; -} - -.yui-skin-sam .yui-carousel-nav ul { - float: right; - height: 19px; - margin: 0; - margin-left: -220px; - margin-right: 100px; - *margin-left: -160px; - *margin-right: 0; - padding: 0; -} - -.yui-skin-sam .yui-carousel-min-width .yui-carousel-nav ul { - *margin-left: -170px; -} - -.yui-skin-sam .yui-carousel-nav select { - position: relative; - *right: 50px; - top: 4px; -} - -.yui-skin-sam .yui-carousel-vertical .yui-carousel-nav ul, .yui-skin-sam .yui-carousel-vertical .yui-carousel-nav select { - float: none; - margin: 0; - *zoom: 1; -} - -.yui-skin-sam .yui-carousel-nav ul li { - background: url(sprite.png) no-repeat 0 -650px; - cursor: pointer; - float: left; - height: 9px; - list-style: none; - margin: 10px 0 0 5px; - overflow: hidden; - padding: 0; - width: 9px; -} - -.yui-skin-sam .yui-carousel-nav ul:after { - clear: both; - content: ""; - display: block; -} - -.yui-skin-sam .yui-carousel-nav ul li a { - left: -10000px; - position: absolute; -} - -.yui-skin-sam .yui-carousel-nav ul li.yui-carousel-nav-page-focus { - outline: 1px dotted #000; -} - -.yui-skin-sam .yui-carousel-nav ul li.yui-carousel-nav-page-selected { - background-position: 0 -700px; -} - -.yui-skin-sam .yui-carousel-item-loading { - background: url(ajax-loader.gif) no-repeat 50% 50%; - position: relative; - text-indent: -150px; -} - -.yui-picker-panel { - background: #e3e3e3; - border-color: #888; -} - -.yui-picker-panel .hd { - background-color: #ccc; - font-size: 100%; - line-height: 100%; - border: 1px solid #e3e3e3; - font-weight: bold; - overflow: hidden; - padding: 6px; - color: #000; -} - -.yui-picker-panel .bd { - background: #e8e8e8; - margin: 1px; - height: 200px; -} - -.yui-picker-panel .ft { - background: #e8e8e8; - margin: 1px; - padding: 1px; -} - -.yui-picker { - position: relative; -} - -.yui-picker-hue-thumb { - cursor: default; - width: 18px; - height: 18px; - top: -8px; - left: -2px; - z-index: 9; - position: absolute; -} - -.yui-picker-hue-bg { - -moz-outline: none; - outline: 0 none; - position: absolute; - left: 200px; - height: 183px; - width: 14px; - background: url(hue_bg.png) no-repeat; - top: 4px; -} - -.yui-picker-bg { - -moz-outline: none; - outline: 0 none; - position: absolute; - top: 4px; - left: 4px; - height: 182px; - width: 182px; - background-color: #F00; - background-image: url(picker_mask.png); -} - -*html .yui-picker-bg { - background-image: none; - filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src = '../../build/colorpicker/assets/picker_mask.png', sizingMethod = 'scale'); -} - -.yui-picker-mask { - position: absolute; - z-index: 1; - top: 0; - left: 0; -} - -.yui-picker-thumb { - cursor: default; - width: 11px; - height: 11px; - z-index: 9; - position: absolute; - top: -4px; - left: -4px; -} - -.yui-picker-swatch { - position: absolute; - left: 240px; - top: 4px; - height: 60px; - width: 55px; - border: 1px solid #888; -} - -.yui-picker-websafe-swatch { - position: absolute; - left: 304px; - top: 4px; - height: 24px; - width: 24px; - border: 1px solid #888; -} - -.yui-picker-controls { - position: absolute; - top: 72px; - left: 226px; - font: 1em monospace; -} - -.yui-picker-controls .hd { - background: transparent; - border-width: 0 !important; -} - -.yui-picker-controls .bd { - height: 100px; - border-width: 0 !important; -} - -.yui-picker-controls ul { - float: left; - padding: 0 2px 0 0; - margin: 0; -} - -.yui-picker-controls li { - padding: 2px; - list-style: none; - margin: 0; -} - -.yui-picker-controls input { - font-size: .85em; - width: 2.4em; -} - -.yui-picker-hex-controls { - clear: both; - padding: 2px; -} - -.yui-picker-hex-controls input { - width: 4.6em; -} - -.yui-picker-controls a { - font: 1em arial, helvetica, clean, sans-serif; - display: block; - *display: inline-block; - padding: 0; - color: #000; -} - -.yui-overlay, .yui-panel-container { - visibility: hidden; - position: absolute; - z-index: 2; -} - -.yui-panel { - position: relative; -} - -.yui-panel-container form { - margin: 0; -} - -.mask { - z-index: 1; - display: none; - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; -} - -.mask.block-scrollbars { - overflow: auto; -} - -.masked select, .drag select, .hide-select select { - _visibility: hidden; -} - -.yui-panel-container select { - _visibility: inherit; -} - -.hide-scrollbars, .hide-scrollbars * { - overflow: hidden; -} - -.hide-scrollbars select { - display: none; -} - -.show-scrollbars { - overflow: auto; -} - -.yui-panel-container.show-scrollbars, .yui-tt.show-scrollbars { - overflow: visible; -} - -.yui-panel-container.show-scrollbars .underlay, .yui-tt.show-scrollbars .yui-tt-shadow { - overflow: auto; -} - -.yui-panel-container.shadow .underlay.yui-force-redraw { - padding-bottom: 1px; -} - -.yui-effect-fade .underlay, .yui-effect-fade .yui-tt-shadow { - display: none; -} - -.yui-tt-shadow { - position: absolute; -} - -.yui-override-padding { - padding: 0 !important; -} - -.yui-panel-container .container-close { - overflow: hidden; - text-indent: -10000em; - text-decoration: none; -} - -.yui-overlay.yui-force-redraw, .yui-panel-container.yui-force-redraw { - margin-bottom: 1px; -} - -.yui-skin-sam .mask { - background-color: #000; - opacity: .25; - filter: alpha(opacity = 25); -} - -.yui-skin-sam .yui-panel-container { - padding: 0 1px; - *padding: 2px; -} - -.yui-skin-sam .yui-panel { - position: relative; - left: 0; - top: 0; - border-style: solid; - border-width: 1px 0; - border-color: #808080; - z-index: 1; - *border-width: 1px; - *zoom: 1; - _zoom: normal; -} - -.yui-skin-sam .yui-panel .hd, .yui-skin-sam .yui-panel .bd, .yui-skin-sam .yui-panel .ft { - border-style: solid; - border-width: 0 1px; - border-color: #808080; - margin: 0 -1px; - *margin: 0; - *border: 0; -} - -.yui-skin-sam .yui-panel .hd { - border-bottom: solid 1px #ccc; -} - -.yui-skin-sam .yui-panel .bd, .yui-skin-sam .yui-panel .ft { - background-color: #F2F2F2; -} - -.yui-skin-sam .yui-panel .hd { - padding: 0 10px; - font-size: 93%; - line-height: 2; - *line-height: 1.9; - font-weight: bold; - color: #000; - background: url(sprite.png) repeat-x 0 -200px; -} - -.yui-skin-sam .yui-panel .bd { - padding: 10px; -} - -.yui-skin-sam .yui-panel .ft { - border-top: solid 1px #808080; - padding: 5px 10px; - font-size: 77%; -} - -.yui-skin-sam .container-close { - position: absolute; - top: 5px; - right: 6px; - width: 25px; - height: 15px; - background: url(sprite.png) no-repeat 0 -300px; - cursor: pointer; -} - -.yui-skin-sam .yui-panel-container .underlay { - right: -1px; - left: -1px; -} - -.yui-skin-sam .yui-panel-container.matte { - padding: 9px 10px; - background-color: #fff; -} - -.yui-skin-sam .yui-panel-container.shadow { - _padding: 2px 4px 0 2px; -} - -.yui-skin-sam .yui-panel-container.shadow .underlay { - position: absolute; - top: 2px; - left: -3px; - right: -3px; - bottom: -3px; - *top: 4px; - *left: -1px; - *right: -1px; - *bottom: -1px; - _top: 0; - _left: 0; - _right: 0; - _bottom: 0; - _margin-top: 3px; - _margin-left: -1px; - background-color: #000; - opacity: .12; - filter: alpha(opacity = 12); -} - -.yui-skin-sam .yui-dialog .ft { - border-top: none; - padding: 0 10px 10px 10px; - font-size: 100%; -} - -.yui-skin-sam .yui-dialog .ft .button-group { - display: block; - text-align: right; -} - -.yui-skin-sam .yui-dialog .ft button.default { - font-weight: bold; -} - -.yui-skin-sam .yui-dialog .ft span.default { - border-color: #304369; - background-position: 0 -1400px; -} - -.yui-skin-sam .yui-dialog .ft span.default .first-child { - border-color: #304369; -} - -.yui-skin-sam .yui-dialog .ft span.default button { - color: #fff; -} - -.yui-skin-sam .yui-dialog .ft span.yui-button-disabled { - background-position: 0 -1500px; - border-color: #ccc; -} - -.yui-skin-sam .yui-dialog .ft span.yui-button-disabled .first-child { - border-color: #ccc; -} - -.yui-skin-sam .yui-dialog .ft span.yui-button-disabled button { - color: #a6a6a6; -} - -.yui-skin-sam .yui-simple-dialog .bd .yui-icon { - background: url(sprite.png) no-repeat 0 0; - width: 16px; - height: 16px; - margin-right: 10px; - float: left; -} - -.yui-skin-sam .yui-simple-dialog .bd span.blckicon { - background-position: 0 -1100px; -} - -.yui-skin-sam .yui-simple-dialog .bd span.alrticon { - background-position: 0 -1050px; -} - -.yui-skin-sam .yui-simple-dialog .bd span.hlpicon { - background-position: 0 -1150px; -} - -.yui-skin-sam .yui-simple-dialog .bd span.infoicon { - background-position: 0 -1200px; -} - -.yui-skin-sam .yui-simple-dialog .bd span.warnicon { - background-position: 0 -1900px; -} - -.yui-skin-sam .yui-simple-dialog .bd span.tipicon { - background-position: 0 -1250px; -} - -.yui-skin-sam .yui-tt .bd { - position: relative; - top: 0; - left: 0; - z-index: 1; - color: #000; - padding: 2px 5px; - border-color: #D4C237 #A6982B #A6982B #A6982B; - border-width: 1px; - border-style: solid; - background-color: #FFEE69; -} - -.yui-skin-sam .yui-tt.show-scrollbars .bd { - overflow: auto; -} - -.yui-skin-sam .yui-tt-shadow { - top: 2px; - right: -3px; - left: -3px; - bottom: -3px; - background-color: #000; -} - -.yui-skin-sam .yui-tt-shadow-visible { - opacity: .12; - filter: alpha(opacity = 12); -} - -.yui-skin-sam .yui-dt-mask { - position: absolute; - z-index: 9500; -} - -.yui-dt-tmp { - position: absolute; - left: -9000px; -} - -.yui-dt-scrollable .yui-dt-bd { - overflow: auto; -} - -.yui-dt-scrollable .yui-dt-hd { - overflow: hidden; - position: relative; -} - -.yui-dt-scrollable .yui-dt-bd thead tr, .yui-dt-scrollable .yui-dt-bd thead th { - position: absolute; - left: -1500px; -} - -.yui-dt-scrollable tbody { - -moz-outline: none; -} - -.yui-skin-sam thead .yui-dt-sortable { - cursor: pointer; -} - -.yui-skin-sam thead .yui-dt-draggable { - cursor: move; -} - -.yui-dt-coltarget { - position: absolute; - z-index: 999; -} - -.yui-dt-hd { - zoom: 1; -} - -th.yui-dt-resizeable .yui-dt-resizerliner { - position: relative; -} - -.yui-dt-resizer { - position: absolute; - right: 0; - bottom: 0; - height: 100%; - cursor: e-resize; - cursor: col-resize; - background-color: #CCC; - opacity: 0; - filter: alpha(opacity = 0); -} - -.yui-dt-resizerproxy { - visibility: hidden; - position: absolute; - z-index: 9000; - background-color: #CCC; - opacity: 0; - filter: alpha(opacity = 0); -} - -th.yui-dt-hidden .yui-dt-liner, td.yui-dt-hidden .yui-dt-liner, th.yui-dt-hidden .yui-dt-resizer { - display: none; -} - -.yui-dt-editor { - position: absolute; - z-index: 9000; -} - -.yui-skin-sam .yui-dt table { - margin: 0; - padding: 0; - font-family: arial; - font-size: inherit; - border-collapse: separate; - *border-collapse: collapse; - border-spacing: 0; - border: 1px solid #7F7F7F; -} - -.yui-skin-sam .yui-dt thead { - border-spacing: 0; -} - -.yui-skin-sam .yui-dt caption { - color: #000; - font-size: 85%; - font-weight: normal; - font-style: italic; - line-height: 1; - padding: 1em 0; - text-align: center; -} - -.yui-skin-sam .yui-dt th { - background: #D8D8DA url(sprite.png) repeat-x 0 0; -} - -.yui-skin-sam .yui-dt th, .yui-skin-sam .yui-dt th a { - font-weight: normal; - text-decoration: none; - color: #000; - vertical-align: bottom; -} - -.yui-skin-sam .yui-dt th { - margin: 0; - padding: 0; - border: none; - border-right: 1px solid #CBCBCB; -} - -.yui-skin-sam .yui-dt tr.yui-dt-first td { - border-top: 1px solid #7F7F7F; -} - -.yui-skin-sam .yui-dt th .yui-dt-liner { - white-space: nowrap; -} - -.yui-skin-sam .yui-dt-liner { - margin: 0; - padding: 0; - padding: 4px 10px 4px 10px; -} - -.yui-skin-sam .yui-dt-coltarget { - width: 5px; - background-color: red; -} - -.yui-skin-sam .yui-dt td { - margin: 0; - padding: 0; - border: none; - border-right: 1px solid #CBCBCB; - text-align: left; -} - -.yui-skin-sam .yui-dt-list td { - border-right: none; -} - -.yui-skin-sam .yui-dt-resizer { - width: 6px; -} - -.yui-skin-sam .yui-dt-mask { - background-color: #000; - opacity: .25; - filter: alpha(opacity = 25); -} - -.yui-skin-sam .yui-dt-message { - background-color: #FFF; -} - -.yui-skin-sam .yui-dt-scrollable table { - border: none; -} - -.yui-skin-sam .yui-dt-scrollable .yui-dt-hd { - border-left: 1px solid #7F7F7F; - border-top: 1px solid #7F7F7F; - border-right: 1px solid #7F7F7F; -} - -.yui-skin-sam .yui-dt-scrollable .yui-dt-bd { - border-left: 1px solid #7F7F7F; - border-bottom: 1px solid #7F7F7F; - border-right: 1px solid #7F7F7F; - background-color: #FFF; -} - -.yui-skin-sam .yui-dt-scrollable .yui-dt-data tr.yui-dt-last td { - border-bottom: 1px solid #7F7F7F; -} - -.yui-skin-sam th.yui-dt-asc, .yui-skin-sam th.yui-dt-desc { - background: url(sprite.png) repeat-x 0 -100px; -} - -.yui-skin-sam th.yui-dt-sortable .yui-dt-label { - margin-right: 10px; -} - -.yui-skin-sam th.yui-dt-asc .yui-dt-liner { - background: url(dt-arrow-up.png) no-repeat right; -} - -.yui-skin-sam th.yui-dt-desc .yui-dt-liner { - background: url(dt-arrow-dn.png) no-repeat right; -} - -tbody .yui-dt-editable { - cursor: pointer; -} - -.yui-dt-editor { - text-align: left; - background-color: #F2F2F2; - border: 1px solid #808080; - padding: 6px; -} - -.yui-dt-editor label { - padding-left: 4px; - padding-right: 6px; -} - -.yui-dt-editor .yui-dt-button { - padding-top: 6px; - text-align: right; -} - -.yui-dt-editor .yui-dt-button button { - background: url(sprite.png) repeat-x 0 0; - border: 1px solid #999; - width: 4em; - height: 1.8em; - margin-left: 6px; -} - -.yui-dt-editor .yui-dt-button button.yui-dt-default { - background: url(sprite.png) repeat-x 0 -1400px; - background-color: #5584E0; - border: 1px solid #304369; - color: #FFF; -} - -.yui-dt-editor .yui-dt-button button:hover { - background: url(sprite.png) repeat-x 0 -1300px; - color: #000; -} - -.yui-dt-editor .yui-dt-button button:active { - background: url(sprite.png) repeat-x 0 -1700px; - color: #000; -} - -.yui-skin-sam tr.yui-dt-even { - background-color: #FFF; -} - -.yui-skin-sam tr.yui-dt-odd { - background-color: #EDF5FF; -} - -.yui-skin-sam tr.yui-dt-even td.yui-dt-asc, .yui-skin-sam tr.yui-dt-even td.yui-dt-desc { - background-color: #EDF5FF; -} - -.yui-skin-sam tr.yui-dt-odd td.yui-dt-asc, .yui-skin-sam tr.yui-dt-odd td.yui-dt-desc { - background-color: #DBEAFF; -} - -.yui-skin-sam .yui-dt-list tr.yui-dt-even { - background-color: #FFF; -} - -.yui-skin-sam .yui-dt-list tr.yui-dt-odd { - background-color: #FFF; -} - -.yui-skin-sam .yui-dt-list tr.yui-dt-even td.yui-dt-asc, .yui-skin-sam .yui-dt-list tr.yui-dt-even td.yui-dt-desc { - background-color: #EDF5FF; -} - -.yui-skin-sam .yui-dt-list tr.yui-dt-odd td.yui-dt-asc, .yui-skin-sam .yui-dt-list tr.yui-dt-odd td.yui-dt-desc { - background-color: #EDF5FF; -} - -.yui-skin-sam th.yui-dt-highlighted, .yui-skin-sam th.yui-dt-highlighted a { - background-color: #B2D2FF; -} - -.yui-skin-sam tr.yui-dt-highlighted, .yui-skin-sam tr.yui-dt-highlighted td.yui-dt-asc, .yui-skin-sam tr.yui-dt-highlighted td.yui-dt-desc, .yui-skin-sam tr.yui-dt-even td.yui-dt-highlighted, .yui-skin-sam tr.yui-dt-odd td.yui-dt-highlighted { - cursor: pointer; - background-color: #B2D2FF; -} - -.yui-skin-sam .yui-dt-list th.yui-dt-highlighted, .yui-skin-sam .yui-dt-list th.yui-dt-highlighted a { - background-color: #B2D2FF; -} - -.yui-skin-sam .yui-dt-list tr.yui-dt-highlighted, .yui-skin-sam .yui-dt-list tr.yui-dt-highlighted td.yui-dt-asc, .yui-skin-sam .yui-dt-list tr.yui-dt-highlighted td.yui-dt-desc, .yui-skin-sam .yui-dt-list tr.yui-dt-even td.yui-dt-highlighted, .yui-skin-sam .yui-dt-list tr.yui-dt-odd td.yui-dt-highlighted { - cursor: pointer; - background-color: #B2D2FF; -} - -.yui-skin-sam th.yui-dt-selected, .yui-skin-sam th.yui-dt-selected a { - background-color: #446CD7; -} - -.yui-skin-sam tr.yui-dt-selected td, .yui-skin-sam tr.yui-dt-selected td.yui-dt-asc, .yui-skin-sam tr.yui-dt-selected td.yui-dt-desc { - background-color: #426FD9; - color: #FFF; -} - -.yui-skin-sam tr.yui-dt-even td.yui-dt-selected, .yui-skin-sam tr.yui-dt-odd td.yui-dt-selected { - background-color: #446CD7; - color: #FFF; -} - -.yui-skin-sam .yui-dt-list th.yui-dt-selected, .yui-skin-sam .yui-dt-list th.yui-dt-selected a { - background-color: #446CD7; -} - -.yui-skin-sam .yui-dt-list tr.yui-dt-selected td, .yui-skin-sam .yui-dt-list tr.yui-dt-selected td.yui-dt-asc, .yui-skin-sam .yui-dt-list tr.yui-dt-selected td.yui-dt-desc { - background-color: #426FD9; - color: #FFF; -} - -.yui-skin-sam .yui-dt-list tr.yui-dt-even td.yui-dt-selected, .yui-skin-sam .yui-dt-list tr.yui-dt-odd td.yui-dt-selected { - background-color: #446CD7; - color: #FFF; -} - -.yui-skin-sam .yui-dt-paginator { - display: block; - margin: 6px 0; - white-space: nowrap; -} - -.yui-skin-sam .yui-dt-paginator .yui-dt-first, .yui-skin-sam .yui-dt-paginator .yui-dt-last, .yui-skin-sam .yui-dt-paginator .yui-dt-selected { - padding: 2px 6px; -} - -.yui-skin-sam .yui-dt-paginator a.yui-dt-first, .yui-skin-sam .yui-dt-paginator a.yui-dt-last { - text-decoration: none; -} - -.yui-skin-sam .yui-dt-paginator .yui-dt-previous, .yui-skin-sam .yui-dt-paginator .yui-dt-next { - display: none; -} - -.yui-skin-sam a.yui-dt-page { - border: 1px solid #CBCBCB; - padding: 2px 6px; - text-decoration: none; - background-color: #fff; -} - -.yui-skin-sam .yui-dt-selected { - border: 1px solid #fff; - background-color: #fff; -} - -.yui-busy { - cursor: wait !important; -} - -.yui-toolbar-container fieldset, .yui-editor-container fieldset { - padding: 0; - margin: 0; - border: 0; -} - -.yui-toolbar-container legend { - display: none; -} - -.yui-toolbar-container .yui-toolbar-subcont { - padding: .25em 0; - zoom: 1; -} - -.yui-toolbar-container-collapsed .yui-toolbar-subcont { - display: none; -} - -.yui-toolbar-container .yui-toolbar-subcont:after { - display: block; - clear: both; - visibility: hidden; - content: '.'; - height: 0; -} - -.yui-toolbar-container span.yui-toolbar-draghandle { - cursor: move; - border-left: 1px solid #999; - border-right: 1px solid #999; - overflow: hidden; - text-indent: 77777px; - width: 2px; - height: 20px; - display: block; - clear: none; - float: left; - margin: 0 0 0 .2em; -} - -.yui-toolbar-container .yui-toolbar-titlebar.draggable { - cursor: move; -} - -.yui-toolbar-container .yui-toolbar-titlebar { - position: relative; -} - -.yui-toolbar-container .yui-toolbar-titlebar h2 { - font-weight: bold; - letter-spacing: 0; - border: none; - color: #000; - margin: 0; - padding: .2em; -} - -.yui-toolbar-container .yui-toolbar-titlebar h2 a { - text-decoration: none; - color: #000; - cursor: default; -} - -.yui-toolbar-container.yui-toolbar-grouped span.yui-toolbar-draghandle { - height: 40px; -} - -.yui-toolbar-container .yui-toolbar-group { - float: left; - margin-right: .5em; - zoom: 1; -} - -.yui-toolbar-container .yui-toolbar-group:after { - display: block; - clear: both; - visibility: hidden; - content: '.'; - height: 0; -} - -.yui-toolbar-container .yui-toolbar-group h3 { - font-size: 75%; - padding: 0 0 0 .25em; - margin: 0; -} - -.yui-toolbar-container span.yui-toolbar-separator { - width: 2px; - padding: 0; - height: 18px; - margin: .2em 0 .2em .1em; - display: none; - float: left; -} - -.yui-toolbar-container.yui-toolbar-grouped span.yui-toolbar-separator { - height: 45px; - *height: 50px; -} - -.yui-toolbar-container.yui-toolbar-grouped .yui-toolbar-group span.yui-toolbar-separator { - height: 18px; - display: block; -} - -.yui-toolbar-container ul li { - margin: 0; - padding: 0; - list-style-type: none; -} - -.yui-toolbar-container .yui-toolbar-nogrouplabels h3 { - display: none; -} - -.yui-toolbar-container .yui-push-button, .yui-toolbar-container .yui-color-button, .yui-toolbar-container .yui-menu-button { - position: relative; - cursor: pointer; -} - -.yui-toolbar-container .yui-button .first-child, .yui-toolbar-container .yui-button .first-child a { - height: 100%; - width: 100%; - overflow: hidden; - font-size: 0; -} - -.yui-toolbar-container .yui-button-disabled { - cursor: default; -} - -.yui-toolbar-container .yui-button-disabled .yui-toolbar-icon { - opacity: .5; - filter: alpha(opacity = 50); -} - -.yui-toolbar-container .yui-button-disabled .up, .yui-toolbar-container .yui-button-disabled .down { - opacity: .5; - filter: alpha(opacity = 50); -} - -.yui-toolbar-container .yui-button a { - overflow: hidden; -} - -.yui-toolbar-container .yui-toolbar-select .first-child a { - cursor: pointer; -} - -.yui-toolbar-fontname-arial { - font-family: Arial; -} - -.yui-toolbar-fontname-arial-black { - font-family: Arial Black; -} - -.yui-toolbar-fontname-comic-sans-ms { - font-family: Comic Sans MS; -} - -.yui-toolbar-fontname-courier-new { - font-family: Courier New; -} - -.yui-toolbar-fontname-times-new-roman { - font-family: Times New Roman; -} - -.yui-toolbar-fontname-verdana { - font-family: Verdana; -} - -.yui-toolbar-fontname-impact { - font-family: Impact; -} - -.yui-toolbar-fontname-lucida-console { - font-family: Lucida Console; -} - -.yui-toolbar-fontname-tahoma { - font-family: Tahoma; -} - -.yui-toolbar-fontname-trebuchet-ms { - font-family: Trebuchet MS; -} - -.yui-toolbar-container .yui-toolbar-spinbutton { - position: relative; -} - -.yui-toolbar-container .yui-toolbar-spinbutton .first-child a { - z-index: 0; - opacity: 1; -} - -.yui-toolbar-container .yui-toolbar-spinbutton a.up, .yui-toolbar-container .yui-toolbar-spinbutton a.down { - position: absolute; - display: block right: 0; - cursor: pointer; - z-index: 1; - padding: 0; - margin: 0; -} - -.yui-toolbar-container .yui-overlay { - position: absolute; -} - -.yui-toolbar-container .yui-overlay ul li { - margin: 0; - list-style-type: none; -} - -.yui-toolbar-container { - z-index: 1; -} - -.yui-editor-container .yui-editor-editable-container { - position: relative; - z-index: 0; - width: 100%; -} - -.yui-editor-container .yui-editor-masked { - background-color: #CCC; - height: 100%; - width: 100%; - position: absolute; - top: 0; - left: 0; - opacity: .5; - filter: alpha(opacity = 50); -} - -.yui-editor-container iframe { - border: 0; - padding: 0; - margin: 0; - zoom: 1; - display: block; -} - -.yui-editor-container .yui-editor-editable { - padding: 0; - margin: 0; -} - -.yui-editor-container .dompath { - font-size: 85%; -} - -.yui-editor-panel .hd { - text-align: left; - position: relative; -} - -.yui-editor-panel .hd h3 { - font-weight: bold; - padding: .25em 0 .25em .25em; - margin: 0; -} - -.yui-editor-panel .bd { - width: 100%; - zoom: 1; - position: relative; -} - -.yui-editor-panel .bd div.yui-editor-body-cont { - padding: .25em .1em; - zoom: 1; -} - -.yui-editor-panel .bd .gecko form { - overflow: auto; -} - -.yui-editor-panel .bd div.yui-editor-body-cont:after { - display: block; - clear: both; - visibility: hidden; - content: '.'; - height: 0; -} - -.yui-editor-panel .ft { - text-align: right; - width: 99%; - float: left; - clear: both; -} - -.yui-editor-panel .ft span.tip { - display: block; - position: relative; - padding: .5em .5em .5em 23px; - text-align: left; - zoom: 1; -} - -.yui-editor-panel label { - clear: both; - float: left; - padding: 0; - width: 100%; - text-align: left; - zoom: 1; -} - -.yui-editor-panel .gecko label { - overflow: auto; -} - -.yui-editor-panel label strong { - float: left; - width: 6em; -} - -.yui-editor-panel .removeLink { - width: 80%; - text-align: right; -} - -.yui-editor-panel label input { - margin-left: .25em; - float: left; -} - -.yui-editor-panel .yui-toolbar-group { - margin-bottom: .75em; -} - -.yui-editor-panel .height-width { - float: left; -} - -.yui-editor-panel .height-width span { - font-style: italic; - display: block; - float: left; - overflow: visible; -} - -.yui-editor-panel .height-width span.info { - font-size: 70%; - margin-top: 3px; -} - -.yui-editor-panel .yui-toolbar-bordersize, .yui-editor-panel .yui-toolbar-bordertype { - font-size: 75%; -} - -.yui-editor-panel .yui-toolbar-container span.yui-toolbar-separator { - border: none; -} - -.yui-editor-panel .yui-toolbar-bordersize span a span, .yui-editor-panel .yui-toolbar-bordertype span a span { - display: block; - height: 8px; - left: 4px; - position: absolute; - top: 3px; - _top: -5px; - width: 24px; - text-indent: 52px; - font-size: 0; -} - -.yui-editor-panel .yui-toolbar-bordertype span a span.yui-toolbar-bordertype-solid { - border-bottom: 1px solid black; -} - -.yui-editor-panel .yui-toolbar-bordertype span a span.yui-toolbar-bordertype-dotted { - border-bottom: 1px dotted black; -} - -.yui-editor-panel .yui-toolbar-bordertype span a span.yui-toolbar-bordertype-dashed { - border-bottom: 1px dashed black; -} - -.yui-editor-panel .yui-toolbar-bordersize span a span.yui-toolbar-bordersize-0 { - *top: 0; - text-indent: 0; - font-size: 75%; -} - -.yui-editor-panel .yui-toolbar-bordersize span a span.yui-toolbar-bordersize-1 { - border-bottom: 1px solid black; -} - -.yui-editor-panel .yui-toolbar-bordersize span a span.yui-toolbar-bordersize-2 { - border-bottom: 2px solid black; -} - -.yui-editor-panel .yui-toolbar-bordersize span a span.yui-toolbar-bordersize-3 { - top: 2px; - *top: -5px; - border-bottom: 3px solid black; -} - -.yui-editor-panel .yui-toolbar-bordersize span a span.yui-toolbar-bordersize-4 { - top: 1px; - *top: -5px; - border-bottom: 4px solid black; -} - -.yui-editor-panel .yui-toolbar-bordersize span a span.yui-toolbar-bordersize-5 { - top: 1px; - *top: -5px; - border-bottom: 5px solid black; -} - -.yui-toolbar-container .yui-toolbar-bordersize-menu, .yui-toolbar-container .yui-toolbar-bordertype-menu { - width: 95px !important; -} - -.yui-toolbar-bordersize-menu .yuimenuitemlabel, .yui-toolbar-bordertype-menu .yuimenuitemlabel, .yui-toolbar-bordersize-menu .yuimenuitemlabel, .yui-toolbar-bordertype-menu .yuimenuitemlabel:hover { - margin: 0 3px 7px 17px; -} - -.yui-toolbar-bordersize-menu .yuimenuitemlabel .checkedindicator, .yui-toolbar-bordertype-menu .yuimenuitemlabel .checkedindicator { - position: absolute; - left: -12px; - *top: 14px; - *left: 0; -} - -.yui-toolbar-bordersize-menu li.yui-toolbar-bordersize-1 a { - border-bottom: 1px solid black; - height: 14px; -} - -.yui-toolbar-bordersize-menu li.yui-toolbar-bordersize-2 a { - border-bottom: 2px solid black; - height: 14px; -} - -.yui-toolbar-bordersize-menu li.yui-toolbar-bordersize-3 a { - border-bottom: 3px solid black; - height: 14px; -} - -.yui-toolbar-bordersize-menu li.yui-toolbar-bordersize-4 a { - border-bottom: 4px solid black; - height: 14px; -} - -.yui-toolbar-bordersize-menu li.yui-toolbar-bordersize-5 a { - border-bottom: 5px solid black; - height: 14px; -} - -.yui-toolbar-bordertype-menu li.yui-toolbar-bordertype-solid a { - border-bottom: 1px solid black; - height: 14px; -} - -.yui-toolbar-bordertype-menu li.yui-toolbar-bordertype-dashed a { - border-bottom: 1px dashed black; - height: 14px; -} - -.yui-toolbar-bordertype-menu li.yui-toolbar-bordertype-dotted a { - border-bottom: 1px dotted black; - height: 14px; -} - -h2.yui-editor-skipheader, h3.yui-editor-skipheader { - height: 0; - margin: 0; - padding: 0; - border: none; - width: 0; - overflow: hidden; - position: absolute; -} - -.yui-toolbar-colors { - width: 133px; - zoom: 1; - display: none; - z-index: 100; - overflow: hidden; -} - -.yui-toolbar-colors:after { - display: block; - clear: both; - visibility: hidden; - content: '.'; - height: 0; -} - -.yui-toolbar-colors a { - height: 9px; - width: 9px; - float: left; - display: block; - overflow: hidden; - text-indent: 999px; - margin: 0; - cursor: pointer; - border: 1px solid #F6F7EE; -} - -.yui-toolbar-colors a:hover { - border: 1px solid black; -} - -.yui-color-button-menu { - overflow: visible; - background-color: transparent; -} - -.yui-toolbar-colors span { - position: relative; - display: block; - padding: 3px; - overflow: hidden; - float: left; - width: 100%; - zoom: 1; -} - -.yui-toolbar-colors span:after { - display: block; - clear: both; - visibility: hidden; - content: '.'; - height: 0; -} - -.yui-toolbar-colors span em { - height: 35px; - width: 30px; - float: left; - display: block; - overflow: hidden; - text-indent: 999px; - margin: .75px; - border: 1px solid black; -} - -.yui-toolbar-colors span strong { - font-weight: normal; - padding-left: 3px; - display: block; - font-size: 85%; - float: left; - width: 65%; -} - -.yui-toolbar-group-undoredo h3, .yui-toolbar-group-insertitem h3, .yui-toolbar-group-indentlist h3 { - width: 68px; -} - -.yui-toolbar-group-indentlist2 h3 { - width: 122px; -} - -.yui-toolbar-group-alignment h3 { - width: 130px; -} - -.yui-skin-sam .yui-editor-container { - border: 1px solid #808080; -} - -.yui-skin-sam .yui-toolbar-container { - zoom: 1; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-titlebar { - background: url(sprite.png) repeat-x 0 -200px; - position: relative; -} - -.yui-skin-sam .yui-editor-container .draggable .yui-toolbar-titlebar { - cursor: move; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-titlebar h2 { - color: #000; - font-weight: bold; - margin: 0; - padding: .3em 1em; - font-size: 100%; - text-align: left; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-group h3 { - color: #808080; - font-size: 75%; - margin: 1em 0 0; - padding-bottom: 0; - padding-left: .25em; - text-align: left; -} - -.yui-toolbar-container span.yui-toolbar-separator { - border: none; - text-indent: 33px; - overflow: hidden; - margin: 0 .25em; -} - -.yui-skin-sam .yui-toolbar-container { - background-color: #F2F2F2; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-subcont { - padding: 0 1em .35em; - border-bottom: 1px solid #808080; -} - -.yui-skin-sam .yui-toolbar-container-collapsed .yui-toolbar-titlebar { - border-bottom: 1px solid #808080; -} - -.yui-skin-sam .yui-editor-container .visible .yui-menu-shadow, .yui-skin-sam .yui-editor-panel .visible .yui-menu-shadow { - display: none; -} - -.yui-skin-sam .yui-editor-container ul { - list-style-type: none; - margin: 0; - padding: 0; -} - -.yui-skin-sam .yui-editor-container ul li { - list-style-type: none; - margin: 0; - padding: 0; -} - -.yui-skin-sam .yui-toolbar-group ul li.yui-toolbar-groupitem { - float: left; -} - -.yui-skin-sam .yui-editor-container .dompath { - background-color: #F2F2F2; - border-top: 1px solid #808080; - color: #999; - text-align: left; - padding: .25em; -} - -.yui-skin-sam .yui-toolbar-container .collapse { - background: url(sprite.png) no-repeat 0 -400px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-titlebar span.collapse { - cursor: pointer; - position: absolute; - top: 4px; - right: 2px; - display: block; - overflow: hidden; - height: 15px; - width: 15px; - text-indent: 9999px; -} - -.yui-skin-sam .yui-toolbar-container .yui-push-button, .yui-skin-sam .yui-toolbar-container .yui-color-button, .yui-skin-sam .yui-toolbar-container .yui-menu-button { - background: url(sprite.png) repeat-x 0 0; - position: relative; - display: block; - height: 22px; - width: 30px; - _font-size: 0; - margin: 0; - border-color: #808080; - color: #f2f2f2; - border-style: solid; - border-width: 1px 0; - zoom: 1; -} - -.yui-skin-sam .yui-toolbar-container .yui-push-button a, .yui-skin-sam .yui-toolbar-container .yui-color-button a, .yui-skin-sam .yui-toolbar-container .yui-menu-button a { - padding-left: 35px; - height: 20px; - text-decoration: none; - font-size: 0; - line-height: 2; - display: block; - color: #000; - overflow: hidden; - white-space: nowrap; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-spinbutton a, .yui-skin-sam .yui-toolbar-container .yui-toolbar-select a { - font-size: 12px; -} - -.yui-skin-sam .yui-toolbar-container .yui-push-button .first-child, .yui-skin-sam .yui-toolbar-container .yui-color-button .first-child, .yui-skin-sam .yui-toolbar-container .yui-menu-button .first-child { - border-color: #808080; - border-style: solid; - border-width: 0 1px; - margin: 0 -1px; - display: block; - position: relative; -} - -.yui-skin-sam .yui-toolbar-container .yui-push-button-disabled .first-child, .yui-skin-sam .yui-toolbar-container .yui-color-button-disabled .first-child, .yui-skin-sam .yui-toolbar-container .yui-menu-button-disabled .first-child { - border-color: #ccc; -} - -.yui-skin-sam .yui-toolbar-container .yui-push-button-disabled a, .yui-skin-sam .yui-toolbar-container .yui-color-button-disabled a, .yui-skin-sam .yui-toolbar-container .yui-menu-button-disabled a { - color: #A6A6A6; - cursor: default; -} - -.yui-skin-sam .yui-toolbar-container .yui-push-button-disabled, .yui-skin-sam .yui-toolbar-container .yui-color-button-disabled, .yui-skin-sam .yui-toolbar-container .yui-menu-button-disabled { - border-color: #ccc; -} - -.yui-skin-sam .yui-toolbar-container .yui-button .first-child { - *left: 0; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-fontname { - width: 135px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-heading { - width: 92px; -} - -.yui-skin-sam .yui-toolbar-container .yui-button-hover { - background: url(sprite.png) repeat-x 0 -1300px; - border-color: #808080; -} - -.yui-skin-sam .yui-toolbar-container .yui-button-selected { - background: url(sprite.png) repeat-x 0 -1700px; - border-color: #808080; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-nogrouplabels h3 { - display: none; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-nogrouplabels .yui-toolbar-group { - margin-top: .75em; -} - -.yui-skin-sam .yui-toolbar-container .yui-push-button span.yui-toolbar-icon, .yui-skin-sam .yui-toolbar-container .yui-color-button span.yui-toolbar-icon, .yui-skin-sam .yui-toolbar-container .yui-menu-button span.yui-toolbar-icon { - display: block; - position: absolute; - top: 2px; - height: 18px; - width: 18px; - overflow: hidden; - background: url(editor-sprite.gif) no-repeat 30px 30px; -} - -.yui-skin-sam .yui-toolbar-container .yui-button-selected span.yui-toolbar-icon, .yui-skin-sam .yui-toolbar-container .yui-button-hover span.yui-toolbar-icon { - background-image: url(editor-sprite-active.gif); -} - -.yui-skin-sam .yui-toolbar-container .visible .yuimenuitemlabel { - cursor: pointer; - color: #000; - *position: relative; -} - -.yui-skin-sam .yui-toolbar-container .yui-button-menu { - background-color: #fff; -} - -.yui-skin-sam .yui-toolbar-container .yui-button-menu .yui-menu-body-scrolled { - position: relative; -} - -.yui-skin-sam div.yuimenu li.selected { - background-color: #B3D4FF; -} - -.yui-skin-sam div.yuimenu li.selected a.selected { - color: #000; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-bold span.yui-toolbar-icon { - background-position: 0 0; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-strikethrough span.yui-toolbar-icon { - background-position: 0 -108px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-italic span.yui-toolbar-icon { - background-position: 0 -36px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-undo span.yui-toolbar-icon { - background-position: 0 -1326px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-redo span.yui-toolbar-icon { - background-position: 0 -1355px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-underline span.yui-toolbar-icon { - background-position: 0 -72px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-subscript span.yui-toolbar-icon { - background-position: 0 -180px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-superscript span.yui-toolbar-icon { - background-position: 0 -144px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-forecolor span.yui-toolbar-icon { - background-position: 0 -216px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-backcolor span.yui-toolbar-icon { - background-position: 0 -288px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-justifyleft span.yui-toolbar-icon { - background-position: 0 -324px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-justifycenter span.yui-toolbar-icon { - background-position: 0 -360px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-justifyright span.yui-toolbar-icon { - background-position: 0 -396px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-justifyfull span.yui-toolbar-icon { - background-position: 0 -432px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-indent span.yui-toolbar-icon { - background-position: 0 -720px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-outdent span.yui-toolbar-icon { - background-position: 0 -684px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-createlink span.yui-toolbar-icon { - background-position: 0 -792px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-insertimage span.yui-toolbar-icon { - background-position: 1px -756px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-left span.yui-toolbar-icon { - background-position: 0 -972px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-right span.yui-toolbar-icon { - background-position: 0 -936px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-inline span.yui-toolbar-icon { - background-position: 0 -900px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-block span.yui-toolbar-icon { - background-position: 0 -864px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-bordercolor span.yui-toolbar-icon { - background-position: 0 -252px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-removeformat span.yui-toolbar-icon { - background-position: 0 -1080px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-hiddenelements span.yui-toolbar-icon { - background-position: 0 -1044px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-insertunorderedlist span.yui-toolbar-icon { - background-position: 0 -468px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-insertorderedlist span.yui-toolbar-icon { - background-position: 0 -504px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-spinbutton, .yui-skin-sam .yui-toolbar-container .yui-toolbar-spinbutton .first-child { - width: 35px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-spinbutton .first-child a { - padding-left: 2px; - text-align: left; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-spinbutton span.yui-toolbar-icon { - display: none; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-spinbutton a.up, .yui-skin-sam .yui-toolbar-container .yui-toolbar-spinbutton a.down { - right: 2px; - background: url(editor-sprite.gif) no-repeat 0 -1222px; - overflow: hidden; - height: 6px; - width: 7px; - min-height: 0; - padding: 0; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-spinbutton a.up { - top: 2px; - background-position: 0 -1222px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-spinbutton a.down { - bottom: 2px; - background-position: 0 -1187px; -} - -.yui-skin-sam .yui-toolbar-container select { - height: 22px; - border: 1px solid #808080; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-select .first-child a { - padding-left: 5px; - text-align: left; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-select span.yui-toolbar-icon { - background: url(editor-sprite.gif) no-repeat 0 -1144px; - overflow: hidden; - right: -2px; - top: 0; - height: 20px; -} - -.yui-skin-sam .yui-editor-panel .yui-color-button-menu .bd { - background-color: transparent; - border: none; - width: 135px; -} - -.yui-skin-sam .yui-color-button-menu .yui-toolbar-colors { - border: 1px solid #808080; -} - -.yui-skin-sam .yui-editor-panel { - padding: 0; - margin: 0; - border: none; - background-color: transparent; - overflow: visible; - position: absolute; -} - -.yui-skin-sam .yui-editor-panel .hd { - margin: 10px 0 0; - padding: 0; - border: none; -} - -.yui-skin-sam .yui-editor-panel .hd h3 { - color: #000; - border: 1px solid #808080; - background: url(sprite.png) repeat-x 0 -200px; - width: 99%; - position: relative; - margin: 0; - padding: 3px 0 0 0; - font-size: 93%; - text-indent: 5px; - height: 20px; -} - -.yui-skin-sam .yui-editor-panel .bd { - background-color: #F2F2F2; - border-left: 1px solid #808080; - border-right: 1px solid #808080; - width: 99%; - margin: 0; - padding: 0; - overflow: visible; -} - -.yui-skin-sam .yui-editor-panel ul { - list-style-type: none; - margin: 0; - padding: 0; -} - -.yui-skin-sam .yui-editor-panel ul li { - margin: 0; - padding: 0; -} - -.yui-skin-sam .yui-editor-panel .yui-toolbar-container .yui-toolbar-subcont { - padding: 0; - border: none; - margin-top: .35em; -} - -.yui-skin-sam .yui-editor-panel .yui-toolbar-bordersize, .yui-skin-sam .yui-editor-panel .yui-toolbar-bordertype { - width: 50px; -} - -.yui-skin-sam .yui-editor-panel label { - display: block; - float: none; - padding: 4px 0; - margin-bottom: 7px; -} - -.yui-skin-sam .yui-editor-panel label strong { - font-weight: normal; - font-size: 93%; - text-align: right; - padding-top: 2px; -} - -.yui-skin-sam .yui-editor-panel label input { - width: 75%; -} - -.yui-skin-sam .yui-editor-panel .createlink_target, .yui-skin-sam .yui-editor-panel .insertimage_target { - width: auto; - margin-right: 5px; -} - -.yui-skin-sam .yui-editor-panel .removeLink { - width: 98%; -} - -.yui-skin-sam .yui-editor-panel label input.warning { - background-color: #FFEE69; -} - -.yui-skin-sam .yui-editor-panel .yui-toolbar-group h3 { - color: #000; - float: left; - font-weight: normal; - font-size: 93%; - margin: 5px 0 0 0; - padding: 0 3px 0 0; - text-align: right; -} - -.yui-skin-sam .yui-editor-panel .height-width h3 { - margin: 3px 0 0 10px; -} - -.yui-skin-sam .yui-editor-panel .height-width { - margin: 3px 0 0 35px; - *margin-left: 14px; - width: 42%; - *width: 44%; -} - -.yui-skin-sam .yui-editor-panel .yui-toolbar-group-border { - width: 190px; -} - -.yui-skin-sam .yui-editor-panel .no-button .yui-toolbar-group-border { - width: 210px; -} - -.yui-skin-sam .yui-editor-panel .yui-toolbar-group-padding { - width: 203px; - _width: 198px; -} - -.yui-skin-sam .yui-editor-panel .no-button .yui-toolbar-group-padding { - width: 172px; -} - -.yui-skin-sam .yui-editor-panel .yui-toolbar-group-padding h3 { - margin-left: 25px; - *margin-left: 12px; -} - -.yui-skin-sam .yui-editor-panel .yui-toolbar-group-textflow { - width: 182px; -} - -.yui-skin-sam .yui-editor-panel .hd { - background: none; -} - -.yui-skin-sam .yui-editor-panel .ft { - background-color: #F2F2F2; - border: 1px solid #808080; - border-top: none; - padding: 0; - margin: 0 0 2px 0; -} - -.yui-skin-sam .yui-editor-panel .hd span.close { - background: url(sprite.png) no-repeat 0 -300px; - cursor: pointer; - display: block; - height: 16px; - overflow: hidden; - position: absolute; - right: 5px; - text-indent: 500px; - top: 2px; - width: 26px; -} - -.yui-skin-sam .yui-editor-panel .ft span.tip { - background-color: #EDF5FF; - border-top: 1px solid #808080; - font-size: 85%; -} - -.yui-skin-sam .yui-editor-panel .ft span.tip strong { - display: block; - float: left; - margin: 0 2px 8px 0; -} - -.yui-skin-sam .yui-editor-panel .ft span.tip span.icon { - background: url(editor-sprite.gif) no-repeat 0 -1260px; - display: block; - height: 20px; - left: 2px; - position: absolute; - top: 8px; - width: 20px; -} - -.yui-skin-sam .yui-editor-panel .ft span.tip span.icon-info { - background-position: 2px -1260px; -} - -.yui-skin-sam .yui-editor-panel .ft span.tip span.icon-warn { - background-position: 2px -1296px; -} - -.yui-skin-sam .yui-editor-panel .hd span.knob { - position: absolute; - height: 10px; - width: 28px; - top: -10px; - left: 25px; - text-indent: 9999px; - overflow: hidden; - background: url(editor-knob.gif) no-repeat 0 0; -} - -.yui-skin-sam .yui-editor-panel .yui-toolbar-container { - float: left; - width: 100%; - background-image: none; - border: none; -} - -.yui-skin-sam .yui-editor-panel .yui-toolbar-container .bd { - background-color: #fff; -} - -.yui-editor-blankimage { - background-image: url(blankimage.png); -} - -.yui-skin-sam .yui-editor-container .yui-resize-handle-br { - height: 11px; - width: 11px; - background-position: -20px -60px; - background-color: transparent; -} - -.yui-crop { - position: relative; -} - -.yui-crop .yui-crop-mask { - position: absolute; - top: 0; - left: 0; - height: 100%; - width: 100%; -} - -.yui-crop .yui-resize { - position: absolute; - top: 10px; - left: 10px; - border: 0; -} - -.yui-crop .yui-crop-resize-mask { - position: absolute; - top: 0; - left: 0; - height: 100%; - width: 100%; - background-position: -10px -10px; - overflow: hidden; -} - -.yui-skin-sam .yui-crop .yui-crop-mask { - background-color: #000; - opacity: .5; - filter: alpha(opacity = 50); -} - -.yui-skin-sam .yui-crop .yui-resize { - border: 1px dashed #fff; -} - -.yui-layout-loading { - visibility: hidden; -} - -body.yui-layout { - overflow: hidden; - position: relative; - padding: 0; - margin: 0; -} - -.yui-layout-doc { - position: relative; - overflow: hidden; - padding: 0; - margin: 0; -} - -.yui-layout-unit { - height: 50px; - width: 50px; - padding: 0; - margin: 0; - float: none; - z-index: 0; -} - -.yui-layout-unit-top { - position: absolute; - top: 0; - left: 0; - width: 100%; -} - -.yui-layout-unit-left { - position: absolute; - top: 0; - left: 0; -} - -.yui-layout-unit-right { - position: absolute; - top: 0; - right: 0; -} - -.yui-layout-unit-bottom { - position: absolute; - bottom: 0; - left: 0; - width: 100%; -} - -.yui-layout-unit-center { - position: absolute; - top: 0; - left: 0; - width: 100%; -} - -.yui-layout div.yui-layout-hd { - position: absolute; - top: 0; - left: 0; - zoom: 1; - width: 100%; -} - -.yui-layout div.yui-layout-bd { - position: absolute; - top: 0; - left: 0; - zoom: 1; - width: 100%; -} - -.yui-layout .yui-layout-noscroll div.yui-layout-bd { - overflow: hidden; -} - -.yui-layout .yui-layout-scroll div.yui-layout-bd { - overflow: auto; -} - -.yui-layout div.yui-layout-ft { - position: absolute; - bottom: 0; - left: 0; - width: 100%; - zoom: 1; -} - -.yui-layout .yui-layout-unit div.yui-layout-hd h2 { - text-align: left; -} - -.yui-layout .yui-layout-unit div.yui-layout-hd .collapse { - cursor: pointer; - height: 13px; - position: absolute; - right: 2px; - top: 2px; - width: 17px; - font-size: 0; -} - -.yui-layout .yui-layout-unit div.yui-layout-hd .close { - cursor: pointer; - height: 13px; - position: absolute; - right: 2px; - top: 2px; - width: 17px; - font-size: 0; -} - -.yui-layout .yui-layout-unit div.yui-layout-hd .collapse-close { - right: 25px; -} - -.yui-layout .yui-layout-clip { - position: absolute; - height: 20px; - background-color: #c0c0c0; - display: none; -} - -.yui-layout .yui-layout-clip .collapse { - cursor: pointer; - height: 13px; - position: absolute; - right: 2px; - top: 2px; - width: 17px; - font-size: 0px; -} - -.yui-layout .yui-layout-wrap { - height: 100%; - width: 100%; - position: absolute; - left: 0; -} - -.yui-skin-sam .yui-layout .yui-resize-proxy { - border: none; - font-size: 0; - margin: 0; - padding: 0; -} - -.yui-skin-sam .yui-layout .yui-resize-resizing .yui-resize-handle { - visibility: hidden; -} - -.yui-skin-sam .yui-layout .yui-resize-proxy div { - position: absolute; - border: 1px solid #808080; - background-color: #EDF5FF; -} - -.yui-skin-sam .yui-layout .yui-resize .yui-resize-handle-active { -} - -.yui-skin-sam .yui-layout .yui-resize-proxy .yui-layout-handle-l { - width: 5px; - height: 100%; - top: 0; - left: 0; -} - -.yui-skin-sam .yui-layout .yui-resize-proxy .yui-layout-handle-r { - width: 5px; - top: 0; - right: 0; - height: 100%; - position: absolute; - zoom: 1; -} - -.yui-skin-sam .yui-layout .yui-resize-proxy .yui-layout-handle-b { - width: 100%; - bottom: 0; - left: 0; - height: 5px; -} - -.yui-skin-sam .yui-layout .yui-resize-proxy .yui-layout-handle-t { - width: 100%; - top: 0; - left: 0; - height: 5px; -} - -.yui-skin-sam .yui-layout .yui-layout-unit-left div.yui-layout-hd .collapse { - background: transparent url(layout_sprite.png) no-repeat -20px -160px; - border: 1px solid #808080; -} - -.yui-skin-sam .yui-layout .yui-layout-clip-left .collapse { - background: transparent url(layout_sprite.png) no-repeat -20px -140px; - border: 1px solid #808080; -} - -.yui-skin-sam .yui-layout .yui-layout-unit-right div.yui-layout-hd .collapse { - background: transparent url(layout_sprite.png) no-repeat -20px -200px; - border: 1px solid #808080; -} - -.yui-skin-sam .yui-layout .yui-layout-clip-right .collapse { - background: transparent url(layout_sprite.png) no-repeat -20px -120px; - border: 1px solid #808080; -} - -.yui-skin-sam .yui-layout .yui-layout-unit-top div.yui-layout-hd .collapse { - background: transparent url(layout_sprite.png) no-repeat -20px -220px; - border: 1px solid #808080; -} - -.yui-skin-sam .yui-layout .yui-layout-clip-top .collapse { - background: transparent url(layout_sprite.png) no-repeat -20px -240px; - border: 1px solid #808080; -} - -.yui-skin-sam .yui-layout .yui-layout-unit-bottom div.yui-layout-hd .collapse { - background: transparent url(layout_sprite.png) no-repeat -20px -260px; - border: 1px solid #808080; -} - -.yui-skin-sam .yui-layout .yui-layout-clip-bottom .collapse { - background: transparent url(layout_sprite.png) no-repeat -20px -180px; - border: 1px solid #808080; -} - -.yui-skin-sam .yui-layout .yui-layout-unit div.yui-layout-hd .close { - background: transparent url(layout_sprite.png) no-repeat -20px -100px; - border: 1px solid #808080; -} - -.yui-skin-sam .yui-layout .yui-layout-hd { - background: url(sprite.png) repeat-x 0 -1400px; - border: 1px solid #808080; -} - -.yui-skin-sam .yui-layout { - background-color: #EDF5FF; -} - -.yui-skin-sam .yui-layout .yui-layout-unit div.yui-layout-hd h2 { - font-weight: bold; - color: #fff; - padding: 3px; -} - -.yui-skin-sam .yui-layout .yui-layout-unit div.yui-layout-bd { - border: 1px solid #808080; - border-bottom: none; - border-top: none; - *border-bottom-width: 0; - *border-top-width: 0; - background-color: #f2f2f2; - text-align: left; -} - -.yui-skin-sam .yui-layout .yui-layout-unit div.yui-layout-bd-noft { - border-bottom: 1px solid #808080; -} - -.yui-skin-sam .yui-layout .yui-layout-unit div.yui-layout-bd-nohd { - border-top: 1px solid #808080; -} - -.yui-skin-sam .yui-layout .yui-layout-clip { - position: absolute; - height: 20px; - background-color: #EDF5FF; - display: none; - border: 1px solid #808080; -} - -.yui-skin-sam .yui-layout div.yui-layout-ft { - border: 1px solid #808080; - border-top: none; - *border-top-width: 0; - background-color: #f2f2f2; -} - -.yui-skin-sam .yui-layout-unit .yui-resize-handle { - background-color: transparent; -} - -.yui-skin-sam .yui-layout-unit .yui-resize-handle-r { - right: 0; - top: 0; - background-image: none; -} - -.yui-skin-sam .yui-layout-unit .yui-resize-handle-l { - left: 0; - top: 0; - background-image: none; -} - -.yui-skin-sam .yui-layout-unit .yui-resize-handle-b { - right: 0; - bottom: 0; - background-image: none; -} - -.yui-skin-sam .yui-layout-unit .yui-resize-handle-t { - right: 0; - top: 0; - background-image: none; -} - -.yui-skin-sam .yui-layout-unit .yui-resize-handle-r .yui-layout-resize-knob, .yui-skin-sam .yui-layout-unit .yui-resize-handle-l .yui-layout-resize-knob { - position: absolute; - height: 16px; - width: 6px; - top: 45%; - left: 0px; - background: transparent url(layout_sprite.png) no-repeat 0 -5px; -} - -.yui-skin-sam .yui-layout-unit .yui-resize-handle-t .yui-layout-resize-knob, .yui-skin-sam .yui-layout-unit .yui-resize-handle-b .yui-layout-resize-knob { - position: absolute; - height: 6px; - width: 16px; - left: 45%; - background: transparent url(layout_sprite.png) no-repeat -20px 0; -} - -.yui-skin-sam .yui-log { - padding: 1em; - width: 31em; - background-color: #AAA; - color: #000; - border: 1px solid black; - font-family: monospace; - font-size: 77%; - text-align: left; - z-index: 9000; -} - -.yui-skin-sam .yui-log-container { - position: absolute; - top: 1em; - right: 1em; -} - -.yui-skin-sam .yui-log input { - margin: 0; - padding: 0; - font-family: arial; - font-size: 100%; - font-weight: normal; -} - -.yui-skin-sam .yui-log .yui-log-btns { - position: relative; - float: right; - bottom: .25em; -} - -.yui-skin-sam .yui-log .yui-log-hd { - margin-top: 1em; - padding: .5em; - background-color: #575757; -} - -.yui-skin-sam .yui-log .yui-log-hd h4 { - margin: 0; - padding: 0; - font-size: 108%; - font-weight: bold; - color: #FFF; -} - -.yui-skin-sam .yui-log .yui-log-bd { - width: 100%; - height: 20em; - background-color: #FFF; - border: 1px solid gray; - overflow: auto; -} - -.yui-skin-sam .yui-log p { - margin: 1px; - padding: .1em; -} - -.yui-skin-sam .yui-log pre { - margin: 0; - padding: 0; -} - -.yui-skin-sam .yui-log pre.yui-log-verbose { - white-space: pre-wrap; - white-space: -moz-pre-wrap !important; - white-space: -pre-wrap; - white-space: -o-pre-wrap; - word-wrap: break-word; -} - -.yui-skin-sam .yui-log .yui-log-ft { - margin-top: .5em; -} - -.yui-skin-sam .yui-log .yui-log-ft .yui-log-categoryfilters { -} - -.yui-skin-sam .yui-log .yui-log-ft .yui-log-sourcefilters { - width: 100%; - border-top: 1px solid #575757; - margin-top: .75em; - padding-top: .75em; -} - -.yui-skin-sam .yui-log .yui-log-filtergrp { - margin-right: .5em; -} - -.yui-skin-sam .yui-log .info { - background-color: #A7CC25; -} - -.yui-skin-sam .yui-log .warn { - background-color: #F58516; -} - -.yui-skin-sam .yui-log .error { - background-color: #E32F0B; -} - -.yui-skin-sam .yui-log .time { - background-color: #A6C9D7; -} - -.yui-skin-sam .yui-log .window { - background-color: #F2E886; -} - -.yuimenu { - top: -999em; - left: -999em; -} - -.yuimenubar { - position: static; -} - -.yuimenu .yuimenu, .yuimenubar .yuimenu { - position: absolute; -} - -.yuimenubar li, .yuimenu li { - list-style-type: none; -} - -.yuimenubar ul, .yuimenu ul, .yuimenubar li, .yuimenu li, .yuimenu h6, .yuimenubar h6 { - margin: 0; - padding: 0; -} - -.yuimenuitemlabel, .yuimenubaritemlabel { - text-align: left; - white-space: nowrap; -} - -.yuimenubar ul { - *zoom: 1; -} - -.yuimenubar .yuimenu ul { - *zoom: normal; -} - -.yuimenubar>.bd>ul:after { - content: "."; - display: block; - clear: both; - visibility: hidden; - height: 0; - line-height: 0; -} - -.yuimenubaritem { - float: left; -} - -.yuimenubaritemlabel, .yuimenuitemlabel { - display: block; -} - -.yuimenuitemlabel .helptext { - font-style: normal; - display: block; - margin: -1em 0 0 10em; -} - -.yui-menu-shadow { - position: absolute; - visibility: hidden; - z-index: -1; -} - -.yui-menu-shadow-visible { - top: 2px; - right: -3px; - left: -3px; - bottom: -3px; - visibility: visible; -} - -.hide-scrollbars * { - overflow: hidden; -} - -.hide-scrollbars select { - display: none; -} - -.yuimenu.show-scrollbars, .yuimenubar.show-scrollbars { - overflow: visible; -} - -.yuimenu.hide-scrollbars .yui-menu-shadow, .yuimenubar.hide-scrollbars .yui-menu-shadow { - overflow: hidden; -} - -.yuimenu.show-scrollbars .yui-menu-shadow, .yuimenubar.show-scrollbars .yui-menu-shadow { - overflow: auto; -} - -.yui-overlay.yui-force-redraw { - margin-bottom: 1px; -} - -.yui-skin-sam .yuimenubar { - font-size: 93%; - line-height: 2; - *line-height: 1.9; - border: solid 1px #808080; - background: url(sprite.png) repeat-x 0 0; -} - -.yui-skin-sam .yuimenubarnav .yuimenubaritem { - border-right: solid 1px #ccc; -} - -.yui-skin-sam .yuimenubaritemlabel { - padding: 0 10px; - color: #000; - text-decoration: none; - cursor: default; - border-style: solid; - border-color: #808080; - border-width: 1px 0; - *position: relative; - margin: -1px 0; -} - -.yui-skin-sam .yuimenubarnav .yuimenubaritemlabel { - padding-right: 20px; - *display: inline-block; -} - -.yui-skin-sam .yuimenubarnav .yuimenubaritemlabel-hassubmenu { - background: url(menubaritem_submenuindicator.png) right center no-repeat; -} - -.yui-skin-sam .yuimenubaritem-selected { - background: url(sprite.png) repeat-x 0 -1700px; -} - -.yui-skin-sam .yuimenubaritemlabel-selected { - border-color: #7D98B8; -} - -.yui-skin-sam .yuimenubarnav .yuimenubaritemlabel-selected { - border-left-width: 1px; - margin-left: -1px; - *left: -1px; -} - -.yui-skin-sam .yuimenubaritemlabel-disabled { - cursor: default; - color: #A6A6A6; -} - -.yui-skin-sam .yuimenubarnav .yuimenubaritemlabel-hassubmenu-disabled { - background-image: url(menubaritem_submenuindicator_disabled.png); -} - -.yui-skin-sam .yuimenu { - font-size: 93%; - line-height: 1.5; - *line-height: 1.45; -} - -.yui-skin-sam .yuimenubar .yuimenu, .yui-skin-sam .yuimenu .yuimenu { - font-size: 100%; -} - -.yui-skin-sam .yuimenu .bd { - *zoom: 1; - _zoom: normal; - border: solid 1px #808080; - background-color: #fff; -} - -.yui-skin-sam .yuimenu .yuimenu .bd { - *zoom: normal; -} - -.yui-skin-sam .yuimenu ul { - padding: 3px 0; - border-width: 1px 0 0 0; - border-color: #ccc; - border-style: solid; -} - -.yui-skin-sam .yuimenu ul.first-of-type { - border-width: 0; -} - -.yui-skin-sam .yuimenu h6 { - font-weight: bold; - border-style: solid; - border-color: #ccc; - border-width: 1px 0 0 0; - color: #a4a4a4; - padding: 3px 10px 0 10px; -} - -.yui-skin-sam .yuimenu ul.hastitle, .yui-skin-sam .yuimenu h6.first-of-type { - border-width: 0; -} - -.yui-skin-sam .yuimenu .yui-menu-body-scrolled { - border-color: #ccc #808080; - overflow: hidden; -} - -.yui-skin-sam .yuimenu .topscrollbar, .yui-skin-sam .yuimenu .bottomscrollbar { - height: 16px; - border: solid 1px #808080; - background: #fff url(sprite.png) no-repeat 0 0; -} - -.yui-skin-sam .yuimenu .topscrollbar { - border-bottom-width: 0; - background-position: center -950px; -} - -.yui-skin-sam .yuimenu .topscrollbar_disabled { - background-position: center -975px; -} - -.yui-skin-sam .yuimenu .bottomscrollbar { - border-top-width: 0; - background-position: center -850px; -} - -.yui-skin-sam .yuimenu .bottomscrollbar_disabled { - background-position: center -875px; -} - -.yui-skin-sam .yuimenuitem { - _border-bottom: solid 1px #fff; -} - -.yui-skin-sam .yuimenuitemlabel { - padding: 0 20px; - color: #000; - text-decoration: none; - cursor: default; -} - -.yui-skin-sam .yuimenuitemlabel .helptext { - margin-top: -1.5em; - *margin-top: -1.45em; -} - -.yui-skin-sam .yuimenuitem-hassubmenu { - background-image: url(menuitem_submenuindicator.png); - background-position: right center; - background-repeat: no-repeat; -} - -.yui-skin-sam .yuimenuitem-checked { - background-image: url(menuitem_checkbox.png); - background-position: left center; - background-repeat: no-repeat; -} - -.yui-skin-sam .yui-menu-shadow-visible { - background-color: #000; - opacity: .12; - filter: alpha(opacity = 12); -} - -.yui-skin-sam .yuimenuitem-selected { - background-color: #B3D4FF; -} - -.yui-skin-sam .yuimenuitemlabel-disabled { - cursor: default; - color: #A6A6A6; -} - -.yui-skin-sam .yuimenuitem-hassubmenu-disabled { - background-image: url(menuitem_submenuindicator_disabled.png); -} - -.yui-skin-sam .yuimenuitem-checked-disabled { - background-image: url(menuitem_checkbox_disabled.png); -} - -.yui-skin-sam .yui-pg-container { - display: block; - margin: 6px 0; - white-space: nowrap; -} - -.yui-skin-sam .yui-pg-first, .yui-skin-sam .yui-pg-previous, .yui-skin-sam .yui-pg-next, .yui-skin-sam .yui-pg-last, .yui-skin-sam .yui-pg-current, .yui-skin-sam .yui-pg-pages, .yui-skin-sam .yui-pg-page { - display: inline-block; - font-family: arial, helvetica, clean, sans-serif; - padding: 3px 6px; - zoom: 1; -} - -.yui-skin-sam .yui-pg-pages { - padding: 0; -} - -.yui-skin-sam .yui-pg-current { - padding: 3px 0; -} - -.yui-skin-sam a.yui-pg-first:link, .yui-skin-sam a.yui-pg-first:visited, .yui-skin-sam a.yui-pg-first:active, .yui-skin-sam a.yui-pg-first:hover, .yui-skin-sam a.yui-pg-previous:link, .yui-skin-sam a.yui-pg-previous:visited, .yui-skin-sam a.yui-pg-previous:active, .yui-skin-sam a.yui-pg-previous:hover, .yui-skin-sam a.yui-pg-next:link, .yui-skin-sam a.yui-pg-next:visited, .yui-skin-sam a.yui-pg-next:active, .yui-skin-sam a.yui-pg-next:hover, .yui-skin-sam a.yui-pg-last:link, .yui-skin-sam a.yui-pg-last:visited, .yui-skin-sam a.yui-pg-last:active, .yui-skin-sam a.yui-pg-last:hover, .yui-skin-sam a.yui-pg-page:link, .yui-skin-sam a.yui-pg-page:visited, .yui-skin-sam a.yui-pg-page:active, .yui-skin-sam a.yui-pg-page:hover { - color: #06c; - text-decoration: underline; - outline: 0; -} - -.yui-skin-sam span.yui-pg-first, .yui-skin-sam span.yui-pg-previous, .yui-skin-sam span.yui-pg-next, .yui-skin-sam span.yui-pg-last { - color: #a6a6a6; -} - -.yui-skin-sam .yui-pg-page { - background-color: #fff; - border: 1px solid #CBCBCB; - padding: 2px 6px; - text-decoration: none; -} - -.yui-skin-sam .yui-pg-current-page { - background-color: transparent; - border: none; - font-weight: bold; - padding: 3px 6px; -} - -.yui-skin-sam .yui-pg-page { - margin-left: 1px; - margin-right: 1px; -} - -.yui-skin-sam .yui-pg-first, .yui-skin-sam .yui-pg-previous { - padding-left: 0; -} - -.yui-skin-sam .yui-pg-next, .yui-skin-sam .yui-pg-last { - padding-right: 0; -} - -.yui-skin-sam .yui-pg-current, .yui-skin-sam .yui-pg-rpp-options { - margin-left: 1em; - margin-right: 1em; -} - -.yui-skin-sam .yui-pv { - background-color: #4a4a4a; - font: arial; - position: relative; - width: 99%; - z-index: 1000; - margin-bottom: 1em; - overflow: hidden; -} - -.yui-skin-sam .yui-pv .hd { - background: url(header_background.png) repeat-x; - min-height: 30px; - overflow: hidden; - zoom: 1; - padding: 2px 0; -} - -.yui-skin-sam .yui-pv .hd h4 { - padding: 8px 10px; - margin: 0; - font: bold 14px arial; - color: #fff; -} - -.yui-skin-sam .yui-pv .hd a { - background: #3f6bc3; - font: bold 11px arial; - color: #fff; - padding: 4px; - margin: 3px 10px 0 0; - border: 1px solid #3f567d; - cursor: pointer; - display: block; - float: right; -} - -.yui-skin-sam .yui-pv .hd span { - display: none; -} - -.yui-skin-sam .yui-pv .hd span.yui-pv-busy { - height: 18px; - width: 18px; - background: url(wait.gif) no-repeat; - overflow: hidden; - display: block; - float: right; - margin: 4px 10px 0 0; -} - -.yui-skin-sam .yui-pv .hd:after, .yui-pv .bd:after, .yui-skin-sam .yui-pv-chartlegend dl:after { - content: '.'; - visibility: hidden; - clear: left; - height: 0; - display: block; -} - -.yui-skin-sam .yui-pv .bd { - position: relative; - zoom: 1; - overflow-x: auto; - overflow-y: hidden; -} - -.yui-skin-sam .yui-pv .yui-pv-table { - padding: 0 10px; - margin: 5px 0 10px 0; -} - -.yui-skin-sam .yui-pv .yui-pv-table .yui-dt-bd td { - color: #eeee5c; - font: 12px arial; -} - -.yui-skin-sam .yui-pv .yui-pv-table tr.yui-dt-odd { - background: #929292; -} - -.yui-skin-sam .yui-pv .yui-pv-table tr.yui-dt-even { - background: #58637a; -} - -.yui-skin-sam .yui-pv .yui-pv-table tr.yui-dt-even td.yui-dt-asc, .yui-skin-sam .yui-pv .yui-pv-table tr.yui-dt-even td.yui-dt-desc { - background: #384970; -} - -.yui-skin-sam .yui-pv .yui-pv-table tr.yui-dt-odd td.yui-dt-asc, .yui-skin-sam .yui-pv .yui-pv-table tr.yui-dt-odd td.yui-dt-desc { - background: #6F6E6E; -} - -.yui-skin-sam .yui-pv .yui-pv-table .yui-dt-hd th { - background-image: none; - background: #2E2D2D; -} - -.yui-skin-sam .yui-pv th.yui-dt-asc .yui-dt-liner { - background: transparent url(asc.gif) no-repeat scroll right center; -} - -.yui-skin-sam .yui-pv th.yui-dt-desc .yui-dt-liner { - background: transparent url(desc.gif) no-repeat scroll right center; -} - -.yui-skin-sam .yui-pv .yui-pv-table .yui-dt-hd th a { - color: #fff; - font: bold 12px arial; -} - -.yui-skin-sam .yui-pv .yui-pv-table .yui-dt-hd th.yui-dt-asc, .yui-skin-sam .yui-pv .yui-pv-table .yui-dt-hd th.yui-dt-desc { - background: #333; -} - -.yui-skin-sam .yui-pv-chartcontainer { - padding: 0 10px; -} - -.yui-skin-sam .yui-pv-chart { - height: 250px; - clear: right; - margin: 5px 0 0 0; - color: #fff; -} - -.yui-skin-sam .yui-pv-chartlegend div { - float: right; - margin: 0 0 0 10px; - _width: 250px; -} - -.yui-skin-sam .yui-pv-chartlegend dl { - border: 1px solid #999; - padding: .2em 0 .2em .5em; - zoom: 1; - margin: 5px 0; -} - -.yui-skin-sam .yui-pv-chartlegend dt { - float: left; - display: block; - height: .7em; - width: .7em; - padding: 0; -} - -.yui-skin-sam .yui-pv-chartlegend dd { - float: left; - display: block; - color: #fff; - margin: 0 1em 0 .5em; - padding: 0; - font: 11px arial; -} - -.yui-skin-sam .yui-pv-minimized { - height: 35px; -} - -.yui-skin-sam .yui-pv-minimized .bd { - top: -3000px; -} - -.yui-skin-sam .yui-pv-minimized .hd a.yui-pv-refresh { - display: none; -} - -.yui-resize { - position: relative; - zoom: 1; - z-index: 0; -} - -.yui-resize-wrap { - zoom: 1; -} - -.yui-draggable { - cursor: move; -} - -.yui-resize .yui-resize-handle { - position: absolute; - z-index: 1; - font-size: 0; - margin: 0; - padding: 0; - zoom: 1; - height: 1px; - width: 1px; -} - -.yui-resize .yui-resize-handle-br { - height: 5px; - width: 5px; - bottom: 0; - right: 0; - cursor: se-resize; - z-index: 2; - zoom: 1; -} - -.yui-resize .yui-resize-handle-bl { - height: 5px; - width: 5px; - bottom: 0; - left: 0; - cursor: sw-resize; - z-index: 2; - zoom: 1; -} - -.yui-resize .yui-resize-handle-tl { - height: 5px; - width: 5px; - top: 0; - left: 0; - cursor: nw-resize; - z-index: 2; - zoom: 1; -} - -.yui-resize .yui-resize-handle-tr { - height: 5px; - width: 5px; - top: 0; - right: 0; - cursor: ne-resize; - z-index: 2; - zoom: 1; -} - -.yui-resize .yui-resize-handle-r { - width: 5px; - height: 100%; - top: 0; - right: 0; - cursor: e-resize; - zoom: 1; -} - -.yui-resize .yui-resize-handle-l { - height: 100%; - width: 5px; - top: 0; - left: 0; - cursor: w-resize; - zoom: 1; -} - -.yui-resize .yui-resize-handle-b { - width: 100%; - height: 5px; - bottom: 0; - right: 0; - cursor: s-resize; - zoom: 1; -} - -.yui-resize .yui-resize-handle-t { - width: 100%; - height: 5px; - top: 0; - right: 0; - cursor: n-resize; - zoom: 1; -} - -.yui-resize-proxy { - position: absolute; - border: 1px dashed #000; - visibility: hidden; - z-index: 1000; -} - -.yui-resize-hover .yui-resize-handle, .yui-resize-hidden .yui-resize-handle { - opacity: 0; - filter: alpha(opacity = 0); -} - -.yui-resize-ghost { - opacity: .5; - filter: alpha(opacity = 50); -} - -.yui-resize-knob .yui-resize-handle { - height: 6px; - width: 6px; -} - -.yui-resize-knob .yui-resize-handle-tr { - right: -3px; - top: -3px; -} - -.yui-resize-knob .yui-resize-handle-tl { - left: -3px; - top: -3px; -} - -.yui-resize-knob .yui-resize-handle-bl { - left: -3px; - bottom: -3px; -} - -.yui-resize-knob .yui-resize-handle-br { - right: -3px; - bottom: -3px; -} - -.yui-resize-knob .yui-resize-handle-t { - left: 45%; - top: -3px; -} - -.yui-resize-knob .yui-resize-handle-r { - right: -3px; - top: 45%; -} - -.yui-resize-knob .yui-resize-handle-l { - left: -3px; - top: 45%; -} - -.yui-resize-knob .yui-resize-handle-b { - left: 45%; - bottom: -3px; -} - -.yui-resize-status { - position: absolute; - top: -999px; - left: -999px; - padding: 2px; - font-size: 80%; - display: none; - zoom: 1; - z-index: 9999; -} - -.yui-resize-status strong, .yui-resize-status em { - font-weight: normal; - font-style: normal; - padding: 1px; - zoom: 1; -} - -.yui-skin-sam .yui-resize .yui-resize-handle { - background-color: #F2F2F2; - zoom: 1; -} - -.yui-skin-sam .yui-resize .yui-resize-handle-active { - background-color: #7D98B8; - zoom: 1; -} - -.yui-skin-sam .yui-resize .yui-resize-handle-l, .yui-skin-sam .yui-resize .yui-resize-handle-r, .yui-skin-sam .yui-resize .yui-resize-handle-l-active, .yui-skin-sam .yui-resize .yui-resize-handle-r-active { - height: 100%; - zoom: 1; -} - -.yui-skin-sam .yui-resize-knob .yui-resize-handle { - border: 1px solid #808080; -} - -.yui-skin-sam .yui-resize-hover .yui-resize-handle-active { - opacity: 1; - filter: alpha(opacity = 100); -} - -.yui-skin-sam .yui-resize-proxy { - border: 1px dashed #426FD9; -} - -.yui-skin-sam .yui-resize-status { - border: 1px solid #A6982B; - border-top: 1px solid #D4C237; - background-color: #FFEE69; - color: #000; -} - -.yui-skin-sam .yui-resize-status strong, .yui-skin-sam .yui-resize-status em { - float: left; - display: block; - clear: both; - padding: 1px; - text-align: center; -} - -.yui-skin-sam .yui-resize .yui-resize-handle-inner-r, .yui-skin-sam .yui-resize .yui-resize-handle-inner-l { - background: transparent url(layout_sprite.png) no-repeat 0 -5px; - height: 16px; - width: 5px; - position: absolute; - top: 45%; -} - -.yui-skin-sam .yui-resize .yui-resize-handle-inner-t, .yui-skin-sam .yui-resize .yui-resize-handle-inner-b { - background: transparent url(layout_sprite.png) no-repeat -20px 0; - height: 5px; - width: 16px; - position: absolute; - left: 50%; -} - -.yui-skin-sam .yui-resize .yui-resize-handle-br { - background-image: url(layout_sprite.png); - background-repeat: no-repeat; - background-position: -22px -62px; -} - -.yui-skin-sam .yui-resize .yui-resize-handle-tr { - background-image: url(layout_sprite.png); - background-repeat: no-repeat; - background-position: -22px -42px; -} - -.yui-skin-sam .yui-resize .yui-resize-handle-tl { - background-image: url(layout_sprite.png); - background-repeat: no-repeat; - background-position: -22px -82px; -} - -.yui-skin-sam .yui-resize .yui-resize-handle-bl { - background-image: url(layout_sprite.png); - background-repeat: no-repeat; - background-position: -22px -23px; -} - -.yui-skin-sam .yui-resize-knob .yui-resize-handle-t, .yui-skin-sam .yui-resize-knob .yui-resize-handle-r, .yui-skin-sam .yui-resize-knob .yui-resize-handle-b, .yui-skin-sam .yui-resize-knob .yui-resize-handle-l, .yui-skin-sam .yui-resize-knob .yui-resize-handle-tl, .yui-skin-sam .yui-resize-knob .yui-resize-handle-tr, .yui-skin-sam .yui-resize-knob .yui-resize-handle-bl, .yui-skin-sam .yui-resize-knob .yui-resize-handle-br, .yui-skin-sam .yui-resize-knob .yui-resize-handle-inner-t, .yui-skin-sam .yui-resize-knob .yui-resize-handle-inner-r, .yui-skin-sam .yui-resize-knob .yui-resize-handle-inner-b, .yui-skin-sam .yui-resize-knob .yui-resize-handle-inner-l, .yui-skin-sam .yui-resize-knob .yui-resize-handle-inner-tl, .yui-skin-sam .yui-resize-knob .yui-resize-handle-inner-tr, .yui-skin-sam .yui-resize-knob .yui-resize-handle-inner-bl, .yui-skin-sam .yui-resize-knob .yui-resize-handle-inner-br { - background-image: none; -} - -.yui-skin-sam .yui-resize-knob .yui-resize-handle-l, .yui-skin-sam .yui-resize-knob .yui-resize-handle-r, .yui-skin-sam .yui-resize-knob .yui-resize-handle-l-active, .yui-skin-sam .yui-resize-knob .yui-resize-handle-r-active { - height: 6px; - width: 6px; -} - -.yui-skin-sam .yui-resize-textarea .yui-resize-handle-r { - right: -8px; -} - -.yui-skin-sam .yui-resize-textarea .yui-resize-handle-b { - bottom: -8px; -} - -.yui-skin-sam .yui-resize-textarea .yui-resize-handle-br { - right: -8px; - bottom: -8px; -} - -.yui-busy { - cursor: wait !important; -} - -.yui-toolbar-container fieldset, .yui-editor-container fieldset { - padding: 0; - margin: 0; - border: 0; -} - -.yui-toolbar-container legend { - display: none; -} - -.yui-toolbar-container .yui-toolbar-subcont { - padding: .25em 0; - zoom: 1; -} - -.yui-toolbar-container-collapsed .yui-toolbar-subcont { - display: none; -} - -.yui-toolbar-container .yui-toolbar-subcont:after { - display: block; - clear: both; - visibility: hidden; - content: '.'; - height: 0; -} - -.yui-toolbar-container span.yui-toolbar-draghandle { - cursor: move; - border-left: 1px solid #999; - border-right: 1px solid #999; - overflow: hidden; - text-indent: 77777px; - width: 2px; - height: 20px; - display: block; - clear: none; - float: left; - margin: 0 0 0 .2em; -} - -.yui-toolbar-container .yui-toolbar-titlebar.draggable { - cursor: move; -} - -.yui-toolbar-container .yui-toolbar-titlebar { - position: relative; -} - -.yui-toolbar-container .yui-toolbar-titlebar h2 { - font-weight: bold; - letter-spacing: 0; - border: none; - color: #000; - margin: 0; - padding: .2em; -} - -.yui-toolbar-container .yui-toolbar-titlebar h2 a { - text-decoration: none; - color: #000; - cursor: default; -} - -.yui-toolbar-container.yui-toolbar-grouped span.yui-toolbar-draghandle { - height: 40px; -} - -.yui-toolbar-container .yui-toolbar-group { - float: left; - margin-right: .5em; - zoom: 1; -} - -.yui-toolbar-container .yui-toolbar-group:after { - display: block; - clear: both; - visibility: hidden; - content: '.'; - height: 0; -} - -.yui-toolbar-container .yui-toolbar-group h3 { - font-size: 75%; - padding: 0 0 0 .25em; - margin: 0; -} - -.yui-toolbar-container span.yui-toolbar-separator { - width: 2px; - padding: 0; - height: 18px; - margin: .2em 0 .2em .1em; - display: none; - float: left; -} - -.yui-toolbar-container.yui-toolbar-grouped span.yui-toolbar-separator { - height: 45px; - *height: 50px; -} - -.yui-toolbar-container.yui-toolbar-grouped .yui-toolbar-group span.yui-toolbar-separator { - height: 18px; - display: block; -} - -.yui-toolbar-container ul li { - margin: 0; - padding: 0; - list-style-type: none; -} - -.yui-toolbar-container .yui-toolbar-nogrouplabels h3 { - display: none; -} - -.yui-toolbar-container .yui-push-button, .yui-toolbar-container .yui-color-button, .yui-toolbar-container .yui-menu-button { - position: relative; - cursor: pointer; -} - -.yui-toolbar-container .yui-button .first-child, .yui-toolbar-container .yui-button .first-child a { - height: 100%; - width: 100%; - overflow: hidden; - font-size: 0; -} - -.yui-toolbar-container .yui-button-disabled { - cursor: default; -} - -.yui-toolbar-container .yui-button-disabled .yui-toolbar-icon { - opacity: .5; - filter: alpha(opacity = 50); -} - -.yui-toolbar-container .yui-button-disabled .up, .yui-toolbar-container .yui-button-disabled .down { - opacity: .5; - filter: alpha(opacity = 50); -} - -.yui-toolbar-container .yui-button a { - overflow: hidden; -} - -.yui-toolbar-container .yui-toolbar-select .first-child a { - cursor: pointer; -} - -.yui-toolbar-fontname-arial { - font-family: Arial; -} - -.yui-toolbar-fontname-arial-black { - font-family: Arial Black; -} - -.yui-toolbar-fontname-comic-sans-ms { - font-family: Comic Sans MS; -} - -.yui-toolbar-fontname-courier-new { - font-family: Courier New; -} - -.yui-toolbar-fontname-times-new-roman { - font-family: Times New Roman; -} - -.yui-toolbar-fontname-verdana { - font-family: Verdana; -} - -.yui-toolbar-fontname-impact { - font-family: Impact; -} - -.yui-toolbar-fontname-lucida-console { - font-family: Lucida Console; -} - -.yui-toolbar-fontname-tahoma { - font-family: Tahoma; -} - -.yui-toolbar-fontname-trebuchet-ms { - font-family: Trebuchet MS; -} - -.yui-toolbar-container .yui-toolbar-spinbutton { - position: relative; -} - -.yui-toolbar-container .yui-toolbar-spinbutton .first-child a { - z-index: 0; - opacity: 1; -} - -.yui-toolbar-container .yui-toolbar-spinbutton a.up, .yui-toolbar-container .yui-toolbar-spinbutton a.down { - position: absolute; - display: block right: 0; - cursor: pointer; - z-index: 1; - padding: 0; - margin: 0; -} - -.yui-toolbar-container .yui-overlay { - position: absolute; -} - -.yui-toolbar-container .yui-overlay ul li { - margin: 0; - list-style-type: none; -} - -.yui-toolbar-container { - z-index: 1; -} - -.yui-editor-container .yui-editor-editable-container { - position: relative; - z-index: 0; - width: 100%; -} - -.yui-editor-container .yui-editor-masked { - background-color: #CCC; - height: 100%; - width: 100%; - position: absolute; - top: 0; - left: 0; - opacity: .5; - filter: alpha(opacity = 50); -} - -.yui-editor-container iframe { - border: 0; - padding: 0; - margin: 0; - zoom: 1; - display: block; -} - -.yui-editor-container .yui-editor-editable { - padding: 0; - margin: 0; -} - -.yui-editor-container .dompath { - font-size: 85%; -} - -.yui-editor-panel .hd { - text-align: left; - position: relative; -} - -.yui-editor-panel .hd h3 { - font-weight: bold; - padding: .25em 0 .25em .25em; - margin: 0; -} - -.yui-editor-panel .bd { - width: 100%; - zoom: 1; - position: relative; -} - -.yui-editor-panel .bd div.yui-editor-body-cont { - padding: .25em .1em; - zoom: 1; -} - -.yui-editor-panel .bd .gecko form { - overflow: auto; -} - -.yui-editor-panel .bd div.yui-editor-body-cont:after { - display: block; - clear: both; - visibility: hidden; - content: '.'; - height: 0; -} - -.yui-editor-panel .ft { - text-align: right; - width: 99%; - float: left; - clear: both; -} - -.yui-editor-panel .ft span.tip { - display: block; - position: relative; - padding: .5em .5em .5em 23px; - text-align: left; - zoom: 1; -} - -.yui-editor-panel label { - clear: both; - float: left; - padding: 0; - width: 100%; - text-align: left; - zoom: 1; -} - -.yui-editor-panel .gecko label { - overflow: auto; -} - -.yui-editor-panel label strong { - float: left; - width: 6em; -} - -.yui-editor-panel .removeLink { - width: 80%; - text-align: right; -} - -.yui-editor-panel label input { - margin-left: .25em; - float: left; -} - -.yui-editor-panel .yui-toolbar-group { - margin-bottom: .75em; -} - -.yui-editor-panel .height-width { - float: left; -} - -.yui-editor-panel .height-width span { - font-style: italic; - display: block; - float: left; - overflow: visible; -} - -.yui-editor-panel .height-width span.info { - font-size: 70%; - margin-top: 3px; -} - -.yui-editor-panel .yui-toolbar-bordersize, .yui-editor-panel .yui-toolbar-bordertype { - font-size: 75%; -} - -.yui-editor-panel .yui-toolbar-container span.yui-toolbar-separator { - border: none; -} - -.yui-editor-panel .yui-toolbar-bordersize span a span, .yui-editor-panel .yui-toolbar-bordertype span a span { - display: block; - height: 8px; - left: 4px; - position: absolute; - top: 3px; - _top: -5px; - width: 24px; - text-indent: 52px; - font-size: 0; -} - -.yui-editor-panel .yui-toolbar-bordertype span a span.yui-toolbar-bordertype-solid { - border-bottom: 1px solid black; -} - -.yui-editor-panel .yui-toolbar-bordertype span a span.yui-toolbar-bordertype-dotted { - border-bottom: 1px dotted black; -} - -.yui-editor-panel .yui-toolbar-bordertype span a span.yui-toolbar-bordertype-dashed { - border-bottom: 1px dashed black; -} - -.yui-editor-panel .yui-toolbar-bordersize span a span.yui-toolbar-bordersize-0 { - *top: 0; - text-indent: 0; - font-size: 75%; -} - -.yui-editor-panel .yui-toolbar-bordersize span a span.yui-toolbar-bordersize-1 { - border-bottom: 1px solid black; -} - -.yui-editor-panel .yui-toolbar-bordersize span a span.yui-toolbar-bordersize-2 { - border-bottom: 2px solid black; -} - -.yui-editor-panel .yui-toolbar-bordersize span a span.yui-toolbar-bordersize-3 { - top: 2px; - *top: -5px; - border-bottom: 3px solid black; -} - -.yui-editor-panel .yui-toolbar-bordersize span a span.yui-toolbar-bordersize-4 { - top: 1px; - *top: -5px; - border-bottom: 4px solid black; -} - -.yui-editor-panel .yui-toolbar-bordersize span a span.yui-toolbar-bordersize-5 { - top: 1px; - *top: -5px; - border-bottom: 5px solid black; -} - -.yui-toolbar-container .yui-toolbar-bordersize-menu, .yui-toolbar-container .yui-toolbar-bordertype-menu { - width: 95px !important; -} - -.yui-toolbar-bordersize-menu .yuimenuitemlabel, .yui-toolbar-bordertype-menu .yuimenuitemlabel, .yui-toolbar-bordersize-menu .yuimenuitemlabel, .yui-toolbar-bordertype-menu .yuimenuitemlabel:hover { - margin: 0 3px 7px 17px; -} - -.yui-toolbar-bordersize-menu .yuimenuitemlabel .checkedindicator, .yui-toolbar-bordertype-menu .yuimenuitemlabel .checkedindicator { - position: absolute; - left: -12px; - *top: 14px; - *left: 0; -} - -.yui-toolbar-bordersize-menu li.yui-toolbar-bordersize-1 a { - border-bottom: 1px solid black; - height: 14px; -} - -.yui-toolbar-bordersize-menu li.yui-toolbar-bordersize-2 a { - border-bottom: 2px solid black; - height: 14px; -} - -.yui-toolbar-bordersize-menu li.yui-toolbar-bordersize-3 a { - border-bottom: 3px solid black; - height: 14px; -} - -.yui-toolbar-bordersize-menu li.yui-toolbar-bordersize-4 a { - border-bottom: 4px solid black; - height: 14px; -} - -.yui-toolbar-bordersize-menu li.yui-toolbar-bordersize-5 a { - border-bottom: 5px solid black; - height: 14px; -} - -.yui-toolbar-bordertype-menu li.yui-toolbar-bordertype-solid a { - border-bottom: 1px solid black; - height: 14px; -} - -.yui-toolbar-bordertype-menu li.yui-toolbar-bordertype-dashed a { - border-bottom: 1px dashed black; - height: 14px; -} - -.yui-toolbar-bordertype-menu li.yui-toolbar-bordertype-dotted a { - border-bottom: 1px dotted black; - height: 14px; -} - -h2.yui-editor-skipheader, h3.yui-editor-skipheader { - height: 0; - margin: 0; - padding: 0; - border: none; - width: 0; - overflow: hidden; - position: absolute; -} - -.yui-toolbar-colors { - width: 133px; - zoom: 1; - display: none; - z-index: 100; - overflow: hidden; -} - -.yui-toolbar-colors:after { - display: block; - clear: both; - visibility: hidden; - content: '.'; - height: 0; -} - -.yui-toolbar-colors a { - height: 9px; - width: 9px; - float: left; - display: block; - overflow: hidden; - text-indent: 999px; - margin: 0; - cursor: pointer; - border: 1px solid #F6F7EE; -} - -.yui-toolbar-colors a:hover { - border: 1px solid black; -} - -.yui-color-button-menu { - overflow: visible; - background-color: transparent; -} - -.yui-toolbar-colors span { - position: relative; - display: block; - padding: 3px; - overflow: hidden; - float: left; - width: 100%; - zoom: 1; -} - -.yui-toolbar-colors span:after { - display: block; - clear: both; - visibility: hidden; - content: '.'; - height: 0; -} - -.yui-toolbar-colors span em { - height: 35px; - width: 30px; - float: left; - display: block; - overflow: hidden; - text-indent: 999px; - margin: .75px; - border: 1px solid black; -} - -.yui-toolbar-colors span strong { - font-weight: normal; - padding-left: 3px; - display: block; - font-size: 85%; - float: left; - width: 65%; -} - -.yui-toolbar-group-undoredo h3, .yui-toolbar-group-insertitem h3, .yui-toolbar-group-indentlist h3 { - width: 68px; -} - -.yui-toolbar-group-indentlist2 h3 { - width: 122px; -} - -.yui-toolbar-group-alignment h3 { - width: 130px; -} - -.yui-skin-sam .yui-editor-container { - border: 1px solid #808080; -} - -.yui-skin-sam .yui-toolbar-container { - zoom: 1; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-titlebar { - background: url(sprite.png) repeat-x 0 -200px; - position: relative; -} - -.yui-skin-sam .yui-editor-container .draggable .yui-toolbar-titlebar { - cursor: move; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-titlebar h2 { - color: #000; - font-weight: bold; - margin: 0; - padding: .3em 1em; - font-size: 100%; - text-align: left; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-group h3 { - color: #808080; - font-size: 75%; - margin: 1em 0 0; - padding-bottom: 0; - padding-left: .25em; - text-align: left; -} - -.yui-toolbar-container span.yui-toolbar-separator { - border: none; - text-indent: 33px; - overflow: hidden; - margin: 0 .25em; -} - -.yui-skin-sam .yui-toolbar-container { - background-color: #F2F2F2; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-subcont { - padding: 0 1em .35em; - border-bottom: 1px solid #808080; -} - -.yui-skin-sam .yui-toolbar-container-collapsed .yui-toolbar-titlebar { - border-bottom: 1px solid #808080; -} - -.yui-skin-sam .yui-editor-container .visible .yui-menu-shadow, .yui-skin-sam .yui-editor-panel .visible .yui-menu-shadow { - display: none; -} - -.yui-skin-sam .yui-editor-container ul { - list-style-type: none; - margin: 0; - padding: 0; -} - -.yui-skin-sam .yui-editor-container ul li { - list-style-type: none; - margin: 0; - padding: 0; -} - -.yui-skin-sam .yui-toolbar-group ul li.yui-toolbar-groupitem { - float: left; -} - -.yui-skin-sam .yui-editor-container .dompath { - background-color: #F2F2F2; - border-top: 1px solid #808080; - color: #999; - text-align: left; - padding: .25em; -} - -.yui-skin-sam .yui-toolbar-container .collapse { - background: url(sprite.png) no-repeat 0 -400px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-titlebar span.collapse { - cursor: pointer; - position: absolute; - top: 4px; - right: 2px; - display: block; - overflow: hidden; - height: 15px; - width: 15px; - text-indent: 9999px; -} - -.yui-skin-sam .yui-toolbar-container .yui-push-button, .yui-skin-sam .yui-toolbar-container .yui-color-button, .yui-skin-sam .yui-toolbar-container .yui-menu-button { - background: url(sprite.png) repeat-x 0 0; - position: relative; - display: block; - height: 22px; - width: 30px; - _font-size: 0; - margin: 0; - border-color: #808080; - color: #f2f2f2; - border-style: solid; - border-width: 1px 0; - zoom: 1; -} - -.yui-skin-sam .yui-toolbar-container .yui-push-button a, .yui-skin-sam .yui-toolbar-container .yui-color-button a, .yui-skin-sam .yui-toolbar-container .yui-menu-button a { - padding-left: 35px; - height: 20px; - text-decoration: none; - font-size: 0; - line-height: 2; - display: block; - color: #000; - overflow: hidden; - white-space: nowrap; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-spinbutton a, .yui-skin-sam .yui-toolbar-container .yui-toolbar-select a { - font-size: 12px; -} - -.yui-skin-sam .yui-toolbar-container .yui-push-button .first-child, .yui-skin-sam .yui-toolbar-container .yui-color-button .first-child, .yui-skin-sam .yui-toolbar-container .yui-menu-button .first-child { - border-color: #808080; - border-style: solid; - border-width: 0 1px; - margin: 0 -1px; - display: block; - position: relative; -} - -.yui-skin-sam .yui-toolbar-container .yui-push-button-disabled .first-child, .yui-skin-sam .yui-toolbar-container .yui-color-button-disabled .first-child, .yui-skin-sam .yui-toolbar-container .yui-menu-button-disabled .first-child { - border-color: #ccc; -} - -.yui-skin-sam .yui-toolbar-container .yui-push-button-disabled a, .yui-skin-sam .yui-toolbar-container .yui-color-button-disabled a, .yui-skin-sam .yui-toolbar-container .yui-menu-button-disabled a { - color: #A6A6A6; - cursor: default; -} - -.yui-skin-sam .yui-toolbar-container .yui-push-button-disabled, .yui-skin-sam .yui-toolbar-container .yui-color-button-disabled, .yui-skin-sam .yui-toolbar-container .yui-menu-button-disabled { - border-color: #ccc; -} - -.yui-skin-sam .yui-toolbar-container .yui-button .first-child { - *left: 0; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-fontname { - width: 135px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-heading { - width: 92px; -} - -.yui-skin-sam .yui-toolbar-container .yui-button-hover { - background: url(sprite.png) repeat-x 0 -1300px; - border-color: #808080; -} - -.yui-skin-sam .yui-toolbar-container .yui-button-selected { - background: url(sprite.png) repeat-x 0 -1700px; - border-color: #808080; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-nogrouplabels h3 { - display: none; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-nogrouplabels .yui-toolbar-group { - margin-top: .75em; -} - -.yui-skin-sam .yui-toolbar-container .yui-push-button span.yui-toolbar-icon, .yui-skin-sam .yui-toolbar-container .yui-color-button span.yui-toolbar-icon, .yui-skin-sam .yui-toolbar-container .yui-menu-button span.yui-toolbar-icon { - display: block; - position: absolute; - top: 2px; - height: 18px; - width: 18px; - overflow: hidden; - background: url(editor-sprite.gif) no-repeat 30px 30px; -} - -.yui-skin-sam .yui-toolbar-container .yui-button-selected span.yui-toolbar-icon, .yui-skin-sam .yui-toolbar-container .yui-button-hover span.yui-toolbar-icon { - background-image: url(editor-sprite-active.gif); -} - -.yui-skin-sam .yui-toolbar-container .visible .yuimenuitemlabel { - cursor: pointer; - color: #000; - *position: relative; -} - -.yui-skin-sam .yui-toolbar-container .yui-button-menu { - background-color: #fff; -} - -.yui-skin-sam .yui-toolbar-container .yui-button-menu .yui-menu-body-scrolled { - position: relative; -} - -.yui-skin-sam div.yuimenu li.selected { - background-color: #B3D4FF; -} - -.yui-skin-sam div.yuimenu li.selected a.selected { - color: #000; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-bold span.yui-toolbar-icon { - background-position: 0 0; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-strikethrough span.yui-toolbar-icon { - background-position: 0 -108px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-italic span.yui-toolbar-icon { - background-position: 0 -36px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-undo span.yui-toolbar-icon { - background-position: 0 -1326px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-redo span.yui-toolbar-icon { - background-position: 0 -1355px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-underline span.yui-toolbar-icon { - background-position: 0 -72px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-subscript span.yui-toolbar-icon { - background-position: 0 -180px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-superscript span.yui-toolbar-icon { - background-position: 0 -144px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-forecolor span.yui-toolbar-icon { - background-position: 0 -216px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-backcolor span.yui-toolbar-icon { - background-position: 0 -288px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-justifyleft span.yui-toolbar-icon { - background-position: 0 -324px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-justifycenter span.yui-toolbar-icon { - background-position: 0 -360px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-justifyright span.yui-toolbar-icon { - background-position: 0 -396px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-justifyfull span.yui-toolbar-icon { - background-position: 0 -432px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-indent span.yui-toolbar-icon { - background-position: 0 -720px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-outdent span.yui-toolbar-icon { - background-position: 0 -684px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-createlink span.yui-toolbar-icon { - background-position: 0 -792px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-insertimage span.yui-toolbar-icon { - background-position: 1px -756px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-left span.yui-toolbar-icon { - background-position: 0 -972px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-right span.yui-toolbar-icon { - background-position: 0 -936px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-inline span.yui-toolbar-icon { - background-position: 0 -900px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-block span.yui-toolbar-icon { - background-position: 0 -864px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-bordercolor span.yui-toolbar-icon { - background-position: 0 -252px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-removeformat span.yui-toolbar-icon { - background-position: 0 -1080px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-hiddenelements span.yui-toolbar-icon { - background-position: 0 -1044px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-insertunorderedlist span.yui-toolbar-icon { - background-position: 0 -468px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-insertorderedlist span.yui-toolbar-icon { - background-position: 0 -504px; - left: 5px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-spinbutton, .yui-skin-sam .yui-toolbar-container .yui-toolbar-spinbutton .first-child { - width: 35px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-spinbutton .first-child a { - padding-left: 2px; - text-align: left; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-spinbutton span.yui-toolbar-icon { - display: none; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-spinbutton a.up, .yui-skin-sam .yui-toolbar-container .yui-toolbar-spinbutton a.down { - right: 2px; - background: url(editor-sprite.gif) no-repeat 0 -1222px; - overflow: hidden; - height: 6px; - width: 7px; - min-height: 0; - padding: 0; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-spinbutton a.up { - top: 2px; - background-position: 0 -1222px; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-spinbutton a.down { - bottom: 2px; - background-position: 0 -1187px; -} - -.yui-skin-sam .yui-toolbar-container select { - height: 22px; - border: 1px solid #808080; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-select .first-child a { - padding-left: 5px; - text-align: left; -} - -.yui-skin-sam .yui-toolbar-container .yui-toolbar-select span.yui-toolbar-icon { - background: url(editor-sprite.gif) no-repeat 0 -1144px; - overflow: hidden; - right: -2px; - top: 0; - height: 20px; -} - -.yui-skin-sam .yui-editor-panel .yui-color-button-menu .bd { - background-color: transparent; - border: none; - width: 135px; -} - -.yui-skin-sam .yui-color-button-menu .yui-toolbar-colors { - border: 1px solid #808080; -} - -.yui-skin-sam .yui-editor-panel { - padding: 0; - margin: 0; - border: none; - background-color: transparent; - overflow: visible; - position: absolute; -} - -.yui-skin-sam .yui-editor-panel .hd { - margin: 10px 0 0; - padding: 0; - border: none; -} - -.yui-skin-sam .yui-editor-panel .hd h3 { - color: #000; - border: 1px solid #808080; - background: url(sprite.png) repeat-x 0 -200px; - width: 99%; - position: relative; - margin: 0; - padding: 3px 0 0 0; - font-size: 93%; - text-indent: 5px; - height: 20px; -} - -.yui-skin-sam .yui-editor-panel .bd { - background-color: #F2F2F2; - border-left: 1px solid #808080; - border-right: 1px solid #808080; - width: 99%; - margin: 0; - padding: 0; - overflow: visible; -} - -.yui-skin-sam .yui-editor-panel ul { - list-style-type: none; - margin: 0; - padding: 0; -} - -.yui-skin-sam .yui-editor-panel ul li { - margin: 0; - padding: 0; -} - -.yui-skin-sam .yui-editor-panel .yui-toolbar-container .yui-toolbar-subcont { - padding: 0; - border: none; - margin-top: .35em; -} - -.yui-skin-sam .yui-editor-panel .yui-toolbar-bordersize, .yui-skin-sam .yui-editor-panel .yui-toolbar-bordertype { - width: 50px; -} - -.yui-skin-sam .yui-editor-panel label { - display: block; - float: none; - padding: 4px 0; - margin-bottom: 7px; -} - -.yui-skin-sam .yui-editor-panel label strong { - font-weight: normal; - font-size: 93%; - text-align: right; - padding-top: 2px; -} - -.yui-skin-sam .yui-editor-panel label input { - width: 75%; -} - -.yui-skin-sam .yui-editor-panel .createlink_target, .yui-skin-sam .yui-editor-panel .insertimage_target { - width: auto; - margin-right: 5px; -} - -.yui-skin-sam .yui-editor-panel .removeLink { - width: 98%; -} - -.yui-skin-sam .yui-editor-panel label input.warning { - background-color: #FFEE69; -} - -.yui-skin-sam .yui-editor-panel .yui-toolbar-group h3 { - color: #000; - float: left; - font-weight: normal; - font-size: 93%; - margin: 5px 0 0 0; - padding: 0 3px 0 0; - text-align: right; -} - -.yui-skin-sam .yui-editor-panel .height-width h3 { - margin: 3px 0 0 10px; -} - -.yui-skin-sam .yui-editor-panel .height-width { - margin: 3px 0 0 35px; - *margin-left: 14px; - width: 42%; - *width: 44%; -} - -.yui-skin-sam .yui-editor-panel .yui-toolbar-group-border { - width: 190px; -} - -.yui-skin-sam .yui-editor-panel .no-button .yui-toolbar-group-border { - width: 210px; -} - -.yui-skin-sam .yui-editor-panel .yui-toolbar-group-padding { - width: 203px; - _width: 198px; -} - -.yui-skin-sam .yui-editor-panel .no-button .yui-toolbar-group-padding { - width: 172px; -} - -.yui-skin-sam .yui-editor-panel .yui-toolbar-group-padding h3 { - margin-left: 25px; - *margin-left: 12px; -} - -.yui-skin-sam .yui-editor-panel .yui-toolbar-group-textflow { - width: 182px; -} - -.yui-skin-sam .yui-editor-panel .hd { - background: none; -} - -.yui-skin-sam .yui-editor-panel .ft { - background-color: #F2F2F2; - border: 1px solid #808080; - border-top: none; - padding: 0; - margin: 0 0 2px 0; -} - -.yui-skin-sam .yui-editor-panel .hd span.close { - background: url(sprite.png) no-repeat 0 -300px; - cursor: pointer; - display: block; - height: 16px; - overflow: hidden; - position: absolute; - right: 5px; - text-indent: 500px; - top: 2px; - width: 26px; -} - -.yui-skin-sam .yui-editor-panel .ft span.tip { - background-color: #EDF5FF; - border-top: 1px solid #808080; - font-size: 85%; -} - -.yui-skin-sam .yui-editor-panel .ft span.tip strong { - display: block; - float: left; - margin: 0 2px 8px 0; -} - -.yui-skin-sam .yui-editor-panel .ft span.tip span.icon { - background: url(editor-sprite.gif) no-repeat 0 -1260px; - display: block; - height: 20px; - left: 2px; - position: absolute; - top: 8px; - width: 20px; -} - -.yui-skin-sam .yui-editor-panel .ft span.tip span.icon-info { - background-position: 2px -1260px; -} - -.yui-skin-sam .yui-editor-panel .ft span.tip span.icon-warn { - background-position: 2px -1296px; -} - -.yui-skin-sam .yui-editor-panel .hd span.knob { - position: absolute; - height: 10px; - width: 28px; - top: -10px; - left: 25px; - text-indent: 9999px; - overflow: hidden; - background: url(editor-knob.gif) no-repeat 0 0; -} - -.yui-skin-sam .yui-editor-panel .yui-toolbar-container { - float: left; - width: 100%; - background-image: none; - border: none; -} - -.yui-skin-sam .yui-editor-panel .yui-toolbar-container .bd { - background-color: #fff; -} - -.yui-editor-blankimage { - background-image: url(blankimage.png); -} - -.yui-skin-sam .yui-editor-container .yui-resize-handle-br { - height: 11px; - width: 11px; - background-position: -20px -60px; - background-color: transparent; -} - -.yui-h-slider, .yui-v-slider { - position: relative; -} - -.yui-h-slider .yui-slider-thumb, .yui-v-slider .yui-slider-thumb { - position: absolute; - cursor: default; -} - -.yui-skin-sam .yui-h-slider { - background: url(bg-h.gif) no-repeat 5px 0; - height: 28px; - width: 228px; -} - -.yui-skin-sam .yui-h-slider .yui-slider-thumb { - top: 4px; -} - -.yui-skin-sam .yui-v-slider { - background: url(bg-v.gif) no-repeat 12px 0; - height: 228px; - width: 48px; -} - -.yui-navset .yui-nav li, .yui-navset .yui-navset-top .yui-nav li, .yui-navset .yui-navset-bottom .yui-nav li { - margin: 0 .5em 0 0; -} - -.yui-navset-left .yui-nav li, .yui-navset-right .yui-nav li { - margin: 0 0 .5em; -} - -.yui-navset .yui-content .yui-hidden { - position: absolute; - left: -999999px; - visibility: hidden; -} - -.yui-navset .yui-navset-left .yui-nav, .yui-navset .yui-navset-right .yui-nav, .yui-navset-left .yui-nav, .yui-navset-right .yui-nav { - width: 6em; -} - -.yui-navset-top .yui-nav, .yui-navset-bottom .yui-nav { - width: auto; -} - -.yui-navset .yui-navset-left, .yui-navset-left { - padding: 0 0 0 6em; -} - -.yui-navset-right { - padding: 0 6em 0 0; -} - -.yui-navset-top, .yui-navset-bottom { - padding: auto; -} - -.yui-nav, .yui-nav li { - margin: 0; - padding: 0; - list-style: none; -} - -.yui-navset li em { - font-style: normal; -} - -.yui-navset { - position: relative; - zoom: 1; -} - -.yui-navset .yui-content, .yui-navset .yui-content div { - zoom: 1; -} - -.yui-navset .yui-content:after { - content: ''; - display: block; - clear: both; -} - -.yui-navset .yui-nav li, .yui-navset .yui-navset-top .yui-nav li, .yui-navset .yui-navset-bottom .yui-nav li { - display: inline-block; - display: -moz-inline-stack; - *display: inline; - vertical-align: bottom; - cursor: pointer; - zoom: 1; -} - -.yui-navset-left .yui-nav li, .yui-navset-right .yui-nav li { - display: block; -} - -.yui-navset .yui-nav a { - position: relative; -} - -.yui-navset .yui-nav li a, .yui-navset-top .yui-nav li a, .yui-navset-bottom .yui-nav li a { - display: block; - display: inline-block; - vertical-align: bottom; - zoom: 1; -} - -.yui-navset-left .yui-nav li a, .yui-navset-right .yui-nav li a { - display: block; -} - -.yui-navset-bottom .yui-nav li a { - vertical-align: text-top; -} - -.yui-navset .yui-nav li a em, .yui-navset-top .yui-nav li a em, .yui-navset-bottom .yui-nav li a em { - display: block; -} - -.yui-navset .yui-navset-left .yui-nav, .yui-navset .yui-navset-right .yui-nav, .yui-navset-left .yui-nav, .yui-navset-right .yui-nav { - position: absolute; - z-index: 1; -} - -.yui-navset-top .yui-nav, .yui-navset-bottom .yui-nav { - position: static; -} - -.yui-navset .yui-navset-left .yui-nav, .yui-navset-left .yui-nav { - left: 0; - right: auto; -} - -.yui-navset .yui-navset-right .yui-nav, .yui-navset-right .yui-nav { - right: 0; - left: auto; -} - -.yui-skin-sam .yui-navset .yui-nav, .yui-skin-sam .yui-navset .yui-navset-top .yui-nav { - border: solid #2647a0; - border-width: 0 0 5px; - zoom: 1; -} - -.yui-skin-sam .yui-navset .yui-nav li, .yui-skin-sam .yui-navset .yui-navset-top .yui-nav li { - margin: 0 .16em 0 0; - padding: 1px 0 0; - zoom: 1; -} - -.yui-skin-sam .yui-navset .yui-nav .selected, .yui-skin-sam .yui-navset .yui-navset-top .yui-nav .selected { - margin: 0 .16em -1px 0; -} - -.yui-skin-sam .yui-navset .yui-nav a, .yui-skin-sam .yui-navset .yui-navset-top .yui-nav a { - background: #d8d8d8 url(sprite.png) repeat-x; - border: solid #a3a3a3; - border-width: 0 1px; - color: #000; - position: relative; - text-decoration: none; -} - -.yui-skin-sam .yui-navset .yui-nav a em, .yui-skin-sam .yui-navset .yui-navset-top .yui-nav a em { - border: solid #a3a3a3; - border-width: 1px 0 0; - cursor: hand; - padding: .25em .75em; - left: 0; - right: 0; - bottom: 0; - top: -1px; - position: relative; -} - -.yui-skin-sam .yui-navset .yui-nav .selected a, .yui-skin-sam .yui-navset .yui-nav .selected a:focus, .yui-skin-sam .yui-navset .yui-nav .selected a:hover { - background: #2647a0 url(sprite.png) repeat-x left -1400px; - color: #fff; -} - -.yui-skin-sam .yui-navset .yui-nav a:hover, .yui-skin-sam .yui-navset .yui-nav a:focus { - background: #bfdaff url(sprite.png) repeat-x left -1300px; - outline: 0; -} - -.yui-skin-sam .yui-navset .yui-nav .selected a em { - padding: .35em .75em; -} - -.yui-skin-sam .yui-navset .yui-nav .selected a, .yui-skin-sam .yui-navset .yui-nav .selected a em { - border-color: #243356; -} - -.yui-skin-sam .yui-navset .yui-content { - background: #edf5ff; -} - -.yui-skin-sam .yui-navset .yui-content, .yui-skin-sam .yui-navset .yui-navset-top .yui-content { - border: 1px solid #808080; - border-top-color: #243356; - padding: .25em .5em; -} - -.yui-skin-sam .yui-navset-left .yui-nav, .yui-skin-sam .yui-navset .yui-navset-left .yui-nav, .yui-skin-sam .yui-navset .yui-navset-right .yui-nav, .yui-skin-sam .yui-navset-right .yui-nav { - border-width: 0 5px 0 0; - Xposition: absolute; - top: 0; - bottom: 0; -} - -.yui-skin-sam .yui-navset .yui-navset-right .yui-nav, .yui-skin-sam .yui-navset-right .yui-nav { - border-width: 0 0 0 5px; -} - -.yui-skin-sam .yui-navset-left .yui-nav li, .yui-skin-sam .yui-navset .yui-navset-left .yui-nav li, .yui-skin-sam .yui-navset-right .yui-nav li { - margin: 0 0 .16em; - padding: 0 0 0 1px; -} - -.yui-skin-sam .yui-navset-right .yui-nav li { - padding: 0 1px 0 0; -} - -.yui-skin-sam .yui-navset-left .yui-nav .selected, .yui-skin-sam .yui-navset .yui-navset-left .yui-nav .selected { - margin: 0 -1px .16em 0; -} - -.yui-skin-sam .yui-navset-right .yui-nav .selected { - margin: 0 0 .16em -1px; -} - -.yui-skin-sam .yui-navset-left .yui-nav a, .yui-skin-sam .yui-navset-right .yui-nav a { - border-width: 1px 0; -} - -.yui-skin-sam .yui-navset-left .yui-nav a em, .yui-skin-sam .yui-navset .yui-navset-left .yui-nav a em, .yui-skin-sam .yui-navset-right .yui-nav a em { - border-width: 0 0 0 1px; - padding: .2em .75em; - top: auto; - left: -1px; -} - -.yui-skin-sam .yui-navset-right .yui-nav a em { - border-width: 0 1px 0 0; - left: auto; - right: -1px; -} - -.yui-skin-sam .yui-navset-left .yui-nav a, .yui-skin-sam .yui-navset-left .yui-nav .selected a, .yui-skin-sam .yui-navset-left .yui-nav a:hover, .yui-skin-sam .yui-navset-right .yui-nav a, .yui-skin-sam .yui-navset-right .yui-nav .selected a, .yui-skin-sam .yui-navset-right .yui-nav a:hover, .yui-skin-sam .yui-navset-bottom .yui-nav a, .yui-skin-sam .yui-navset-bottom .yui-nav .selected a, .yui-skin-sam .yui-navset-bottom .yui-nav a:hover { - background-image: none; -} - -.yui-skin-sam .yui-navset-left .yui-content { - border: 1px solid #808080; - border-left-color: #243356; -} - -.yui-skin-sam .yui-navset-bottom .yui-nav, .yui-skin-sam .yui-navset .yui-navset-bottom .yui-nav { - border-width: 5px 0 0; -} - -.yui-skin-sam .yui-navset .yui-navset-bottom .yui-nav .selected, .yui-skin-sam .yui-navset-bottom .yui-nav .selected { - margin: -1px .16em 0 0; -} - -.yui-skin-sam .yui-navset .yui-navset-bottom .yui-nav li, .yui-skin-sam .yui-navset-bottom .yui-nav li { - padding: 0 0 1px 0; - vertical-align: top; -} - -.yui-skin-sam .yui-navset .yui-navset-bottom .yui-nav a em, .yui-skin-sam .yui-navset-bottom .yui-nav a em { - border-width: 0 0 1px; - top: auto; - bottom: -1px; -} - -.yui-skin-sam .yui-navset-bottom .yui-content, .yui-skin-sam .yui-navset .yui-navset-bottom .yui-content { - border: 1px solid #808080; - border-bottom-color: #243356; -} - -.ygtvitem { -} - -.ygtvitem table { - margin-bottom: 0; - border: none; -} - -.ygtvrow td { - border: none; - padding: 0; -} - -.ygtvrow td a { - text-decoration: none; -} - -.ygtvtn { - width: 18px; - height: 22px; - background: url(treeview-sprite.gif) 0 -5600px no-repeat; -} - -.ygtvtm { - width: 18px; - height: 22px; - cursor: pointer; - background: url(treeview-sprite.gif) 0 -4000px no-repeat; -} - -.ygtvtmh, .ygtvtmhh { - width: 18px; - height: 22px; - cursor: pointer; - background: url(treeview-sprite.gif) 0 -4800px no-repeat; -} - -.ygtvtp { - width: 18px; - height: 22px; - cursor: pointer; - background: url(treeview-sprite.gif) 0 -6400px no-repeat; -} - -.ygtvtph, .ygtvtphh { - width: 18px; - height: 22px; - cursor: pointer; - background: url(treeview-sprite.gif) 0 -7200px no-repeat; -} - -.ygtvln { - width: 18px; - height: 22px; - background: url(treeview-sprite.gif) 0 -1600px no-repeat; -} - -.ygtvlm { - width: 18px; - height: 22px; - cursor: pointer; - background: url(treeview-sprite.gif) 0 0px no-repeat; -} - -.ygtvlmh, .ygtvlmhh { - width: 18px; - height: 22px; - cursor: pointer; - background: url(treeview-sprite.gif) 0 -800px no-repeat; -} - -.ygtvlp { - width: 18px; - height: 22px; - cursor: pointer; - background: url(treeview-sprite.gif) 0 -2400px no-repeat; -} - -.ygtvlph, .ygtvlphh { - width: 18px; - height: 22px; - cursor: pointer; - background: url(treeview-sprite.gif) 0 -3200px no-repeat; -} - -.ygtvloading { - width: 18px; - height: 22px; - background: url(treeview-loading.gif) 0 0 no-repeat; -} - -.ygtvdepthcell { - width: 18px; - height: 22px; - background: url(treeview-sprite.gif) 0 -8000px no-repeat; -} - -.ygtvblankdepthcell { - width: 18px; - height: 22px; -} - -.ygtvchildren { -} - -* html .ygtvchildren { - height: 2%; -} - -.ygtvlabel, .ygtvlabel:link, .ygtvlabel:visited, .ygtvlabel:hover { - margin-left: 2px; - text-decoration: none; - background-color: white; - cursor: pointer; -} - -.ygtvcontent { - cursor: default; -} - -.ygtvspacer { - height: 22px; - width: 12px; -} - -.ygtvfocus { - background-color: #c0e0e0; - border: none; -} - -.ygtvfocus .ygtvlabel, .ygtvfocus .ygtvlabel:link, .ygtvfocus .ygtvlabel:visited, .ygtvfocus .ygtvlabel:hover { - background-color: #c0e0e0; -} - -.ygtvfocus a, .ygtvrow td a { - outline-style: none; -} - -.ygtvok { - width: 18px; - height: 22px; - background: url(treeview-sprite.gif) 0 -8800px no-repeat; -} - -.ygtvok:hover { - background: url(treeview-sprite.gif) 0 -8844px no-repeat; -} - -.ygtvcancel { - width: 18px; - height: 22px; - background: url(treeview-sprite.gif) 0 -8822px no-repeat; -} - -.ygtvcancel:hover { - background: url(treeview-sprite.gif) 0 -8866px no-repeat; -} - -.ygtv-label-editor { - background-color: #f2f2f2; - border: 1px solid silver; - position: absolute; - display: none; - overflow: hidden; - margin: auto; - z-index: 9000; -} - -.ygtv-edit-TextNode { - width: 190px; -} - -.ygtv-edit-TextNode .ygtvcancel, .ygtv-edit-TextNode .ygtvok { - border: none; -} - -.ygtv-edit-TextNode .ygtv-button-container { - float: right; -} - -.ygtv-edit-TextNode .ygtv-input input { - width: 140px; -} - -.ygtv-edit-DateNode .ygtvcancel { - border: none; -} - -.ygtv-edit-DateNode .ygtvok { - display: none; -} - -.ygtv-edit-DateNode .ygtv-button-container { - text-align: right; - margin: auto; -} - diff --git a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/slider.css b/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/slider.css deleted file mode 100644 index ecaf8a14d..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/slider.css +++ /dev/null @@ -1,30 +0,0 @@ -/* -Copyright (c) 2009, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.7.0 -*/ -.yui-h-slider, .yui-v-slider { - position: relative; -} - -.yui-h-slider .yui-slider-thumb, .yui-v-slider .yui-slider-thumb { - position: absolute; - cursor: default; -} - -.yui-skin-sam .yui-h-slider { - background: url(bg-h.gif) no-repeat 5px 0; - height: 28px; - width: 228px; -} - -.yui-skin-sam .yui-h-slider .yui-slider-thumb { - top: 4px; -} - -.yui-skin-sam .yui-v-slider { - background: url(bg-v.gif) no-repeat 12px 0; - height: 228px; - width: 48px; -} diff --git a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/split-button-arrow-active.png b/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/split-button-arrow-active.png deleted file mode 100644 index fa58c5030..000000000 Binary files a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/split-button-arrow-active.png and /dev/null differ diff --git a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/split-button-arrow-disabled.png b/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/split-button-arrow-disabled.png deleted file mode 100644 index 0a6a82c64..000000000 Binary files a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/split-button-arrow-disabled.png and /dev/null differ diff --git a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/split-button-arrow-focus.png b/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/split-button-arrow-focus.png deleted file mode 100644 index 167d71eb7..000000000 Binary files a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/split-button-arrow-focus.png and /dev/null differ diff --git a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/split-button-arrow-hover.png b/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/split-button-arrow-hover.png deleted file mode 100644 index 167d71eb7..000000000 Binary files a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/split-button-arrow-hover.png and /dev/null differ diff --git a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/split-button-arrow.png b/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/split-button-arrow.png deleted file mode 100644 index b33a93ff2..000000000 Binary files a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/split-button-arrow.png and /dev/null differ diff --git a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/sprite.png b/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/sprite.png deleted file mode 100644 index 73634d6a2..000000000 Binary files a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/sprite.png and /dev/null differ diff --git a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/sprite.psd b/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/sprite.psd deleted file mode 100644 index fff2c3471..000000000 Binary files a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/sprite.psd and /dev/null differ diff --git a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/tabview.css b/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/tabview.css deleted file mode 100644 index d9ca6c960..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/tabview.css +++ /dev/null @@ -1,262 +0,0 @@ -/* -Copyright (c) 2009, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.7.0 -*/ -.yui-navset .yui-nav li, .yui-navset .yui-navset-top .yui-nav li, .yui-navset .yui-navset-bottom .yui-nav li { - margin: 0 .5em 0 0; -} - -.yui-navset-left .yui-nav li, .yui-navset-right .yui-nav li { - margin: 0 0 .5em; -} - -.yui-navset .yui-content .yui-hidden { - position: absolute; - left: -999999px; - visibility: hidden; -} - -.yui-navset .yui-navset-left .yui-nav, .yui-navset .yui-navset-right .yui-nav, .yui-navset-left .yui-nav, .yui-navset-right .yui-nav { - width: 6em; -} - -.yui-navset-top .yui-nav, .yui-navset-bottom .yui-nav { - width: auto; -} - -.yui-navset .yui-navset-left, .yui-navset-left { - padding: 0 0 0 6em; -} - -.yui-navset-right { - padding: 0 6em 0 0; -} - -.yui-navset-top, .yui-navset-bottom { - padding: auto; -} - -.yui-nav, .yui-nav li { - margin: 0; - padding: 0; - list-style: none; -} - -.yui-navset li em { - font-style: normal; -} - -.yui-navset { - position: relative; - zoom: 1; -} - -.yui-navset .yui-content, .yui-navset .yui-content div { - zoom: 1; -} - -.yui-navset .yui-content:after { - content: ''; - display: block; - clear: both; -} - -.yui-navset .yui-nav li, .yui-navset .yui-navset-top .yui-nav li, .yui-navset .yui-navset-bottom .yui-nav li { - display: inline-block; - display: -moz-inline-stack; - *display: inline; - vertical-align: bottom; - cursor: pointer; - zoom: 1; -} - -.yui-navset-left .yui-nav li, .yui-navset-right .yui-nav li { - display: block; -} - -.yui-navset .yui-nav a { - position: relative; -} - -.yui-navset .yui-nav li a, .yui-navset-top .yui-nav li a, .yui-navset-bottom .yui-nav li a { - display: block; - display: inline-block; - vertical-align: bottom; - zoom: 1; -} - -.yui-navset-left .yui-nav li a, .yui-navset-right .yui-nav li a { - display: block; -} - -.yui-navset-bottom .yui-nav li a { - vertical-align: text-top; -} - -.yui-navset .yui-nav li a em, .yui-navset-top .yui-nav li a em, .yui-navset-bottom .yui-nav li a em { - display: block; -} - -.yui-navset .yui-navset-left .yui-nav, .yui-navset .yui-navset-right .yui-nav, .yui-navset-left .yui-nav, .yui-navset-right .yui-nav { - position: absolute; - z-index: 1; -} - -.yui-navset-top .yui-nav, .yui-navset-bottom .yui-nav { - position: static; -} - -.yui-navset .yui-navset-left .yui-nav, .yui-navset-left .yui-nav { - left: 0; - right: auto; -} - -.yui-navset .yui-navset-right .yui-nav, .yui-navset-right .yui-nav { - right: 0; - left: auto; -} - -.yui-skin-sam .yui-navset .yui-nav, .yui-skin-sam .yui-navset .yui-navset-top .yui-nav { - border: solid #2647a0; - border-width: 0 0 5px; - zoom: 1; -} - -.yui-skin-sam .yui-navset .yui-nav li, .yui-skin-sam .yui-navset .yui-navset-top .yui-nav li { - margin: 0 .16em 0 0; - padding: 1px 0 0; - zoom: 1; -} - -.yui-skin-sam .yui-navset .yui-nav .selected, .yui-skin-sam .yui-navset .yui-navset-top .yui-nav .selected { - margin: 0 .16em -1px 0; -} - -.yui-skin-sam .yui-navset .yui-nav a, .yui-skin-sam .yui-navset .yui-navset-top .yui-nav a { - background: #d8d8d8 url(sprite.png) repeat-x; - border: solid #a3a3a3; - border-width: 0 1px; - color: #000; - position: relative; - text-decoration: none; -} - -.yui-skin-sam .yui-navset .yui-nav a em, .yui-skin-sam .yui-navset .yui-navset-top .yui-nav a em { - border: solid #a3a3a3; - border-width: 1px 0 0; - cursor: hand; - padding: .25em .75em; - left: 0; - right: 0; - bottom: 0; - top: -1px; - position: relative; -} - -.yui-skin-sam .yui-navset .yui-nav .selected a, .yui-skin-sam .yui-navset .yui-nav .selected a:focus, .yui-skin-sam .yui-navset .yui-nav .selected a:hover { - background: #2647a0 url(sprite.png) repeat-x left -1400px; - color: #fff; -} - -.yui-skin-sam .yui-navset .yui-nav a:hover, .yui-skin-sam .yui-navset .yui-nav a:focus { - background: #bfdaff url(sprite.png) repeat-x left -1300px; - outline: 0; -} - -.yui-skin-sam .yui-navset .yui-nav .selected a em { - padding: .35em .75em; -} - -.yui-skin-sam .yui-navset .yui-nav .selected a, .yui-skin-sam .yui-navset .yui-nav .selected a em { - border-color: #243356; -} - -.yui-skin-sam .yui-navset .yui-content { - background: #edf5ff; -} - -.yui-skin-sam .yui-navset .yui-content, .yui-skin-sam .yui-navset .yui-navset-top .yui-content { - border: 1px solid #808080; - border-top-color: #243356; - padding: .25em .5em; -} - -.yui-skin-sam .yui-navset-left .yui-nav, .yui-skin-sam .yui-navset .yui-navset-left .yui-nav, .yui-skin-sam .yui-navset .yui-navset-right .yui-nav, .yui-skin-sam .yui-navset-right .yui-nav { - border-width: 0 5px 0 0; - Xposition: absolute; - top: 0; - bottom: 0; -} - -.yui-skin-sam .yui-navset .yui-navset-right .yui-nav, .yui-skin-sam .yui-navset-right .yui-nav { - border-width: 0 0 0 5px; -} - -.yui-skin-sam .yui-navset-left .yui-nav li, .yui-skin-sam .yui-navset .yui-navset-left .yui-nav li, .yui-skin-sam .yui-navset-right .yui-nav li { - margin: 0 0 .16em; - padding: 0 0 0 1px; -} - -.yui-skin-sam .yui-navset-right .yui-nav li { - padding: 0 1px 0 0; -} - -.yui-skin-sam .yui-navset-left .yui-nav .selected, .yui-skin-sam .yui-navset .yui-navset-left .yui-nav .selected { - margin: 0 -1px .16em 0; -} - -.yui-skin-sam .yui-navset-right .yui-nav .selected { - margin: 0 0 .16em -1px; -} - -.yui-skin-sam .yui-navset-left .yui-nav a, .yui-skin-sam .yui-navset-right .yui-nav a { - border-width: 1px 0; -} - -.yui-skin-sam .yui-navset-left .yui-nav a em, .yui-skin-sam .yui-navset .yui-navset-left .yui-nav a em, .yui-skin-sam .yui-navset-right .yui-nav a em { - border-width: 0 0 0 1px; - padding: .2em .75em; - top: auto; - left: -1px; -} - -.yui-skin-sam .yui-navset-right .yui-nav a em { - border-width: 0 1px 0 0; - left: auto; - right: -1px; -} - -.yui-skin-sam .yui-navset-left .yui-nav a, .yui-skin-sam .yui-navset-left .yui-nav .selected a, .yui-skin-sam .yui-navset-left .yui-nav a:hover, .yui-skin-sam .yui-navset-right .yui-nav a, .yui-skin-sam .yui-navset-right .yui-nav .selected a, .yui-skin-sam .yui-navset-right .yui-nav a:hover, .yui-skin-sam .yui-navset-bottom .yui-nav a, .yui-skin-sam .yui-navset-bottom .yui-nav .selected a, .yui-skin-sam .yui-navset-bottom .yui-nav a:hover { - background-image: none; -} - -.yui-skin-sam .yui-navset-left .yui-content { - border: 1px solid #808080; - border-left-color: #243356; -} - -.yui-skin-sam .yui-navset-bottom .yui-nav, .yui-skin-sam .yui-navset .yui-navset-bottom .yui-nav { - border-width: 5px 0 0; -} - -.yui-skin-sam .yui-navset .yui-navset-bottom .yui-nav .selected, .yui-skin-sam .yui-navset-bottom .yui-nav .selected { - margin: -1px .16em 0 0; -} - -.yui-skin-sam .yui-navset .yui-navset-bottom .yui-nav li, .yui-skin-sam .yui-navset-bottom .yui-nav li { - padding: 0 0 1px 0; - vertical-align: top; -} - -.yui-skin-sam .yui-navset .yui-navset-bottom .yui-nav a em, .yui-skin-sam .yui-navset-bottom .yui-nav a em { - border-width: 0 0 1px; - top: auto; - bottom: -1px; -} - -.yui-skin-sam .yui-navset-bottom .yui-content, .yui-skin-sam .yui-navset .yui-navset-bottom .yui-content { - border: 1px solid #808080; - border-bottom-color: #243356; -} diff --git a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/treeview-loading.gif b/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/treeview-loading.gif deleted file mode 100644 index 0bbf3bc0c..000000000 Binary files a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/treeview-loading.gif and /dev/null differ diff --git a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/treeview-sprite.gif b/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/treeview-sprite.gif deleted file mode 100644 index 8fb3f0137..000000000 Binary files a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/treeview-sprite.gif and /dev/null differ diff --git a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/treeview.css b/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/treeview.css deleted file mode 100644 index 0f99dbf59..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/treeview.css +++ /dev/null @@ -1,202 +0,0 @@ -/* -Copyright (c) 2009, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.7.0 -*/ -.ygtvitem { -} - -.ygtvitem table { - margin-bottom: 0; - border: none; -} - -.ygtvrow td { - border: none; - padding: 0; -} - -.ygtvrow td a { - text-decoration: none; -} - -.ygtvtn { - width: 18px; - height: 22px; - background: url(treeview-sprite.gif) 0 -5600px no-repeat; -} - -.ygtvtm { - width: 18px; - height: 22px; - cursor: pointer; - background: url(treeview-sprite.gif) 0 -4000px no-repeat; -} - -.ygtvtmh, .ygtvtmhh { - width: 18px; - height: 22px; - cursor: pointer; - background: url(treeview-sprite.gif) 0 -4800px no-repeat; -} - -.ygtvtp { - width: 18px; - height: 22px; - cursor: pointer; - background: url(treeview-sprite.gif) 0 -6400px no-repeat; -} - -.ygtvtph, .ygtvtphh { - width: 18px; - height: 22px; - cursor: pointer; - background: url(treeview-sprite.gif) 0 -7200px no-repeat; -} - -.ygtvln { - width: 18px; - height: 22px; - background: url(treeview-sprite.gif) 0 -1600px no-repeat; -} - -.ygtvlm { - width: 18px; - height: 22px; - cursor: pointer; - background: url(treeview-sprite.gif) 0 0px no-repeat; -} - -.ygtvlmh, .ygtvlmhh { - width: 18px; - height: 22px; - cursor: pointer; - background: url(treeview-sprite.gif) 0 -800px no-repeat; -} - -.ygtvlp { - width: 18px; - height: 22px; - cursor: pointer; - background: url(treeview-sprite.gif) 0 -2400px no-repeat; -} - -.ygtvlph, .ygtvlphh { - width: 18px; - height: 22px; - cursor: pointer; - background: url(treeview-sprite.gif) 0 -3200px no-repeat; -} - -.ygtvloading { - width: 18px; - height: 22px; - background: url(treeview-loading.gif) 0 0 no-repeat; -} - -.ygtvdepthcell { - width: 18px; - height: 22px; - background: url(treeview-sprite.gif) 0 -8000px no-repeat; -} - -.ygtvblankdepthcell { - width: 18px; - height: 22px; -} - -.ygtvchildren { -} - -* html .ygtvchildren { - height: 2%; -} - -.ygtvlabel, .ygtvlabel:link, .ygtvlabel:visited, .ygtvlabel:hover { - margin-left: 2px; - text-decoration: none; - background-color: white; - cursor: pointer; -} - -.ygtvcontent { - cursor: default; -} - -.ygtvspacer { - height: 22px; - width: 12px; -} - -.ygtvfocus { - background-color: #c0e0e0; - border: none; -} - -.ygtvfocus .ygtvlabel, .ygtvfocus .ygtvlabel:link, .ygtvfocus .ygtvlabel:visited, .ygtvfocus .ygtvlabel:hover { - background-color: #c0e0e0; -} - -.ygtvfocus a, .ygtvrow td a { - outline-style: none; -} - -.ygtvok { - width: 18px; - height: 22px; - background: url(treeview-sprite.gif) 0 -8800px no-repeat; -} - -.ygtvok:hover { - background: url(treeview-sprite.gif) 0 -8844px no-repeat; -} - -.ygtvcancel { - width: 18px; - height: 22px; - background: url(treeview-sprite.gif) 0 -8822px no-repeat; -} - -.ygtvcancel:hover { - background: url(treeview-sprite.gif) 0 -8866px no-repeat; -} - -.ygtv-label-editor { - background-color: #f2f2f2; - border: 1px solid silver; - position: absolute; - display: none; - overflow: hidden; - margin: auto; - z-index: 9000; -} - -.ygtv-edit-TextNode { - width: 190px; -} - -.ygtv-edit-TextNode .ygtvcancel, .ygtv-edit-TextNode .ygtvok { - border: none; -} - -.ygtv-edit-TextNode .ygtv-button-container { - float: right; -} - -.ygtv-edit-TextNode .ygtv-input input { - width: 140px; -} - -.ygtv-edit-DateNode .ygtvcancel { - border: none; -} - -.ygtv-edit-DateNode .ygtvok { - display: none; -} - -.ygtv-edit-DateNode .ygtv-button-container { - text-align: right; - margin: auto; -} diff --git a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/wait.gif b/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/wait.gif deleted file mode 100644 index 471c1a4f9..000000000 Binary files a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/wait.gif and /dev/null differ diff --git a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/yuitest.css b/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/yuitest.css deleted file mode 100644 index a6e4c732a..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/yui/assets/skins/sam/yuitest.css +++ /dev/null @@ -1,7 +0,0 @@ -/* -Copyright (c) 2009, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.7.0 -*/ - diff --git a/Resources/Public/jsDomainModeling/wireit/lib/yui/base/base-min.css b/Resources/Public/jsDomainModeling/wireit/lib/yui/base/base-min.css deleted file mode 100644 index 925212461..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/yui/base/base-min.css +++ /dev/null @@ -1,97 +0,0 @@ -/* -Copyright (c) 2009, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.7.0 -*/ -body { - margin: 10px; -} - -h1 { - font-size: 138.5%; -} - -h2 { - font-size: 123.1%; -} - -h3 { - font-size: 108%; -} - -h1, h2, h3 { - margin: 1em 0; -} - -h1, h2, h3, h4, h5, h6, strong, dt { - font-weight: bold; -} - -optgroup { - font-weight: normal; -} - -abbr, acronym { - border-bottom: 1px dotted #000; - cursor: help; -} - -em { - font-style: italic; -} - -del { - text-decoration: line-through; -} - -blockquote, ul, ol, dl { - margin: 1em; -} - -ol, ul, dl { - margin-left: 2em; -} - -ol li { - list-style: decimal outside; -} - -ul li { - list-style: disc outside; -} - -dl dd { - margin-left: 1em; -} - -th, td { - border: 1px solid #000; - padding: .5em; -} - -th { - font-weight: bold; - text-align: center; -} - -caption { - margin-bottom: .5em; - text-align: center; -} - -sup { - vertical-align: super; -} - -sub { - vertical-align: sub; -} - -p, fieldset, table, pre { - margin-bottom: 1em; -} - -button, input[type="checkbox"], input[type="radio"], input[type="reset"], input[type="submit"] { - padding: 1px; -} \ No newline at end of file diff --git a/Resources/Public/jsDomainModeling/wireit/lib/yui/base/base.css b/Resources/Public/jsDomainModeling/wireit/lib/yui/base/base.css deleted file mode 100644 index d1c07b229..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/yui/base/base.css +++ /dev/null @@ -1,133 +0,0 @@ -/* -Copyright (c) 2009, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.7.0 -*/ -/** - * YUI Base - * @module base - * @namespace yui- - * @requires reset, fonts -*/ - -body { - /* For breathing room between content and viewport. */ - margin: 10px; -} - -h1 { - /* 18px via YUI Fonts CSS foundation. */ - font-size: 138.5%; -} - -h2 { - /* 16px via YUI Fonts CSS foundation. */ - font-size: 123.1%; -} - -h3 { - /* 14px via YUI Fonts CSS foundation. */ - font-size: 108%; -} - -h1, h2, h3 { - /* Top & bottom margin based on font size. */ - margin: 1em 0; -} - -h1, h2, h3, h4, h5, h6, strong, dt { - /* Bringing boldness back to headers and the strong element. */ - font-weight: bold; -} - -optgroup { - font-weight: normal; -} - -abbr, acronym { - /* Indicating to users that more info is available. */ - border-bottom: 1px dotted #000; - cursor: help; -} - -em { - /* Bringing italics back to the em element. */ - font-style: italic; -} - -del { - /* Striking deleted phrases. */ - text-decoration: line-through; -} - -blockquote, ul, ol, dl { - /* Giving blockquotes and lists room to breath. */ - margin: 1em; -} - -ol, ul, dl { - /* Bringing lists on to the page with breathing room. */ - margin-left: 2em; -} - -ol li { - /* Giving OL's LIs generated numbers. */ - list-style: decimal outside; -} - -ul li { - /* Giving UL's LIs generated disc markers. */ - list-style: disc outside; -} - -dl dd { - /* Giving UL's LIs generated numbers. */ - margin-left: 1em; -} - -th, td { - /* Borders and padding to make the table readable. */ - border: 1px solid #000; - padding: .5em; -} - -th { - /* Distinguishing table headers from data cells. */ - font-weight: bold; - text-align: center; -} - -caption { - /* Coordinated margin to match cell's padding. */ - margin-bottom: .5em; - /* Centered so it doesn't blend in to other content. */ - text-align: center; -} - -sup { - /* to preserve line-height and selector appearance */ - vertical-align: super; -} - -sub { - /* to preserve line-height and selector appearance */ - vertical-align: sub; -} - -p, -fieldset, -table, -pre { - /* So things don't run into each other. */ - margin-bottom: 1em; -} - -/* Opera requires 1px of passing to render with contemporary native chrome */ -button, -input[type="checkbox"], -input[type="radio"], -input[type="reset"], -input[type="submit"] { - padding: 1px; -} diff --git a/Resources/Public/jsDomainModeling/wireit/lib/yui/button/assets/button-core.css b/Resources/Public/jsDomainModeling/wireit/lib/yui/button/assets/button-core.css deleted file mode 100644 index 570887fd9..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/yui/button/assets/button-core.css +++ /dev/null @@ -1,44 +0,0 @@ -/* -Copyright (c) 2009, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.7.0 -*/ -.yui-button { - - display: -moz-inline-box; /* Gecko */ - display: inline-block; /* IE, Opera and Safari */ - vertical-align: text-bottom; - -} - -.yui-button .first-child { - - display: block; - *display: inline-block; /* IE */ - -} - -.yui-button button, -.yui-button a { - - display: block; - *display: inline-block; /* IE */ - border: none; - margin: 0; - -} - -.yui-button button { - - background-color: transparent; - *overflow: visible; /* Remove superfluous padding for IE */ - cursor: pointer; - -} - -.yui-button a { - - text-decoration: none; - -} \ No newline at end of file diff --git a/Resources/Public/jsDomainModeling/wireit/lib/yui/button/assets/skins/sam/button-skin.css b/Resources/Public/jsDomainModeling/wireit/lib/yui/button/assets/skins/sam/button-skin.css deleted file mode 100644 index d7d8bd8c8..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/yui/button/assets/skins/sam/button-skin.css +++ /dev/null @@ -1,232 +0,0 @@ -/* -Copyright (c) 2009, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.7.0 -*/ -.yui-skin-sam .yui-button { - - border-width: 1px 0; - border-style: solid; - border-color: #808080; - background: url(../../../../assets/skins/sam/sprite.png) repeat-x 0 0; - margin: auto .25em; - -} - -.yui-skin-sam .yui-button .first-child { - - border-width: 0 1px; - border-style: solid; - border-color: #808080; - margin: 0 -1px; - - /* - Using negative margins for rounded corners won't work in IE 6 and IE 7 - (Quirks Mode Only), so set the "margin" property to "0" for those - browsers. - */ - _margin: 0; - -} - -.yui-skin-sam .yui-button button, -.yui-skin-sam .yui-button a { - - padding: 0 10px; - font-size: 93%; /* 12px */ - line-height: 2; /* ~24px */ - *line-height: 1.7; /* For IE */ - min-height: 2em; /* For Gecko */ - *min-height: auto; /* For IE */ - color: #000; - -} - -.yui-skin-sam .yui-button a { - - /* - Necessary to get Buttons of type "link" to be the correct - height in IE. - */ - *line-height: 1.875; - *padding-bottom: 1px; - -} - -.yui-skin-sam .yui-split-button button, -.yui-skin-sam .yui-menu-button button { - - padding-right: 20px; - background-position: right center; - background-repeat: no-repeat; - -} - -.yui-skin-sam .yui-menu-button button { - - background-image: url(menu-button-arrow.png); - -} - -.yui-skin-sam .yui-split-button button { - - background-image: url(split-button-arrow.png); - -} - -/* Focus state */ - -.yui-skin-sam .yui-button-focus { - - border-color: #7D98B8; - background-position: 0 -1300px; - -} - -.yui-skin-sam .yui-button-focus .first-child { - - border-color: #7D98B8; - -} - -.yui-skin-sam .yui-button-focus button, -.yui-skin-sam .yui-button-focus a { - - color: #000; - -} - -.yui-skin-sam .yui-split-button-focus button { - - background-image: url(split-button-arrow-focus.png); - -} - -/* Hover state */ - -.yui-skin-sam .yui-button-hover { - - border-color: #7D98B8; - background-position: 0 -1300px; - -} - -.yui-skin-sam .yui-button-hover .first-child { - - border-color: #7D98B8; - -} - -.yui-skin-sam .yui-button-hover button, -.yui-skin-sam .yui-button-hover a { - - color: #000; - -} - -.yui-skin-sam .yui-split-button-hover button { - - background-image: url(split-button-arrow-hover.png); - -} - -/* Active state */ - -.yui-skin-sam .yui-button-active { - - border-color: #7D98B8; - background-position: 0 -1700px; - -} - -.yui-skin-sam .yui-button-active .first-child { - - border-color: #7D98B8; - -} - -.yui-skin-sam .yui-button-active button, -.yui-skin-sam .yui-button-active a { - - color: #000; - -} - -.yui-skin-sam .yui-split-button-activeoption { - - border-color: #808080; - background-position: 0 0; - -} - -.yui-skin-sam .yui-split-button-activeoption .first-child { - - border-color: #808080; - -} - -.yui-skin-sam .yui-split-button-activeoption button { - - background-image: url(split-button-arrow-active.png); - -} - -/* Checked state */ - -.yui-skin-sam .yui-radio-button-checked, -.yui-skin-sam .yui-checkbox-button-checked { - - border-color: #304369; - background-position: 0 -1400px; - -} - -.yui-skin-sam .yui-radio-button-checked .first-child, -.yui-skin-sam .yui-checkbox-button-checked .first-child { - - border-color: #304369; - -} - -.yui-skin-sam .yui-radio-button-checked button, -.yui-skin-sam .yui-checkbox-button-checked button { - - color: #fff; - -} - -/* Disabled state */ - -.yui-skin-sam .yui-button-disabled { - - border-color: #ccc; - background-position: 0 -1500px; - -} - -.yui-skin-sam .yui-button-disabled .first-child { - - border-color: #ccc; - -} - -.yui-skin-sam .yui-button-disabled button, -.yui-skin-sam .yui-button-disabled a { - - color: #A6A6A6; - cursor: default; - -} - -.yui-skin-sam .yui-menu-button-disabled button { - - background-image: url(menu-button-arrow-disabled.png); - -} - -.yui-skin-sam .yui-split-button-disabled button { - - background-image: url(split-button-arrow-disabled.png); - -} \ No newline at end of file diff --git a/Resources/Public/jsDomainModeling/wireit/lib/yui/button/assets/skins/sam/button.css b/Resources/Public/jsDomainModeling/wireit/lib/yui/button/assets/skins/sam/button.css deleted file mode 100644 index 36c7f8a37..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/yui/button/assets/skins/sam/button.css +++ /dev/null @@ -1,173 +0,0 @@ -/* -Copyright (c) 2009, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.7.0 -*/ -.yui-button { - display: -moz-inline-box; - display: inline-block; - vertical-align: text-bottom; -} - -.yui-button .first-child { - display: block; - *display: inline-block; -} - -.yui-button button, .yui-button a { - display: block; - *display: inline-block; - border: none; - margin: 0; -} - -.yui-button button { - background-color: transparent; - *overflow: visible; - cursor: pointer; -} - -.yui-button a { - text-decoration: none; -} - -.yui-skin-sam .yui-button { - border-width: 1px 0; - border-style: solid; - border-color: #808080; - background: url(../../../../assets/skins/sam/sprite.png) repeat-x 0 0; - margin: auto .25em; -} - -.yui-skin-sam .yui-button .first-child { - border-width: 0 1px; - border-style: solid; - border-color: #808080; - margin: 0 -1px; - _margin: 0; -} - -.yui-skin-sam .yui-button button, .yui-skin-sam .yui-button a { - padding: 0 10px; - font-size: 93%; - line-height: 2; - *line-height: 1.7; - min-height: 2em; - *min-height: auto; - color: #000; -} - -.yui-skin-sam .yui-button a { - *line-height: 1.875; - *padding-bottom: 1px; -} - -.yui-skin-sam .yui-split-button button, .yui-skin-sam .yui-menu-button button { - padding-right: 20px; - background-position: right center; - background-repeat: no-repeat; -} - -.yui-skin-sam .yui-menu-button button { - background-image: url(menu-button-arrow.png); -} - -.yui-skin-sam .yui-split-button button { - background-image: url(split-button-arrow.png); -} - -.yui-skin-sam .yui-button-focus { - border-color: #7D98B8; - background-position: 0 -1300px; -} - -.yui-skin-sam .yui-button-focus .first-child { - border-color: #7D98B8; -} - -.yui-skin-sam .yui-button-focus button, .yui-skin-sam .yui-button-focus a { - color: #000; -} - -.yui-skin-sam .yui-split-button-focus button { - background-image: url(split-button-arrow-focus.png); -} - -.yui-skin-sam .yui-button-hover { - border-color: #7D98B8; - background-position: 0 -1300px; -} - -.yui-skin-sam .yui-button-hover .first-child { - border-color: #7D98B8; -} - -.yui-skin-sam .yui-button-hover button, .yui-skin-sam .yui-button-hover a { - color: #000; -} - -.yui-skin-sam .yui-split-button-hover button { - background-image: url(split-button-arrow-hover.png); -} - -.yui-skin-sam .yui-button-active { - border-color: #7D98B8; - background-position: 0 -1700px; -} - -.yui-skin-sam .yui-button-active .first-child { - border-color: #7D98B8; -} - -.yui-skin-sam .yui-button-active button, .yui-skin-sam .yui-button-active a { - color: #000; -} - -.yui-skin-sam .yui-split-button-activeoption { - border-color: #808080; - background-position: 0 0; -} - -.yui-skin-sam .yui-split-button-activeoption .first-child { - border-color: #808080; -} - -.yui-skin-sam .yui-split-button-activeoption button { - background-image: url(split-button-arrow-active.png); -} - -.yui-skin-sam .yui-radio-button-checked, .yui-skin-sam .yui-checkbox-button-checked { - border-color: #304369; - background-position: 0 -1400px; -} - -.yui-skin-sam .yui-radio-button-checked .first-child, .yui-skin-sam .yui-checkbox-button-checked .first-child { - border-color: #304369; -} - -.yui-skin-sam .yui-radio-button-checked button, .yui-skin-sam .yui-checkbox-button-checked button { - color: #fff; -} - -.yui-skin-sam .yui-button-disabled { - border-color: #ccc; - background-position: 0 -1500px; -} - -.yui-skin-sam .yui-button-disabled .first-child { - border-color: #ccc; -} - -.yui-skin-sam .yui-button-disabled button, .yui-skin-sam .yui-button-disabled a { - color: #A6A6A6; - cursor: default; -} - -.yui-skin-sam .yui-menu-button-disabled button { - background-image: url(menu-button-arrow-disabled.png); -} - -.yui-skin-sam .yui-split-button-disabled button { - background-image: url(split-button-arrow-disabled.png); -} diff --git a/Resources/Public/jsDomainModeling/wireit/lib/yui/button/assets/skins/sam/menu-button-arrow-disabled.png b/Resources/Public/jsDomainModeling/wireit/lib/yui/button/assets/skins/sam/menu-button-arrow-disabled.png deleted file mode 100644 index 8cef2abb3..000000000 Binary files a/Resources/Public/jsDomainModeling/wireit/lib/yui/button/assets/skins/sam/menu-button-arrow-disabled.png and /dev/null differ diff --git a/Resources/Public/jsDomainModeling/wireit/lib/yui/button/assets/skins/sam/menu-button-arrow.png b/Resources/Public/jsDomainModeling/wireit/lib/yui/button/assets/skins/sam/menu-button-arrow.png deleted file mode 100644 index f03dfee4e..000000000 Binary files a/Resources/Public/jsDomainModeling/wireit/lib/yui/button/assets/skins/sam/menu-button-arrow.png and /dev/null differ diff --git a/Resources/Public/jsDomainModeling/wireit/lib/yui/button/assets/skins/sam/split-button-arrow-active.png b/Resources/Public/jsDomainModeling/wireit/lib/yui/button/assets/skins/sam/split-button-arrow-active.png deleted file mode 100644 index fa58c5030..000000000 Binary files a/Resources/Public/jsDomainModeling/wireit/lib/yui/button/assets/skins/sam/split-button-arrow-active.png and /dev/null differ diff --git a/Resources/Public/jsDomainModeling/wireit/lib/yui/button/assets/skins/sam/split-button-arrow-disabled.png b/Resources/Public/jsDomainModeling/wireit/lib/yui/button/assets/skins/sam/split-button-arrow-disabled.png deleted file mode 100644 index 0a6a82c64..000000000 Binary files a/Resources/Public/jsDomainModeling/wireit/lib/yui/button/assets/skins/sam/split-button-arrow-disabled.png and /dev/null differ diff --git a/Resources/Public/jsDomainModeling/wireit/lib/yui/button/assets/skins/sam/split-button-arrow-focus.png b/Resources/Public/jsDomainModeling/wireit/lib/yui/button/assets/skins/sam/split-button-arrow-focus.png deleted file mode 100644 index 167d71eb7..000000000 Binary files a/Resources/Public/jsDomainModeling/wireit/lib/yui/button/assets/skins/sam/split-button-arrow-focus.png and /dev/null differ diff --git a/Resources/Public/jsDomainModeling/wireit/lib/yui/button/assets/skins/sam/split-button-arrow-hover.png b/Resources/Public/jsDomainModeling/wireit/lib/yui/button/assets/skins/sam/split-button-arrow-hover.png deleted file mode 100644 index 167d71eb7..000000000 Binary files a/Resources/Public/jsDomainModeling/wireit/lib/yui/button/assets/skins/sam/split-button-arrow-hover.png and /dev/null differ diff --git a/Resources/Public/jsDomainModeling/wireit/lib/yui/button/assets/skins/sam/split-button-arrow.png b/Resources/Public/jsDomainModeling/wireit/lib/yui/button/assets/skins/sam/split-button-arrow.png deleted file mode 100644 index b33a93ff2..000000000 Binary files a/Resources/Public/jsDomainModeling/wireit/lib/yui/button/assets/skins/sam/split-button-arrow.png and /dev/null differ diff --git a/Resources/Public/jsDomainModeling/wireit/lib/yui/button/button-min.js b/Resources/Public/jsDomainModeling/wireit/lib/yui/button/button-min.js deleted file mode 100644 index 68255280f..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/yui/button/button-min.js +++ /dev/null @@ -1,1340 +0,0 @@ -/* - Copyright (c) 2009, Yahoo! Inc. All rights reserved. - Code licensed under the BSD License: - http://developer.yahoo.net/yui/license.txt - version: 2.7.0 - */ -(function() { - var G = YAHOO.util.Dom,M = YAHOO.util.Event,I = YAHOO.lang,L = YAHOO.env.ua,B = YAHOO.widget.Overlay,J = YAHOO.widget.Menu,D = {},K = null,E = null,C = null; - - function F(O, N, R, P) { - var S,Q; - if (I.isString(O) && I.isString(N)) { - if (L.ie) { - Q = ' 0) { - U.label = Q; - } - } - } - - function A(P) { - var O = P.attributes,N = O.srcelement,R = N.nodeName.toUpperCase(),Q = this; - if (R == this.NODE_NAME) { - P.element = N; - P.id = N.id; - G.getElementsBy(function(S) { - switch (S.nodeName.toUpperCase()) { - case"BUTTON": - case"A": - case"INPUT": - H.call(Q, S, O); - break; - } - }, "*", N); - } else { - switch (R) { - case"BUTTON": - case"A": - case"INPUT": - H.call(this, N, O); - break; - } - } - } - - YAHOO.widget.Button = function(R, O) { - if (!B && YAHOO.widget.Overlay) { - B = YAHOO.widget.Overlay; - } - if (!J && YAHOO.widget.Menu) { - J = YAHOO.widget.Menu; - } - var Q = YAHOO.widget.Button.superclass.constructor,P,N; - if (arguments.length == 1 && !I.isString(R) && !R.nodeName) { - if (!R.id) { - R.id = G.generateId(); - } - Q.call(this, (this.createButtonElement(R.type)), R); - } else { - P = {element:null,attributes:(O || {})}; - if (I.isString(R)) { - N = G.get(R); - if (N) { - if (!P.attributes.id) { - P.attributes.id = R; - } - P.attributes.srcelement = N; - A.call(this, P); - if (!P.element) { - P.element = this.createButtonElement(P.attributes.type); - } - Q.call(this, P.element, P.attributes); - } - } else { - if (R.nodeName) { - if (!P.attributes.id) { - if (R.id) { - P.attributes.id = R.id; - } else { - P.attributes.id = G.generateId(); - } - } - P.attributes.srcelement = R; - A.call(this, P); - if (!P.element) { - P.element = this.createButtonElement(P.attributes.type); - } - Q.call(this, P.element, P.attributes); - } - } - } - }; - YAHOO.extend(YAHOO.widget.Button, YAHOO.util.Element, {_button:null,_menu:null,_hiddenFields:null,_onclickAttributeValue:null,_activationKeyPressed:false,_activationButtonPressed:false,_hasKeyEventHandlers:false,_hasMouseEventHandlers:false,_nOptionRegionX:0,NODE_NAME:"SPAN",CHECK_ACTIVATION_KEYS:[32],ACTIVATION_KEYS:[13,32],OPTION_AREA_WIDTH:20,CSS_CLASS_NAME:"yui-button",RADIO_DEFAULT_TITLE:"Unchecked. Click to check.",RADIO_CHECKED_TITLE:"Checked. Click another button to uncheck",CHECKBOX_DEFAULT_TITLE:"Unchecked. Click to check.",CHECKBOX_CHECKED_TITLE:"Checked. Click to uncheck.",MENUBUTTON_DEFAULT_TITLE:"Menu collapsed. Click to expand.",MENUBUTTON_MENU_VISIBLE_TITLE:"Menu expanded. Click or press Esc to collapse.",SPLITBUTTON_DEFAULT_TITLE:("Menu collapsed. Click inside option " + "region or press down arrow key to show the menu."),SPLITBUTTON_OPTION_VISIBLE_TITLE:"Menu expanded. Press Esc to hide the menu.",SUBMIT_TITLE:"Click to submit form.",_setType:function(N) { - if (N == "split") { - this.on("option", this._onOption); - } - },_setLabel:function(O) { - this._button.innerHTML = O; - var P,N = L.gecko; - if (N && N < 1.9 && G.inDocument(this.get("element"))) { - P = this.CSS_CLASS_NAME; - this.removeClass(P); - I.later(0, this, this.addClass, P); - } - },_setTabIndex:function(N) { - this._button.tabIndex = N; - },_setTitle:function(O) { - var N = O; - if (this.get("type") != "link") { - if (!N) { - switch (this.get("type")) { - case"radio": - N = this.RADIO_DEFAULT_TITLE; - break; - case"checkbox": - N = this.CHECKBOX_DEFAULT_TITLE; - break; - case"menu": - N = this.MENUBUTTON_DEFAULT_TITLE; - break; - case"split": - N = this.SPLITBUTTON_DEFAULT_TITLE; - break; - case"submit": - N = this.SUBMIT_TITLE; - break; - } - } - this._button.title = N; - } - },_setDisabled:function(N) { - if (this.get("type") != "link") { - if (N) { - if (this._menu) { - this._menu.hide(); - } - if (this.hasFocus()) { - this.blur(); - } - this._button.setAttribute("disabled", "disabled"); - this.addStateCSSClasses("disabled"); - this.removeStateCSSClasses("hover"); - this.removeStateCSSClasses("active"); - this.removeStateCSSClasses("focus"); - } else { - this._button.removeAttribute("disabled"); - this.removeStateCSSClasses("disabled"); - } - } - },_setHref:function(N) { - if (this.get("type") == "link") { - this._button.href = N; - } - },_setTarget:function(N) { - if (this.get("type") == "link") { - this._button.setAttribute("target", N); - } - },_setChecked:function(O) { - var P = this.get("type"),N; - if (P == "checkbox" || P == "radio") { - if (O) { - this.addStateCSSClasses("checked"); - N = (P == "radio") ? this.RADIO_CHECKED_TITLE : this.CHECKBOX_CHECKED_TITLE; - } else { - this.removeStateCSSClasses("checked"); - N = (P == "radio") ? this.RADIO_DEFAULT_TITLE : this.CHECKBOX_DEFAULT_TITLE; - } - if (!this._hasDefaultTitle) { - this.set("title", N); - } - } - },_setMenu:function(U) { - var P = this.get("lazyloadmenu"),R = this.get("element"),N,W = false,X,O,Q; - - function V() { - X.render(R.parentNode); - this.removeListener("appendTo", V); - } - - function T() { - X.cfg.queueProperty("container", R.parentNode); - this.removeListener("appendTo", T); - } - - function S() { - var Y; - if (X) { - G.addClass(X.element, this.get("menuclassname")); - G.addClass(X.element, "yui-" + this.get("type") + "-button-menu"); - X.showEvent.subscribe(this._onMenuShow, null, this); - X.hideEvent.subscribe(this._onMenuHide, null, this); - X.renderEvent.subscribe(this._onMenuRender, null, this); - if (J && X instanceof J) { - if (P) { - Y = this.get("container"); - if (Y) { - X.cfg.queueProperty("container", Y); - } else { - this.on("appendTo", T); - } - } - X.cfg.queueProperty("clicktohide", false); - X.keyDownEvent.subscribe(this._onMenuKeyDown, this, true); - X.subscribe("click", this._onMenuClick, this, true); - this.on("selectedMenuItemChange", this._onSelectedMenuItemChange); - Q = X.srcElement; - if (Q && Q.nodeName.toUpperCase() == "SELECT") { - Q.style.display = "none"; - Q.parentNode.removeChild(Q); - } - } else { - if (B && X instanceof B) { - if (!K) { - K = new YAHOO.widget.OverlayManager(); - } - K.register(X); - } - } - this._menu = X; - if (!W && !P) { - if (G.inDocument(R)) { - X.render(R.parentNode); - } else { - this.on("appendTo", V); - } - } - } - } - - if (B) { - if (J) { - N = J.prototype.CSS_CLASS_NAME; - } - if (U && J && (U instanceof J)) { - X = U; - W = true; - S.call(this); - } else { - if (B && U && (U instanceof B)) { - X = U; - W = true; - X.cfg.queueProperty("visible", false); - S.call(this); - } else { - if (J && I.isArray(U)) { - X = new J(G.generateId(), {lazyload:P,itemdata:U}); - this._menu = X; - this.on("appendTo", S); - } else { - if (I.isString(U)) { - O = G.get(U); - if (O) { - if (J && G.hasClass(O, N) || O.nodeName.toUpperCase() == "SELECT") { - X = new J(U, {lazyload:P}); - S.call(this); - } else { - if (B) { - X = new B(U, {visible:false}); - S.call(this); - } - } - } - } else { - if (U && U.nodeName) { - if (J && G.hasClass(U, N) || U.nodeName.toUpperCase() == "SELECT") { - X = new J(U, {lazyload:P}); - S.call(this); - } else { - if (B) { - if (!U.id) { - G.generateId(U); - } - X = new B(U, {visible:false}); - S.call(this); - } - } - } - } - } - } - } - } - },_setOnClick:function(N) { - if (this._onclickAttributeValue && (this._onclickAttributeValue != N)) { - this.removeListener("click", this._onclickAttributeValue.fn); - this._onclickAttributeValue = null; - } - if (!this._onclickAttributeValue && I.isObject(N) && I.isFunction(N.fn)) { - this.on("click", N.fn, N.obj, N.scope); - this._onclickAttributeValue = N; - } - },_isActivationKey:function(N) { - var S = this.get("type"),O = (S == "checkbox" || S == "radio") ? this.CHECK_ACTIVATION_KEYS : this.ACTIVATION_KEYS,Q = O.length,R = false,P; - if (Q > 0) { - P = Q - 1; - do{ - if (N == O[P]) { - R = true; - break; - } - } while (P--); - } - return R; - },_isSplitButtonOptionKey:function(P) { - var O = (M.getCharCode(P) == 40); - var N = function(Q) { - M.preventDefault(Q); - this.removeListener("keypress", N); - }; - if (O) { - if (L.opera) { - this.on("keypress", N); - } - M.preventDefault(P); - } - return O; - },_addListenersToForm:function() { - var T = this.getForm(),S = YAHOO.widget.Button.onFormKeyPress,R,N,Q,P,O; - if (T) { - M.on(T, "reset", this._onFormReset, null, this); - M.on(T, "submit", this._onFormSubmit, null, this); - N = this.get("srcelement"); - if (this.get("type") == "submit" || (N && N.type == "submit")) { - Q = M.getListeners(T, "keypress"); - R = false; - if (Q) { - P = Q.length; - if (P > 0) { - O = P - 1; - do{ - if (Q[O].fn == S) { - R = true; - break; - } - } while (O--); - } - } - if (!R) { - M.on(T, "keypress", S); - } - } - } - },_showMenu:function(R) { - if (YAHOO.widget.MenuManager) { - YAHOO.widget.MenuManager.hideVisible(); - } - if (K) { - K.hideAll(); - } - var N = this._menu,Q = this.get("menualignment"),P = this.get("focusmenu"),O; - if (this._renderedMenu) { - N.cfg.setProperty("context", [this.get("element"),Q[0],Q[1]]); - N.cfg.setProperty("preventcontextoverlap", true); - N.cfg.setProperty("constraintoviewport", true); - } else { - N.cfg.queueProperty("context", [this.get("element"),Q[0],Q[1]]); - N.cfg.queueProperty("preventcontextoverlap", true); - N.cfg.queueProperty("constraintoviewport", true); - } - this.focus(); - if (J && N && (N instanceof J)) { - O = N.focus; - N.focus = function() { - }; - if (this._renderedMenu) { - N.cfg.setProperty("minscrollheight", this.get("menuminscrollheight")); - N.cfg.setProperty("maxheight", this.get("menumaxheight")); - } else { - N.cfg.queueProperty("minscrollheight", this.get("menuminscrollheight")); - N.cfg.queueProperty("maxheight", this.get("menumaxheight")); - } - N.show(); - N.focus = O; - N.align(); - if (R.type == "mousedown") { - M.stopPropagation(R); - } - if (P) { - N.focus(); - } - } else { - if (B && N && (N instanceof B)) { - if (!this._renderedMenu) { - N.render(this.get("element").parentNode); - } - N.show(); - N.align(); - } - } - },_hideMenu:function() { - var N = this._menu; - if (N) { - N.hide(); - } - },_onMouseOver:function(O) { - var Q = this.get("type"),N,P; - if (Q === "split") { - N = this.get("element"); - P = (G.getX(N) + (N.offsetWidth - this.OPTION_AREA_WIDTH)); - this._nOptionRegionX = P; - } - if (!this._hasMouseEventHandlers) { - if (Q === "split") { - this.on("mousemove", this._onMouseMove); - } - this.on("mouseout", this._onMouseOut); - this._hasMouseEventHandlers = true; - } - this.addStateCSSClasses("hover"); - if (Q === "split" && (M.getPageX(O) > P)) { - this.addStateCSSClasses("hoveroption"); - } - if (this._activationButtonPressed) { - this.addStateCSSClasses("active"); - } - if (this._bOptionPressed) { - this.addStateCSSClasses("activeoption"); - } - if (this._activationButtonPressed || this._bOptionPressed) { - M.removeListener(document, "mouseup", this._onDocumentMouseUp); - } - },_onMouseMove:function(N) { - var O = this._nOptionRegionX; - if (O) { - if (M.getPageX(N) > O) { - this.addStateCSSClasses("hoveroption"); - } else { - this.removeStateCSSClasses("hoveroption"); - } - } - },_onMouseOut:function(N) { - var O = this.get("type"); - this.removeStateCSSClasses("hover"); - if (O != "menu") { - this.removeStateCSSClasses("active"); - } - if (this._activationButtonPressed || this._bOptionPressed) { - M.on(document, "mouseup", this._onDocumentMouseUp, null, this); - } - if (O === "split" && (M.getPageX(N) > this._nOptionRegionX)) { - this.removeStateCSSClasses("hoveroption"); - } - },_onDocumentMouseUp:function(P) { - this._activationButtonPressed = false; - this._bOptionPressed = false; - var Q = this.get("type"),N,O; - if (Q == "menu" || Q == "split") { - N = M.getTarget(P); - O = this._menu.element; - if (N != O && !G.isAncestor(O, N)) { - this.removeStateCSSClasses((Q == "menu" ? "active" : "activeoption")); - this._hideMenu(); - } - } - M.removeListener(document, "mouseup", this._onDocumentMouseUp); - },_onMouseDown:function(P) { - var Q,O = true; - - function N() { - this._hideMenu(); - this.removeListener("mouseup", N); - } - - if ((P.which || P.button) == 1) { - if (!this.hasFocus()) { - this.focus(); - } - Q = this.get("type"); - if (Q == "split") { - if (M.getPageX(P) > this._nOptionRegionX) { - this.fireEvent("option", P); - O = false; - } else { - this.addStateCSSClasses("active"); - this._activationButtonPressed = true; - } - } else { - if (Q == "menu") { - if (this.isActive()) { - this._hideMenu(); - this._activationButtonPressed = false; - } else { - this._showMenu(P); - this._activationButtonPressed = true; - } - } else { - this.addStateCSSClasses("active"); - this._activationButtonPressed = true; - } - } - if (Q == "split" || Q == "menu") { - this._hideMenuTimer = I.later(250, this, this.on, ["mouseup",N]); - } - } - return O; - },_onMouseUp:function(P) { - var Q = this.get("type"),N = this._hideMenuTimer,O = true; - if (N) { - N.cancel(); - } - if (Q == "checkbox" || Q == "radio") { - this.set("checked", !(this.get("checked"))); - } - this._activationButtonPressed = false; - if (Q != "menu") { - this.removeStateCSSClasses("active"); - } - if (Q == "split" && M.getPageX(P) > this._nOptionRegionX) { - O = false; - } - return O; - },_onFocus:function(O) { - var N; - this.addStateCSSClasses("focus"); - if (this._activationKeyPressed) { - this.addStateCSSClasses("active"); - } - C = this; - if (!this._hasKeyEventHandlers) { - N = this._button; - M.on(N, "blur", this._onBlur, null, this); - M.on(N, "keydown", this._onKeyDown, null, this); - M.on(N, "keyup", this._onKeyUp, null, this); - this._hasKeyEventHandlers = true; - } - this.fireEvent("focus", O); - },_onBlur:function(N) { - this.removeStateCSSClasses("focus"); - if (this.get("type") != "menu") { - this.removeStateCSSClasses("active"); - } - if (this._activationKeyPressed) { - M.on(document, "keyup", this._onDocumentKeyUp, null, this); - } - C = null; - this.fireEvent("blur", N); - },_onDocumentKeyUp:function(N) { - if (this._isActivationKey(M.getCharCode(N))) { - this._activationKeyPressed = false; - M.removeListener(document, "keyup", this._onDocumentKeyUp); - } - },_onKeyDown:function(O) { - var N = this._menu; - if (this.get("type") == "split" && this._isSplitButtonOptionKey(O)) { - this.fireEvent("option", O); - } else { - if (this._isActivationKey(M.getCharCode(O))) { - if (this.get("type") == "menu") { - this._showMenu(O); - } else { - this._activationKeyPressed = true; - this.addStateCSSClasses("active"); - } - } - } - if (N && N.cfg.getProperty("visible") && M.getCharCode(O) == 27) { - N.hide(); - this.focus(); - } - },_onKeyUp:function(N) { - var O; - if (this._isActivationKey(M.getCharCode(N))) { - O = this.get("type"); - if (O == "checkbox" || O == "radio") { - this.set("checked", !(this.get("checked"))); - } - this._activationKeyPressed = false; - if (this.get("type") != "menu") { - this.removeStateCSSClasses("active"); - } - } - },_onClick:function(Q) { - var S = this.get("type"),N,R,O,P; - switch (S) { - case"radio": - case"checkbox": - if (!this._hasDefaultTitle) { - if (this.get("checked")) { - N = (S == "radio") ? this.RADIO_CHECKED_TITLE : this.CHECKBOX_CHECKED_TITLE; - } else { - N = (S == "radio") ? this.RADIO_DEFAULT_TITLE : this.CHECKBOX_DEFAULT_TITLE; - } - this.set("title", N); - } - break; - case"submit": - if (Q.returnValue !== false) { - this.submitForm(); - } - break; - case"reset": - R = this.getForm(); - if (R) { - R.reset(); - } - break; - case"menu": - N = this._menu.cfg.getProperty("visible") ? this.MENUBUTTON_MENU_VISIBLE_TITLE : this.MENUBUTTON_DEFAULT_TITLE; - this.set("title", N); - break; - case"split": - if (this._nOptionRegionX > 0 && (M.getPageX(Q) > this._nOptionRegionX)) { - P = false; - } else { - this._hideMenu(); - O = this.get("srcelement"); - if (O && O.type == "submit" && Q.returnValue !== false) { - this.submitForm(); - } - } - N = this._menu.cfg.getProperty("visible") ? this.SPLITBUTTON_OPTION_VISIBLE_TITLE : this.SPLITBUTTON_DEFAULT_TITLE; - this.set("title", N); - break; - } - return P; - },_onDblClick:function(O) { - var N = true; - if (this.get("type") == "split" && M.getPageX(O) > this._nOptionRegionX) { - N = false; - } - return N; - },_onAppendTo:function(N) { - I.later(0, this, this._addListenersToForm); - },_onFormReset:function(O) { - var P = this.get("type"),N = this._menu; - if (P == "checkbox" || P == "radio") { - this.resetValue("checked"); - } - if (J && N && (N instanceof J)) { - this.resetValue("selectedMenuItem"); - } - },_onFormSubmit:function(N) { - this.createHiddenFields(); - },_onDocumentMouseDown:function(Q) { - var N = M.getTarget(Q),P = this.get("element"),O = this._menu.element; - if (N != P && !G.isAncestor(P, N) && N != O && !G.isAncestor(O, N)) { - this._hideMenu(); - M.removeListener(document, "mousedown", this._onDocumentMouseDown); - } - },_onOption:function(N) { - if (this.hasClass("yui-split-button-activeoption")) { - this._hideMenu(); - this._bOptionPressed = false; - } else { - this._showMenu(N); - this._bOptionPressed = true; - } - },_onMenuShow:function(O) { - M.on(document, "mousedown", this._onDocumentMouseDown, null, this); - var N,P; - if (this.get("type") == "split") { - N = this.SPLITBUTTON_OPTION_VISIBLE_TITLE; - P = "activeoption"; - } else { - N = this.MENUBUTTON_MENU_VISIBLE_TITLE; - P = "active"; - } - this.addStateCSSClasses(P); - this.set("title", N); - },_onMenuHide:function(P) { - var O = this._menu,N,Q; - if (this.get("type") == "split") { - N = this.SPLITBUTTON_DEFAULT_TITLE; - Q = "activeoption"; - } else { - N = this.MENUBUTTON_DEFAULT_TITLE; - Q = "active"; - } - this.removeStateCSSClasses(Q); - this.set("title", N); - if (this.get("type") == "split") { - this._bOptionPressed = false; - } - },_onMenuKeyDown:function(P, O) { - var N = O[0]; - if (M.getCharCode(N) == 27) { - this.focus(); - if (this.get("type") == "split") { - this._bOptionPressed = false; - } - } - },_onMenuRender:function(P) { - var S = this.get("element"),O = S.parentNode,N = this._menu,R = N.element,Q = N.srcElement; - if (O != R.parentNode) { - O.appendChild(R); - } - this._renderedMenu = true; - if (Q && Q.nodeName.toLowerCase() === "select" && Q.value) { - this.set("selectedMenuItem", N.getItem(Q.selectedIndex)); - } - },_onMenuClick:function(O, N) { - var Q = N[1],P; - if (Q) { - this.set("selectedMenuItem", Q); - P = this.get("srcelement"); - if (P && P.type == "submit") { - this.submitForm(); - } - this._hideMenu(); - } - },_onSelectedMenuItemChange:function(N) { - var O = N.prevValue,P = N.newValue; - if (O) { - G.removeClass(O.element, "yui-button-selectedmenuitem"); - } - if (P) { - G.addClass(P.element, "yui-button-selectedmenuitem"); - } - },createButtonElement:function(N) { - var P = this.NODE_NAME,O = document.createElement(P); - O.innerHTML = "<" + P + ' class="first-child">' + (N == "link" ? "" : '') + ""; - return O; - },addStateCSSClasses:function(N) { - var O = this.get("type"); - if (I.isString(N)) { - if (N != "activeoption" && N != "hoveroption") { - this.addClass(this.CSS_CLASS_NAME + ("-" + N)); - } - this.addClass("yui-" + O + ("-button-" + N)); - } - },removeStateCSSClasses:function(N) { - var O = this.get("type"); - if (I.isString(N)) { - this.removeClass(this.CSS_CLASS_NAME + ("-" + N)); - this.removeClass("yui-" + O + ("-button-" + N)); - } - },createHiddenFields:function() { - this.removeHiddenFields(); - var V = this.getForm(),Z,O,S,X,Y,T,U,N,R,W,P,Q = false; - if (V && !this.get("disabled")) { - O = this.get("type"); - S = (O == "checkbox" || O == "radio"); - if ((S && this.get("checked")) || (E == this)) { - Z = F((S ? O : "hidden"), this.get("name"), this.get("value"), this.get("checked")); - if (Z) { - if (S) { - Z.style.display = "none"; - } - V.appendChild(Z); - } - } - X = this._menu; - if (J && X && (X instanceof J)) { - Y = this.get("selectedMenuItem"); - P = X.srcElement; - Q = (P && P.nodeName.toUpperCase() == "SELECT"); - if (Y) { - U = (Y.value === null || Y.value === "") ? Y.cfg.getProperty("text") : Y.value; - T = this.get("name"); - if (Q) { - W = P.name; - } else { - if (T) { - W = (T + "_options"); - } - } - if (U && W) { - N = F("hidden", W, U); - V.appendChild(N); - } - } else { - if (Q) { - V.appendChild(P); - } - } - } - if (Z && N) { - this._hiddenFields = [Z,N]; - } else { - if (!Z && N) { - this._hiddenFields = N; - } else { - if (Z && !N) { - this._hiddenFields = Z; - } - } - } - R = this._hiddenFields; - } - return R; - },removeHiddenFields:function() { - var Q = this._hiddenFields,O,P; - - function N(R) { - if (G.inDocument(R)) { - R.parentNode.removeChild(R); - } - } - - if (Q) { - if (I.isArray(Q)) { - O = Q.length; - if (O > 0) { - P = O - 1; - do{ - N(Q[P]); - } while (P--); - } - } else { - N(Q); - } - this._hiddenFields = null; - } - },submitForm:function() { - var Q = this.getForm(),P = this.get("srcelement"),O = false,N; - if (Q) { - if (this.get("type") == "submit" || (P && P.type == "submit")) { - E = this; - } - if (L.ie) { - O = Q.fireEvent("onsubmit"); - } else { - N = document.createEvent("HTMLEvents"); - N.initEvent("submit", true, true); - O = Q.dispatchEvent(N); - } - if ((L.ie || L.webkit) && O) { - Q.submit(); - } - } - return O; - },init:function(O, a) { - var Q = a.type == "link" ? "a" : "button",V = a.srcelement,Z = O.getElementsByTagName(Q)[0],X; - if (!Z) { - X = O.getElementsByTagName("input")[0]; - if (X) { - Z = document.createElement("button"); - Z.setAttribute("type", "button"); - X.parentNode.replaceChild(Z, X); - } - } - this._button = Z; - this._hasDefaultTitle = (a.title && a.title.length > 0); - YAHOO.widget.Button.superclass.init.call(this, O, a); - var T = this.get("id"),N = T + "-button"; - Z.id = N; - var U,W; - var d = function(e) { - return(e.htmlFor === T); - }; - var S = function() { - W.setAttribute((L.ie ? "htmlFor" : "for"), N); - }; - if (V && this.get("type") != "link") { - U = G.getElementsBy(d, "label"); - if (I.isArray(U) && U.length > 0) { - W = U[0]; - } - } - D[T] = this; - this.addClass(this.CSS_CLASS_NAME); - this.addClass("yui-" + this.get("type") + "-button"); - M.on(this._button, "focus", this._onFocus, null, this); - this.on("mouseover", this._onMouseOver); - this.on("mousedown", this._onMouseDown); - this.on("mouseup", this._onMouseUp); - this.on("click", this._onClick); - var Y = this.get("onclick"); - this.set("onclick", null); - this.set("onclick", Y); - this.on("dblclick", this._onDblClick); - if (W) { - this.on("appendTo", S); - } - this.on("appendTo", this._onAppendTo); - var c = this.get("container"),P = this.get("element"),b = G.inDocument(P),R; - if (c) { - if (V && V != P) { - R = V.parentNode; - if (R) { - R.removeChild(V); - } - } - if (I.isString(c)) { - M.onContentReady(c, this.appendTo, c, this); - } else { - this.on("init", function() { - I.later(0, this, this.appendTo, c); - }); - } - } else { - if (!b && V && V != P) { - R = V.parentNode; - if (R) { - this.fireEvent("beforeAppendTo", {type:"beforeAppendTo",target:R}); - R.replaceChild(P, V); - this.fireEvent("appendTo", {type:"appendTo",target:R}); - } - } else { - if (this.get("type") != "link" && b && V && V == P) { - this._addListenersToForm(); - } - } - } - this.fireEvent("init", {type:"init",target:this}); - },initAttributes:function(O) { - var N = O || {}; - YAHOO.widget.Button.superclass.initAttributes.call(this, N); - this.setAttributeConfig("type", {value:(N.type || "push"),validator:I.isString,writeOnce:true,method:this._setType}); - this.setAttributeConfig("label", {value:N.label,validator:I.isString,method:this._setLabel}); - this.setAttributeConfig("value", {value:N.value}); - this.setAttributeConfig("name", {value:N.name,validator:I.isString}); - this.setAttributeConfig("tabindex", {value:N.tabindex,validator:I.isNumber,method:this._setTabIndex}); - this.configureAttribute("title", {value:N.title,validator:I.isString,method:this._setTitle}); - this.setAttributeConfig("disabled", {value:(N.disabled || false),validator:I.isBoolean,method:this._setDisabled}); - this.setAttributeConfig("href", {value:N.href,validator:I.isString,method:this._setHref}); - this.setAttributeConfig("target", {value:N.target,validator:I.isString,method:this._setTarget}); - this.setAttributeConfig("checked", {value:(N.checked || false),validator:I.isBoolean,method:this._setChecked}); - this.setAttributeConfig("container", {value:N.container,writeOnce:true}); - this.setAttributeConfig("srcelement", {value:N.srcelement,writeOnce:true}); - this.setAttributeConfig("menu", {value:null,method:this._setMenu,writeOnce:true}); - this.setAttributeConfig("lazyloadmenu", {value:(N.lazyloadmenu === false ? false : true),validator:I.isBoolean,writeOnce:true}); - this.setAttributeConfig("menuclassname", {value:(N.menuclassname || "yui-button-menu"),validator:I.isString,method:this._setMenuClassName,writeOnce:true}); - this.setAttributeConfig("menuminscrollheight", {value:(N.menuminscrollheight || 90),validator:I.isNumber}); - this.setAttributeConfig("menumaxheight", {value:(N.menumaxheight || 0),validator:I.isNumber}); - this.setAttributeConfig("menualignment", {value:(N.menualignment || ["tl","bl"]),validator:I.isArray}); - this.setAttributeConfig("selectedMenuItem", {value:null}); - this.setAttributeConfig("onclick", {value:N.onclick,method:this._setOnClick}); - this.setAttributeConfig("focusmenu", {value:(N.focusmenu === false ? false : true),validator:I.isBoolean}); - },focus:function() { - if (!this.get("disabled")) { - this._button.focus(); - } - },blur:function() { - if (!this.get("disabled")) { - this._button.blur(); - } - },hasFocus:function() { - return(C == this); - },isActive:function() { - return this.hasClass(this.CSS_CLASS_NAME + "-active"); - },getMenu:function() { - return this._menu; - },getForm:function() { - var N = this._button,O; - if (N) { - O = N.form; - } - return O; - },getHiddenFields:function() { - return this._hiddenFields; - },destroy:function() { - var P = this.get("element"),O = P.parentNode,N = this._menu,R; - if (N) { - if (K && K.find(N)) { - K.remove(N); - } - N.destroy(); - } - M.purgeElement(P); - M.purgeElement(this._button); - M.removeListener(document, "mouseup", this._onDocumentMouseUp); - M.removeListener(document, "keyup", this._onDocumentKeyUp); - M.removeListener(document, "mousedown", this._onDocumentMouseDown); - var Q = this.getForm(); - if (Q) { - M.removeListener(Q, "reset", this._onFormReset); - M.removeListener(Q, "submit", this._onFormSubmit); - } - this.unsubscribeAll(); - if (O) { - O.removeChild(P); - } - delete D[this.get("id")]; - R = G.getElementsByClassName(this.CSS_CLASS_NAME, this.NODE_NAME, Q); - if (I.isArray(R) && R.length === 0) { - M.removeListener(Q, "keypress", YAHOO.widget.Button.onFormKeyPress); - } - },fireEvent:function(O, N) { - var P = arguments[0]; - if (this.DOM_EVENTS[P] && this.get("disabled")) { - return false; - } - return YAHOO.widget.Button.superclass.fireEvent.apply(this, arguments); - },toString:function() { - return("Button " + this.get("id")); - }}); - YAHOO.widget.Button.onFormKeyPress = function(R) { - var P = M.getTarget(R),S = M.getCharCode(R),Q = P.nodeName && P.nodeName.toUpperCase(),N = P.type,T = false,V,X,O,W; - - function U(a) { - var Z,Y; - switch (a.nodeName.toUpperCase()) { - case"INPUT": - case"BUTTON": - if (a.type == "submit" && !a.disabled) { - if (!T && !O) { - O = a; - } - } - break; - default: - Z = a.id; - if (Z) { - V = D[Z]; - if (V) { - T = true; - if (!V.get("disabled")) { - Y = V.get("srcelement"); - if (!X && (V.get("type") == "submit" || (Y && Y.type == "submit"))) { - X = V; - } - } - } - } - break; - } - } - - if (S == 13 && ((Q == "INPUT" && (N == "text" || N == "password" || N == "checkbox" || N == "radio" || N == "file")) || Q == "SELECT")) { - G.getElementsBy(U, "*", this); - if (O) { - O.focus(); - } else { - if (!O && X) { - M.preventDefault(R); - if (L.ie) { - X.get("element").fireEvent("onclick"); - } else { - W = document.createEvent("HTMLEvents"); - W.initEvent("click", true, true); - if (L.gecko < 1.9) { - X.fireEvent("click", W); - } else { - X.get("element").dispatchEvent(W); - } - } - } - } - } - }; - YAHOO.widget.Button.addHiddenFieldsToForm = function(N) { - var S = G.getElementsByClassName(YAHOO.widget.Button.prototype.CSS_CLASS_NAME, "*", N),Q = S.length,R,O,P; - if (Q > 0) { - for (P = 0; P < Q; P++) { - O = S[P].id; - if (O) { - R = D[O]; - if (R) { - R.createHiddenFields(); - } - } - } - } - }; - YAHOO.widget.Button.getButton = function(N) { - return D[N]; - }; -})(); -(function() { - var C = YAHOO.util.Dom,B = YAHOO.util.Event,D = YAHOO.lang,A = YAHOO.widget.Button,E = {}; - YAHOO.widget.ButtonGroup = function(J, H) { - var I = YAHOO.widget.ButtonGroup.superclass.constructor,K,G,F; - if (arguments.length == 1 && !D.isString(J) && !J.nodeName) { - if (!J.id) { - F = C.generateId(); - J.id = F; - } - I.call(this, (this._createGroupElement()), J); - } else { - if (D.isString(J)) { - G = C.get(J); - if (G) { - if (G.nodeName.toUpperCase() == this.NODE_NAME) { - I.call(this, G, H); - } - } - } else { - K = J.nodeName.toUpperCase(); - if (K && K == this.NODE_NAME) { - if (!J.id) { - J.id = C.generateId(); - } - I.call(this, J, H); - } - } - } - }; - YAHOO.extend(YAHOO.widget.ButtonGroup, YAHOO.util.Element, {_buttons:null,NODE_NAME:"DIV",CSS_CLASS_NAME:"yui-buttongroup",_createGroupElement:function() { - var F = document.createElement(this.NODE_NAME); - return F; - },_setDisabled:function(G) { - var H = this.getCount(),F; - if (H > 0) { - F = H - 1; - do{ - this._buttons[F].set("disabled", G); - } while (F--); - } - },_onKeyDown:function(K) { - var G = B.getTarget(K),I = B.getCharCode(K),H = G.parentNode.parentNode.id,J = E[H],F = -1; - if (I == 37 || I == 38) { - F = (J.index === 0) ? (this._buttons.length - 1) : (J.index - 1); - } else { - if (I == 39 || I == 40) { - F = (J.index === (this._buttons.length - 1)) ? 0 : (J.index + 1); - } - } - if (F > -1) { - this.check(F); - this.getButton(F).focus(); - } - },_onAppendTo:function(H) { - var I = this._buttons,G = I.length,F; - for (F = 0; F < G; F++) { - I[F].appendTo(this.get("element")); - } - },_onButtonCheckedChange:function(G, F) { - var I = G.newValue,H = this.get("checkedButton"); - if (I && H != F) { - if (H) { - H.set("checked", false, true); - } - this.set("checkedButton", F); - this.set("value", F.get("value")); - } else { - if (H && !H.set("checked")) { - H.set("checked", true, true); - } - } - },init:function(I, H) { - this._buttons = []; - YAHOO.widget.ButtonGroup.superclass.init.call(this, I, H); - this.addClass(this.CSS_CLASS_NAME); - var J = this.getElementsByClassName("yui-radio-button"); - if (J.length > 0) { - this.addButtons(J); - } - function F(K) { - return(K.type == "radio"); - } - - J = C.getElementsBy(F, "input", this.get("element")); - if (J.length > 0) { - this.addButtons(J); - } - this.on("keydown", this._onKeyDown); - this.on("appendTo", this._onAppendTo); - var G = this.get("container"); - if (G) { - if (D.isString(G)) { - B.onContentReady(G, function() { - this.appendTo(G); - }, null, this); - } else { - this.appendTo(G); - } - } - },initAttributes:function(G) { - var F = G || {}; - YAHOO.widget.ButtonGroup.superclass.initAttributes.call(this, F); - this.setAttributeConfig("name", {value:F.name,validator:D.isString}); - this.setAttributeConfig("disabled", {value:(F.disabled || false),validator:D.isBoolean,method:this._setDisabled}); - this.setAttributeConfig("value", {value:F.value}); - this.setAttributeConfig("container", {value:F.container,writeOnce:true}); - this.setAttributeConfig("checkedButton", {value:null}); - },addButton:function(J) { - var L,K,G,F,H,I; - if (J instanceof A && J.get("type") == "radio") { - L = J; - } else { - if (!D.isString(J) && !J.nodeName) { - J.type = "radio"; - L = new A(J); - } else { - L = new A(J, {type:"radio"}); - } - } - if (L) { - F = this._buttons.length; - H = L.get("name"); - I = this.get("name"); - L.index = F; - this._buttons[F] = L; - E[L.get("id")] = L; - if (H != I) { - L.set("name", I); - } - if (this.get("disabled")) { - L.set("disabled", true); - } - if (L.get("checked")) { - this.set("checkedButton", L); - } - K = L.get("element"); - G = this.get("element"); - if (K.parentNode != G) { - G.appendChild(K); - } - L.on("checkedChange", this._onButtonCheckedChange, L, this); - } - return L; - },addButtons:function(G) { - var H,I,J,F; - if (D.isArray(G)) { - H = G.length; - J = []; - if (H > 0) { - for (F = 0; F < H; F++) { - I = this.addButton(G[F]); - if (I) { - J[J.length] = I; - } - } - } - } - return J; - },removeButton:function(H) { - var I = this.getButton(H),G,F; - if (I) { - this._buttons.splice(H, 1); - delete E[I.get("id")]; - I.removeListener("checkedChange", this._onButtonCheckedChange); - I.destroy(); - G = this._buttons.length; - if (G > 0) { - F = this._buttons.length - 1; - do{ - this._buttons[F].index = F; - } while (F--); - } - } - },getButton:function(F) { - return this._buttons[F]; - },getButtons:function() { - return this._buttons; - },getCount:function() { - return this._buttons.length; - },focus:function(H) { - var I,G,F; - if (D.isNumber(H)) { - I = this._buttons[H]; - if (I) { - I.focus(); - } - } else { - G = this.getCount(); - for (F = 0; F < G; F++) { - I = this._buttons[F]; - if (!I.get("disabled")) { - I.focus(); - break; - } - } - } - },check:function(F) { - var G = this.getButton(F); - if (G) { - G.set("checked", true); - } - },destroy:function() { - var I = this._buttons.length,H = this.get("element"),F = H.parentNode,G; - if (I > 0) { - G = this._buttons.length - 1; - do{ - this._buttons[G].destroy(); - } while (G--); - } - B.purgeElement(H); - F.removeChild(H); - },toString:function() { - return("ButtonGroup " + this.get("id")); - }}); -})(); -YAHOO.register("button", YAHOO.widget.Button, {version:"2.7.0",build:"1799"}); \ No newline at end of file diff --git a/Resources/Public/jsDomainModeling/wireit/lib/yui/connection/connection-min.js b/Resources/Public/jsDomainModeling/wireit/lib/yui/connection/connection-min.js deleted file mode 100644 index e52feae54..000000000 --- a/Resources/Public/jsDomainModeling/wireit/lib/yui/connection/connection-min.js +++ /dev/null @@ -1,521 +0,0 @@ -/* - Copyright (c) 2009, Yahoo! Inc. All rights reserved. - Code licensed under the BSD License: - http://developer.yahoo.net/yui/license.txt - version: 2.7.0 - */ -YAHOO.util.Connect = {_msxml_progid:["Microsoft.XMLHTTP","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP"],_http_headers:{},_has_http_headers:false,_use_default_post_header:true,_default_post_header:"application/x-www-form-urlencoded; charset=UTF-8",_default_form_header:"application/x-www-form-urlencoded",_use_default_xhr_header:true,_default_xhr_header:"XMLHttpRequest",_has_default_headers:true,_default_headers:{},_isFormSubmit:false,_isFileUpload:false,_formNode:null,_sFormData:null,_poll:{},_timeOut:{},_polling_interval:50,_transaction_id:0,_submitElementValue:null,_hasSubmitListener:(function() { - if (YAHOO.util.Event) { - YAHOO.util.Event.addListener(document, "click", function(C) { - var B = YAHOO.util.Event.getTarget(C),A = B.nodeName.toLowerCase(); - if ((A === "input" || A === "button") && (B.type && B.type.toLowerCase() == "submit")) { - YAHOO.util.Connect._submitElementValue = encodeURIComponent(B.name) + "=" + encodeURIComponent(B.value); - } - }); - return true; - } - return false; -})(),startEvent:new YAHOO.util.CustomEvent("start"),completeEvent:new YAHOO.util.CustomEvent("complete"),successEvent:new YAHOO.util.CustomEvent("success"),failureEvent:new YAHOO.util.CustomEvent("failure"),uploadEvent:new YAHOO.util.CustomEvent("upload"),abortEvent:new YAHOO.util.CustomEvent("abort"),_customEvents:{onStart:["startEvent","start"],onComplete:["completeEvent","complete"],onSuccess:["successEvent","success"],onFailure:["failureEvent","failure"],onUpload:["uploadEvent","upload"],onAbort:["abortEvent","abort"]},setProgId:function(A) { - this._msxml_progid.unshift(A); -},setDefaultPostHeader:function(A) { - if (typeof A == "string") { - this._default_post_header = A; - } else { - if (typeof A == "boolean") { - this._use_default_post_header = A; - } - } -},setDefaultXhrHeader:function(A) { - if (typeof A == "string") { - this._default_xhr_header = A; - } else { - this._use_default_xhr_header = A; - } -},setPollingInterval:function(A) { - if (typeof A == "number" && isFinite(A)) { - this._polling_interval = A; - } -},createXhrObject:function(F) { - var E,A; - try { - A = new XMLHttpRequest(); - E = {conn:A,tId:F}; - } catch(D) { - for (var B = 0; B < this._msxml_progid.length; ++B) { - try { - A = new ActiveXObject(this._msxml_progid[B]); - E = {conn:A,tId:F}; - break; - } catch(C) { - } - } - } finally { - return E; - } -},getConnectionObject:function(A) { - var C; - var D = this._transaction_id; - try { - if (!A) { - C = this.createXhrObject(D); - } else { - C = {}; - C.tId = D; - C.isUpload = true; - } - if (C) { - this._transaction_id++; - } - } catch(B) { - } finally { - return C; - } -},asyncRequest:function(F, C, E, A) { - var D = (this._isFileUpload) ? this.getConnectionObject(true) : this.getConnectionObject(); - var B = (E && E.argument) ? E.argument : null; - if (!D) { - return null; - } else { - if (E && E.customevents) { - this.initCustomEvents(D, E); - } - if (this._isFormSubmit) { - if (this._isFileUpload) { - this.uploadFile(D, E, C, A); - return D; - } - if (F.toUpperCase() == "GET") { - if (this._sFormData.length !== 0) { - C += ((C.indexOf("?") == -1) ? "?" : "&") + this._sFormData; - } - } else { - if (F.toUpperCase() == "POST") { - A = A ? this._sFormData + "&" + A : this._sFormData; - } - } - } - if (F.toUpperCase() == "GET" && (E && E.cache === false)) { - C += ((C.indexOf("?") == -1) ? "?" : "&") + "rnd=" + new Date().valueOf().toString(); - } - D.conn.open(F, C, true); - if (this._use_default_xhr_header) { - if (!this._default_headers["X-Requested-With"]) { - this.initHeader("X-Requested-With", this._default_xhr_header, true); - } - } - if ((F.toUpperCase() === "POST" && this._use_default_post_header) && this._isFormSubmit === false) { - this.initHeader("Content-Type", this._default_post_header); - } - if (this._has_default_headers || this._has_http_headers) { - this.setHeader(D); - } - this.handleReadyState(D, E); - D.conn.send(A || ""); - if (this._isFormSubmit === true) { - this.resetFormState(); - } - this.startEvent.fire(D, B); - if (D.startEvent) { - D.startEvent.fire(D, B); - } - return D; - } -},initCustomEvents:function(A, C) { - var B; - for (B in C.customevents) { - if (this._customEvents[B][0]) { - A[this._customEvents[B][0]] = new YAHOO.util.CustomEvent(this._customEvents[B][1], (C.scope) ? C.scope : null); - A[this._customEvents[B][0]].subscribe(C.customevents[B]); - } - } -},handleReadyState:function(C, D) { - var B = this; - var A = (D && D.argument) ? D.argument : null; - if (D && D.timeout) { - this._timeOut[C.tId] = window.setTimeout(function() { - B.abort(C, D, true); - }, D.timeout); - } - this._poll[C.tId] = window.setInterval(function() { - if (C.conn && C.conn.readyState === 4) { - window.clearInterval(B._poll[C.tId]); - delete B._poll[C.tId]; - if (D && D.timeout) { - window.clearTimeout(B._timeOut[C.tId]); - delete B._timeOut[C.tId]; - } - B.completeEvent.fire(C, A); - if (C.completeEvent) { - C.completeEvent.fire(C, A); - } - B.handleTransactionResponse(C, D); - } - }, this._polling_interval); -},handleTransactionResponse:function(F, G, A) { - var D,C; - var B = (G && G.argument) ? G.argument : null; - try { - if (F.conn.status !== undefined && F.conn.status !== 0) { - D = F.conn.status; - } else { - D = 13030; - } - } catch(E) { - D = 13030; - } - if (D >= 200 && D < 300 || D === 1223) { - C = this.createResponseObject(F, B); - if (G && G.success) { - if (!G.scope) { - G.success(C); - } else { - G.success.apply(G.scope, [C]); - } - } - this.successEvent.fire(C); - if (F.successEvent) { - F.successEvent.fire(C); - } - } else { - switch (D) { - case 12002: - case 12029: - case 12030: - case 12031: - case 12152: - case 13030: - C = this.createExceptionObject(F.tId, B, (A ? A : false)); - if (G && G.failure) { - if (!G.scope) { - G.failure(C); - } else { - G.failure.apply(G.scope, [C]); - } - } - break; - default: - C = this.createResponseObject(F, B); - if (G && G.failure) { - if (!G.scope) { - G.failure(C); - } else { - G.failure.apply(G.scope, [C]); - } - } - } - this.failureEvent.fire(C); - if (F.failureEvent) { - F.failureEvent.fire(C); - } - } - this.releaseObject(F); - C = null; -},createResponseObject:function(A, G) { - var D = {}; - var I = {}; - try { - var C = A.conn.getAllResponseHeaders(); - var F = C.split("\n"); - for (var E = 0; E < F.length; E++) { - var B = F[E].indexOf(":"); - if (B != -1) { - I[F[E].substring(0, B)] = F[E].substring(B + 2); - } - } - } catch(H) { - } - D.tId = A.tId; - D.status = (A.conn.status == 1223) ? 204 : A.conn.status; - D.statusText = (A.conn.status == 1223) ? "No Content" : A.conn.statusText; - D.getResponseHeader = I; - D.getAllResponseHeaders = C; - D.responseText = A.conn.responseText; - D.responseXML = A.conn.responseXML; - if (G) { - D.argument = G; - } - return D; -},createExceptionObject:function(H, D, A) { - var F = 0; - var G = "communication failure"; - var C = -1; - var B = "transaction aborted"; - var E = {}; - E.tId = H; - if (A) { - E.status = C; - E.statusText = B; - } else { - E.status = F; - E.statusText = G; - } - if (D) { - E.argument = D; - } - return E; -},initHeader:function(A, D, C) { - var B = (C) ? this._default_headers : this._http_headers; - B[A] = D; - if (C) { - this._has_default_headers = true; - } else { - this._has_http_headers = true; - } -},setHeader:function(A) { - var B; - if (this._has_default_headers) { - for (B in this._default_headers) { - if (YAHOO.lang.hasOwnProperty(this._default_headers, B)) { - A.conn.setRequestHeader(B, this._default_headers[B]); - } - } - } - if (this._has_http_headers) { - for (B in this._http_headers) { - if (YAHOO.lang.hasOwnProperty(this._http_headers, B)) { - A.conn.setRequestHeader(B, this._http_headers[B]); - } - } - delete this._http_headers; - this._http_headers = {}; - this._has_http_headers = false; - } -},resetDefaultHeaders:function() { - delete this._default_headers; - this._default_headers = {}; - this._has_default_headers = false; -},setForm:function(M, H, C) { - var L,B,K,I,P,J = false,F = [],O = 0,E,G,D,N,A; - this.resetFormState(); - if (typeof M == "string") { - L = (document.getElementById(M) || document.forms[M]); - } else { - if (typeof M == "object") { - L = M; - } else { - return; - } - } - if (H) { - this.createFrame(C ? C : null); - this._isFormSubmit = true; - this._isFileUpload = true; - this._formNode = L; - return; - } - for (E = 0,G = L.elements.length; E < G; ++E) { - B = L.elements[E]; - P = B.disabled; - K = B.name; - if (!P && K) { - K = encodeURIComponent(K) + "="; - I = encodeURIComponent(B.value); - switch (B.type) { - case"select-one": - if (B.selectedIndex > -1) { - A = B.options[B.selectedIndex]; - F[O++] = K + encodeURIComponent((A.attributes.value && A.attributes.value.specified) ? A.value : A.text); - } - break; - case"select-multiple": - if (B.selectedIndex > -1) { - for (D = B.selectedIndex,N = B.options.length; D < N; ++D) { - A = B.options[D]; - if (A.selected) { - F[O++] = K + encodeURIComponent((A.attributes.value && A.attributes.value.specified) ? A.value : A.text); - } - } - } - break; - case"radio": - case"checkbox": - if (B.checked) { - F[O++] = K + I; - } - break; - case"file": - case undefined: - case"reset": - case"button": - break; - case"submit": - if (J === false) { - if (this._hasSubmitListener && this._submitElementValue) { - F[O++] = this._submitElementValue; - } - J = true; - } - break; - default: - F[O++] = K + I; - } - } - } - this._isFormSubmit = true; - this._sFormData = F.join("&"); - this.initHeader("Content-Type", this._default_form_header); - return this._sFormData; -},resetFormState:function() { - this._isFormSubmit = false; - this._isFileUpload = false; - this._formNode = null; - this._sFormData = ""; -},createFrame:function(A) { - var B = "yuiIO" + this._transaction_id; - var C; - if (YAHOO.env.ua.ie) { - C = document.createElement('