From e2c4d164dc9ca59303c1a01fe324fdeed20797fd Mon Sep 17 00:00:00 2001 From: Justin Obara Date: Wed, 21 Mar 2018 08:55:55 -0400 Subject: [PATCH] d942655 Merge remote-tracking branch 'shadxx7/FLUID-4016' --- .nojekyll | 0 404.html | 28 + CNAME | 1 + css/fluid-docs.css | 43 + googleb25567dcba3da270.html | 1 + images/fluid-icon.ico | Bin 0 -> 555 bytes index.html | 9 + .../development/APIChangesFrom1_4To1_5.html | 634 + .../development/APIChangesFrom1_5To2_0.html | 964 ++ .../development/APIChangesFrom2_0To3_0.html | 699 ++ ...uxiliarySchemaForPreferencesFramework.html | 924 ++ infusion/development/Builder.html | 807 ++ infusion/development/ChangeApplier.html | 610 + infusion/development/ChangeApplierAPI.html | 1134 ++ .../development/ClassNameConventions.html | 620 + .../ComponentConfigurationOptions.html | 1409 +++ infusion/development/ComponentGrades.html | 771 ++ infusion/development/ComponentLifecycle.html | 644 + .../ComponentOptionsAndDefaults.html | 628 + infusion/development/CompositePanels.html | 664 + .../development/ConditionalSubpanels.html | 659 + ...onnectingThePartsOfAPreferencesEditor.html | 677 ++ infusion/development/ContextAwareness.html | 910 ++ infusion/development/Contexts.html | 759 ++ infusion/development/CoreAPI.html | 1271 ++ infusion/development/Cutpoints.html | 643 + infusion/development/DOMBinder.html | 743 ++ infusion/development/DOMBinderAPI.html | 736 ++ .../development/DeclarativeThisismInIoC.html | 710 ++ infusion/development/DeprecatedIn2_0.html | 622 + infusion/development/DeprecationsIn1_5.html | 750 ++ infusion/development/Enactors.html | 756 ++ .../development/EventInjectionAndBoiling.html | 779 ++ .../ExpansionOfComponentOptions.html | 709 ++ infusion/development/FetchResources.html | 725 ++ infusion/development/FrameworkConcepts.html | 672 ++ infusion/development/FunctionGrades.html | 628 + infusion/development/HowToUseInfusionIoC.html | 608 + infusion/development/HowToUseTheRenderer.html | 626 + infusion/development/ImageReordererAPI.html | 754 ++ infusion/development/InfusionEventSystem.html | 828 ++ infusion/development/Invokers.html | 814 ++ infusion/development/IoCAPI.html | 710 ++ infusion/development/IoCReferences.html | 895 ++ infusion/development/IoCSS.html | 828 ++ infusion/development/IoCTestingFramework.html | 1262 ++ ...LocalizationInThePreferencesFramework.html | 807 ++ infusion/development/ModelRelay.html | 850 ++ .../development/ModelTransformationAPI.html | 4240 +++++++ infusion/development/NodeAPI.html | 658 + infusion/development/OptionsMerging.html | 647 + infusion/development/Panels.html | 819 ++ infusion/development/PreferencesEditor.html | 737 ++ .../development/PreferencesFramework.html | 613 + .../PrimarySchemaForPreferencesFramework.html | 637 + infusion/development/Priorities.html | 681 ++ infusion/development/PromisesAPI.html | 784 ++ infusion/development/ProtoComponentTypes.html | 742 ++ infusion/development/README.html | 266 + infusion/development/Renderer.html | 605 + .../RendererComponentTreeExpanders.html | 889 ++ .../development/RendererComponentTrees.html | 602 + infusion/development/RendererComponents.html | 887 ++ infusion/development/RendererDecorators.html | 874 ++ infusion/development/ResourceLoader.html | 718 ++ infusion/development/SettingsStore.html | 651 + .../development/SubcomponentDeclaration.html | 844 ++ infusion/development/SwitchAPI.html | 429 + infusion/development/TextToSpeechAPI.html | 758 ++ infusion/development/TextfieldAPI.html | 388 + infusion/development/TextfieldSliderAPI.html | 493 + infusion/development/TextfieldStepperAPI.html | 599 + .../UnderstandingInfusionComponents.html | 694 ++ infusion/development/UploaderAPI.html | 1159 ++ .../development/UserInterfaceOptionsAPI.html | 575 + infusion/development/ViewAPI.html | 801 ++ infusion/development/css/foundation.css | 5263 ++++++++ infusion/development/css/foundation.min.css | 1 + .../development/css/highlightjs-custom.css | 151 + .../development/css/highlightjs/default.css | 151 + infusion/development/css/infusion-docs.css | 616 + infusion/development/css/normalize.css | 423 + infusion/development/css/octicons.css | 221 + infusion/development/fonts/OpenSans-Bold.ttf | Bin 0 -> 224592 bytes .../development/fonts/OpenSans-BoldItalic.ttf | Bin 0 -> 213292 bytes .../development/fonts/OpenSans-ExtraBold.ttf | Bin 0 -> 222584 bytes .../fonts/OpenSans-ExtraBoldItalic.ttf | Bin 0 -> 213420 bytes .../development/fonts/OpenSans-Italic.ttf | Bin 0 -> 212896 bytes infusion/development/fonts/OpenSans-Light.ttf | Bin 0 -> 222412 bytes .../fonts/OpenSans-LightItalic.ttf | Bin 0 -> 213128 bytes .../development/fonts/OpenSans-Regular.ttf | Bin 0 -> 217360 bytes .../development/fonts/OpenSans-Semibold.ttf | Bin 0 -> 221328 bytes .../fonts/OpenSans-SemiboldItalic.ttf | Bin 0 -> 212820 bytes .../development/fonts/RobotoSlab-Bold.ttf | Bin 0 -> 170616 bytes .../development/fonts/RobotoSlab-Light.ttf | Bin 0 -> 179096 bytes .../development/fonts/RobotoSlab-Regular.ttf | Bin 0 -> 169064 bytes .../development/fonts/RobotoSlab-Thin.ttf | Bin 0 -> 181156 bytes infusion/development/fonts/github-1.eot | Bin 0 -> 1452 bytes infusion/development/fonts/github-1.svg | 11 + infusion/development/fonts/github-1.ttf | Bin 0 -> 1288 bytes infusion/development/fonts/github-1.woff | Bin 0 -> 1228 bytes infusion/development/fonts/infusion-docs.eot | Bin 0 -> 1336 bytes infusion/development/fonts/infusion-docs.svg | 11 + infusion/development/fonts/infusion-docs.ttf | Bin 0 -> 1172 bytes infusion/development/fonts/infusion-docs.woff | Bin 0 -> 1160 bytes infusion/development/fonts/infusion_logo.eot | Bin 0 -> 2132 bytes infusion/development/fonts/infusion_logo.svg | 11 + infusion/development/fonts/infusion_logo.ttf | Bin 0 -> 1968 bytes infusion/development/fonts/infusion_logo.woff | Bin 0 -> 2044 bytes infusion/development/fonts/octicons.eot | Bin 0 -> 29160 bytes infusion/development/fonts/octicons.svg | 183 + infusion/development/fonts/octicons.ttf | Bin 0 -> 28992 bytes infusion/development/fonts/octicons.woff | Bin 0 -> 16060 bytes infusion/development/images/Icon-FF-OSX.png | Bin 0 -> 1783 bytes .../development/images/Icon-FF-windows.png | Bin 0 -> 4265 bytes infusion/development/images/IoC-scope.svg | 4 + .../development/images/Unicode-charmap.png | Bin 0 -> 39221 bytes .../development/images/checkbox-styled.png | Bin 0 -> 24645 bytes .../images/component-grades-venn-diagram.svg | 133 + .../images/curr-converter-screenshot.png | Bin 0 -> 16827 bytes infusion/development/images/favico.png | Bin 0 -> 840 bytes .../images/mac-characters-window.png | Bin 0 -> 40928 bytes infusion/development/images/mac-font-book.png | Bin 0 -> 61146 bytes .../development/images/pencil-icon-01.svg | 12 + .../development/images/prefsEditorFolders.png | Bin 0 -> 25153 bytes .../development/images/prefsEditorParts.png | Bin 0 -> 34240 bytes .../development/images/progress-example.png | Bin 0 -> 7461 bytes infusion/development/images/radio-styled.png | Bin 0 -> 26429 bytes .../development/images/simplePrefsEditor.png | Bin 0 -> 91063 bytes .../images/tutorial-uio-button-hc.png | Bin 0 -> 7060 bytes .../images/tutorial-uio-button-regular.png | Bin 0 -> 8456 bytes .../images/tutorial-uio-content-bw.png | Bin 0 -> 6048 bytes .../images/tutorial-uio-content-by.png | Bin 0 -> 5692 bytes .../images/tutorial-uio-content-default.png | Bin 0 -> 5483 bytes .../images/tutorial-uio-content-lgdg.png | Bin 0 -> 6418 bytes .../images/tutorial-uio-content-wb.png | Bin 0 -> 5869 bytes .../images/tutorial-uio-content-yb.png | Bin 0 -> 5813 bytes .../images/tutorial-uio-good-bad-logos.png | Bin 0 -> 50364 bytes .../images/tutorial-uio-icon-hc.png | Bin 0 -> 7978 bytes .../images/tutorial-uio-icon-regular.png | Bin 0 -> 9122 bytes .../images/tutorial-uio-lock-pixels.png | Bin 0 -> 19954 bytes .../images/tutorial-uio-shadow-hc.png | Bin 0 -> 7808 bytes .../images/tutorial-uio-shadow-regular.png | Bin 0 -> 9396 bytes .../images/uiOptions-component-tree.svg | 3616 ++++++ .../development/images/uio-buttons-styled.png | Bin 0 -> 69646 bytes infusion/development/images/uio-buttons.png | Bin 0 -> 66615 bytes infusion/development/images/uio-showcase.png | Bin 0 -> 114832 bytes infusion/development/images/uio.png | Bin 0 -> 66901 bytes infusion/development/images/uploader.png | Bin 0 -> 49510 bytes infusion/development/images/viewMode.png | Bin 0 -> 31158 bytes infusion/development/index-components.html | 240 + infusion/development/index-tutorials.html | 374 + infusion/development/index.html | 591 + infusion/development/jqUnit.html | 827 ++ infusion/development/js/infusion-docs.js | 42 + .../lib/infusion/Infusion-LICENSE.txt | 227 + infusion/development/lib/infusion/Version.md | 25 + .../lib/infusion/infusion-uiOptions.js | 30 + .../lib/infusion/infusion-uiOptions.js.map | 1 + .../tableOfContents/css/TableOfContents.css | 3 + .../tableOfContents/html/TableOfContents.html | 32 + .../infusion/src/framework/core/css/fluid.css | 69 + .../src/framework/core/css/fluidDebugging.css | 132 + .../src/framework/core/images/debug_tab.png | Bin 0 -> 3495 bytes .../core/images/magnifying_glass.png | Bin 0 -> 1389 bytes .../framework/preferences/css/Enactors.css | 1 + .../css/FullNoPreviewPrefsEditor.css | 1 + .../preferences/css/FullPrefsEditor.css | 1 + .../css/FullPreviewPrefsEditor.css | 1 + .../framework/preferences/css/PrefsEditor.css | 1 + .../css/SeparatedPanelPrefsEditor.css | 1 + .../css/SeparatedPanelPrefsEditorFrame.css | 1 + .../preferences/css/stylus/Enactors.styl | 42 + .../css/stylus/FullNoPreviewPrefsEditor.styl | 47 + .../css/stylus/FullPrefsEditor.styl | 47 + .../css/stylus/FullPreviewPrefsEditor.styl | 75 + .../preferences/css/stylus/PrefsEditor.styl | 420 + .../preferences/css/stylus/README.md | 26 + .../css/stylus/SeparatedPanelPrefsEditor.styl | 97 + .../SeparatedPanelPrefsEditorFrame.styl | 110 + .../preferences/css/stylus/utils/Helpers.styl | 43 + .../preferences/css/stylus/utils/Themes.styl | 358 + .../fonts/InfusionIcons-PrefsEditor.eot | Bin 0 -> 4184 bytes .../fonts/InfusionIcons-PrefsEditor.ttf | Bin 0 -> 4036 bytes .../html/FullNoPreviewPrefsEditor.html | 27 + .../html/FullPreviewPrefsEditor.html | 29 + .../html/PrefsEditorTemplate-contrast.html | 13 + .../PrefsEditorTemplate-emphasizeLinks.html | 2 + .../PrefsEditorTemplate-inputsLarger.html | 2 + .../html/PrefsEditorTemplate-layout.html | 10 + ...refsEditorTemplate-lineSpace-jQueryUI.html | 12 + ...fsEditorTemplate-lineSpace-nativeHTML.html | 12 + .../PrefsEditorTemplate-linksControls.html | 5 + .../html/PrefsEditorTemplate-speak.html | 10 + .../html/PrefsEditorTemplate-textFont.html | 6 + ...PrefsEditorTemplate-textSize-jQueryUI.html | 15 + ...efsEditorTemplate-textSize-nativeHTML.html | 15 + .../html/SeparatedPanelPrefsEditor.html | 12 + ...paratedPanelPrefsEditorFrame-jQueryUI.html | 34 + ...ratedPanelPrefsEditorFrame-nativeHTML.html | 30 + .../images/default/separatedpanelbg.png | Bin 0 -> 7249 bytes .../preferences/messages/contrast.json | 10 + .../preferences/messages/emphasizeLinks.json | 3 + .../preferences/messages/inputsLarger.json | 3 + .../preferences/messages/lineSpace.json | 5 + .../preferences/messages/linksControls.json | 3 + .../preferences/messages/prefsEditor.json | 7 + .../framework/preferences/messages/speak.json | 4 + .../preferences/messages/tableOfContents.json | 4 + .../preferences/messages/textFont.json | 9 + .../preferences/messages/textSize.json | 5 + .../src/lib/fonts/OpenSans-LICENSE.txt | 202 + .../infusion/src/lib/fonts/OpenSans-Light.ttf | Bin 0 -> 222412 bytes .../src/lib/fonts/OpenSans-Regular.ttf | Bin 0 -> 217360 bytes .../src/lib/fonts/OpenSans-Semibold.ttf | Bin 0 -> 221328 bytes .../infusion/src/lib/jquery/core/js/jquery.js | 10074 ++++++++++++++++ .../touchPunch/js/jquery.ui.touch-punch.js | 160 + .../images/ui-icons_444444_256x240.png | Bin 0 -> 6992 bytes .../images/ui-icons_555555_256x240.png | Bin 0 -> 6988 bytes .../images/ui-icons_777620_256x240.png | Bin 0 -> 4549 bytes .../images/ui-icons_777777_256x240.png | Bin 0 -> 6999 bytes .../images/ui-icons_cc0000_256x240.png | Bin 0 -> 4549 bytes .../images/ui-icons_ffffff_256x240.png | Bin 0 -> 6299 bytes .../jquery/ui/css/default-theme/jquery-ui.css | 951 ++ .../src/lib/jquery/ui/css/fl-theme-bw/bw.css | 1312 ++ .../images/ui-icons_000000_256x240.png | Bin 0 -> 5331 bytes .../images/ui-icons_ffffff_256x240.png | Bin 0 -> 6299 bytes .../src/lib/jquery/ui/css/fl-theme-by/by.css | 1312 ++ .../images/ui-icons_000000_256x240.png | Bin 0 -> 5331 bytes .../images/ui-icons_ffff00_256x240.png | Bin 0 -> 4549 bytes .../lib/jquery/ui/css/fl-theme-dglg/dglg.css | 1312 ++ .../images/ui-icons_555_256x240.png | Bin 0 -> 6988 bytes .../images/ui-icons_bdbdbb_256x240.png | Bin 0 -> 4549 bytes .../images/ui-icons_555_256x240.png | Bin 0 -> 6988 bytes .../images/ui-icons_bdbdbb_256x240.png | Bin 0 -> 4549 bytes .../lib/jquery/ui/css/fl-theme-lgdg/lgdg.css | 1312 ++ .../images/ui-icons_000000_256x240.png | Bin 0 -> 5331 bytes .../images/ui-icons_ffffff_256x240.png | Bin 0 -> 6299 bytes .../src/lib/jquery/ui/css/fl-theme-wb/wb.css | 1312 ++ .../images/ui-icons_000000_256x240.png | Bin 0 -> 5331 bytes .../images/ui-icons_ffff00_256x240.png | Bin 0 -> 4549 bytes .../src/lib/jquery/ui/css/fl-theme-yb/yb.css | 1312 ++ .../lib/jquery/ui/jQueryUIDependencies.json | 12 + .../src/lib/jquery/ui/js/jquery-ui.js | 8331 +++++++++++++ .../src/lib/normalize/css/normalize.css | 419 + .../to-do/AddingPrefsEditorToSite.html | 376 + .../development/to-do/GridReordererAPI.html | 240 + infusion/development/to-do/InlineEdit.html | 240 + infusion/development/to-do/InlineEditAPI.html | 240 + .../development/to-do/LayoutReordererAPI.html | 240 + .../development/to-do/ListReordererAPI.html | 240 + infusion/development/to-do/Pager.html | 240 + infusion/development/to-do/PagerAPI.html | 240 + infusion/development/to-do/Progress.html | 240 + infusion/development/to-do/ProgressAPI.html | 240 + infusion/development/to-do/Reorderer.html | 240 + infusion/development/to-do/ReordererAPI.html | 240 + .../development/to-do/TableOfContentsAPI.html | 240 + ...kingToTheServerUsingTheAfterMoveEvent.html | 132 + infusion/development/to-do/UIEnhancer.html | 588 + infusion/development/to-do/UndoAPI.html | 240 + infusion/development/to-do/Uploader.html | 240 + .../to-do/UserInterfaceOptions.html | 240 + .../to-do/WorkingWithPrefsEditorOnSite.html | 376 + ...ductionToInfusionFramework-Components.html | 420 + ...ToInfusionFramework-ConcludingRemarks.html | 397 + ...Framework-EventsAndInversionOfControl.html | 404 + ...xtendingDesignsWithExistingComponents.html | 484 + ...roductionToInfusionFramework-Invokers.html | 411 + ...ionFramework-ModelsAndModelComponents.html | 453 + ...ionToInfusionFramework-OpeningRemarks.html | 397 + ...work-OverridingInvokersAndRefactoring.html | 475 + ...sionFramework-RestructuringComponents.html | 479 + ...amework-SubcomponentsAndModelRelaying.html | 447 + ...sionFramework-TransformingModelRelays.html | 517 + ...usionFramework-ViewsAndViewComponents.html | 430 + .../BasicComponentCreation-Components.html | 585 + .../DefineANamespaceAndCreateAClosure.html | 424 + .../GettingStartedWithInfusion.html | 391 + .../ModelComponents.html | 527 + .../PickAComponentType.html | 393 + .../RendererComponents.html | 561 + .../SetUpYourEnvironment.html | 400 + .../Subcomponents.html | 507 + .../ViewComponents.html | 436 + .../HowToCreateAndUseFontIcons.html | 606 + .../PagerMigration.html | 760 ++ .../UIOptionsMigration.html | 725 ++ .../CreatingANewAdjusterUI.html | 697 ++ .../CreatingAPrefsEditor.html | 1155 ++ .../CreatingEnactors.html | 572 + ...iatingTheEnhancerAndSettingsStoreOnly.html | 418 + .../StylingThePreferencesEditor.html | 412 + .../MinimalFootprint.html | 535 + .../ContentPropertyHighContrast.html | 422 + ...leEffectsAndLegibilityInContrastModes.html | 422 + .../UserInterfaceOptions.html | 568 + .../UsingImagesInContrastModes.html | 496 + .../WorkingWithUserInterfaceOptions.html | 527 + .../UsingStringTemplates.html | 625 + infusion/index.html | 9 + 301 files changed, 121650 insertions(+) create mode 100644 .nojekyll create mode 100644 404.html create mode 100644 CNAME create mode 100644 css/fluid-docs.css create mode 100644 googleb25567dcba3da270.html create mode 100644 images/fluid-icon.ico create mode 100644 index.html create mode 100644 infusion/development/APIChangesFrom1_4To1_5.html create mode 100644 infusion/development/APIChangesFrom1_5To2_0.html create mode 100644 infusion/development/APIChangesFrom2_0To3_0.html create mode 100644 infusion/development/AuxiliarySchemaForPreferencesFramework.html create mode 100644 infusion/development/Builder.html create mode 100644 infusion/development/ChangeApplier.html create mode 100644 infusion/development/ChangeApplierAPI.html create mode 100644 infusion/development/ClassNameConventions.html create mode 100644 infusion/development/ComponentConfigurationOptions.html create mode 100644 infusion/development/ComponentGrades.html create mode 100644 infusion/development/ComponentLifecycle.html create mode 100644 infusion/development/ComponentOptionsAndDefaults.html create mode 100644 infusion/development/CompositePanels.html create mode 100644 infusion/development/ConditionalSubpanels.html create mode 100644 infusion/development/ConnectingThePartsOfAPreferencesEditor.html create mode 100644 infusion/development/ContextAwareness.html create mode 100644 infusion/development/Contexts.html create mode 100644 infusion/development/CoreAPI.html create mode 100644 infusion/development/Cutpoints.html create mode 100644 infusion/development/DOMBinder.html create mode 100644 infusion/development/DOMBinderAPI.html create mode 100644 infusion/development/DeclarativeThisismInIoC.html create mode 100644 infusion/development/DeprecatedIn2_0.html create mode 100644 infusion/development/DeprecationsIn1_5.html create mode 100644 infusion/development/Enactors.html create mode 100644 infusion/development/EventInjectionAndBoiling.html create mode 100644 infusion/development/ExpansionOfComponentOptions.html create mode 100644 infusion/development/FetchResources.html create mode 100644 infusion/development/FrameworkConcepts.html create mode 100644 infusion/development/FunctionGrades.html create mode 100644 infusion/development/HowToUseInfusionIoC.html create mode 100644 infusion/development/HowToUseTheRenderer.html create mode 100644 infusion/development/ImageReordererAPI.html create mode 100644 infusion/development/InfusionEventSystem.html create mode 100644 infusion/development/Invokers.html create mode 100644 infusion/development/IoCAPI.html create mode 100644 infusion/development/IoCReferences.html create mode 100644 infusion/development/IoCSS.html create mode 100644 infusion/development/IoCTestingFramework.html create mode 100644 infusion/development/LocalizationInThePreferencesFramework.html create mode 100644 infusion/development/ModelRelay.html create mode 100644 infusion/development/ModelTransformationAPI.html create mode 100644 infusion/development/NodeAPI.html create mode 100644 infusion/development/OptionsMerging.html create mode 100644 infusion/development/Panels.html create mode 100644 infusion/development/PreferencesEditor.html create mode 100644 infusion/development/PreferencesFramework.html create mode 100644 infusion/development/PrimarySchemaForPreferencesFramework.html create mode 100644 infusion/development/Priorities.html create mode 100644 infusion/development/PromisesAPI.html create mode 100644 infusion/development/ProtoComponentTypes.html create mode 100644 infusion/development/README.html create mode 100644 infusion/development/Renderer.html create mode 100644 infusion/development/RendererComponentTreeExpanders.html create mode 100644 infusion/development/RendererComponentTrees.html create mode 100644 infusion/development/RendererComponents.html create mode 100644 infusion/development/RendererDecorators.html create mode 100644 infusion/development/ResourceLoader.html create mode 100644 infusion/development/SettingsStore.html create mode 100644 infusion/development/SubcomponentDeclaration.html create mode 100644 infusion/development/SwitchAPI.html create mode 100644 infusion/development/TextToSpeechAPI.html create mode 100644 infusion/development/TextfieldAPI.html create mode 100644 infusion/development/TextfieldSliderAPI.html create mode 100644 infusion/development/TextfieldStepperAPI.html create mode 100644 infusion/development/UnderstandingInfusionComponents.html create mode 100644 infusion/development/UploaderAPI.html create mode 100644 infusion/development/UserInterfaceOptionsAPI.html create mode 100644 infusion/development/ViewAPI.html create mode 100644 infusion/development/css/foundation.css create mode 100644 infusion/development/css/foundation.min.css create mode 100644 infusion/development/css/highlightjs-custom.css create mode 100644 infusion/development/css/highlightjs/default.css create mode 100644 infusion/development/css/infusion-docs.css create mode 100644 infusion/development/css/normalize.css create mode 100644 infusion/development/css/octicons.css create mode 100644 infusion/development/fonts/OpenSans-Bold.ttf create mode 100644 infusion/development/fonts/OpenSans-BoldItalic.ttf create mode 100644 infusion/development/fonts/OpenSans-ExtraBold.ttf create mode 100644 infusion/development/fonts/OpenSans-ExtraBoldItalic.ttf create mode 100644 infusion/development/fonts/OpenSans-Italic.ttf create mode 100644 infusion/development/fonts/OpenSans-Light.ttf create mode 100644 infusion/development/fonts/OpenSans-LightItalic.ttf create mode 100644 infusion/development/fonts/OpenSans-Regular.ttf create mode 100644 infusion/development/fonts/OpenSans-Semibold.ttf create mode 100644 infusion/development/fonts/OpenSans-SemiboldItalic.ttf create mode 100644 infusion/development/fonts/RobotoSlab-Bold.ttf create mode 100644 infusion/development/fonts/RobotoSlab-Light.ttf create mode 100644 infusion/development/fonts/RobotoSlab-Regular.ttf create mode 100644 infusion/development/fonts/RobotoSlab-Thin.ttf create mode 100644 infusion/development/fonts/github-1.eot create mode 100644 infusion/development/fonts/github-1.svg create mode 100644 infusion/development/fonts/github-1.ttf create mode 100644 infusion/development/fonts/github-1.woff create mode 100644 infusion/development/fonts/infusion-docs.eot create mode 100644 infusion/development/fonts/infusion-docs.svg create mode 100644 infusion/development/fonts/infusion-docs.ttf create mode 100644 infusion/development/fonts/infusion-docs.woff create mode 100644 infusion/development/fonts/infusion_logo.eot create mode 100644 infusion/development/fonts/infusion_logo.svg create mode 100644 infusion/development/fonts/infusion_logo.ttf create mode 100644 infusion/development/fonts/infusion_logo.woff create mode 100644 infusion/development/fonts/octicons.eot create mode 100644 infusion/development/fonts/octicons.svg create mode 100644 infusion/development/fonts/octicons.ttf create mode 100644 infusion/development/fonts/octicons.woff create mode 100644 infusion/development/images/Icon-FF-OSX.png create mode 100644 infusion/development/images/Icon-FF-windows.png create mode 100644 infusion/development/images/IoC-scope.svg create mode 100644 infusion/development/images/Unicode-charmap.png create mode 100644 infusion/development/images/checkbox-styled.png create mode 100644 infusion/development/images/component-grades-venn-diagram.svg create mode 100644 infusion/development/images/curr-converter-screenshot.png create mode 100644 infusion/development/images/favico.png create mode 100644 infusion/development/images/mac-characters-window.png create mode 100644 infusion/development/images/mac-font-book.png create mode 100644 infusion/development/images/pencil-icon-01.svg create mode 100644 infusion/development/images/prefsEditorFolders.png create mode 100644 infusion/development/images/prefsEditorParts.png create mode 100644 infusion/development/images/progress-example.png create mode 100644 infusion/development/images/radio-styled.png create mode 100644 infusion/development/images/simplePrefsEditor.png create mode 100644 infusion/development/images/tutorial-uio-button-hc.png create mode 100644 infusion/development/images/tutorial-uio-button-regular.png create mode 100644 infusion/development/images/tutorial-uio-content-bw.png create mode 100644 infusion/development/images/tutorial-uio-content-by.png create mode 100644 infusion/development/images/tutorial-uio-content-default.png create mode 100644 infusion/development/images/tutorial-uio-content-lgdg.png create mode 100644 infusion/development/images/tutorial-uio-content-wb.png create mode 100644 infusion/development/images/tutorial-uio-content-yb.png create mode 100644 infusion/development/images/tutorial-uio-good-bad-logos.png create mode 100644 infusion/development/images/tutorial-uio-icon-hc.png create mode 100644 infusion/development/images/tutorial-uio-icon-regular.png create mode 100644 infusion/development/images/tutorial-uio-lock-pixels.png create mode 100644 infusion/development/images/tutorial-uio-shadow-hc.png create mode 100644 infusion/development/images/tutorial-uio-shadow-regular.png create mode 100644 infusion/development/images/uiOptions-component-tree.svg create mode 100644 infusion/development/images/uio-buttons-styled.png create mode 100644 infusion/development/images/uio-buttons.png create mode 100644 infusion/development/images/uio-showcase.png create mode 100644 infusion/development/images/uio.png create mode 100644 infusion/development/images/uploader.png create mode 100644 infusion/development/images/viewMode.png create mode 100644 infusion/development/index-components.html create mode 100644 infusion/development/index-tutorials.html create mode 100644 infusion/development/index.html create mode 100644 infusion/development/jqUnit.html create mode 100644 infusion/development/js/infusion-docs.js create mode 100644 infusion/development/lib/infusion/Infusion-LICENSE.txt create mode 100644 infusion/development/lib/infusion/Version.md create mode 100644 infusion/development/lib/infusion/infusion-uiOptions.js create mode 100644 infusion/development/lib/infusion/infusion-uiOptions.js.map create mode 100644 infusion/development/lib/infusion/src/components/tableOfContents/css/TableOfContents.css create mode 100644 infusion/development/lib/infusion/src/components/tableOfContents/html/TableOfContents.html create mode 100644 infusion/development/lib/infusion/src/framework/core/css/fluid.css create mode 100644 infusion/development/lib/infusion/src/framework/core/css/fluidDebugging.css create mode 100644 infusion/development/lib/infusion/src/framework/core/images/debug_tab.png create mode 100644 infusion/development/lib/infusion/src/framework/core/images/magnifying_glass.png create mode 100644 infusion/development/lib/infusion/src/framework/preferences/css/Enactors.css create mode 100644 infusion/development/lib/infusion/src/framework/preferences/css/FullNoPreviewPrefsEditor.css create mode 100644 infusion/development/lib/infusion/src/framework/preferences/css/FullPrefsEditor.css create mode 100644 infusion/development/lib/infusion/src/framework/preferences/css/FullPreviewPrefsEditor.css create mode 100644 infusion/development/lib/infusion/src/framework/preferences/css/PrefsEditor.css create mode 100644 infusion/development/lib/infusion/src/framework/preferences/css/SeparatedPanelPrefsEditor.css create mode 100644 infusion/development/lib/infusion/src/framework/preferences/css/SeparatedPanelPrefsEditorFrame.css create mode 100644 infusion/development/lib/infusion/src/framework/preferences/css/stylus/Enactors.styl create mode 100644 infusion/development/lib/infusion/src/framework/preferences/css/stylus/FullNoPreviewPrefsEditor.styl create mode 100644 infusion/development/lib/infusion/src/framework/preferences/css/stylus/FullPrefsEditor.styl create mode 100644 infusion/development/lib/infusion/src/framework/preferences/css/stylus/FullPreviewPrefsEditor.styl create mode 100644 infusion/development/lib/infusion/src/framework/preferences/css/stylus/PrefsEditor.styl create mode 100644 infusion/development/lib/infusion/src/framework/preferences/css/stylus/README.md create mode 100644 infusion/development/lib/infusion/src/framework/preferences/css/stylus/SeparatedPanelPrefsEditor.styl create mode 100644 infusion/development/lib/infusion/src/framework/preferences/css/stylus/SeparatedPanelPrefsEditorFrame.styl create mode 100644 infusion/development/lib/infusion/src/framework/preferences/css/stylus/utils/Helpers.styl create mode 100644 infusion/development/lib/infusion/src/framework/preferences/css/stylus/utils/Themes.styl create mode 100644 infusion/development/lib/infusion/src/framework/preferences/fonts/InfusionIcons-PrefsEditor.eot create mode 100644 infusion/development/lib/infusion/src/framework/preferences/fonts/InfusionIcons-PrefsEditor.ttf create mode 100644 infusion/development/lib/infusion/src/framework/preferences/html/FullNoPreviewPrefsEditor.html create mode 100644 infusion/development/lib/infusion/src/framework/preferences/html/FullPreviewPrefsEditor.html create mode 100644 infusion/development/lib/infusion/src/framework/preferences/html/PrefsEditorTemplate-contrast.html create mode 100644 infusion/development/lib/infusion/src/framework/preferences/html/PrefsEditorTemplate-emphasizeLinks.html create mode 100644 infusion/development/lib/infusion/src/framework/preferences/html/PrefsEditorTemplate-inputsLarger.html create mode 100644 infusion/development/lib/infusion/src/framework/preferences/html/PrefsEditorTemplate-layout.html create mode 100644 infusion/development/lib/infusion/src/framework/preferences/html/PrefsEditorTemplate-lineSpace-jQueryUI.html create mode 100644 infusion/development/lib/infusion/src/framework/preferences/html/PrefsEditorTemplate-lineSpace-nativeHTML.html create mode 100644 infusion/development/lib/infusion/src/framework/preferences/html/PrefsEditorTemplate-linksControls.html create mode 100644 infusion/development/lib/infusion/src/framework/preferences/html/PrefsEditorTemplate-speak.html create mode 100644 infusion/development/lib/infusion/src/framework/preferences/html/PrefsEditorTemplate-textFont.html create mode 100644 infusion/development/lib/infusion/src/framework/preferences/html/PrefsEditorTemplate-textSize-jQueryUI.html create mode 100644 infusion/development/lib/infusion/src/framework/preferences/html/PrefsEditorTemplate-textSize-nativeHTML.html create mode 100644 infusion/development/lib/infusion/src/framework/preferences/html/SeparatedPanelPrefsEditor.html create mode 100644 infusion/development/lib/infusion/src/framework/preferences/html/SeparatedPanelPrefsEditorFrame-jQueryUI.html create mode 100644 infusion/development/lib/infusion/src/framework/preferences/html/SeparatedPanelPrefsEditorFrame-nativeHTML.html create mode 100644 infusion/development/lib/infusion/src/framework/preferences/images/default/separatedpanelbg.png create mode 100644 infusion/development/lib/infusion/src/framework/preferences/messages/contrast.json create mode 100644 infusion/development/lib/infusion/src/framework/preferences/messages/emphasizeLinks.json create mode 100644 infusion/development/lib/infusion/src/framework/preferences/messages/inputsLarger.json create mode 100644 infusion/development/lib/infusion/src/framework/preferences/messages/lineSpace.json create mode 100644 infusion/development/lib/infusion/src/framework/preferences/messages/linksControls.json create mode 100644 infusion/development/lib/infusion/src/framework/preferences/messages/prefsEditor.json create mode 100644 infusion/development/lib/infusion/src/framework/preferences/messages/speak.json create mode 100644 infusion/development/lib/infusion/src/framework/preferences/messages/tableOfContents.json create mode 100644 infusion/development/lib/infusion/src/framework/preferences/messages/textFont.json create mode 100644 infusion/development/lib/infusion/src/framework/preferences/messages/textSize.json create mode 100644 infusion/development/lib/infusion/src/lib/fonts/OpenSans-LICENSE.txt create mode 100644 infusion/development/lib/infusion/src/lib/fonts/OpenSans-Light.ttf create mode 100644 infusion/development/lib/infusion/src/lib/fonts/OpenSans-Regular.ttf create mode 100644 infusion/development/lib/infusion/src/lib/fonts/OpenSans-Semibold.ttf create mode 100644 infusion/development/lib/infusion/src/lib/jquery/core/js/jquery.js create mode 100644 infusion/development/lib/infusion/src/lib/jquery/plugins/touchPunch/js/jquery.ui.touch-punch.js create mode 100644 infusion/development/lib/infusion/src/lib/jquery/ui/css/default-theme/images/ui-icons_444444_256x240.png create mode 100644 infusion/development/lib/infusion/src/lib/jquery/ui/css/default-theme/images/ui-icons_555555_256x240.png create mode 100644 infusion/development/lib/infusion/src/lib/jquery/ui/css/default-theme/images/ui-icons_777620_256x240.png create mode 100644 infusion/development/lib/infusion/src/lib/jquery/ui/css/default-theme/images/ui-icons_777777_256x240.png create mode 100644 infusion/development/lib/infusion/src/lib/jquery/ui/css/default-theme/images/ui-icons_cc0000_256x240.png create mode 100644 infusion/development/lib/infusion/src/lib/jquery/ui/css/default-theme/images/ui-icons_ffffff_256x240.png create mode 100644 infusion/development/lib/infusion/src/lib/jquery/ui/css/default-theme/jquery-ui.css create mode 100644 infusion/development/lib/infusion/src/lib/jquery/ui/css/fl-theme-bw/bw.css create mode 100644 infusion/development/lib/infusion/src/lib/jquery/ui/css/fl-theme-bw/images/ui-icons_000000_256x240.png create mode 100644 infusion/development/lib/infusion/src/lib/jquery/ui/css/fl-theme-bw/images/ui-icons_ffffff_256x240.png create mode 100644 infusion/development/lib/infusion/src/lib/jquery/ui/css/fl-theme-by/by.css create mode 100644 infusion/development/lib/infusion/src/lib/jquery/ui/css/fl-theme-by/images/ui-icons_000000_256x240.png create mode 100644 infusion/development/lib/infusion/src/lib/jquery/ui/css/fl-theme-by/images/ui-icons_ffff00_256x240.png create mode 100644 infusion/development/lib/infusion/src/lib/jquery/ui/css/fl-theme-dglg/dglg.css create mode 100644 infusion/development/lib/infusion/src/lib/jquery/ui/css/fl-theme-dglg/images/ui-icons_555_256x240.png create mode 100644 infusion/development/lib/infusion/src/lib/jquery/ui/css/fl-theme-dglg/images/ui-icons_bdbdbb_256x240.png create mode 100644 infusion/development/lib/infusion/src/lib/jquery/ui/css/fl-theme-lgdg/images/ui-icons_555_256x240.png create mode 100644 infusion/development/lib/infusion/src/lib/jquery/ui/css/fl-theme-lgdg/images/ui-icons_bdbdbb_256x240.png create mode 100644 infusion/development/lib/infusion/src/lib/jquery/ui/css/fl-theme-lgdg/lgdg.css create mode 100644 infusion/development/lib/infusion/src/lib/jquery/ui/css/fl-theme-wb/images/ui-icons_000000_256x240.png create mode 100644 infusion/development/lib/infusion/src/lib/jquery/ui/css/fl-theme-wb/images/ui-icons_ffffff_256x240.png create mode 100644 infusion/development/lib/infusion/src/lib/jquery/ui/css/fl-theme-wb/wb.css create mode 100644 infusion/development/lib/infusion/src/lib/jquery/ui/css/fl-theme-yb/images/ui-icons_000000_256x240.png create mode 100644 infusion/development/lib/infusion/src/lib/jquery/ui/css/fl-theme-yb/images/ui-icons_ffff00_256x240.png create mode 100644 infusion/development/lib/infusion/src/lib/jquery/ui/css/fl-theme-yb/yb.css create mode 100644 infusion/development/lib/infusion/src/lib/jquery/ui/jQueryUIDependencies.json create mode 100644 infusion/development/lib/infusion/src/lib/jquery/ui/js/jquery-ui.js create mode 100644 infusion/development/lib/infusion/src/lib/normalize/css/normalize.css create mode 100644 infusion/development/to-do/AddingPrefsEditorToSite.html create mode 100644 infusion/development/to-do/GridReordererAPI.html create mode 100644 infusion/development/to-do/InlineEdit.html create mode 100644 infusion/development/to-do/InlineEditAPI.html create mode 100644 infusion/development/to-do/LayoutReordererAPI.html create mode 100644 infusion/development/to-do/ListReordererAPI.html create mode 100644 infusion/development/to-do/Pager.html create mode 100644 infusion/development/to-do/PagerAPI.html create mode 100644 infusion/development/to-do/Progress.html create mode 100644 infusion/development/to-do/ProgressAPI.html create mode 100644 infusion/development/to-do/Reorderer.html create mode 100644 infusion/development/to-do/ReordererAPI.html create mode 100644 infusion/development/to-do/TableOfContentsAPI.html create mode 100644 infusion/development/to-do/TalkingToTheServerUsingTheAfterMoveEvent.html create mode 100644 infusion/development/to-do/UIEnhancer.html create mode 100644 infusion/development/to-do/UndoAPI.html create mode 100644 infusion/development/to-do/Uploader.html create mode 100644 infusion/development/to-do/UserInterfaceOptions.html create mode 100644 infusion/development/to-do/WorkingWithPrefsEditorOnSite.html create mode 100644 infusion/development/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-Components.html create mode 100644 infusion/development/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-ConcludingRemarks.html create mode 100644 infusion/development/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-EventsAndInversionOfControl.html create mode 100644 infusion/development/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-ExtendingDesignsWithExistingComponents.html create mode 100644 infusion/development/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-Invokers.html create mode 100644 infusion/development/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-ModelsAndModelComponents.html create mode 100644 infusion/development/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-OpeningRemarks.html create mode 100644 infusion/development/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-OverridingInvokersAndRefactoring.html create mode 100644 infusion/development/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-RestructuringComponents.html create mode 100644 infusion/development/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-SubcomponentsAndModelRelaying.html create mode 100644 infusion/development/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-TransformingModelRelays.html create mode 100644 infusion/development/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-ViewsAndViewComponents.html create mode 100644 infusion/development/tutorial-gettingStartedWithInfusion/BasicComponentCreation-Components.html create mode 100644 infusion/development/tutorial-gettingStartedWithInfusion/DefineANamespaceAndCreateAClosure.html create mode 100644 infusion/development/tutorial-gettingStartedWithInfusion/GettingStartedWithInfusion.html create mode 100644 infusion/development/tutorial-gettingStartedWithInfusion/ModelComponents.html create mode 100644 infusion/development/tutorial-gettingStartedWithInfusion/PickAComponentType.html create mode 100644 infusion/development/tutorial-gettingStartedWithInfusion/RendererComponents.html create mode 100644 infusion/development/tutorial-gettingStartedWithInfusion/SetUpYourEnvironment.html create mode 100644 infusion/development/tutorial-gettingStartedWithInfusion/Subcomponents.html create mode 100644 infusion/development/tutorial-gettingStartedWithInfusion/ViewComponents.html create mode 100644 infusion/development/tutorial-iconFonts/HowToCreateAndUseFontIcons.html create mode 100644 infusion/development/tutorial-migratingToInfusion1.5/PagerMigration.html create mode 100644 infusion/development/tutorial-migratingToInfusion1.5/UIOptionsMigration.html create mode 100644 infusion/development/tutorial-prefsFramework/CreatingANewAdjusterUI.html create mode 100644 infusion/development/tutorial-prefsFramework/CreatingAPrefsEditor.html create mode 100644 infusion/development/tutorial-prefsFramework/CreatingEnactors.html create mode 100644 infusion/development/tutorial-prefsFramework/InstantiatingTheEnhancerAndSettingsStoreOnly.html create mode 100644 infusion/development/tutorial-prefsFramework/StylingThePreferencesEditor.html create mode 100644 infusion/development/tutorial-prefsFrameworkMinimalFootprint/MinimalFootprint.html create mode 100644 infusion/development/tutorial-userInterfaceOptions/ContentPropertyHighContrast.html create mode 100644 infusion/development/tutorial-userInterfaceOptions/StyleEffectsAndLegibilityInContrastModes.html create mode 100644 infusion/development/tutorial-userInterfaceOptions/UserInterfaceOptions.html create mode 100644 infusion/development/tutorial-userInterfaceOptions/UsingImagesInContrastModes.html create mode 100644 infusion/development/tutorial-userInterfaceOptions/WorkingWithUserInterfaceOptions.html create mode 100644 infusion/development/tutorial-usingStringTemplates/UsingStringTemplates.html create mode 100644 infusion/index.html diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 00000000..e69de29b diff --git a/404.html b/404.html new file mode 100644 index 00000000..65180cc2 --- /dev/null +++ b/404.html @@ -0,0 +1,28 @@ + + + + + + + + + + + + Page not found | Fluid Project Documentation + + + +
+ Fluid Project Documentation +
+ +
+
+

404 Error - Page not found

+ +

Check the entered URL, or go to the Fluid Documentation home page.

+
+
+ + diff --git a/CNAME b/CNAME new file mode 100644 index 00000000..e3cf49b9 --- /dev/null +++ b/CNAME @@ -0,0 +1 @@ +docs.fluidproject.org diff --git a/css/fluid-docs.css b/css/fluid-docs.css new file mode 100644 index 00000000..e7d84e29 --- /dev/null +++ b/css/fluid-docs.css @@ -0,0 +1,43 @@ +@import url(http://fonts.googleapis.com/css?family=Open+Sans); +@import url(http://fonts.googleapis.com/css?family=Roboto+Slab); + +body { + background-color: #f2f2f2; +} + +.fluid-docs-header, +.fluid-docs-footer { + background-color: #323232; + height: 7rem; + font-family: "Open Sans", Arial, Helvetica; + font-size: 1.1rem; +} + +.fluid-docs-header { + font-size: 1.6rem; + font-family: "Open Sans", Arial, Helvetica; + letter-spacing: 0.2rem; + padding: 2.5rem 0 0 2.5rem; +} + +.fluid-docs-header a { + color: #66CCFF; +} + +.fluid-docs-main-body { + min-height: 40rem; + margin: 0; +} + +.fluid-docs-content { + min-height: 40rem; + height: 100%; +} + +.fluid-docs-content h1 { + font-family: 'Roboto Slab'; + font-size: 3.0rem; + margin-top: 6rem; + padding-top: 1rem; + padding-bottom: 2rem; +} diff --git a/googleb25567dcba3da270.html b/googleb25567dcba3da270.html new file mode 100644 index 00000000..d83e8c6e --- /dev/null +++ b/googleb25567dcba3da270.html @@ -0,0 +1 @@ +google-site-verification: googleb25567dcba3da270.html \ No newline at end of file diff --git a/images/fluid-icon.ico b/images/fluid-icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..de00417b9cbb8809cfc06544f3b62ea6c36222b6 GIT binary patch literal 555 zcmV+`0@VG9P)xn~E$ironFah6=4S#&!!W+XddMNLb3D7(fI}FVFQ)Jy`0RQDGRa{sY)=6&x`5*; zo738i2wBr0B>eo54dt6RA#Qvm_vMObz7!S1P^~(U!K9r0BmP6H-z~lqZ?0j@RA^Z+v>ZMyzt(8v};0*mVC_ujOs_F%*HV t@$@n|3`3v+T2Rb$ift + + + + Redirect + + + + diff --git a/infusion/development/APIChangesFrom1_4To1_5.html b/infusion/development/APIChangesFrom1_4To1_5.html new file mode 100644 index 00000000..84491a2d --- /dev/null +++ b/infusion/development/APIChangesFrom1_4To1_5.html @@ -0,0 +1,634 @@ + + + + + + API Changes from 1.4 to 1.5 | Fluid Infusion + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ +
+ + +
+ + + + +
+
+ + + + + +
+ + + +
+ +
+ + +
+
+ +
+ +

API Changes from 1.4 to 1.5

+ + + + + +
+

This page contains a list of the features, APIs, and etc. that have changed in Infusion 1.5.

+

Component API Changes

+

Inline Edit

+
    +
  • Undo has been refactored into a proper Infusion Component
  • +
+

Pager

+
    +
  • RSF IDs no longer required
  • +
  • Components have been renamed
  • +
  • Components have been restructured +
      +
    • See migration guide
    • +
    +
  • +
+

UI Options

+
    +
  • Major refactoring into a preferences framework + +
  • +
+

Uploader

+
    +
  • Flash version removed (see: FLUID-5354)
  • +
  • Support for Firefox 3.x's implementation of HTML5 upload removed
  • +
+

Framework API Changes

+

Model Transformation

+
    +
  • expander renamed to transform
  • +
+

fluid.defaults

+
    +
  • the true flag has been removed
  • +
+

fluid.merge

+
    +
  • the reverse merge policy has been removed
  • +
  • now returns a fresh block of options, rather than a target passed in.
  • +
+

fluid.alias

+
    +
  • fluid.alias has been removed
  • +
+ +
+
+ + + +
+ +
+ + +
+ + + + + diff --git a/infusion/development/APIChangesFrom1_5To2_0.html b/infusion/development/APIChangesFrom1_5To2_0.html new file mode 100644 index 00000000..20a9be3b --- /dev/null +++ b/infusion/development/APIChangesFrom1_5To2_0.html @@ -0,0 +1,964 @@ + + + + + + API Changes from 1.5 to 2.0 | Fluid Infusion + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ +
+ + +
+ + + + +
+
+ + + + + +
+ + + +
+ +
+ + +
+
+ +
+ +

API Changes from 1.5 to 2.0

+ + + + + +
+

This page contains a list of the features, APIs, and etc. that have changed in Infusion 2.0.

+

Framework Changes

+

Core Framework Changes

+

This section describes major APIs that were in common use. For information about less widely-used features removed in 2.0, consult Deprecations in 1.5.

+

Component Grade Changes

+
    +
  • Replace "fluid.eventedComponent" and "fluid.littleComponent" with "fluid.component"
  • +
  • Replace "fluid.standardComponent", "fluid.modelRelayComponent" and "fluid.standardRelayComponent" with "fluid.modelComponent"
  • +
  • Replace "fluid.viewRelayComponent" with "fluid.viewComponent"
  • +
  • Replace "fluid.rendererRelayComponent" with "fluid.rendererComponent"
  • +
  • Remove "autoInit" - it is now the default for every component
  • +
  • Order of merging component grades has reversed - grades at the right-hand end of the gradeNames list now take priority over those at the left
  • +
+

fluid.demands

+

fluid.demands has been removed from the framework. Depending on your use case, these uses can be replaced by one or more of:

+ +

Manual lifecycle points

+

The component events preInit, postInit and finalInit have been removed. Instead use listeners to onCreate together with a suitable namespace +and priority declaration if necessary.

+

The component events onAttach and onClear have also been removed.

+

Dynamic invokers

+

In Infusion 1.5, standard invokers cached all of their arguments that were not part of {arguments} or {that}.model on their first use, unless they +had the annotation dynamic: true. In 2.0, all invoker arguments are evaluated freshly on each invokation, and the dynamic: true annotation is no +longer used.

+

Options distributions

+

Every component now supports a top-level options area named distributeOptions, which contains records which include priority and namespace entries - consult the page on options distributions for more details.

+

Progressive Enhancement becomes Context Awareness

+

The old "progressive enhancement" API has been removed and replaced with a new API ContextAwareness.

+

Constraint-based priorities

+

In addition to the old-style numeric and first/last priorities, constraint-based priorities of the form before:namespace and after:namespace are supported +on event listeners as well as in numerous other areas of configuration - consult Priorities.

+

fluid.makeEventFirer

+

The utility fluid.event.makeEventFirer has been moved to fluid.makeEventFirer and accepts an options structure rather than an argument list.

+

Model Sharing Changes

+
In 1.5
+

In Infusion 1.5, sharing models between non-relay components requires the change applier to be shared as a member option along with the model:

+
fluid.defaults("fluid.parent", {
+    gradeNames: ["fluid.modelComponent"],
+    components: {
+        child: {
+            type: "fluid.modelComponent",
+            options: {
+                members: {
+                    applier: "{parent}.applier"
+                },
+                model: "{parent}.model"
+            }
+        }
+    }
+});
+
+
In 2.0
+

In Infusion 2.0 where relay components are introduced, the change applier must not be configured separately - model sharing +just happens automatically:

+
fluid.defaults("fluid.parent", {
+    gradeNames: ["fluid.modelComponent"],
+    components: {
+        child: {
+            type: "fluid.modelComponent",
+            options: {
+                model: "{parent}.model"
+            }
+        }
+    }
+});
+
+

Model Reference Changes

+

In Infusion 1.5, the base model reference that.model could be relied upon to be i) an Object, and ii) constant for the lifetime of a component. In Infusion 2.0, +this model reference may change at any time and therefore must not be closed over. In addition, that.model may hold any JS type including primitives, null and undefined.

+

Preferences Framework

+

Panel Changes

+
Message Bundle Keys
+
Additions
+
    +
  • textSizeDescr
  • +
  • textFontDescr
  • +
  • lineSpaceDescr
  • +
  • contrastDescr
  • +
+
Changes
+ + + + + + + + + + + + + + +
1.52.0
choiceLabelspeakDescr
choiceLabeltocDescr
choiceLabelsimplifyDescr
+
Selectors
+
Additions
+
    +
  • contrastDescr: .flc-prefsEditor-contrast-descr
  • +
  • lineSpaceDescr: .flc-prefsEditor-line-space-descr
  • +
  • textSizeDescr: .flc-prefsEditor-text-size-descr
  • +
  • textFontDescr: .flc-prefsEditor-text-font-descr
  • +
+
Changes
+ + + + + + + + + + +
1.52.0
choiceLabel: ".flc-prefsEditor-toc-choice-label"tocDescr: ".flc-prefsEditor-toc-descr"
choiceLabel: ".flc-prefsEditor-speak-choice-label"speakDescr: ".flc-prefsEditor-speak-descr"
+
Styles
+
Changes
+ + + + + + +
1.52.0
.heading-text.fl-heading-text
+

Namespace Changes

+

Rename "fluid.prefs.enactors" to "fluid.prefs.enactor"

+

Enactor Changes

+
Styles
+
Removals
+
    +
  • .fl-font-serif
  • +
  • .fl-font-sans
  • +
  • .fl-font-monospace
  • +
  • .fl-font-courier
  • +
  • .fl-toggleButton
  • +
  • .fl-theme-prefsEditor-bw
  • +
  • .fl-theme-prefsEditor-wb
  • +
  • .fl-theme-prefsEditor-by
  • +
  • .fl-theme-prefsEditor-yb
  • +
  • .fl-theme-prefsEditor-lgdg
  • +
+
Listeners
+
In 1.5
+

In Infusion 1.5, enactors use non-relay components where the declaration of model listeners had not been implemented. Enactors use:

+
    +
  • The finalInit() function to register model listeners
  • +
  • An onCreate listener to apply the initial preference value that the model receives:
  • +
+
fluid.defaults("fluid.prefs.enactor.textSize", {
+    gradeNames: ["fluid.viewComponent", "fluid.prefs.enactor"],
+    preferenceMap: {
+        "fluid.prefs.textSize": {
+            "model.value": "default"
+        }
+    },
+    invokers: {
+        set: {
+            funcName: "fluid.prefs.enactor.textSize.set",
+            args: ["{arguments}.0", "{that}"]
+        }
+    },
+    listeners: {
+        onCreate: {
+            listener: "{that}.set",
+            args: "{that}.model.value"
+        }
+    }
+});
+
+fluid.prefs.enactor.textSize.set = function (value, that) {
+    that.root.css("font-size", value + "px");
+};
+
+fluid.prefs.enactor.textSize.finalInit = function (that) {
+    that.applier.modelChanged.addListener("value", function (newModel) {
+        that.set(newModel.value);
+    });
+};
+
+
In 2.0
+

In Infusion 2.0 enactors use model relay components and the finalInit() and the onCreate listener are replaced by declaring a model listener:

+
fluid.defaults("fluid.prefs.enactor.textSize", {
+    gradeNames: ["fluid.viewComponent", "fluid.prefs.enactor"],
+    preferenceMap: {
+        "fluid.prefs.textSize": {
+            "model.value": "default"
+        }
+    },
+    invokers: {
+        set: {
+            funcName: "fluid.prefs.enactor.textSize.set",
+            args: ["{arguments}.0", "{that}"]
+        }
+    },
+    modelListeners: {
+        value: {
+            listener: "{that}.set",
+            args: ["{change}.value"]
+        }
+    }
+});
+
+fluid.prefs.enactor.textSize.set = function (value, that) {
+    that.root.css("font-size", value + "px");
+};
+
+

Schema Changes

+
Specifying a prefsEditor type
+
In 1.5
+

In Infusion 1.5, a prefsEditorType option was used to specify the type. The default was "fluid.prefs.separatedPanel".

+
// using a previous constructed grade
+your.constructed.prefsEditor(".container", {
+    prefsEditorType: "fluid.prefs.fullNoPreview"
+});
+
+// using fluid.prefs.create to construct the grade
+fluid.prefs.create(container, {
+    build: {
+        gradeNames: ["fluid.prefs.auxSchema.starter"],
+        auxiliarySchema: {
+            "template": "%prefix/FullNoPreviewPrefsEditor.html",
+            "templatePrefix": "../../../../../src/framework/preferences/html/",
+            "messagePrefix": "../../../../../src/framework/preferences/messages/",
+            "tableOfContents": {
+                "enactor": {
+                    "tocTemplate": "../../../../../src/components/tableOfContents/html/TableOfContents.html"
+                }
+            }
+        }
+    },
+    prefsEditor: {
+        prefsEditorType: "fluid.prefs.fullNoPreview"
+    }
+});
+
+
In 2.0
+

In Infusion 2.0, the prefsEditor type is specified in a grade passed into the prefsEditorLoader via the loaderGrades property in the auxiliarySchema. +By default the "fluid.prefs.separatedPanel" grade is applied. Any grade to be applied to the prefsEditorLoader can be passed in; however, you must also supply the type grade as the default will be replaced by any modification.

+
var auxiliarySchema = {
+    "loaderGrades": ["fluid.prefs.fullNoPreview"]
+};
+
+
A new "terms" block
+
In 1.5
+

In Infusion 1.5, messagePrefix and templatePrefix are root level data defined in the auxiliary schema. When referring to them for locations of message bundles or html templates, a common %prefix is used, which causes confusion.

+
fluid.defaults("fluid.prefs.auxSchema.starter", {
+    gradeNames: ["fluid.prefs.auxSchema", "autoInit"],
+    auxiliarySchema: {
+        "loaderGrades": ["fluid.prefs.separatedPanel"],
+        "namespace": "fluid.prefs.constructed", // The author of the auxiliary schema will provide this and will be the component to call to initialize the constructed PrefsEditor.
+        "templatePrefix": "../../framework/preferences/html/",  // The common path to settings panel templates. The template defined in "panels" element will take precedence over this definition.
+        "template": "%prefix/SeparatedPanelPrefsEditor.html",
+        "messagePrefix": "../../framework/preferences/messages/",  // The common path to settings panel templates. The template defined in "panels" element will take precedence over this definition.
+        "message": "%prefix/prefsEditor.json",
+        "textSize": {
+            "type": "fluid.prefs.textSize",
+            "enactor": {
+                "type": "fluid.prefs.enactor.textSize"
+            },
+            "panel": {
+                "type": "fluid.prefs.panel.textSize",
+                "container": ".flc-prefsEditor-text-size",  // the css selector in the template where the panel is rendered
+                "template": "%prefix/PrefsEditorTemplate-textSize.html",
+                "message": "%prefix/textSize.json"
+            }
+        }
+        // ...
+    }
+});
+
+
In 2.0
+

In Infusion 2.0, both templatePrefix and messagePrefix become sub-elements of a terms block. The terms block is used to define all string templates used by fluid.prefs.resourceLoader. +To refer to these terms, rather than using an ambiguous %prefix, use the specific term names such as %templatePrefix or %messagePrefix.

+
fluid.defaults("fluid.prefs.auxSchema.starter", {
+    gradeNames: "fluid.prefs.auxSchema",
+    auxiliarySchema: {
+        "loaderGrades": ["fluid.prefs.separatedPanel"],
+        "namespace": "fluid.prefs.constructed", // The author of the auxiliary schema will provide this and will be the component to call to initialize the constructed PrefsEditor.
+        "terms": {
+            "templatePrefix": "../../framework/preferences/html",  // Must match the keyword used below to identify the common path to settings panel templates.
+            "messagePrefix": "../../framework/preferences/messages"  // Must match the keyword used below to identify the common path to message files.
+        },
+        "template": "%templatePrefix/SeparatedPanelPrefsEditor.html",
+        "message": "%messagePrefix/prefsEditor.json",
+        "textSize": {
+            "type": "fluid.prefs.textSize",
+            "enactor": {
+                "type": "fluid.prefs.enactor.textSize"
+            },
+            "panel": {
+                "type": "fluid.prefs.panel.textSize",
+                "container": ".flc-prefsEditor-text-size",  // the css selector in the template where the panel is rendered
+                "template": "%templatePrefix/PrefsEditorTemplate-textSize.html",
+                "message": "%messagePrefix/textSize.json"
+            }
+        }
+        // ...
+    }
+});
+
+

PrefsEditor Changes

+
Selectors
+
Removals
+
    +
  • .flc-prefsEditor-separatedPanel-tabs
  • +
  • .flc-prefsEditor-controls
  • +
+
Styles
+
Removals
+
    +
  • .fl-prefsEditor-option-description
  • +
  • .fl-prefsEditor-separatedPanel-toc
  • +
  • .fl-prefsEditor-text-icon
  • +
  • .fl-prefsEditor-layout-icon
  • +
  • .fl-prefsEditor-links-icon
  • +
  • .fl-prefsEditor-save
  • +
  • .fl-prefsEditor-cancel
  • +
  • .fl-icon-lines
  • +
  • .fl-icon-preferences
  • +
  • .fl-icon-next
  • +
  • .fl-icon-prev
  • +
  • .fl-icon-speak
  • +
+
A new model path "preferences"
+
In 1.5
+

In Infusion 1.5, all preferences reside at the root of the prefsEditor component's model.

+
/*******************************************************************************
+ * Starter root Model
+ *
+ * Provides the default values for the starter enhancer/panels models
+ *******************************************************************************/
+
+fluid.defaults("fluid.prefs.initialModel.starter", {
+    gradeNames: ["fluid.prefs.initialModel", "autoInit"],
+    members: {
+        initialModel: {
+            textFont: "default",          // key from classname map
+            theme: "default",             // key from classname map
+            textSize: 1,                  // in points
+            lineSpace: 1,                 // in ems
+            toc: false,                   // boolean
+            links: false,                 // boolean
+            inputsLarger: false           // boolean
+        }
+    }
+});
+
+
In 2.0
+

In Infusion 2.0, preferences are moved to a model path named preferences so the prefsEditor model can be used to save other user data as well. +This means that the enhancer model no longer receives the entire prefsEditor model. It only receives the value held at the path preferences.

+
/*******************************************************************************
+ * Starter prefsEditor Model
+ *
+ * Provides the default values for the starter prefsEditor model
+ *******************************************************************************/
+
+fluid.defaults("fluid.prefs.initialModel.starter", {
+    gradeNames: "fluid.prefs.initialModel",
+    members: {
+        initialModel: {
+            preferences: {
+                textFont: "default",          // key from classname map
+                theme: "default",             // key from classname map
+                textSize: 1,                  // in points
+                lineSpace: 1,                 // in ems
+                toc: false,                   // boolean
+                links: false,                 // boolean
+                inputsLarger: false           // boolean
+            }
+        }
+    }
+});
+
+ +
+
+ + + +
+ +
+ + +
+ + + + + diff --git a/infusion/development/APIChangesFrom2_0To3_0.html b/infusion/development/APIChangesFrom2_0To3_0.html new file mode 100644 index 00000000..3feaca48 --- /dev/null +++ b/infusion/development/APIChangesFrom2_0To3_0.html @@ -0,0 +1,699 @@ + + + + + + API Changes from 2.0 to 3.0 | Fluid Infusion + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ +
+ + +
+ + + + +
+
+ + + + + +
+ + + +
+ +
+ + +
+
+ +
+ +

API Changes from 2.0 to 3.0

+ + + + + +
+

This page contains a list of the features, APIs, and etc. that have changed in Infusion 3.0.

+

Framework Changes

+

Core Framework Changes

+

This section describes major APIs that were in common use. For information about less widely-used features removed in 3.0, consult Deprecations in 2.0.

+

Model Transformations

+
    +
  • fluid.transforms.round can take in scale and method options for rounding numbers to a decimal value. Additionally, numbers round away from 0 (i.e 0.5 -> 1, -0.5 -> -1).
  • +
  • fluid.transforms.valueMapper takes an defaultInput option to provide the model data directly. This also provides a location for adding nested transformations.
  • +
+

Preferences Framework

+

Model Changes

+
Reset
+

By default, reset will only reset the preferences model path. Other model values will remain unchanged. If you'd like to also have these paths changed, add a listener to the beforeReset event to execute a fireChangeRequest for the model paths you need to reset. (See: ArrowScrolling.js)

+
listeners: {
+    "beforeReset.resetPanelIndex": {
+        listener: "{that}.applier.fireChangeRequest",
+        args: {path: "panelIndex", value: 0, type: "ADD", source: "reset"}
+    }
+}
+
+
Model Paths
+

Any prefsEditor using the fluid.prefs.arrowScrolling grade, such as the one contained in fluid.prefs.separatedPanel, will contain the following new model paths.

+ + + + + + + + + + + + + + + + + + + + +
Model PathDefaultDescription
panelIndex0The index of the panel to scroll to in the small screen responsive view.
panelMaxIndexA number representing the index of the last panelThe maximum index that panelIndex can take. It is calculated from the total number of panels present.
+

Panel Changes

+

The "Links and Buttons" adjusters and enactors are collapsed to a single preference called "Enhance Links".

+
Selectors
+

All panels must supply a header selector, which will be used by the fluid.prefs.arrowScrolling grade to provide the clickable arrows for navigating between adjusters in the small screen responsive view.

+
Message Bundle Keys
+
Additions
+
    +
  • enhanceInputs.json +
      +
    • "label"
    • +
    • "description"
    • +
    • "switchOn"
    • +
    • "switchOff"
    • +
    +
  • +
  • speak.json +
      +
    • "switchOn"
    • +
    • "switchOff"
    • +
    +
  • +
  • tableOfContents.json +
      +
    • "switchOn"
    • +
    • "switchOff"
    • +
    +
  • +
+
Removals
+
    +
  • inputsLarger.json
  • +
  • emphasizeLinks.json
  • +
  • linksControls.json
  • +
+
Changes
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Message BundleIn 3.0.0In 2.0.0
speak.json"label""speakLabel"
"description""speakDescr"
tableOfContents.json"label""tocLabel"
"description""tocDescr"
+

Component API Changes

+

Reorderer Component

+
    +
  • The stylisticOffset selector was no longer in use and has been removed.
  • +
+ +
+
+ + + +
+ +
+ + +
+ + + + + diff --git a/infusion/development/AuxiliarySchemaForPreferencesFramework.html b/infusion/development/AuxiliarySchemaForPreferencesFramework.html new file mode 100644 index 00000000..d196ed64 --- /dev/null +++ b/infusion/development/AuxiliarySchemaForPreferencesFramework.html @@ -0,0 +1,924 @@ + + + + + + Auxiliary Schema for Preferences Framework | Fluid Infusion + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ +
+ + +
+ + + + +
+
+ + + + + +
+ + + +
+ +
+ + +
+
+ +
+ +

Auxiliary Schema for Preferences Framework

+ + + + + +
+

An Auxiliary Schema is a JSON document that defines the information needed to build a preferences editor interface, including

+
    +
  • what component(s) to use to render the preference panels,
  • +
  • where to find HTML templates and string bundles,
  • +
  • what component(s) to use to act on preference settings.
  • +
+

An auxiliary schema must contain some required properties, described below. In addition to these properties, developers are free to include any other properties their implementation may require.

+

Properties

+

Top-level properties

+
    +
  • namespace (optional; recommended) +
      +
    • the namespace of the component to call to initialize the constructed grades
    • +
    +
  • +
  • loaderGrades (optional) +
      +
    • an array of grades to be applied to the prefsEditorLoader. To modify the default prefsEditor type ("fluid.prefs.separatedPanel"), a valid alternative should be supplied here.
    • +
    +
  • +
  • terms +
      +
    • defines paths to directories containing the message files and template files. This property is used to define all common terms used by fluid.prefs.resourceLoader.
    • +
    +
  • +
  • message +
      +
    • the path to the message bundle for the prefs editor itself
    • +
    • provided the term name defined in the terms block for the path to the directory containing the messages is messagePrefix, use %messagePrefix to reference the prefix specified by messagePrefix as part of the path
    • +
    +
  • +
  • template +
      +
    • the path to the template for the prefs editor itself
    • +
    • provided the term name defined in the terms block for the path to the directory containing the html templates is templatePrefix, use %templatePrefix to reference the prefix specified by templatePrefix as part of the path
    • +
    +
  • +
+

Preference block properties

+

Preference blocks can be given any property name, so long as the name is unique within the schema. Preference blocks will have the following properties:

+
    +
  • type +
      +
    • used to define the preference setting type
    • +
    • must match the string defined by the Primary Schema
    • +
    +
  • +
  • panel +
      +
    • specifies the configuration for the panel component
    • +
    • each preference block can specify only one panel
    • +
    +
  • +
  • enactor +
      +
    • specifies the configuration for the enactor component
    • +
    • each preference block can specify only one enactor
    • +
    +
  • +
+

Panel properties

+
    +
  • type +
      +
    • used to identify the component to use
    • +
    +
  • +
  • container +
      +
    • the DOM element to use as a container for the component
    • +
    • only used in the "panel" block
    • +
    +
  • +
  • template +
      +
    • the path to the template for the panel
    • +
    • provided the term name defined in the top level terms property for the path to the directory containing the templates is templatePrefix, use %templatePrefix to reference the prefix specified by templatePrefix as part of the path
    • +
    +
  • +
  • message +
      +
    • the path to the message bundle for the panel
    • +
    • provided the term name defined in the top level terms property for the path to the directory containing the messages is messagePrefix, use %messagePrefix to reference the prefix specified by messagePrefix as part of the path
    • +
    +
  • +
+

Enactor properties

+
    +
  • type +
      +
    • used to identify the component to use
    • +
    +
  • +
+

Composite Panel properties

+
    +
  • groups +
      +
    • contains named composite panel blocks, similar to panel definitions described above
    • +
    • contains special panels property listing names of subpanels to include
    • +
    +
  • +
+

For detailed information about how to work with composite panels, see Composite Panels.

+

Example Auxiliary Schema

+
{
+    // The author of the auxiliary schema will provide the namespace, which will be used
+    //for the component to call to initialize the constructed grades.
+    "namespace": "fluid.prefs.constructed",
+
+    // The common terms to use in "template" and "message" properties in "panels" elements
+    "terms": {
+        // The template defined in "panels" element will take precedence over this definition.
+        "templatePrefix": "../../../framework/preferences/html",
+        // The message defined in "panels" element will take precedence over this definition.
+        "messagePrefix": "../../../framework/preferences/messages",
+    },
+
+    // The path to the preferences editor own template (e.g. the separated panel prefs editor template)
+    "template": "%templatePrefix/SeparatedPanelPrefsEditor.html",
+
+     // The path to the preferences editor own message file (e.g. the separated panel prefs editor message file)
+    "message": "%messagePrefix/prefsEditor.json",
+
+    "textSize": {
+        "type": "fluid.prefs.textSize",
+        "enactor": {
+            "type": "fluid.prefs.enactor.textSize"
+        },
+        "panel": {
+            "type": "fluid.prefs.panels.textSize",
+            "container": ".flc-prefsEditor-text-size",
+            "template": "%templatePrefix/PrefsEditorTemplate-textSize.html",
+            "message": "%messagePrefix/textSize.json"
+        }
+    },
+    "lineSpace": {
+        "type": "fluid.prefs.lineSpace",
+        "enactor": {
+            "type": "fluid.prefs.enactor.lineSpace",
+            "fontSizeMap": {
+                "xx-small": "9px",
+                "x-small": "11px",
+                "small": "13px",
+                "medium": "15px",
+                "large": "18px",
+                "x-large": "23px",
+                "xx-large": "30px"
+            }
+        },
+        "panel": {
+            "type": "fluid.prefs.panels.lineSpace",
+            "container": ".flc-prefsEditor-line-space",
+            "template": "%templatePrefix/PrefsEditorTemplate-lineSpace.html",
+            "message": "%messagePrefix/lineSpace.json"
+        }
+    },
+    "textFont": {
+        "type": "fluid.prefs.textFont",
+        "classes": {
+            "default": "",
+            "times": "fl-font-uio-times",
+            "comic": "fl-font-uio-comic-sans",
+            "arial": "fl-font-uio-arial",
+            "verdana": "fl-font-uio-verdana"
+        },
+        "enactor": {
+            "type": "fluid.prefs.enactor.textFont",
+            "classes": "@textFont.classes"
+        },
+        "panel": {
+            "type": "fluid.prefs.panels.textFont",
+            "container": ".flc-prefsEditor-text-font",
+            "classnameMap": {"textFont": "@textFont.classes"},
+            "template": "%templatePrefix/PrefsEditorTemplate-textFont.html",
+            "message": "%messagePrefix/textFont.json"
+        }
+    },
+    "contrast": {
+        "type": "fluid.prefs.contrast",
+        "classes": {
+            "default": "fl-theme-default-prefsEditor",
+            "bw": "fl-theme-bw-prefsEditor fl-theme-bw",
+            "wb": "fl-theme-wb-prefsEditor fl-theme-wb",
+            "by": "fl-theme-by-prefsEditor fl-theme-by",
+            "yb": "fl-theme-yb-prefsEditor fl-theme-yb",
+            "lgdg": "fl-theme-lgdg-prefsEditor fl-theme-lgdg"
+        },
+        "enactor": {
+            "type": "fluid.prefs.enactor.contrast",
+            "classes": "@contrast.classes"
+        },
+        "panel": {
+            "type": "fluid.prefs.panels.contrast",
+            "container": ".flc-prefsEditor-contrast",
+            "classnameMap": {"theme": "@contrast.classes"},
+            "template": "%templatePrefix/PrefsEditorTemplate-contrast.html",
+            "message": "%messagePrefix/contrast.json"
+        }
+    },
+    "tableOfContents": {
+        "type": "fluid.prefs.tableOfContents",
+        "enactor": {
+            "type": "fluid.prefs.enactor.tableOfContents",
+            "tocTemplate": "../../../../components/tableOfContents/html/TableOfContents.html"
+        },
+        "panel": {
+            "type": "fluid.prefs.panels.layoutControls",
+            "container": ".flc-prefsEditor-layout-controls",
+            "template": "%templatePrefix/PrefsEditorTemplate-layout.html",
+            "message": "%messagePrefix/tableOfContents.json"
+        }
+    },
+    "emphasizeLinks": {
+        "type": "fluid.prefs.emphasizeLinks",
+        "enactor": {
+            "type": "fluid.prefs.enactor.emphasizeLinks",
+            "cssClass": "fl-link-enhanced"
+        },
+        "panel": {
+            "type": "fluid.prefs.panels.linksControls",
+            "container": ".flc-prefsEditor-links-controls",
+            "template": "%templatePrefix/PrefsEditorTemplate-links.html",
+            "message": "%messagePrefix/links.json"
+        }
+    },
+    "inputsLarger": {
+        "type": "fluid.prefs.inputsLarger",
+        "enactor": {
+            "type": "fluid.prefs.enactor.inputsLarger",
+            "cssClass": "fl-text-larger"
+        },
+        "panel": {
+            "type": "fluid.prefs.panel.inputsLarger",
+            "container": ".flc-prefsEditor-inputsLarger",  // the css selector in the template where the panel is rendered
+            "template": "%templatePrefix/PrefsEditorTemplate-inputsLarger.html",
+            "message": "%messagePrefix/inputsLarger.json"
+        }
+    },
+    groups: {
+        "linksControls": { // this defines a composite panel
+            "container": ".flc-prefsEditor-links-controls",
+            "template": "%templatePrefix/PrefsEditorTemplate-linksControls.html",
+            "message": "%messagePrefix/linksControls.json",
+            "type": "fluid.prefs.panel.linksControls",
+            "panels": ["emphasizeLinks", "inputsLarger"] // the composite panel includes these two subpanels
+        }
+    }
+}
+
+

Sharing data between panels and enactors

+

In some cases, panels and enactors may need to share data, such as a list of class names. In these cases, define the data at the root of the relevant preference block and reference it within the panel and enactor blocks, as seen in the example above (in the contrast and textFont preference blocks). The general structure and syntax is highlighted below:

+
{
+    "prefBlockName": {
+        "type": "typename",
+        "dataToBeShared": {
+            // ...
+        },
+        "enactor": {
+            "type": "enactor.component.name",
+            "sharedData": "@prefBlockName.dataToBeShared"
+        },
+        "panel": {
+            "type": "panel.component.name",
+            "sharedData": "@prefBlockName.dataToBeShared",
+            // ...
+        }
+    }
+}
+
+

Configuring Multiple Panels and Enactors for a Single Preference

+

Each preference block can contain configuration for at most one enactor and one panel. If more than one enactor and/or panel needs to be configured for a given preference, you can create another preference block with a new namespace.

+
{
+    // ...
+    // Standard preference block configuration
+    "textSize": {
+        "type": "fluid.prefs.textSize",
+        "enactor": {
+            "type": "fluid.prefs.enactor.textSize"
+        },
+        "panel": {
+            "type": "fluid.prefs.panels.textSize",
+            "container": ".flc-prefsEditor-text-size",
+            "template": "%templatePrefix/PrefsEditorTemplate-textSize.html",
+            "message": "%messagePrefix/textSize.json"
+        }
+    },
+    // An additional panel and enactor configured for the same preference
+    // Note: the namespace, "additional", can be any valid string
+    "textSize.additional": {
+        "type": "fluid.prefs.textSize",
+        "enactor": {
+            "type": "fluid.prefs.enactor.foo"
+        },
+        "panel": {
+            "type": "fluid.prefs.panels.foo",
+            "container": ".flc-prefsEditor-foo",
+            "template": "%templatePrefix/PrefsEditorTemplate-foo.html",
+            "message": "%messagePrefix/foo.json"
+        }
+    }
+    // ...
+}
+
+

Configuring a Single Panel for Multiple Enactors and Preferences

+

Each preference block defines only one preference, even if multiple preferences (with their own enactors) are displayed in the same panel. In these cases, multiple preference blocks still need to be configured:

+
    +
  • Each preference block declares the common panel type, and
  • +
  • the detail information for this panel is defined in any one (and only one) of these panel block.
  • +
+

The example below shows two preferences (emphasizeLinks and inputsLarger) sharing the same panel fluid.prefs.panels.linksControls. The details for this panel are only defined in the preference block for emphasizeLinks.

+
{
+    "emphasizeLinks": {
+        "type": "fluid.prefs.emphasizeLinks",
+        "enactor": {
+            "type": "fluid.prefs.enactor.emphasizeLinks",
+            "cssClass": "fl-link-enhanced"
+        },
+        "panel": {
+            "type": "fluid.prefs.panels.linksControls",
+            "container": ".flc-prefsEditor-links-controls",
+            "template": "%templatePrefix/PrefsEditorTemplate-links.html",
+            "message": "%messagePrefix/links.json"
+        }
+    },
+    "inputsLarger": {
+        "type": "fluid.prefs.inputsLarger",
+        "enactor": {
+            "type": "fluid.prefs.enactor.inputsLarger",
+            "cssClass": "fl-text-larger"
+        },
+        "panel": {
+            "type": "fluid.prefs.panels.linksControls"
+        }
+    }
+}
+
+ +
+
+ + + +
+ +
+ + +
+ + + + + diff --git a/infusion/development/Builder.html b/infusion/development/Builder.html new file mode 100644 index 00000000..0ee6607a --- /dev/null +++ b/infusion/development/Builder.html @@ -0,0 +1,807 @@ + + + + + + Builder | Fluid Infusion + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ +
+ + +
+ + + + +
+
+ + + + + +
+ + + +
+ +
+ + +
+
+ +
+ +

Builder

+ + + + + +
+

The Infusion Preferences Framework includes a tool called the Builder, which automatically creates all the components you need given primary and auxiliary schemas. The builder constructs all the components necessary to render the preferences editor, store preferences, and respond to changes in preferences. However, you'll generally want to use the simpler method "fluid.prefs.create" for creating and instantiating a Preferences Editor.

+
var builder = fluid.prefs.builder(options);
+
+
+

Note: In this form, the namespace property of the auxiliary schema is required.

+
+

Parameters

+ + +
options(Object) The configuration options for the builder. See Options below for more information.
+

where options is a JavaScript object containing information configuring your builder.

+

Return Value

+ + +
ObjectThe builder object. See Builder Object below for more information.
+

Options

+ + + + + + +

+ + + + + + + + + + + + + +
NameDescriptionValuesDefault
gradeNames(Optional) A list of grade names to be used for the builder. +

This option can be used to specify the names of grades that define schemas, as an alternative to specifying the schemas through the direct options. If you do not provide the auxiliarySchema option, you must include the grade name of a grade that includes an auxiliary schema.

Array of stringsnone
primarySchema(Optional) A JavaScript object providing primary schema details. See Processing the Schemas below for more details.Object{}
auxiliarySchema(Optional) A JavaScript object providing auxiliary schema details. See Processing the Schemas below for more details. If you do not specify the grade name of a grade that includes an auxiliary schema, you must include this option.Object{}
+
Note: You must provide at least one of
+
    +
  • the auxiliarySchema option, or
  • +
  • a gradeName indicating an auxiliary schema.
  • +
+

If you provide both, they will be merged (with the auxiliarySchema overriding anything in the grade schema), but you must provide at least one.

+

Usage

+

The simplest usage of the builder is through the two schema options:

+
var myBuilder = fluid.prefs.builder({
+    primarySchema: {
+        // ...
+    },
+    auxiliarySchema: {
+        // ...
+    }
+});
+
+

Using the Starter Preferences

+

The Preferences Framework includes primary and auxiliary schema for a set of preferences, referred to to as the "starter set." This set includes the following preferences:

+
    +
  • text size
  • +
  • text font
  • +
  • line spacing
  • +
  • colour contrast
  • +
  • table of contents
  • +
  • inputs larger
  • +
  • emphasize links
  • +
+

To use these preferences and the panels that come with them, use the Framework-provided starter auxiliary schema grade name, fluid.prefs.auxSchema.starter, as shown below:

+
var myBuilder = fluid.prefs.builder({
+    gradeNames: ["fluid.prefs.auxSchema.starter"]
+});
+
+

You may need to override the template and message bundle path prefixes, if your relative paths are different than the defaults:

+
var myBuilder = fluid.prefs.builder({
+    gradeNames: ["fluid.prefs.auxSchema.starter"],
+    auxiliarySchema: {
+        "terms": {
+            "templatePrefix": "<custom relative path to template folder>",
+            "messagePrefix": "<custom relative path to messages folder>"
+        }
+    }
+});
+
+

It is not necessary to specify the primary schema; The builder will automatically find the preference specifications provided by the Framework and build a primary schema (see Processing the Schemas below for more information).

+

Switching Between Native HTML and jQuery UI Widgets

+

It is possible when using the Preferences Framework to configure the use of either HTML or jQuery UI-based adjustment widgets. The default behaviour is to use HTML widgets for components that have this option available.

+

The Context Awareness features of Infusion is used to allow components to make the choice at creation time based on a registered check:

+
// Prefer the use of native HTML widgets when available (default)
+fluid.contextAware.makeChecks({
+    "fluid.prefsWidgetType": {
+        value: "nativeHTML"
+    }
+});
+
+
// Prefer the use of jQueryUI widgets when available
+fluid.contextAware.makeChecks({
+    "fluid.prefsWidgetType": {
+        value: "jQueryUI"
+    }
+});
+
+

The most basic use is shown above, but more complex ones based on browser feature detection or other means can be envisioned.

+

At the moment, only the TextFieldSlider widget used for text size and line spacing preferences is context-aware, and can use either the +native HTML range input (rendered as a horizontal slider in modern browsers) or +the jQuery UI Slider component to create its slider. Other context-aware widgets may be added in the future.

+

Auxiliary Schema Grade

+

If a grade name is used to provide the auxiliary schema, the grade must meet certain criteria:

+
    +
  • it must have a grade of fluid.prefs.auxSchema, and
  • +
  • it must have an auxiliarySchema option defined.
  • +
+
fluid.defaults("my.editor.auxSchema", {
+    gradeNames: ["fluid.prefs.auxSchema"],
+    auxiliarySchema: {
+        // auxiliary schema specifics here
+    }
+});
+var myBuilder = fluid.prefs.builder({
+    gradeNames: ["my.editor.auxSchema"]
+});
+
+

Processing the Schemas

+

The Preferences Framework builds an internal, preliminary primary schema as follows:

+
    +
  1. It combines any schemas it finds in the fluid.prefs.schemas namespace;
  2. +
  3. It merges these with any information found in the primarySchema option.
  4. +
+

This preliminary schema is then filtered based on the preferences found in the auxiliary schema to produce the subset of only preferences found in both the primary and auxiliary schemas. This set of preferences will be the final set supported by the builder.

+
Note: All panels and enactors defined in the auxiliary schema will be created and rendered, but only those that have corresponding preferences in the primary schema will actually work.
+

Output of Builder

+

Builder Object

+

The builder object returned by a call to fluid.prefs.builder() has the following properties that can be used to instantiate the constructed preferences editor:

+ + + + + + + + + + + + +
NameTypeDescription
options.assembledPrefsEditorGradeStringGrade name of the constructed preferences editor; can be used to instantiate the preferences editor, enhancer and settings store using fluid.invokeGlobalFunction.
options.assembledUIEGradeStringGrade name of the constructed enhancer; can be used to instantiate the enhancer and settings store using fluid.invokeGlobalFunction.
+

Functions

+

The builder also creates free functions that can be used to instantiate the preferences editor and enhancer. These functions are created within the namespace specified in the auxiliary schema, if specified, or in a unique namespace, "fluid.prefs.created_UNIQUE_ID".

+

The functions created include:

+
    +
  • prefsEditor() which can be used to instantiate the preferences editor, enhancer and settings store
  • +
  • uie() which can be used to instantiate the enhancer and settings store
  • +
+

Examples

+

Starter schemas, default namespace

+
var myBuilder = fluid.prefs.builder({
+    // use the Framework-provided starter schema grade
+    gradeNames: ["fluid.prefs.auxSchema.starter"],
+
+    // override the paths in the starter grade
+    auxiliarySchema: {
+        "terms": {
+            "templatePrefix": "../../../framework/preferences/html",
+            "messagePrefix": "../../../framework/preferences/messages"
+        }
+    }
+
+    // by not providing a primarySchema, the 'starter' prefs will be used
+});
+
+// instantiate the default 'fat panel' version of the preferences editor
+// (along with the enhancer and settings store)
+fluid.invokeGlobalFunction(builder.options.assembledPrefsEditorGrade, [".fat-panel-container"]);
+
+// alternatively, the same instantiation can be accomplished using the public function
+fluid.prefs.constructed.prefsEditor(".fat-panel-container");
+
+

Custom schemas, custom namespace

+
// define a primary schema, with a single preference
+var myPrefsPrimary = {
+    "my.prefs.textSize": {
+        type: "number",
+        "default": 12,
+        minimum: 8,
+        maximum: 24,
+        divisibleBy: 2
+    }
+};
+// define a grade containing the auxiliary schema, specifying
+// the panel and enactor for the preference
+fluid.defaults("my.prefs.editor.aux", {
+    gradeNames: ["fluid.prefs.auxSchema"],
+    auxiliarySchema: {
+        namespace: "my.prefs.editor",
+        terms: {
+            templatePrefix: "templates",
+            messagePrefix: "messages"
+        },
+        template: "%templatePrefix/MyEditorTemplate.html",
+        message: "%messagePrefix/MyEditorStrings.html",
+        textSize: {
+            type: "my.prefs.textSize",
+            enactor: {
+                type: "my.prefs.enactors.textSize" // defined elsewhere
+            },
+            panel: {
+                type: "my.prefs.panels.textSize", // defined elsewhere
+                container: ".my-text-size",
+                template: "%templatePrefix/textSizeTemplate.html",
+                message: "%messagePrefix/textSize.json"
+            }
+        }
+    }
+});
+// create the builder using the auxiliary schema grade and the primary schema object
+var myBuilder = fluid.prefs.builder({
+    gradeNames: ["my.prefs.editor.aux"],
+    primarySchema: myPrefsPrimary
+});
+// instantiate the editor, enhancer and settings store
+my.prefs.editor.prefsEditor(".my-editor-container");
+
+ +
+
+ + + +
+ +
+ + +
+ + + + + diff --git a/infusion/development/ChangeApplier.html b/infusion/development/ChangeApplier.html new file mode 100644 index 00000000..7cef10c3 --- /dev/null +++ b/infusion/development/ChangeApplier.html @@ -0,0 +1,610 @@ + + + + + + ChangeApplier | Fluid Infusion + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ +
+ + +
+ + + + +
+
+ + + + + +
+ + + +
+ +
+ + +
+
+ +
+ +

ChangeApplier

+ + + + + +
+

The ChangeApplier is a core part of the architecture of Fluid Infusion, which coordinates access to +model state across a tree of components. +Every model-bearing component has a ChangeApplier automatically +constructed by the framework, which can be used either programmatically or declaratively to trigger +changes in the component's model state or register to be notified of changes. The model state in a +component tree is coordinated globally by the Model Relay system as part of the +model skeleton which +consists of those models which are linked together by relay specifications.

+

As well as being based on Fluid's model-directed thinking, the ChangeApplier is also implemented in +terms of Fluid's Event System, which you should be familiar with before using the ChangeApplier.

+

Thinking behind the ChangeApplier

+

The ChangeApplier is a natural outgrowth of Fluid's focus on (transparent) model-directed programming - see +the Framework Concepts discussion on Model Objects. +"Morally", a model should be "fully transparent" - meaning that it consists of standard POJOs and +is available for inspection by reading, using standard language constructs, at all times. For example, +if model is a JavaScript variable holding the overall model, accessing a field within the model is as +simple as writing a standard Javascript expression model.field1.subfield2 etc. In practice, we don't +advise that users write JavaScript code that inspects models manually - instead, they +should use the declarative features supplied by ChangeApplier both to trigger changes and react to them.

+

This is in contrast to many other frameworks, which generally take one of two routes - either +insisting that a model is composed of some form of more or less "magic" objects - these might be +derived from a base class or interface which is called "Model" or "Storage" - or else allowing "any +old objects" to serve as model material without providing assistance in coordinating updates.

+ +
+
+ + + +
+ +
+ + +
+ + + + + diff --git a/infusion/development/ChangeApplierAPI.html b/infusion/development/ChangeApplierAPI.html new file mode 100644 index 00000000..4ba2298b --- /dev/null +++ b/infusion/development/ChangeApplierAPI.html @@ -0,0 +1,1134 @@ + + + + + + ChangeApplier API | Fluid Infusion + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ +
+ + +
+ + + + +
+
+ + + + + +
+ + + +
+ +
+ + +
+
+ +
+ +

ChangeApplier API

+ + + + + +
+

This section explains and documents the various Javascript API calls for instantiating and working with ChangeAppliers. +In practice, users will use the ChangeAppliers which are automatically constructed for every Model Component as its top-level member applier and will not construct their own. +Furthermore, a good deal of the use made of ChangeAppliers will take the form of Declarative Configuration rather than +literal JavaScript API calls. This page presents both programmatic calls and their declarative equivalents where they exist.

+

Registering interest in model changes using a ChangeApplier

+

Declarative style for listening to changes

+

The declarative style for registering interest in change events uses an entry in the modelListeners options area of a modelComponent. These listeners are attached to the applier during the construction process of the entire component (and its surrounding tree) and so will therefore become notified as part of the initial transaction - they will therefore get to observe the model changing state from its primordial value of undefined to holding their initial resolved value. This is the recommended way of listening to model changes using the ChangeApplier system.

+

Each record in the modelListeners block has the format <shortModelPathReference or namespace>: <modelListener declaration>. The left and right hand sides of this definition will be explained in the subsequent sections:

+

Model Path References

+

A <shortModelPathReference> has the form:

+ + + + + + + + + + + + + + + + + + + + + + + +
Syntax definition for <shortModelPathReference> - the key in modelListeners options block for a modelComponent
SyntaxMeaningExamples
Simple StringReference to a model path in this component +
    +
  • "modelPath"
  • +
  • "modelPath.*"
  • +
  • ""
  • +
  • "*"
  • +
+
IoC ReferenceReference to a model path in another component +
    +
  • "{otherComponent}.model.modelPath"
  • +
  • "{otherComponent}.model.modelPath.*"
  • +
  • "{otherComponent}.model"
  • +
  • "{otherComponent}.model.*"
  • +
+
+

The key for a modelListener will be interpreted as a <shortModelPathReference> if the modelListener declaration does not contain a member named path. If the modelListener declaration includes path, then the key will be interpreted as a +namespace instead, unless the declaration includes a namespace member, which takes priority as defining the namespace.

+

The four examples presented in the "Examples" column are parallel for the two cases - they respectively match changes occurring in the same parts of the target model, only in the first row they match into the model attached to this component (the same one in which the modelListeners record appears) and in the second row they match into the model attached to another component - one referenced by the Context Expression otherComponent.

+

Note that more complex path specifications may be provided in the path member of a model listener declaration.

+

Model Listener Declaration

+

A model listener declaration block has the same form and meaning as any of the record types supported by Invokers and Listeners - +including the one-string compact syntax documented with Invokers, and the use of Priorities. Like standard event listener entries, model +listeners can provide a namespace entry. Just one model listener with a particular namespace will be registered on a particular ChangeApplier.

+

A model listener declaration block includes three extra features beyond those found in ordinary event listeners. Firstly is the possibility of including a member path of type <modelPathReference> (a String or Object), which can hold +a more complex path specification for the model listener match than can be encoded in the single string in a <shortModelPathReference>, secondly the ability to filter a change based on its source, using the members +includeSource and excludeSource, and finally the possibility that any IoC-resolved material in the listener declaration may match the special context name change which corresponds to the model change +that the listener is reacting to. These entries are described in the linked sections below:

+

The path entry in a model listener declaration

+

The path entry fulfils the same basic function as the <shortModelPathReference> which may form the key of the listener declaration, but allows a richer set of path specifications to be used for +specifying which changes this model listener will respond to. Note that if the path entry is supplied, then the key of the listener will be interpreted as a namespace for the listener rather than as +a path specification.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Possible values for the path member of a model listener declaration (first two rows define <modelPathReference>)
TypeMeaningExamples
StringA <shortModelPathReference> + See examples in section Model Path References +
ObjectA <modelPathRecord>, including members
    +
  • segs (Array - required) and
  • +
  • context (String - optional) which encodes the model path to be matched.
  • +
+
These examples encode exactly the same path expressions, in the same order as in the section Model Path References +
    +
  • {segs: ["modelPath"]}
  • +
  • {segs: ["modelPath", "*"]}
  • +
  • {segs: []}
  • +
  • {segs: ["*"]}
  • +
  • {segs: ["modelPath"], context: "otherComponent"}
  • +
  • {segs: ["modelPath", "*"], context: "otherComponent"}
  • +
  • {segs: [], context: "otherComponent"}
  • +
  • {segs: ["*"], context: "otherComponent"}
  • +
+
ArrayAn array of <modelPathReference>: members are either a String holding a <shortModelPathReference> or an Object <modelPathRecord>. The listener will be notified when any of these + paths receive changes. Below is further information on matching on multiple paths[ + "position", { + segs: ["windowHolders", "{that}.options.ourWindow"] + } + ] +
+

Matching on multiple paths in a single model listener declaration

+

When the path member of a model listener declaration holds an Array, the listener will be notified when any of these paths receive changes.

+

Note that a listener which specifies references to multiple component targets in such a list will only receive one notification per component at the end of a transaction where a change matches. For example, if the listener list +contains {otherComponent}.model.x.y and {otherComponent}.model.x, the listener will only be notified once for {otherComponent} for a matching change. A listener which supplies an +array of more than one element in path will not be able to make use of either the special context change or the possibility of using the wildcard character +* in the final path segment. Note that elements of segs may themselves consist of IoC references resolving to configuration in the tree (although they may not hold references to model material - they are evaluated just once when the component constructs).

+

The special context change

+

An extra context name is available in a model listener block by the name of change. This is bound to the particular change event which triggered this listener. This context behaves as an object with the following fields:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Members of the {change} object bound in a model listener declaration
MemberTypeDescription
{change}.valueAny typeThe new value which is now held at the model path matched by this model listener block
{change}.oldValueAny typeThe previous value which was held at the matched model path, before it was overwritten by the change being listened to
{change}.pathStringThe path at which this change occurred. In general this will be the same as the path registered as the modelPathReference for this block - however it may be one segment longer if a wildcard path was used (see section on wildcards)
+

Source tracking and filtering in model listener blocks

+

Each transaction holding one or more changes is associated with a particular source. Model listeners can use two special directives, excludeSource and includeSource in order to register their +interest or disinterest in receiving changes from particular sources. The default behaviour is to receive all changes from all sources. The values of these fields are single strings representing sources, +or arrays of these strings. Three currently supported built-in sources are init, relay and local - in addition, arbitrary user-defined sources may be attached to a change by making use of the source element +of a changeRecord or argument in call to applier.change.

+ + + + + + + + + + + + + + + + + + + + + + + +
Fields of a model listener declaration operating source filtering
MemberTypeDescription
excludeSourceString/Array of StringA source or set of sources for which this listener should not receive notifications
includeSourceString/Array of StringA source or set of sources for which this listener should receive notifications. If excludeSource is empty, only changes from these sources will be received. If excludeSource is not empty, these values will take priority.
+

The values of built-in sources supported as values in excludeSource and includeSource are as follows:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Values for built-in sources supported as entries in excludeSource and includeSource as part of a model listener declaration
SourceDescription
initThe change arising from the initial transaction. During this change, the listener will observe the value of the model changing from undefined to its consistent initial value, during the + overall process of component construction
relayA change resulting from model relay from another linked component in the model skeleton, elsewhere in the component tree.
localA change directly triggered via the ChangeApplier on this component - either via a declarative record holding changePath, or programmatically using an applier.change() call
*Matches all sources
+
Example featuring built-in change source filtering:
+
fluid.defaults("examples.sourceExample1", {
+    gradeNames: ["fluid.modelComponent"],
+    model: {
+        things: "initial value"
+    },
+    modelListeners: {
+        things: {
+            funcName: "fluid.log",
+            excludeSource: "init",
+            args: ["Value changed to ", "{change}.value"]
+        }
+    }
+});
+
+var that = examples.sourceExample1(); // no log from this line
+that.applier.change("things", "new value"); // logs "Value changed to new value"
+
+

This example will not log the transition from the initial model state of undefined to the console. +It will, however, log the value new value triggered via the ChangeApplier API.

+
Example featuring user-defined change source filtering
+
fluid.defaults("examples.sourceExample2", {
+    gradeNames: ["fluid.modelComponent"],
+    model: {
+        position: 20
+    },
+    invokers: {
+        scrollTo: {
+            changePath: "position",
+            value: "{arguments}.0",
+            source: "scrollbar"
+        }
+    },
+    modelListeners: {
+        position: {
+            funcName: "fluid.log",
+            excludeSource: "scrollbar",
+            args: ["Value changed to ", "{change}.value"]
+        }
+    }
+});
+
+var that = examples.sourceExample2(); // This will log the initial change to value 20
+that.scrollTo(30); // This logs nothing - source "scrollbar" is excluded
+that.applier.change("position", 40); // This will log "Value changed to 40"
+
+

This example will log the transition from the initial model state of undefined to the console, since +unlike sourceExample1 it does not have excludeSource: init. However, changes caused to the model +via the invoker scrollTo will not be logged since they have the source scrollbar marked +to them. The third interactive line shows that changes to the model without any user source +marking will be logged by the listener.

+
Warning and workaround for issues involving initial transaction and onCreate race issues
+
+

Note: The current implementation of the ChangeApplier has a bug (FLUID-5519) which will often cause a model listener to be notified +before much of the surrounding component has constructed. This can be annoying, since the model listener may want to rely on other infrastructure (e.g. invokers, etc.) that it cannot +be sure have been constructed. For this reason, excludeSource: "init" is a useful way of stabilising this behaviour until the implementation is fixed (fix will be +delivered as part of FLUID-4925).

+
+

Wildcards in model path references

+

The last path segment of a model path reference may be "*". Whether the reference has this "*" suffix or not, the reference matches exactly the same set of changes - the only difference is in how they are reported. A path reference of "things" will match all changes occurring below this path segment, and report all those occurring within a single transaction as a single change. A path reference of "things.*" will match the same changes, but will report one change for each immediately nested path segment touched by the changes. For example, the following definition will log just one

+
fluid.defaults("examples.pathExample1", {
+    gradeNames: ["fluid.modelComponent"],
+    modelListeners: {
+        things: {
+            funcName: "fluid.log",
+            args: ["{change}.value", "{change}.path"]
+        }
+    }
+});
+
+var that = examples.pathExample1();
+that.applier.change("things", {a: 1, b: 2});
+// this logs {a: 1, b: 2}, "things" to the console
+
+

However, the following example which just differs in the listener path (swapping "things" for "things.*") will log two changes:

+
fluid.defaults("examples.pathExample2", {
+    gradeNames: ["fluid.modelComponent"],
+    modelListeners: {
+        "things.*": {
+            funcName: "fluid.log",
+            args: ["{change}.value", "{change}.path"]
+        }
+    }
+});
+
+var that = examples.pathExample2();
+that.applier.change("things", {a: 1, b: 2}); // logs 2 lines
+// Line 1: 1, "things.a"
+// Line 2: 2, "things.b"
+
+

The standard way to be notified of any changes to the model in a single notification is to use a model path reference consisting of the empty string "". Use of "*" will react to the same changes, but will report multiple notifications for compound modifications as in the above example.

+

It is not currently possible to supply more than one wildcard segment per path reference, or to supply the wildcard at any position in the string other than as the last path segment.

+

Programmatic style for listening to changes

+

The programmatic style for registering interest in model changes uses an API exposed by the ChangeApplier on its member modelChanged that is very similar to that exposed by a standard Infusion Event - +the difference is that the addListener method accepts an extra 1st argument, spec - an Object which holds the same model path reference in path or segs documented in the previous section on declarative binding:

+
applier.modelChanged.addListener(spec, listener, namespace);
+applier.modelChanged.removeListener(listener);
+
+

spec may also include the standard member priority seen in the declarative record.

+
+

Note: This style of listening to changes is discouraged, but may be the right choice in some applications. For example - the listener to be attached may not be available +at the time the component is constructed. Note that programmatically attached listeners will miss observation of the initial transaction as well as any other model changes that have occurred up to the point where they are registered.

+
+

The listener is notified after the change (or set of coordinated changes forming a transaction) has already been applied to the model. The signature for these listeners is

+
function listener(value, oldValue, pathSegs, changeRequest, transaction) {
+    // ...
+}
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterDescription
valueThe new (current) model value held at the path for which this listener registered interest
oldValueA "snapshot" of the previous model value held at that path
pathSegsAn array of String path segments holding the path at which value and oldValue are/were held
changeRequestMay contain a single ChangeRequest object which was responsible for this change, but will often be empty. This signature element is not a stable API
transactionMay contain a Transaction object which this change was bound to. Primarily useful for the source member which can be used to manually + check which change sources the transaction is marked to. This signature element is not a stable API
+

Users will in most cases only be interested in the first argument in this signature.

+

Triggering a change using a ChangeApplier

+

Declarative style for triggering a change

+

The declarative style for triggering model changes involves an IoC record (a change record) that is supported in various places in component configuration, +in particular as part of the definition of both Invokers and Listeners of an IoC-configured component. +This style of record is recognised by its use of the special member changePath (a "duck typing field") which determines which path in which component model will receive the change.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
changeRecord for firing changes by declarative binding
MemberTypeDescription
changePath<modelPathReference> {String|Object} + The reference to the model path in a model somewhere in the component tree where the change is to be triggered. This has the same syntax as the model path references documented above for declarative listening, only wildcard forms are not supported. Four examples: +
    +
  • "modelPath"
  • +
  • ""
  • +
  • "{otherComponent}.model.modelPath"
  • +
  • "{otherComponent}.model"
  • +
+
valueAny typeThe value which should be stored at the path referenced by changePath. If this contains compound objects (built with {}), these will be merged into the existing values in the model. If this contains arrays (built with []) these will overwrite existing values at that path.
typeString (optional)If this holds the value DELETE, this change will remove the value held at changePath. In this case, value should not be supplied. This is the recommended way of removing material from a model - it has the effect of the delete primitive of the JavaScript language. Sending changes holding a value of null or undefined does not have the same effect, as per the JavaScript language spec.
sourceString/Array of String/Object(optional)Any string or strings supplied here will be marked to the change as it propagates. Model listeners and relay rules can then choose to opt in or opt out of responding to this change by means of the + source-related includeSource and excludeSource members in their records. If an Object is supplied here, + it is assumed that the sources are encoded in its keys, and its values will be ignored.
+

Example of declarative triggering of changes

+

In the below example, we construct an invoker that will set the entire model of the current component to whatever value is supplied as its first argument - this is achieved by giving its record a changePath of "" and binding its value to {arguments}.0:

+
fluid.defaults("examples.changeExample", {
+    gradeNames: ["fluid.modelComponent"],
+    model: "initialValue",
+    invokers: {
+        changer: {
+            changePath: "",
+            value: "{arguments}.0"
+        }
+    }
+});
+
+var that = examples.changeExample();
+that.changer("finalValue");
+console.log(that.model); // "finalValue"
+
+

Programmatic style for triggering a change

+

There are three calls which can be used to fire change requests - one informal, using immediate arguments, a more formal method which constructs a concrete changeRequest object, and one which processes an array of changeRequest objects.

+
applier.change(path, value, type, source);
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Fields in a changeRequest object, or (in order) arguments to applier.change
PathTypeDescription
pathString|Array of StringAn EL path into the model where the change is to occur, expressed either as a single string or an array of path segments
valueAny typeAn object which is to be added into the model
type(optional) "ADD" or "DELETE"A key string indicating whether this is an ADD request (the default) or a DELETE request (a request to unlink a part of the model)
source(optional) String|Array of String|ObjectOne or more strings representing sources which should be marked to this change. See documentation on the source member of a changeRecord
+

The semantics and values are exactly the same as described in the section on declarative triggering above - with the difference that IoC references may not be supplied for path.

+
applier.fireChangeRequest(changeRequest);
+
+

where a changeRequest is an object holding the above named parameters in named fields - e.g. {path: "modelPath", value: "newValue"}. Note that a changeRequest is the same as a +changeRecord only the path is encoded in a field named path rather than changePath.

+

change and fireChangeRequest reach exactly the same implementation - the only difference is in the packaging of the arguments. For change they are spread out as a sequence of 4 arguments, +whereas for fireChangeRequest, they are packaged up as named fields (path, value and type) of a plain JavaScript object. +Such an object is called a changeRequest and is a convenient package for these requests to pass around in an event pipeline within the framework.

+
var arrayOfChanges = [{path: "a", value: 1}, {path: "b.nested", value: 2}];
+fluid.fireChanges(applier, arrayOfChanges);
+
+

iterates through the provided array of changeRequest objects and fires a change request on the supplied applier for each one.

+

The programmatic style for firing changes is less strongly discouraged than the programmatic style for listening to changes is - since it does not run into the same lifecycle issues that programmatic listeners do. However, the declarative style for triggering changes should be used wherever it can.

+

Example of two styles of declarative model listener registration

+

Users can freely define very fine or coarse-grained listeners for changes in a model using the ChangeApplier. Here are some examples using the declarative model listener registration syntax:

+
fluid.defaults("my.component", {
+    gradeNames: "fluid.modelComponent",
+
+    invokers: {
+        printChange: {
+            "this": "console",
+            method: "log",
+            args: ["{arguments}.0"]
+        }
+    },
+
+    model: {
+        cats: {
+            hugo: {
+                name: "Hugo",
+                colours: ["white", "brown spots"]
+            },
+            clovis: {
+                name: "THE CATTT!",
+                colours: ["white", "black spots", "black moustache"]
+            }
+        }
+    },
+
+    modelListeners: {
+        // Will fire individual change events whenever any part of "cats.hugo" changes.
+        // {change}.value will correspond to each changed path within "hugo".
+        "cats.hugo.*": {
+            funcName: "{that}.printChange",
+            args: ["{change}.value"]
+        },
+
+        // Will fire a single composite change event whenever any part of "cats.clovis" changes.
+        // {change}.value will contain the new state of the "clovis" object.
+        "cats.clovis": {
+            funcName: "{that}.printChange",
+            args: ["{change}.value"]
+        }
+    }
+});
+
+// Example usage.
+var c = my.component();
+c.applier.change("cats.hugo", {
+    name: "Hugonaut",
+    colours: ["hard to tell"]
+});
+// "Hugonaut"
+// ["hard to tell"]
+
+c.applier.change("cats.clovis.name", "THER CATTT!");
+// {name: "THER CATTT!", colours: ["white", "black spots", "black moustache"]}
+
+

Low-level ChangeApplier APIs

+

These are not recommended for typical users of the framework, and are not stable.

+

Instantiating a ChangeApplier

+

Instantiating a ChangeApplier manually is not recommended in current versions of the framework. Its implementation is tightly bound into its location in +an IoC component tree and should be constructed by the IoC system itself.

+

Operating transactions manually

+

A user may be interested in economising on notifications to model updates; by batching these up into a single transaction, there will +just be a single notification of each listener which is impacted around the model skeleton. This facility is not a stable API (at the Infusion 2.0 version level and before); however, its +use can't be strongly discouraged since it is the only way of avoiding certain unwanted model notifications, especially for sequences of changes which include a DELETE.

+

A transaction can be opened using the initiate() method of the applier function which returns a transaction object:

+
var myApplier = myModelComponent.applier;
+var myTransaction = myApplier.initiate();
+
+

The transaction object exposes an API which agrees with the ChangeApplier's own API for triggering changes, which can be used to trigger changes within the transaction:

+
myTransaction.fireChangeRequest(requestSpec1);
+myTransaction.fireChangeRequest(requestSpec2);
+// ...
+
+

The transaction can be completed using the commit() function of the transaction object:

+
myTransaction.commit();
+
+

A single modelChanged event will be fired on completion of the commit, regardless of the number of change requests.

+ +
+
+ + + +
+ +
+ + +
+ + + + + diff --git a/infusion/development/ClassNameConventions.html b/infusion/development/ClassNameConventions.html new file mode 100644 index 00000000..5847bafa --- /dev/null +++ b/infusion/development/ClassNameConventions.html @@ -0,0 +1,620 @@ + + + + + + Class Name Conventions | Fluid Infusion + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ +
+ + +
+ + + + +
+
+ + + + + +
+ + + +
+ +
+ + +
+
+ +
+ +

Class Name Conventions

+ + + + + +
+

Infusion components use various conventions for defining CSS class names. These conventions prevent confusion, making it easier for developers and integrators to be clear on what's what when creating or using components.

+

CSS classnames

+

The template for CSS classnames (i.e. class names use for styling) take the form fl-[fluid:thing]-[fluid:role]-[fluid:state] with some guidelines:

+
    +
  1. multiple words are in camelCase, so they might look like fl-[fluid:multiWordThing]-[fluid:multiWordRole]-[fluid:state]
  2. +
  3. components are always the first "thing", so they would look like fl-[fluid:componentName]-[fluid:thing]-[fluid:role]-[fluid:state]
  4. +
+

[fluid:thing] = required the concept the class name is referring to at the most general yet still meaningful level (eg. fl-tabs, fl-widget, fl-col, fl-container, etc)

+

[fluid:role] = optional the purpose or action of THING, which could be a more detailed version of THING (eg. fl-tabs-centered, fl-col-flex, fl-container-500, fl-widget-titleBar)

+

[fluid:state] = optional a modifier of the ROLE or THING, which is only temporary and dependant on other actions (eg. fl-button-left-disabled, fl-widget-content-draggable)

+

Some examples of these class names:

+
    +
  • fl-col-flex: a flexible width column
  • +
  • fl-tabs-left: left-oriented tabs
  • +
  • fl-grid-caption: the caption of an image in a grid
  • +
  • fl-widget-titlebar: the titlebar of a widget
  • +
+

Infusion selectors

+

The template for Infusion selectors (i.e. classnames used for programmatic manipulation of the DOM) take the form

+
**flc-[fluid:componentName]-[fluid:thing]-[fluid:role]-[fluid:state]**
+
+

with the same guidelines as CSS selectors.

+

Some examples of component selectors:

+
    +
  • flc-progress-label: the label for a progress bar (Progress component)
  • +
  • flc-reorderer-dropWarning: the drop warning used with the reorderer (Reorderer component)
  • +
  • flc-inlineEdit-textEditButton: the 'edit' button used with an inline edit (Inline Edit component
  • +
  • flc-pager-pageLink-skip: a page link that should be skipped (Pager component)
  • +
+

When combining class names for styling and class names for selectors, the convention is

+
<el class="flc-* fl-*">
+
+

so that the DOM selectors are before the CSS selectors.

+ +
+
+ + + +
+ +
+ + +
+ + + + + diff --git a/infusion/development/ComponentConfigurationOptions.html b/infusion/development/ComponentConfigurationOptions.html new file mode 100644 index 00000000..fa38dcc4 --- /dev/null +++ b/infusion/development/ComponentConfigurationOptions.html @@ -0,0 +1,1409 @@ + + + + + + Component Configuration Options | Fluid Infusion + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ +
+ + +
+ + + + +
+
+ + + + + +
+ + + +
+ +
+ + +
+
+ +
+ +

Component Configuration Options

+ + + + + +
+

Infusion components are configured using options that are defined by the component developer and customized by the integrator. +While component developers are free to define whatever options are appropriate for their component, the Infusion Framework supports a number of predefined options.

+

The particular set of options interpreted by the framework is determined by the Grades that the component is derived from. Developers and integrators +can define further grades which respond to yet further options, which they should document if they expect the options to be generally useful. +This page briefly describes these predefined options and provides links to more information about the related framework functionality.

+

Options Supported By All Components Grades

+

The following options are supported by all component grades, that is, those derived from fluid.component:

+

gradeNames

+ + + + + + + + + + + + + +
DescriptionA String or Array of String grade names.
Example Definition +
fluid.defaults("component.name", {
+    gradeNames: "fluid.modelComponent",
+    // ...
+});
+
See alsoComponent Grades
+

invokers

+ + + + + + + + + + + + + +
DescriptionA record defining methods on the component whose arguments are resolved from the environment as well as the direct argument list at invocation time.
Example Definition +
fluid.defaults("component.name", {
+    invokers: {
+        inv1: {
+            // ...
+        },
+        inv2: {
+            // ...
+        }
+    }
+    // ...
+});
+
See alsoInvokers
+

members

+ + + + + + + + + + + + + +
DescriptionA record defining properties to be added to the component object. These can be anything, including methods, strings, objects, etc. Definitions are evaluated as IoC expressions.
NotesDefining a method as a Function in members will differ from invokers in that the arguments of members are not resolved at invocation time. The use of such function members is not recommended except where very high invocation performance is required. + The right-hand-side may contain an expander definition, which may perhaps itself resolve onto an invoker.
Example Definition +
fluid.defaults("component.name", {
+    members: {
+        member1: "{that}.options.optionsValue",
+        member2: "{theOther}.dom.otherSelector",
+    },
+    // ...
+});
+
+

events

+ + + + + + + + + + + + + + + + + +
DescriptionA record containing key/value pairs that define the events the component will fire: the keys are the event names, the values define the type of the event (see Infusion Event System for information on the different event types).
Notes +

The Framework will create event firers for the listed events. The builtin events onCreate, onDestroy and afterDestroy will be fired automatically by the framework. +It is the responsibility of the component to fire user-defined events at the appropriate times.

+
Example Definition +
fluid.defaults("component.name", {
+    events: {
+        onSave: "preventable",
+        onReady: null
+    }
+    //...
+});
+
See alsoInfusion Event System
+

listeners

+ + + + + + + + + + + +

+ + + + + + + + + +
DescriptionA record defining listener functions for the events supported by a component.
Notes +

Both component developers and integrators can define listeners for events. +Invokers and the fire method of other events can be used as listeners here, as well as any function handle resulting from an Expanders. +Note that as well as being a simple string holding the name of an event on this component, a listener key may also be a full IoC Reference +to any other event held in the component tree (for example "{parentComponent}.events.parentEvent". As well as being a simple function name, the value associated with the key may be a Listener Record +or else follow the syntax of an invoker indicating that the registered listener receives a different signature from the one that the event has fired (see Event injection and boiling).

+
Example Definition +
examples.myListener = function (number, condition) {
+    console.log("Event listener received number " + number + " and condition " + condition);
+};
+<p>fluid.defaults("examples.eventedComponent", {
+gradeNames: ["fluid.component"],
+events: {
+myEvent: null
+},
+listeners: {
+"myEvent.myNamespace": "examples.myListener"
+}
+});
+
Example Override +
var myComp = examples.eventedComponent({
+    listeners: {
+        "myEvent.myNamespace": "examples.myOtherListener",
+    }
+});
+
See alsoInfusion Event System
+

components

+ + + + + + + + + + + + + + + + + + + + + +
DescriptionA record containing named definitions of the component's subcomponents.
NotesThis (the subcomponent record) is one of the core sources from which the options configuring a component in a particular context. The total set of options sources are: +
    +
  1. the original defaults record,
  2. +
  3. the subcomponent record,
  4. +
  5. direct user options (supplied to a component creator function),
  6. +
  7. distributed options.
  8. +
+
Example Definition +
fluid.defaults("component.name", {
+    components: {
+        subcomponent1: {
+            type: "component.subcomp1",
+            options: {...}
+        }
+        // ...
+    }
+    // ...
+});
+
See alsoDocumentation: Subcomponents
Tutorial: Subcomponents
+

distributeOptions

+ + + + + + + + + + + + +
DescriptionA record directing the framework to distribute options from this component to one or more other components in the component tree. Either a single record, an Array or Object holding these records is supported. + In the Object form, the keys of the object will be taken to represent the namespace +
Example Definition +
fluid.defaults("component.name", {
+    gradeNames: ["fluid.component"],
+    distributeOptions: {
+        namespace: "myDistribution",
+        record: "another.grade.name",
+        target: "{that target.grade.name}.options.gradeNames"
+    }
+    // ...
+});
+
See alsoIoCSS for options distributions
+

mergePolicy

+ + + + + + + + + + + + + + + + + +
DescriptionA record providing instructions for how particular options should be merged when integrator options are merged with default values.
Notes +

It is uncommon to need this option. The most common use case is to protect "exotic values" derived from some external library or framework from being corrupted by the options merging/expansion process by use of the "nomerge" policy. +For example, some noxious circularly-liked structure such as a node.js HTTP request object should be protected in such a way. The 2.0 framework will automatically protect an object which fails the fluid.isPlainObject test, which will exclude +any object with a nondefault constructor or native type such as DOM elements, TypedArrays, Infusion components themselves, etc.

+
Example Definition +
fluid.defaults("component.name", {
+    mergePolicy: {
+        option1: "noexpand",
+        option2: "nomerge"
+        // ...
+    }
+    // ...
+});
+
See alsoOptions Merging
+

dynamicComponents

+ + + + + + + + + + + + + + + + + + + +
DescriptionAn object containing named definitions of the component's dynamic subcomponents. Rather than exactly one subcomponent being associated with its parent from these records, there may be one subcomponent per element of an array, or one per firing of an event.
NotesSome special context names will be available within the subcomponent's definition block, for example {source} and {sourcePath} or {arguments}, derived from the material responsible for constructing the component. + This framework facility will be replaced by a more declarative equivalent in time - ask on the fluid-work mailing list + or #fluid-work IRC channel if you seem to find yourself needing to use it.
Example Definition +
fluid.defaults("component.name", {
+    dynamicComponents: {
+        dynamic1: {
+            type: "component.subcomp1",
+            source: "{context}.someArray",
+            options: {
+                // ...
+            }
+        }
+        // ...
+    }
+    // ...
+});
+
See alsoDocumentation: Dynamic components
Tutorial: Subcomponents
+

Model Components

+

Components defined with a grade of fluid.modelComponent support all of the common options described above, as well as those defined below. Component developers are free to define their own additional options.

+

See also: Component Grades

+

model

+ + + + + + + + + + + + + + + + +
DescriptionAn record containing the data model to be used by the component.
Example Definition +
fluid.defaults("fluid.pager", {
+    model: {
+        pageIndex: undefined,
+        pageSize: 10,
+        totalRange: undefined
+    }
+    // ...
+});
+
Example Override +
var myPager = fluid.pager(container, {
+    model: {
+        pageIndex: 1
+    }
+    // ...
+});
+
See alsoModel Objects
+ ChangeApplier API
+
+

modelListeners

+ + + + + + + + + + + + + +
Description +

A record defining a set of functions wishing to be notified of changes to the model

+
Example Definition +
fluid.defaults("fluid.tests.allChangeRecorder", {
+    gradeNames: "fluid.tests.changeRecorder",
+    modelListeners: {
+        "": "{that}.record({change}.path, {change}.value, {change}.oldValue)"
+    }
+});
+
See alsoModel Listeners
+

modelRelay

+ + + + + + + + + + + + + +
DescriptionA set of rules or constraints linking values held in this model to those elsewhere in the component tree (or to other values within this model)
Example Definition +
fluid.defaults("examples.volumeModelRelay", {
+    gradeNames: ["fluid.modelComponent"],
+    model: {
+        volumeAsPercent: 95,
+    },
+    modelRelay: {
+        source: "volumeAsPercent",
+        target: "volumeAsFraction",
+        singleTransform: {
+            type: "fluid.transforms.linearScale",
+            factor: 0.01
+        }
+    }
+});
+
See alsoModel Relay
+

changeApplierOptions

+ + + + + + + + + +
DescriptionOptions that will be passed on to the ChangeApplier constructed for this component. There are currently no such options supported. This section is left as a placeholder, since such options, + like lemon-soaked paper napkins, will one day be supported here again. +
See alsoChangeApplier API
+

View Components

+

Components defined with a grade of fluid.viewComponent are also model components, so they support

+ +

Component developers are free to define their own additional options.

+

selectors

+ + + + + + + + + + + + + + + + + + + + + +
Description +

A record containing named CSS-based selectors identifying where in the DOM relative to the component's container different elements can be found.

+
NotesThe Framework will create a DOM Binder that should be used to access the elements identified by selectors. The DOM Binder attaches a function to the component object called locate() which retrieves the element given the selector name.
Example Definition +
fluid.defaults("fluid.progress", {
+    selectors: {
+        displayElement: ".flc-progress",
+        progressBar: ".flc-progress-bar",
+        indicator: ".flc-progress-indicator",
+        label: ".flc-progress-label",
+        ariaElement: ".flc-progress-bar"
+    }
+    // ...
+});
+
Example Override +
var myEdit = fluid.progress(container, {
+    selectors: {
+        indicator: "div.progress-indicator",
+        label: "span.progress-label"
+    }
+    // ...
+});
+
See alsoDOM Binder
+

styles

+ + + + + + + + + + + + + +
DescriptionA record containing named CSS classes that the component will apply to its markup in order to achieve state-dependent styling effects.
NotesThe contents of this block are not interpreted by the framework at all. The existence of this block amounts to a helpful convention that implementors of view components are recommended to use, to organise + and advertise the CSS class names that they will apply on behalf of their users
Example Definition +
fluid.defaults("demo.initGridReorderer", {
+    gradeNames: ["fluid.reorderGrid"],
+    styles: {
+        dragging: "demo-gridReorderer-dragging",
+        avatar: "demo-gridReorderer-avatar",
+        selected: "demo-gridReorderer-selected",
+        dropMarker: "demo-gridReorderer-dropMarker"
+    },
+    disableWrap: true
+});
+
+

In addition to the options above, a View Component also accepts an additional argument named container which may be supplied either as the first argument to its Creator Function +or else at top level in its Subcomponent Record. It is not currently supported to supply this value as a standard option in the options record.

+

Renderer Components

+

Components defined with a grade of rendererComponent are also view components (and hence model components), so they support

+ +

Component developers are free to define their own additional options.

+
Note: The Infusion Renderer system will be rewritten completely before the Infusion 3.0 release - the use of the current renderer and component hierarchy is not recommended.
+

selectorsToIgnore

+ + + + + + + + + +
DescriptionAn array of selector names identifying elements that will be ignored by the Renderer. These elements will be displayed exactly as provided in the template, with no processing
Example Definition +
fluid.defaults("cspace.header", {
+    selectors: {
+        menuItem: ".csc-header-menu-item",
+        label: ".csc-header-link",
+        searchBox: ".csc-header-searchBox",
+        logout: ".csc-header-logout",
+        user: ".csc-header-user",
+        userName: ".csc-header-userName"
+    },
+    selectorsToIgnore: ["searchBox", "logout"]
+    // ...
+});
+
+

repeatingSelectors

+ + + + + + + + + +
DescriptionAn array of selector names identifying elements that will be repeated by the Renderer based on the data being rendered. For example, the selector for a table row that will be replicated many times should appear in the list of repeating selectors.
Example Definition +
fluid.defaults("cspace.header", {
+    selectors: {
+        menuItem: ".csc-header-menu-item",
+        label: ".csc-header-link",
+        searchBox: ".csc-header-searchBox",
+        logout: ".csc-header-logout",
+        user: ".csc-header-user",
+        userName: ".csc-header-userName"
+    },
+    repeatingSelectors: ["menuItem"]
+    // ...
+});
+
+

produceTree

+ + + + + + + +

+ + + + + + + + + +
DescriptionA function that will return a Renderer Component Tree for the component.
NotesThe referenced function must accept the component object as its only parameter and return a Renderer component tree. +

NOTE that if both produceTree and protoTree are specified, only the produceTree function will be used; the protoTree will be ignored.

Example Definition +
cspace.confirmationDialog.produceTree = function (that) {
+    var tree = {
+        // ...
+    };
+    return tree;
+};
+fluid.defaults("cspace.confirmationDialog", {
+    produceTree: cspace.confirmationDialog.produceTree
+    // ...
+});
+
See alsoprotoTree
+ Renderer Component Tree
+

protoTree

+ + + + + + + + + + + + + + + + + + + + + + +
DescriptionA tree of Renderer protocomponents.
Notes +NOTE that if both produceTree and protoTree are specified, only the produceTree function will be used; the protoTree will be ignored.
Example Definition +
fluid.defaults("cspace.searchTips", {
+    protoTree: {
+        searchTips: {decorators: {"addClass": "{styles}.searchTips"}},
+        title: {
+            decorators: {"addClass": "{styles}.title"},
+            messagekey: "searchTips-title"
+        },
+        expander: {
+            repeatID: "instructions",
+            type: "fluid.renderer.repeat",
+            pathAs: "row",
+            controlledBy: "messagekeys",
+            tree: {
+                messagekey: "${{row}}"
+            }
+        }
+    }
+    // ...
+});
+
Example Override +
var searchTips = cspace.searchTips(container, {
+    protoTree: {
+        searchTips: {decorators: {"addClass": "{styles}.searchTips"}},
+        title: {
+            decorators: {"addClass": "{styles}.title"},
+            messagekey: "searchTips-title"
+        },
+        expander: {
+            repeatID: "instructions",
+            type: "fluid.renderer.repeat",
+            pathAs: "row",
+            controlledBy: "messagekeys",
+            tree: {
+                messagekey: "${{row}}"
+            }
+        }
+    },
+    // ...
+});
+
See alsoproduceTree
+ Renderer Component Tree
+ ProtoComponent Types
+

resources

+ + + + + + + + + + + + + + + + + + + + + +
DescriptionAn object that lists resources (such as HTML files, CSS files, data files) required by the component.
NotesThe specified resources will be loaded automatically and the file content will be stored within the resources object itself.
Example Definition +
fluid.defaults("component.name", {
+    resources: {
+        headerTemplate: {
+            href: "../templates/Header.html"
+        },
+        footerTemplate: {
+            href: "../templates/Footer.html"
+        }
+    }
+    // ...
+});
+
Example Override +
var myComp = component.name(container, {
+    resources: {
+        footerTemplate: {
+            href: "../templates/FrontPageFooter.html"
+        }
+    }
+    // ...
+});
+
See alsofluid.fetchResources
+

strings

+ + + + + + + + + + + + + + + + + + + + + +
DescriptionAn object containing named strings or string templates. The strings will be used by the Renderer.
NotesThe Framework will create a Message Resolver and add it to the component object if the strings option is present.
Example Definition +
fluid.defaults("cspace.searchToRelateDialog", {
+    gradeNames: ["fluid.rendererComponent"],
+    strings: {
+        createNewButton: "Create",
+        title: "Add Related %recordType Record",
+        closeAlt: "close button",
+        relationshipType: "Select relationship type:",
+        createNew: "Create new record:",
+        addButton: "Add to current record"
+    }
+    // ...
+});
+
Example Override +
var myDialog = cspace.searchToRelateDialog(container, {
+    strings: {
+        relationshipType: "Select a relationship type from the list below:",
+        createNew: "Create a new record:",
+        addButton: "Add this record to the current record"
+    }
+    // ...
+});
+
See alsofluid.messageResolver
+

rendererFnOptions

+ + + + + + + + + + + + + + + + + +
DescriptionOptions that will be passed directly to the renderer creation function, fluid.renderer.createRendererSubcomponent
Example Definition +
fluid.defaults("fluid.tableOfContents.levels", {
+    rendererFnOptions: {
+        noexpand: true
+    }
+    // ...
+});
+
Example Override +
var recEditor = cspace.recordEditor(container, {
+    rendererFnOptions: {
+        rendererTargetSelector: "dialog"
+    }
+    // ...
+});
+
See alsoRenderer Components
+ fluid.renderer.createRendererSubcomponent
+

rendererOptions

+ + + + + + + + + + + + + + + + + +
DescriptionOptions that will be included in the rendererFnOptions as rendererOptions
Example Definition +
fluid.defaults("cspace.searchBox", {
+    rendererOptions: {
+        autoBind: false
+    }
+    // ...
+});
+
Example Override +
var search = cspace.searchBox(container, {
+    rendererOptions: {
+        autoBind: true
+    }
+    // ...
+});
+
See alsoRenderer Components
+ rendererFnOptions
+

renderOnInit

+ + + + + + + + + + + + + + + + + +
DescriptionA boolean flag indicating whether or not the component should render itself automatically once initialization has completed. By default, renderer components do not render themselves automatically.
Example Definition +
fluid.defaults("cspace.login", {
+    gradeNames: ["fluid.rendererComponent"],
+    renderOnInit: true
+    // ...
+});
+
Example Override +
var login = cspace.login(container, {
+    renderOnInit: false
+    // ...
+});
+
See alsofluid.initRendererComponent
+
+
+ + + +
+ +
+ + +
+ + + + + diff --git a/infusion/development/ComponentGrades.html b/infusion/development/ComponentGrades.html new file mode 100644 index 00000000..cb915470 --- /dev/null +++ b/infusion/development/ComponentGrades.html @@ -0,0 +1,771 @@ + + + + + + Component Grades | Fluid Infusion + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ +
+ + +
+ + + + +
+
+ + + + + +
+ + + +
+ +
+ + +
+
+ +
+ +

Component Grades

+ + + + + +
+

A grade is a block of configuration (representable as JSON) with a global name. A new grade is typically registered into an Infusion runtime by a call to the function +fluid.defaults, supplying both the global name (the grade name) and the configuration block.

+

Here's a simple example of defining a new grade, derived from the base framework grade fluid.component:

+
fluid.defaults("examples.myGrade", {
+    gradeNames: "fluid.component"
+});
+
+

Each such grade can be built on to derive further grades/components. This derivation occurs by mentioning the name of the original grade (e.g. examples.myGrade) within the gradeNames section of the derived component.

+

Most grades you will deal with are component grades derived from fluid.component. However, for some purposes you may also deal with function grades which are derived from fluid.function.

+

The framework's built-in component grades

+

The Infusion Framework already contains several predefined component grades that normally form the initial building blocks for external components and grades. The following table describes these grades and how they relate to each other.

+ + + + + + + + + + + + + + + + + + + + + + + + + +
Grade NameDescription
fluid.component + A plain fluid.component is the most basic component: it supports options merging with defaults (Components), as well as + instantiating event firers based on default framework events (onCreate, onDestroy, afterDestroy) + and events declared in the options (Tutorial - Creating Components). All Infusion components are derived from this grade, and in general all things not derived from this grade are non-components (e.g. plain functions, or model transformation transforms, etc.) +
fluid.modelComponent + A _model_ component is a component that additionally provides supports for a component's model, and operations on it (Tutorial - Model Components). + These operations are mediated by a machine known as a ChangeApplier which is automatically constructed for a model component. As well as exposing a programmatic API, this + also allows for declarative constraints and relationships to be enforced by means of the model relay system. +
fluid.viewComponent + A _view_ component is a fluid.modelComponent that is bound to a DOM container node, holds a DOM Binder and supports a view (Tutorial - View Components). +
fluid.rendererComponent + A _renderer_ component is a view component that also bears a renderer. There are additional features provided by this component grade specified on the Useful functions and events section of the Tutorial - Renderer Components page +
+

Specifying Parent Grades

+

The parent grades of a newly defined grade should be specified using the gradeNames option in the defaults block, as shown in the examples below. If no gradeNames are specified, the framework will not construct a component creator function, +but the grade may still function as a "mixin" grade when mentioned as the parent of another component (or non-component). The gradeNames option holds a String or Array of String.

+
fluid.defaults("fluid.uploader.demoRemote", {
+    gradeNames: ["fluid.component"]
+    // ...
+});
+
+
fluid.defaults("cspace.messageBarImpl", {
+    gradeNames: ["fluid.rendererComponent"]
+    // ...
+});
+
+
fluid.defaults("cspace.util.relationResolver", {
+    gradeNames: ["fluid.modelComponent"]
+    // ...
+});
+
+

Initializing Components

+

The framework will automatically construct a creator function for any component which is derived (even indirectly) from fluid.component:

+
fluid.defaults("fluid.uploader.fileQueueView", {
+    gradeNames: ["fluid.viewComponent"]
+    // ...
+});
+
+// The framework has automatically generated this function since the grade is a component grade
+var that = fluid.uploader.fileQueueView({
+    // ...
+});
+
+

Combining Grades

+

Since the fluid.defaults directive introduces a grade into the system, various components can be composed to create new ones. Options, fields and methods introduced by the ancestor grades will be merged. +The merging happens, firstly in hierarchical order (grades comprising the ancestor grade are resolved before the actual component grades resolution) and secondly in the left-to-right order +(defaults from the grade on the right taking precedence over the defaults from the grade on the left). Those interested in fine details should note that this is a very different scheme to the C3 linearization algorithm +that is commonly used for resolving multiple inheritance. Other than preventing infinite cycles of resolution, the framework will allow the same grade to appear any number of times in the list of grades, +and each time it will be effective in overriding definitions occuring in grades to the left in the same gradeNames list.

+

Here is a simple example:

+
fluid.defaults("examples.componentOne", {
+    gradeNames: "fluid.modelComponent",
+    model: {
+        field1: false,
+        field2: true
+    },
+    option: "TEST1"
+});
+
+fluid.defaults("examples.componentTwo", {
+    gradeNames: "fluid.modelComponent",
+    model: {
+        field1: true
+    },
+    option: "TEST2"
+});
+
+fluid.defaults("examples.combinedComponent", {
+    gradeNames: ["examples.componentOne", "examples.componentTwo"]
+    // The resulting defaults for component examples.combinedComponent
+    // will behave as if the following had been written:
+    // model: {
+    //     field1: true,
+    //     field2: true
+    // },
+    // option: "TEST2"
+});
+
+
+

Note: All the material from the component defaults will be merged by the framework, including records such as events, listeners, members, components, +invokers and model. Some of these, e.g. listeners will receive custom merging algorithms sensitive to their context - for example showing awareness of listener namespaces.

+
+
+

Note: In the current framework, all grades derived from fluid.viewComponent (as well as fluid.rendererComponent, etc.) must be listed AFTER all those that are not. This problem will be resolved in a future framework release.

+
+

Dynamic Grades

+

Grades supplied as arguments to a constructing component in the gradeNames field will be added into the grade list of the particular component instance, as if a new fluid.defaults block had been issued creating a new "type" in the system - however, the main type of the component will not change. This facility could be thought of as a form of "type evolution" or Schema evolution. All dynamic grades take precedence over (that is, are merged in after) all static grades.

+

Delivering a dynamic gradeName as a direct argument:

+

There are numerous ways that these additional gradeNames could be delivered - for example, as a direct argument to a component's creator function:

+
var myCombinedComponent = examples.componentOne({
+    gradeNames: "examples.componentTwo"
+});
+// creates a component that behaves exactly (except for its typeName)
+// as if it was created via examples.combinedComponent() above
+
+

Delivering a dynamic gradeName via a subcomponent record:

+

Another possibility is to supply the additional gradeNames via a subcomponent record - for example

+
fluid.defaults("examples.rootComponent", {
+    components: {
+        myCombinedComponent: { // This component also behaves (except for typeName)
+                               // as if was created via examples.combinedComponent
+            type: "examples.componentOne",
+            options: {
+                gradeNames: "examples.componentTwo"
+            }
+        }
+    }
+});
+
+

Delivering a dynamic gradeName via an options distribution:

+

Perhaps one of the most powerful possibilities is to distribute dynamic gradeNames to one or more components via a distributeOptions record:

+
fluid.defaults("examples.distributingRootComponent", {
+    distributeOptions: {
+        record: "examples.componentTwo",
+        target: "{that examples.componentOne}.options.gradeNames"
+    },
+    components: {
+        myCombinedComponent1: {
+            type: "examples.componentOne"
+        },
+        myCombinedComponent2: {
+            type: "examples.componentOne"
+        }
+    }
+});
+
+

In the above example, every subcomponent of examples.distributingRootComponent which had a grade content of examples.componentOne would automatically have mixed in a grade of examples.componentTwo, +causing them all to behave as if they were instances of examples.combinedComponent.

+

Raw Dynamic Grades

+

Another very powerful framework facility is the use of raw dynamic grades. In this scheme, the gradeNames list for any component may include any standard IoC reference which may resolve to either a +String or Array of String directly holding one or more grade names, or else a zero-arg function which can be invoked to obtain such a value. +In this way, the developer can specify additional grade names based on dynamic material (potentially not known at the time of definition) such as a function (method or invoker) or a property in component options. +Note that use of this facility should be discouraged in favour of any of the other techniques on this page - e.g. standard dynamic grades or context awareness - in future versions of the framework the use of raw dynamic grades may impose a big performance penalty.

+

For example:

+
fluid.defaults("fluid.componentWithDynamicGrade", {
+    gradeNames: ["fluid.component", "{that}.getDynamicGradeName"],
+    invokers: {
+        getDynamicGradeName: "fluid.componentWithDynamicGrade.getDynamicGradeName"
+    }
+});
+
+// When resolved our fluid.componentWithDynamicGrade will have all the functionality of a fluid.modelComponent grade.
+// NOTE: developers can also return an array of grade names. These grade names can be custom grade names.
+// NOTE: This facility is fragile and should be used as a scheme for "last-ditch polymorphism"
+fluid.componentWithDynamicGrade.getDynamicGradeName = function () {
+    return "fluid.modelComponent";
+};
+
+ +
+
+ + + +
+ +
+ + +
+ + + + + diff --git a/infusion/development/ComponentLifecycle.html b/infusion/development/ComponentLifecycle.html new file mode 100644 index 00000000..e08ccc87 --- /dev/null +++ b/infusion/development/ComponentLifecycle.html @@ -0,0 +1,644 @@ + + + + + + Component Lifecycle | Fluid Infusion + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ +
+ + +
+ + + + +
+
+ + + + + +
+ + + +
+ +
+ + +
+
+ +
+ +

Component Lifecycle

+ + + + + +
+

Every Fluid component has a standard lifecycle, various points of which are signalled by firing of standard framework events. +Every component which has a grade of fluid.component has these events attached, and the framework will fire them as the component reaches the appropriate +lifecycle points. The events, in the expected order of firing for a component, are as follows:

+ + + + + + + + + + + + + + + + + + + + + + + + + +
EventArgumentsLifecycle Point
onCreate +
+
that {Component}
+
the component being constructed
+
+
+ Fired when component construction is complete - that is, all options have been merged for the component and all subcomponents (which were not marked with createOnEvent) have constructed. +
onDestroy +
+
that {Component}
+
the component being destroyed
+
+
+ Fired when the component is about to be destroyed. This will be a preliminary to beginning the destruction process for all its subcomponents. +
afterDestroy +
+
that {Component}
+
the component which has been destroyed
+
+
+ Fired after the component and its children have been completely destroyed, and detached from any parent component. +
Note: At this point you may only safely access plain data members of the component such as id and typeName. Do not attempt to invoke any methods, fire any events, or resolve any IoC references from listeners to this event. +
+
+

Note that since JavaScript is a garbage-collected language, the component object reference and many of its members will hang around in memory during and after the destruction process, +although it will as noted above be detached from its parent (via a call to delete) and similarly all subcomponent references will be recursively detached from their parents. +The component author may schedule various actions to clean up any external resources (perhaps a jQuery widget, or a network connection) during the destruction process by adding listeners to the onDestroy event.

+

Every Fluid component is supplied with a standard method named destroy which is available after onCreate has fired. destroy takes no arguments and will initiate the destruction process for the component - onDestroy followed by afterDestroy.

+
Note: You can detect the lifecycle status of a component by means of the standard utility fluid.isDestroyed(component) - this will return true if the object reference represents a component which has been destroyed. +
+
+
+ + + +
+ +
+ + +
+ + + + + diff --git a/infusion/development/ComponentOptionsAndDefaults.html b/infusion/development/ComponentOptionsAndDefaults.html new file mode 100644 index 00000000..37ace088 --- /dev/null +++ b/infusion/development/ComponentOptionsAndDefaults.html @@ -0,0 +1,628 @@ + + + + + + Understanding Component Options And Their Defaults | Fluid Infusion + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ +
+ + +
+ + + + +
+
+ + + + + +
+ + + +
+ +
+ + +
+
+ +
+ +

Understanding Component Options And Their Defaults

+ + + + + +
+

One of the key principles that Infusion components operate on is configurability. Components have +options that can be set by integrators to customize the behaviour. For example, the Infusion +Inline Edit component has +options for configuring the text content of the tooltip, the length of time the user must hover +before the tooltip appears, the 'invitation text' that should be displayed in the field if it is empty, and other things.

+

image of an Inline Edit component with a tooltip

+

Developers who are integrating an Inline Edit into their web application can use these options to +customize the Inline Edit for their particular needs.

+

A component creator will typically define default values for as many of the component's options as +possible, so that the component will work "out of the box," without customization. This is done with +a call to fluid.defaults, which registers the component's defaults with the Framework.

+

When a component is instantiated, the first thing that the Framework does is merge any +integrator-provided customizations with the component's defaults, before the initialization of the +component proceeds. The Framework follows specific procedures for this merging process, and these +procedures can be specified by the component creator, if they have a need for a different merging +process than the default ones. (Further reading: Options Merging)

+

Specialized Options

+

Naturally, each component will have its own custom options, such as the tooltip text for the +Inline Edit. However, the Framework supports certain fixed options that are expected for certain +component types (for information about the different component types, see +Component Grades). These options have fixed names that the Framework expects +to see, so component developers must use these names, and not override them for other purposes.

+

For example, view components work with the DOM, displaying values and manipulating the interface in +response to user inputs and actions. In order to do this, the components need to have access to the +relevant DOM elements. The Framework supports a selectors option for this. The selectors option +contains a list of named selectors that identify the DOM elements a component will work with. +Considering again the example of the Inline Edit component, the component has a button that users +can activate to switch from view mode into edit mode, so the "selectors" option contains a selector +named textEditButton:

+
fluid.defaults("inlineEdit", {
+    selectors: {
+        textEditButton: ".flc-inlineEdit-textEditButton"
+        // ...
+    }
+    // ...
+});
+
+

(Further reading on special options: Component Configuration Options)

+

Subcomponents

+

In addition to simple configurations, a components defaults are used to identify its subcomponents, +as described in Understanding Infusion Components.

+ +
+
+ + + +
+ +
+ + +
+ + + + + diff --git a/infusion/development/CompositePanels.html b/infusion/development/CompositePanels.html new file mode 100644 index 00000000..4b50f1e6 --- /dev/null +++ b/infusion/development/CompositePanels.html @@ -0,0 +1,664 @@ + + + + + + Composite Panels | Fluid Infusion + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ +
+ + +
+ + + + +
+
+ + + + + +
+ + + +
+ +
+ + +
+
+ +
+ +

Composite Panels

+ + + + + +
+

Composite panels allow you to combine several small panels – subpanels – into one larger panel. Subpanels are defined normally in an auxiliary schema; Composite panels define a list of subpanels that should be included in the composite panel.

+
Note: Subpanels must contain only one preference.
+

Grades

+

Composite panels must be defined with the fluid.prefs.compositePanel grade, as shown in the following code block:

+
fluid.defaults("my.panels.composite", {
+    gradeNames: ["fluid.prefs.compositePanel"]
+    // ...
+});
+
+

It is expected that composite panels will be quite simple in most cases, functioning strictly as a container for subpanels. All they typically need are any selectors and prototrees needed for a label, heading, or anything general to the entire composite panel.

+

Subpanels are defined with the fluid.prefs.panel grade, the same grade used for defining regular panels.

+
fluid.defaults("my.panels.subanel", {
+    gradeNames: ["fluid.prefs.panel"]
+    // ...
+});
+
+

Composite Panel Definition

+

A composite panel is defined in the auxiliary schema, in a special block called groups, which has the following general format:

+
groups: {
+    <composite panel name>: {
+        "container": containerSelector // <selector of element in preferences editor where panel should be rendered>,
+        "template": <path and filename of composite panel template>,
+        "message": <path and filename of composite panel message file>,
+        "type": <grade name of composite panel>,
+        "panels": [<list of subpanels to include in this composite panel>]
+    },
+    <composite panel name>: {...},
+    // ...
+}
+
+

In the code block above, the panels list is an array of names. These are derived from the keys in the auxiliary schema that associate panels with preferences.

+

Templates

+

A composite panel and its subpanels each have their own HTML template. The composite panel template must contain elements that will serve as containers for the subpanels.

+

Auxiliary Schema Declarations

+

The subpanel declarations in the auxiliary schema will reference the selectors for these elements.

+

Message Bundles

+

A composite panel and its subpanels can each have their own JSON message file.

+

Examples

+

Composite panel HTML template:

+
<div class="my-composite-panel">
+    <div class="subpanel-1-container"></div>
+    <div class="subpanel-2-container"></div>
+</div>
+
+

Auxiliary schema section defining panels:

+
{
+    preference1: {
+        "type": "fluid.prefs.preference1",
+        "panel": {
+            "type": "fluid.prefs.panel.subpanel1",
+            // Reference to the selector defined in the composite panel template for subpanel1
+            "container": ".subpanel-1-container",
+            "template": "%prefix/subpanel1.html",
+            "message": "%prefix/subpanel1.json"
+        }
+    },
+    preference2: {
+        "type": "fluid.prefs.preference2",
+        "panel": {
+            "type": "fluid.prefs.panel.subpanel2",
+            // Reference to the selector defined in the composite panel template for this subpanel2
+            "container": ".subpanel-2-container",
+            "template": "%prefix/subpanel2.html",
+            "message": "%prefix/subpanel2.json"
+        }
+    },
+    groups: {
+        composite1: {
+            "container": ".my-composite-1",
+            "template": "%prefix/composite1.html",
+            "message": "%prefix/composite1.json",
+            "type": "fluid.prefs.panel.composite1",
+            "panels": ["preference1", "preference2"]
+        }
+    }
+}
+
+ +
+
+ + + +
+ +
+ + +
+ + + + + diff --git a/infusion/development/ConditionalSubpanels.html b/infusion/development/ConditionalSubpanels.html new file mode 100644 index 00000000..c44cc45e --- /dev/null +++ b/infusion/development/ConditionalSubpanels.html @@ -0,0 +1,659 @@ + + + + + + Conditional Subpanels | Fluid Infusion + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ +
+ + +
+ + + + +
+
+ + + + + +
+ + + +
+ +
+ + +
+
+ +
+ +

Conditional Subpanels

+ + + + + +
+

Conditional subpanels are subpanels that are only displayed if the value of a specified boolean preference is true. This functionality allows adjusters to be displayed or hidden based on the setting of another on/off adjuster.

+

The relationship between the controlling boolean preference and its dependent subpanels is defined in the panels property of the groups block. The panels property has one required property: always, which is an array of keys defining panels which should always be displayed. Other properties use a preference name as a key; the preference must be a boolean preference that is in a subpanel in the 'always' list. The value is an array of panel keys that should be displayed only if the specified preference is true.

+
"panels": {
+    always: [<list of subpanels to always include in this composite panel; must contain at least one>], // required
+    <pref.name>: [<list of subpanels to display only when this pref is on>], // optional
+    <pref.name>: [<list of subpanels to display only when this pref is on>]
+    // ...,
+}
+
+

Notes:

+
    +
  • A conditional subpanel must contain ONLY ONE adjuster.
  • +
  • A controlling preference MUST be a boolean.
  • +
  • The pref.name keys MUST refer to a preference referenced in the always property.
  • +
  • Not every always panel must control a conditional subpanel.
  • +
  • Panel definitions are the same for controlling subpanels, conditional subpanels and regular subpanels; there is no difference.
  • +
+

Example: Auxiliary schema for one controlling preference with two conditional preferences

+
{
+    auxiliarySchema: {
+        template: "%prefix/prefsEditor.html",
+        message: "%prefix/prefsEditor.json",
+        groups: {
+            speaking: {
+                "container": ".mpe-speaking",
+                "template": "%prefix/speaking.html",
+                "message": "%prefix/speaking.json",
+                "type": "demo.panels.speaking",
+                "panels": {
+                    // the 'speak' subpanel will always be displayed
+                    "always": ["speak"],
+                    // the volume and words-per-minute subpanels will only display when 'speak' is true
+                    "demo.speakText": ["vol", "wpm"]
+                }
+            }
+        },
+        speak: {
+            type: "demo.speakText",
+            enactor: {
+                type: "demo.enactors.speak"
+            },
+            panel: {
+                type: "demo.panels.speak",
+                container: ".mpe-speaking-onOff",
+                template: "%prefix/speak-template.html"
+            }
+        },
+        vol: {
+            type: "demo.volume",
+            enactor: {
+                type: "demo.enactors.vol"
+            },
+            panel: {
+                type: "demo.panels.vol",
+                container: ".mpe-speaking-vol",
+                template: "%prefix/slider-template.html"
+            }
+        },
+        wpm: {
+            type: "demo.wordsPerMinute",
+            enactor: {
+                type: "demo.enactors.wpm"
+            },
+            panel: {
+                type: "demo.panels.wpm",
+                container: ".mpe-speaking-wpm",
+                template: "%prefix/slider-template.html"
+            }
+        }
+    }
+}
+
+ +
+
+ + + +
+ +
+ + +
+ + + + + diff --git a/infusion/development/ConnectingThePartsOfAPreferencesEditor.html b/infusion/development/ConnectingThePartsOfAPreferencesEditor.html new file mode 100644 index 00000000..5fb56705 --- /dev/null +++ b/infusion/development/ConnectingThePartsOfAPreferencesEditor.html @@ -0,0 +1,677 @@ + + + + + + Connecting the Parts of a Preferences Editor | Fluid Infusion + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ +
+ + +
+ + + + +
+
+ + + + + +
+ + + +
+ +
+ + +
+
+ +
+ +

Connecting the Parts of a Preferences Editor

+ + + + + +
+

Creating a Preferences Editor using the Infusion Preferences Framework involves various pieces: schemas, Infusion components, templates, etc. This page describes what you need to do to connect all the parts together.

+
Note: This page describes how to work with the infusion Preferences Framework using schemas and the builder. It does NOT describe using the alternative technique, writing grades by hand.
+

Primary Schema

+

The Primary Schema defines a "name" for each preference. +This is the name that will be used to store the preference in the settingsStore, +so we recommend that your preference names be namespaced to your application, +to avoid possible conflicts. The name is also used to tie together all the various bits:

+
    +
  • the auxiliary store specifies this name as the type for a preference block, associating the panel and the enactor with the preference;
  • +
  • the panel and enactor each use the name in the preferenceMap, which tells the builder how to map the panel or enactor's values in the primary schema onto the panel or enactor's own model values
  • +
+

Example:

+
{
+    "type": "object",
+    "properties": {
+        "fluid.prefs.textSize": { // <<<=== This is the name of the preference
+            "type": "number",
+            "default": 1,
+            "min": 1,
+            "max": 2,
+            "divisibleBy": 0.1
+        }
+    }
+}
+
+

Auxiliary Schema

+

The Auxiliary Schema defines all the information needed to build the preferences editor interface, including

+
    +
  • what component to use to render the preference panels,
  • +
  • where to find HTML templates and string bundles,
  • +
  • what component to use to act on preference settings.
  • +
+

The Auxiliary Schema links to the preferences specified in the Primary Schema using the preference name, which is used as the type in a preferences block:

+
{
+    // ..
+    "textSize": {
+        "type": "fluid.prefs.textSize",  // <<<=== This type must match the name specified in the primary schema
+        "panel": {
+            // ..
+        },
+        "enactor": {
+            // ..
+        }
+    }
+}
+
+

The Auxiliary Schema also specifies which components should be used for the panel and enactor for a given preference, through the type properties:

+
{
+    // ...
+    "textSize": {
+        "type": "fluid.prefs.textSize",
+        "panel": {
+            "type": "fluid.prefs.panel.textSize"  // <<<=== This type is the name of the panel component
+            // ...
+        },
+        "enactor": {
+            "type": "fluid.prefs.enactor.textSize"  // <<<=== This type is the name of the enactor component
+            // ...
+        }
+    }
+}
+
+

Panel Component

+

Each panel component must include a preference map option in its defaults, called preferenceMap. The Preferences Framework uses the preference map to populate some of the panel's defaults using information in the Primary Schema.

+

Example:

+
fluid.defaults("fluid.prefs.panel.textSize", {
+    gradeNames: ["fluid.prefs.panel"],
+    preferenceMap: {
+        "fluid.prefs.textSize": {  // <<<=== This property name must match the name specified in the primary schema
+            "model.value": "default",
+            "range.min": "minimum",
+            "range.max": "maximum"
+        }
+    }
+    // ...
+});
+
+

Enactor Component

+

Each enactor component must include a preference map option in its defaults, called preferenceMap. As with the panels, the Preferences Framework uses the preference map to populate some of the enactor's defaults using information in the Primary Schema. The structure of the enactor's preference map is the same as that for the panel.

+

Example:

+
fluid.defaults("fluid.prefs.enactor.textSize", {
+    gradeNames: ["fluid.viewComponent", "fluid.prefs.enactor"],
+    preferenceMap: {
+        "fluid.prefs.textSize": {  // <<<=== This property name must match the name specified in the primary schema
+            "model.value": "default"
+        }
+    }
+    // ...
+});
+
+ +
+
+ + + +
+ +
+ + +
+ + + + + diff --git a/infusion/development/ContextAwareness.html b/infusion/development/ContextAwareness.html new file mode 100644 index 00000000..78d429a9 --- /dev/null +++ b/infusion/development/ContextAwareness.html @@ -0,0 +1,910 @@ + + + + + + ContextAwareness API | Fluid Infusion + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ +
+ + +
+ + + + +
+
+ + + + + +
+ + + +
+ +
+ + +
+
+ +
+ +

ContextAwareness API

+ + + + + +
+

The ContextAwareness API of Infusion provides a powerful suite of grades and utilities that allow a component to be responsive to aspects of its context in a flexible and open-ended way. +A component can name particular kinds of adaptations (dimensions) that it is capable of, and for each of these adaptations, specify a list of environmental checks to be made in a particular order, +which will result in particular adaptations being chosen. These adaptations are expressed through the addition of extra grade names to the component during its construction.

+

When and how to apply fluid.contextAware

+

For lightweight cases of context adaptation, the distributeOptions scheme suffices, in that it enables a component to be responsive to broadcasts "advising" it from around the +component tree in a free-form and controllable away. However, when a component needs to take a clearer role in responding to potentially many kinds of requests for adaptation, where these +can be organised around two or more "axes" or "dimensions" of adaptation that can be clearly named and identified, it should derive from the +fluid.contextAware grade and advertise some of its dimensions of adaptations in its own options. These dimensions themselves can always be extended by further contributions +to the component's options from all the usual sources - direct options, subcomponent options, and options distributions from elsewhere in the tree.

+

Any component derived from fluid.contextAware will advertise an area of its options named contextAwareness which organises the rules for its adaptation in a hierarchical way - at the top level by "adaptation" and then at the nested level by +"checks".

+

Structure of this API

+

This page describes how various features of the framework and the ContextAwareness API cooperate together. These consist of:

+
    +
  • The fluid.contextAware grade and the contextAwareness area of options that it responds to to produce adaptations
  • +
  • The fluid.contextAware.makeChecks API for converting aspects of the actual context or environment (e.g. capabilities of the browser, user's requirements or purpose of the application) into context names which contextAwareness can respond to
  • +
  • The fluid.contextAware.forgetChecks API for eliminating checks created by fluid.contextAware.makeChecks
  • +
  • The fluid.contextAware.makeAdaptation API which can be used by 3rd parties to broadcast contextAwareness records into implementation components that they which to make (more) adaptible
  • +
+

Simple example - speech API-aware component

+

This simple example invokes the fluid.textToSpeech.isSupported feature detector, which returns true if the current browser supports the HTML5 Speech API. +We use the fluid.contextAware.makeChecks function to assign the result of this feature detection to a context named fluid.supportsTTS. We can then use this context to conditionally switch in an extra grade name, +examples.myComponent.speechAware into the examples.myComponent component:

+
fluid.contextAware.makeChecks({
+    "fluid.supportsTTS": "fluid.textToSpeech.isSupported"
+});
+
+fluid.defaults("examples.myComponent", {
+    gradeNames: ["fluid.component", "fluid.contextAware"],
+    contextAwareness: {
+        speechAware: {
+            checks: {
+                speechAware: {
+                    contextValue: "{fluid.supportsTTS}",
+                    gradeNames: "examples.myComponent.speechAware"
+                }
+            },
+            defaultGradeNames: "examples.myComponent.nonSpeechAware"
+        }
+    }
+});
+
+

The options within contextAwareness could be contributed by any integrator, not necessarily the component's original author, and have a layout that makes it easy to target and override +parts of the existing structure with updated options.

+

adaptationRecord members in a contextAwareness record

+

Each component implementing fluid.contextAware accepts a top-level record in its options at the path named contextAwareness.

+

The top level structure of the contextAwareness record consists of a free hash of adaptationName strings to adaptationRecord structures:

+
{
+    <adaptationName> : <adaptationRecord>,
+    <adaptationName> : <adaptationRecord>,
+    ...
+}
+
+

The adaptationName strings are considered as namespaces for the purposes of priority resolution (see the priority entry in the following table). +The elements of the adaptationRecord are described in the following table:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Members of an adaptationRecord entry within the contextAwareness block of a fluid.contextAware component
MemberTypeDescription
checks (optional)Hash of checkNamespace to checkRecordA free hash of namespace names for checks, to entries describing how a context check is to be made, and what gradeNames should result if the check is successful. + (See Structure of members in a checkRecord below for details.)
defaultGradeNames (optional)String or Array of StringOne or more gradeNames to be the result if none of the checks entries matches
priority (optional)Priority value - see Priorities for a full explanationThe priority (if any) that the gradeNames resulting from this dimension should have over those resulting from any other dimension. This should be an entry of the form + before:adaptationName or after:adaptationName for one of the other dimensions attached to this component within contextAwareness
+

The result of the contextAwareness record is that a number of the elements within checks will be evaluated in the visible context, and result in a number of gradeNames which will then be +contributed into the gradeNames of the instantiating component in a particular order. This order is governed by both the priority entry at the adaptation level as well as at the check level.

+

checkRecord members in an adaptationRecord

+

The checkRecord structure which is used in the first row of the table above is described now:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Members of a checkRecord entry within a adaptationRecord block of a fluid.contextAware component
MemberTypeDescription
contextValueString IoC referenceA standard IoC reference, either consisting of a bare context reference such as {contextName} or to a precise value such as {contextName}.further.path which should be sought by this check. + If a bare context name is supplied, the checked path will default to options.value. If the context name does not match, the expression will evaluate to undefined
equals (optional)String, Number or BooleanA value with which the context value fetched from contextValue should be checked. If omitted, this defaults to true. The check will pass if the context value referenced in contextValue can be found, and + matches any value supplied in equals (or the default of true).
gradeNames (optional)String or Array of StringOne or more gradeNames that will be returned out to the contextAwareness system if this check passes.
priority (optional)Priority value - see Priorities for a full explanationThe priority (if any) that the gradeNames resulting from this dimension should have over those resulting from any other dimension. This should be an entry of the form + before:adaptationName or after:adaptationName for one of the other dimensions attached to this component within contextAwareness
+

Example contextAwareness record

+

The most adaptible component in the framework is currently the Uploader which currently can respond to three "dimensions" of adaptation. Two of these, +technology and liveness, are advertised in its own contextAwareness record:

+
fluid.defaults("fluid.uploader", {
+    gradeNames: ["fluid.viewComponent", "fluid.contextAware"],
+    contextAwareness: {
+        technology: {
+            defaultGradeNames: "fluid.uploader.singleFile"
+        },
+        liveness: {
+            priority: "before:technology",
+            checks: {
+                localDemoOption: {
+                    contextValue: "{uploader}.options.demo",
+                    gradeNames: "fluid.uploader.demo"
+                }
+            },
+            defaultGradeNames: "fluid.uploader.live"
+        }
+    }
+});
+
+

technology refers to the implementation technology of the uploader. Although all technologies other than a modern HTML5 engine have been removed from the current framework image, the basic architecture to support other +engines still exists and could be contributed to in future. The liveness adaptation relates to the mocking infrastructure for the Uploader which exists at two levels. Firstly, there is +the "demo uploader" which mocks all of the engine-side implementation, and secondly the uploader can be run in various styles of integration tests which only mock the transport level which +actually performs the file upload.

+

Example of dynamically broadcasting a fresh adaptation

+

Finally, a third dimension of adaptation is supported by the Uploader's capability to be configured in a way that it will respond to previous instances of its own API - in particular that +delivered for Infusion 1.2, released in April 2010, and Infusion 1.3, released in November 2010. This is implemented by allowing a dynamic contribution of a fresh dimension to the uploader's +contextAwareness record from separate implementation files:

+
fluid.defaults("fluid.uploader.compatibility.distributor.1_3", {
+    distributeOptions: {
+        record: {
+            "1_2": {
+                contextValue: "{fluid.uploader.requiredApi}.options.value",
+                equals: "fluid_1_2",
+                gradeNames: "fluid.uploader.compatibility.1_2"
+            }
+        },
+        target: "{/ fluid.uploader}.options.contextAwareness.apiCompatibility.checks"
+    }
+});
+
+// Actually construct a component instance performing the options broadcast into all uploaders
+fluid.constructSingle([], {
+    singleRootType: "fluid.uploader.compatibility.distributor",
+    type: "fluid.uploader.compatibility.distributor.1_3"
+});
+
+// The grade that contextAwareness ends up contributing into the uploader, if the rule is activated
+fluid.defaults("fluid.uploader.compatibility.1_2", {
+    transformOptions: {
+        transformer: "fluid.model.transformWithRules",
+        config: fluid.compat.fluid_1_2.uploader.optionsRules
+    }
+});
+
+

The defaults block fluid.uploader.compatibility.distributor.1_3 contains an options distribution which causes a third dimension to be allocated in the uploader's contextAwareness, named +apiCompatibility — this can be done simply by arranging to broadcast the appropriate options into it. Once we have defined this options distribution, we actually need to construct +a component instance which holds and operates them — this is done via the fluid.constructSingle line. This utility automatically arranges for a singleton instance, uniquified at the +component tree's top level by the type singleRootType which has a very similar function to the option of the same name consumed by the fluid.resolveRootSingle grade described in +the documentation on Contexts.

+

Having shown the basic operation of the receiver of contextual information, we'll now describe the group of utilities, including fluid.constructSingle that we just met, which can be +used by integrators and implementors to coordinate the visibility of context names and distributions from them.

+

Note that the combined effect of the first two defaults blocks shown in this example can be achieved "all-in-one" by a single call to the dedicated utility +fluid.contextAware.makeAdaptation.

+

Making contexts visible and removing them with fluid.contextAware.makeChecks and fluid.contextAware.forgetChecks

+

The checkRecord structures described in the table above, by default reference context paths which hold values at an option named value (by default holding the boolean true) +which are compared against a value held equals (also defaulting to true). The ContextAwareness API includes two helper functions to assist integrators to construct components matching contexts of this form, and +removing them when they are no longer required.

+

These contexts can be issued with a call of the form:

+
fluid.contextAware.makeChecks(checkStructure);
+
+

The checkStructure argument holds a hash of contextName strings to checkEntry records, of the form

+
{
+<contextName> : <checkEntry>,
+<contextName> : <checkEntry>,
+...
+}
+
+

which is described in the following table:

+ + + + + + + + + + + + + + + + + + + + + + +
</tbody>
+
+
Members of a checkEntry record supplied as an argument to fluid.contextAware.makeChecks
MemberTypeDescription
func/funcNameString IoC reference or global function nameA function name or IoC reference to a function to be evaluated to produce the context value
valueString, Number or BooleanThe value to be supplied at the value path in the options tructure of the constructed context
+

You must supply exactly one of func, funcName or value.

+

Example of fluid.contextAware.makeChecks

+
fluid.contextAware.makeChecks({
+    "fluid.browser.supportsBinaryXHR": {
+        funcName: "fluid.enhance.supportsBinaryXHR"
+    },
+    "fluid.browser.supportsFormData": {
+        funcName: "fluid.enhance.supportsFormData"
+    }
+});
+
+

In the above example, the two global functions fluid.enhance.supportsBinaryXHR and fluid.enhance.supportsFormData will be executed, and their +return values added into contexts with the names fluid.browser.supportsBinaryXHR and fluid.browser.supportsFormData.

+

The contexts registered by fluid.contextAware.makeChecks can be erased from the system by the use of the call

+
fluid.contextAware.forgetChecks(<contextNames>);
+
+

Here, contextNames is can hold either a String or Array of String holding the keys from the structures previously supplied to fluid.contextAware.makeChecks

+

Example of fluid.contextAware.forgetChecks

+

For example, the checks registered in the above example fluid.contextAware.makeChecks call could be erased by a call to

+
fluid.contextAware.forgetChecks(["fluid.browser.supportsBinaryXHR",
+    "fluid.browser.supportsFormData"]);
+
+

Defining and broadcasting a fresh adaptation in one operation with fluid.contextAware.makeAdaptation

+

A very common use case is to define an adaptation (that is, a distributeOptions block which targets the contextAwareness area of a collection +of components in the tree), and then to create an instance of a single, well-known component which actually broadcasts the adaptation. This was +what we did in two steps (fluid.defaults plus fluid.constructSingle) in the above example contextAwareness broadcast

+
    +
  • this can be done in a single step using the fluid.contextAware.makeAdaptation API.
  • +
+
fluid.contextAware.makeAdaptation(<adaptationRecord>);
+
+

This accepts a single structure adaptationRecord with a number of required fields:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Members of a adaptationRecord record supplied as an argument to fluid.contextAware.makeAdaptation
MemberTypeDescription
distributionNameStringA grade name — the name to be given to the fabricated grade which performs the broadcast
targetNameStringA grade name — the name of the grade to receive the adaptation
adaptationNameStringThe name of the contextAwareness record (the top-level adaptationRecord) to receive the broadcast record — this will be a simple string
checkNameStringThe name of the checkRecord record (within the adaptationRecord) to receive the broadcast record — this will be a simple string
recordObject (checkRecord) + The checkRecord which is to be + broadcast — containing fields contextValue, gradeNames etc. + as described above +
+

Example of calling fluid.contextAware.makeAdaptation

+

For example, the pair of calls in the above example contextAwareness broadcast could be achieved by the following single +call to fluid.contextAware.makeAdaptation:

+
fluid.contextAware.makeAdaptation({
+    distributionName: "fluid.uploader.compatibility.distributor.1_3",
+    targetName: "fluid.uploader",
+    adaptationName: "apiCompatibility",
+    checkName: "1_2",
+    record: {
+        contextValue: "{fluid.uploader.requiredApi}.options.value",
+        equals: "fluid_1_2",
+        gradeNames: "fluid.uploader.compatibility.1_2"
+    }
+});
+
+ +
+
+ + + +
+ +
+ + +
+ + + + + diff --git a/infusion/development/Contexts.html b/infusion/development/Contexts.html new file mode 100644 index 00000000..b69155ca --- /dev/null +++ b/infusion/development/Contexts.html @@ -0,0 +1,759 @@ + + + + + + Contexts | Fluid Infusion + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ +
+ + +
+ + + + +
+
+ + + + + +
+ + + +
+ +
+ + +
+
+ +
+ +

Contexts

+ + + + + +
+

Components may have different requirements depending on the context in which they are operating. +For example, a subcomponent might operate differently when running on a production server versus +when testing locally off the file system, and differently still when operating in the context of +automated tests. In a more fine-grained way, a component may behave differently when operating in +a browser with different capabilities, or on behalf of a user who has expressed particular needs or +preferences. Infusion's IoC system allows the values and behaviour attached to components to be +responsive to their context, conditioned by the visibility of certain strings known as context names +at locations in the component tree. Each component in the tree exposes a collection of these +context names, which are derived from the component's type and grade names.

+

All Infusion components are stored in a single-rooted component tree - this stores every component which +has been instantiated in a particular Infusion context. This context is global to the JavaScript context +which has loaded Infusion - for example, a frame within a browser, or a node.js process.

+

How context names are derived

+

Configuration material makes use of context names, when it is expanding. +IoC References are strings formatted in a particular way, starting with a context +expression contained in curly brackets. The context expression may consist of just a single context name, +or else it may take the form of an IoCSS selector which may mention several context names. +Context names are derived both from particular components in the tree which have already instantiated +(ancestors) and the static environment. The static environment can be thought of as a set of +contexts which are global to the entire application (that is, a context managed by the JavaScript +virtual machine operated by the runtime - for example that derived from a browser frame or +V8 context). These names can be matched by the +names appearing in curly brackets at the beginning of EL path expressions like +"{contextName}.furtherPath". Each component in the tree can give rise to a context name through +three strategies:

+
    +
  1. The fully qualified name typeName or gradeNames of the component that is found in the context, +e.g. "fluid.uploader.progressiveStrategy"
  2. +
  3. The last path segment of any of the names from strategy 1 (e.g. progressiveStrategy)
  4. +
  5. The component's name when embedded within its own parent, e.g. "strategy" - this strategy is +not available for components at the head of the tree. It is also the most unstable strategy since +it depends on particular naming of members in the tree rather than remaining stable if the tree is +reorganised. However, it is the only route for matching a particular instance of a component rather +than matching components by their type or name in general.
  6. +
+

How context names are matched

+

The rules for matching a context expression onto one or more components in the tree differ according +to the kind of expression it is. Expressions which just consist of a single context name will match +upwards - searching from the reference point into enclosing scopes as described in the +following section. Expressions which contain a space are recognised as IoCSS expressions +which will match downwards in the tree as described on their own page. Currently, these more +complex expressions may only appear in a component's configuration in the top-level area named +distributeOptions. Regardless of the direction of search, the rules for matching context names +at a particular component location in the tree are the same, as described in the previous section.

+

Where context names are looked for

+

Context names listed in a configuration are searched for at instantiation time, sequentially, +in two kinds of "scopes" or "environments".

+
    +
  • Most immediately, context names are searched for in the tree of currently instantiating +components, searching upwards through the tree from the parent of the component where the context +name is held.
  • +
  • Following this, a search is made in the resolver root, which is notionally a separate tree +of components which holds all components which has been instantiated with the grade fluid.resolveRoot (see below) anywhere in the +current component tree.
  • +
+

Diagram showing coloured squared representing components in a component tree

+

Global components: fluid.resolveRoot and fluid.resolveRootSingle

+

All Infusion components are stored in a single-rooted, global component tree. Even when you +instantiate apparently "freely-floating" components with a line such as

+
var that = fluid.myComponent();
+
+

these components are also assigned an address in the global tree - they are stored as immediate children +of the global component root with a uniquely chosen name. Naturally the default visibility rules for +these components in the component tree have to work differently for these components than they do for +nested components described by the rules above. If every such component was in scope for every other, there +would be "global chaos", to coin a phrase. So all such "free components" are hidden from each other +through a special exception in the scoping rules.

+

However, there exist several cases when genuinely global visibility is required for some components - often +this is accompanied by what is termed a Singleton Design Pattern +in prevalent "Design Patterns" dialogue. As commonly described, this pattern consists of two elements -

+
    +
  1. Arranging for global visibility of a component (object)
  2. +
  3. Arrange for there to be a single instance of a component
  4. +
+

The Infusion framework supplies two special grades, which allow the designer to arrange for both of these +points to be controlled separately. For a start, any component which is supplied the grade fluid.resolveRoot, +wherever it is constructed in the component tree, will become globally visible throughout the component +tree, as if it had been constructed at its root. Secondly, a component which uses the grade +fluid.resolveRootSingle will be able to arrange that a single instance of it is globally visible at any +time. Constructing a further instance of such a component will displace the earlier instance from global +visibility (although it will not destroy it at its original location in the tree). Using the grade fluid.resolveRootSingle +requires an option named singleRootType to be defined in the defaults, holding the global type name with +respect to which the instance is required to be unique. This needs to be listed explicitly since otherwise the +framework would not be able to tell which of the component's gradeNames or type was intended to hold the name of the +type whose instance was expected to be unique.

+ + + + + + + + + + + + + + + + + + + + +
Grade NameEnsures Global VisibilityBehaviour on Constructing Fresh Instance
fluid.resolveRootYes + Each fresh instance is made globally visible +
fluid.resolveRootSingleYes + A fresh instance that holds the same value of the option singleRootType displaces the previous one from global visibility (but does not destroy it) +
+

For example, the following code is an error, since that2 cannot see the component that with context name freeComponent1.

+
fluid.defaults("examples.freeComponent1", {
+    gradeNames: ["fluid.component"],
+    freeValue: 42
+});
+
+var that = examples.freeComponent1();
+
+var that2 = fluid.component({
+    value: "{freeComponent1}.options.freeValue" // error: though global, freeComponent1 is not resolvable
+});
+
+

However, in the following example, since rootComponent1 has the grade fluid.resolveRootSingle, the instance root1 can be seen by the +second component. In addition, since it has fluid.resolveRootSingle rather than just fluid.resolveRoot, when we +create a second instance of it, this instance becomes the globally visible one.

+
+

Note: In general, users must take care to destroy all such "free components" manually when they are no longer required. Since +JavaScript does not supply schemes for reference tracking, there is no way for the framework to determine when a component is no +longer being used. The user must call destroy() on such instances themselves.

+
+
fluid.defaults("examples.rootComponent1", {
+    gradeNames: ["fluid.component", "fluid.resolveRootSingle"],
+    singleRootType: "examples.rootComponent1",
+    rootValue: 42
+});
+
+
+fluid.defaults("examples.rootFinder", {
+    gradeNames: ["fluid.component"],
+    value: "{rootComponent1}.options.rootValue"
+});
+
+var root1 = examples.rootComponent1();
+
+var that1 = examples.rootFinder();
+
+console.log("Resolved root value: " + that1.options.value);
+// OK: Receives 42 from resolveRootSingle component
+
+var root2 = examples.rootComponent1({ // construct a fresh instance, displacing the original
+    rootValue: 43
+});
+
+var that2 = examples.rootFinder();
+
+console.log("Resolved root value: " + that2.options.value);
+// OK: Receives 43 from resolveRootSingle component
+
+root1.destroy(); // clean up all our free components
+that1.destroy();
+root2.destroy();
+that2.destroy();
+
+

Allowing a component to adapt to its context

+

There are three principal routes that a component can be influenced by its context, listed from the most straightforward to the most heavyweight:

+
    +
  • Firstly, a component can simply include a contextualised reference in its configuration, as we saw above - e.g. {rootComponent1}.options.rootValue. This +value is fetched from the specified part of the context and becomes part of the component's options when it is instantiated
  • +
  • Secondly, an options distribution can be targetted at the component from elsewhere in the tree, using the IoCSS context expressions described above.
  • +
  • Thirdly, the component can derive from the fluid.contextAware grade in order to set up complex arbitration amongst multiple sources of context +which can influence the component along several axes simultaneously.
  • +
+ +
+
+ + + +
+ +
+ + +
+ + + + + diff --git a/infusion/development/CoreAPI.html b/infusion/development/CoreAPI.html new file mode 100644 index 00000000..efc078dc --- /dev/null +++ b/infusion/development/CoreAPI.html @@ -0,0 +1,1271 @@ + + + + + + Infusion Core API | Fluid Infusion + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ +
+ + +
+ + + + +
+
+ + + + + +
+ + + +
+ +
+ + +
+
+ +
+ +

Infusion Core API

+ + + + + +
+

This file documents some low-level APIs which are provided by Infusion at the JavaScript level. Note that since +Infusion's more overarching aim is to enable declarative programming based on JSON structures, by means +of its IoC system, the documentation in this file doesn't cover very much +of Infusion's real function. Please consult pages on Component Grades, +Component Configuration Options, the Infusion Event System, +etc. for coverage of these wider topics.

+

Type checking

+

fluid.isValue(value)

+
    +
  • value {Any}
  • +
  • Returns: {Boolean}
  • +
+

Returns true if the supplied value is other than null or undefined.

+

fluid.isPrimitive(value)

+
    +
  • value {Any}
  • +
  • Returns: {Boolean}
  • +
+

Returns true if the supplied value is of a primitive JavaScript type (recognized: String, Boolean, Number, Function, and falsy values)

+

fluid.isArrayable(totest)

+
    +
  • totest {Any}
  • +
  • Returns: {Boolean}
  • +
+

Returns true if the supplied value can be treated as an array. The strategy used is an optimised +approach taken from an earlier version of jQuery - detecting whether the toString() version +of the object agrees with the textual form [object Array], or else whether the object is a +jQuery object (the most common source of "fake arrays").

+

fluid.isPlainObject(totest[, strict])

+
    +
  • totest {Any}
  • +
  • strict {Boolean} [optional] If true, only accepts plain Objects
  • +
  • Returns: {Boolean}
  • +
+

Returns true if the supplied object is a plain JSON-forming container - that is, it is either a plain Object +or a plain Array. If the strict argument holds true, only returns true if the supplied object is a plain Object. +This method will accept as plain objects coming from other contexts (e.g. iframes or V8 contexts) if they were +plain in that context.

+

fluid.typeCode(totest)

+
    +
  • totest {Any}
  • +
  • Returns: {String}
  • +
+

Returns primitive, array or object depending on whether the supplied object has +one of those types, by use of the fluid.isPrimitive, fluid.isPlainObject and fluid.isArrayable utilities

+

fluid.isDOMNode(totest)

+
    +
  • totest {Any}
  • +
  • Returns: {Boolean}
  • +
+

Returns true if the supplied object is a DOM node.

+

fluid.isDOMish(totest)

+
    +
  • totest {Any}
  • +
  • Returns: {Boolean}
  • +
+

Returns true if the supplied object is a DOM node or a jQuery object.

+

fluid.isUncopyable(totest)

+
    +
  • totest {Any}
  • +
  • Returns: {Boolean}
  • +
+

Returns true if it would be unwise to copy the supplied object. The framework will not attempt to copy any material which +fails this test. An object which passes fluid.isPrimitive, fluid.isDOMish or fails fluid.isPlainObject will pass this test.

+

fluid.isComponent(totest)

+
    +
  • totest {Any}
  • +
  • Returns: {Boolean}
  • +
+

Returns true if the supplied object is an Infusion component.

+

fluid.isDestroyed(component)

+
    +
  • component {Component}
  • +
  • Returns: {Boolean}
  • +
+

Returns true if the supplied Infusion component has been destroyed.

+

fluid.hasGrade(options, gradeName)

+
    +
  • options {Object}
  • +
  • gradeName {String}
  • +
  • Returns: {Boolean}
  • +
+

Returns true if the supplied options (defaults) are the top-level options of a component which has the supplied grade. These must be options which +have already been through options merging, since the test is a simpleminded one that simply checks whether the gradeNames entry in the options contains the supplied gradeName.

+

fluid.componentHasGrade(component, gradeName)

+
    +
  • component {Component}
  • +
  • gradeName {String}
  • +
  • Returns: {Boolean}
  • +
+

Returns true if the supplied component has the supplied gradeName as a parent grade. This is a rapid check which uses the framework's internal data structures for the lookup.

+

Basic implementation atoms

+

fluid.identity(arg)

+
    +
  • arg {Any}
  • +
  • Returns: {Any}
  • +
+

fluid.notImplemented()

+

A function which raises a failure if executed. This function name can also be used as a placeholder in Invokers and +namespaced Listener to create abstract (noninstantiable) Component Grades.

+

fluid.each(source, func)

+
    +
  • source {Array|Object} A container to be iterated over (may be null)
  • +
  • func {Function} (element {Any}, index {Number|String}) → Any. This function will be invoked once on each member of source and will receive the member and its key (either an integer for an array source, +or a string for an object source)
  • +
  • Returns: none
  • +
+

Iterates over a supplied array or hash, invoking a function once for each member. Similar to jQuery.each only the +arguments to func are the right way round and the function does not explode on nonvalues. fluid.each on null or undefined is a no-op.

+

fluid.invokeLater(func)

+
    +
  • func {Function} A function accepting zero arguments which is to be invoked later
  • +
  • Returns: none
  • +
+

A standard utility to schedule the invocation of a function after the current function call stack returns. On browsers this defaults to setTimeout(func, 1) but in +other environments can be customised - e.g. to process.nextTick in node.js. In future, this could be optimised in the browser to not dispatch into the event queue.

+

fluid.allocateGuid()

+
    +
  • Returns: {String} A string of about a dozen characters that has made moderate efforts to be globally unique.
  • +
+

Allocate a string value that will be unique within this Infusion instance (frame or process), and +globally unique with high probability (50% chance of collision after a million trials). This has the structure prefix-id where +prefix is the value of fluid.fluidInstance identifying this Infusion instance, and id is a increasing integer initialised at +1 when this infusion instance starts up.

+

fluid.add(a, b)

+
    +
  • a {Number} The first operand to be added
  • +
  • b {Number} The second operand to be added
  • +
  • Returns: {Number} The value of a + b
  • +
+

Returns the result of invoking the JavaScript operator + on its two arguments. This is a function convenient to supply, for +example, to fluid.accumulate to sum a list of numbers.

+

Creation, copying and destroying

+

fluid.freshContainer(tocopy)

+
    +
  • tocopy {Object|Array}
  • +
  • Returns: {Object|Array}
  • +
+

Return an empty container as the same type as the argument (either an array or hash). To be wise, the supplied argument should +pass the fluid.isPlainObject test.

+

fluid.copy(tocopy)

+
    +
  • tocopy {Any}
  • +
  • Returns: {Any}
  • +
+

Performs a deep copy (clone) of its argument. This will guard against cloning a circular object by terminating if it reaches a path depth +greater than fluid.strategyRecursionBailout. fluid.copy will not copy an object which passes fluid.isUncopyable.

+

fluid.makeArray(arg)

+
    +
  • arg {Any}
  • +
  • Returns: {Array}
  • +
+

Converts the supplied argument to an array (or copies it if it is already an array), by a variety of strategies:

+
    +
  • If it is even slightly arrayable (has a numeric length property), its elements will be copied into a fresh array
  • +
  • If it is not slightly arrayable, it will be placed into a 1-element array
  • +
  • If it is undefined, a 0-element array will be returned
  • +
+

fluid.generate(n, generator[, applyFunc])

+
    +
  • n {Integer} The size of the array to be filled
  • +
  • generator {Object|Function} Either a value to be replicated or function to be called (if the applyFunc argument holds true). In case of a function, the signature is (i {Integer}) → Any, accepting the index position and returning the generated element.
  • +
  • applyFunc {Boolean} If true, the generator value is to be treated as a function
  • +
  • Returns: {Array} An array of length n holding the generated elements
  • +
+

Fills an array of given size with copies of a value or result of a function invocation

+

fluid.iota(n[, first])

+
    +
  • n {Integer} Size of the filled array to be returned
  • +
  • first {Number} [optional, defaults to 0] First element to appear in the array
  • +
  • Returns: {Array} An array of length n holding the generated elements
  • +
+

Returns an array of size n, filled with increasing integers, starting at 0 or at the value specified by first. The name iota originally stems from the +APL programming language.

+

fluid.clear(target)

+
    +
  • target {Object|Array} The target to be cleared
  • +
  • Returns: {Undefined}
  • +
+

Clears an object or array of its contents. For objects, each property is deleted. The input argument will be destructively modified.

+

Transforming and filtering

+

fluid.transform(source, [fn1, fn2, ...])

+
    +
  • source {Array|Object} The initial container of objects to be transformed. If the source is neither an array nor an object, it will be returned untransformed
  • +
  • fn_i {Function} (element {Any}, index {Number|String})→Any (arbitrary number accepted) An arbitrary number of optional further arguments, +all of type Function, accepting the signature (element, index), where element is the +list member to be transformed, and index is its index. Each function will be +applied in turn to each member, which will be replaced by the return value from the function.
  • +
  • Returns: {Array|Object} The finally transformed structure, where each member has been replaced by the original member acted on by the function or functions.
  • +
+

Return a list or hash of objects, transformed by one or more functions. Similar to +jQuery.map, but accepts an arbitrary list of transformation functions and does not explode on null sources. +fluid.transform on a non-array and non-object (e.g. null) is a no-op.

+

fluid.accumulate(list, fn, initial)

+
    +
  • list {Array} The list of objects to be accumulated over.
  • +
  • fn {Function: (object {Any}, total {Any-Total}, index {Integer}) → Any-Total} An "accumulation function" accepting the signature (object, total, index) where +object is the list member, total is the "running total" object (which is the return value from the previous invocation of fn or else initial), +and index is the index number.
  • +
  • arg {Any-Total} The initial value for the "running total" object.
  • +
  • Returns: {Any-Total} The final running total object as returned from the final invocation of the function on the last list member.
  • +
+

Scan through a list of objects, "accumulating" a value over them +(may be a straightforward "sum" or some other chained computation). "accumulate" is the name derived +from the C++ STL, other names for this algorithm are "reduce" or "fold". Example:

+
var numbers = fluid.iota(4, 1); // numbers now holds [1, 2, 3, 4]
+var sum = fluid.accumulate(numbers, fluid.add, 0); // sum now holds 10
+
+

Note that other common uses of fluid.accumulate (maximum and minimum) can be achieved through +the multi-arg versions of Math.max and Math.min, e.g.

+
var max = Math.max.apply(null, numbers);
+
+

fluid.roundToDecimal(num, scale, method)

+
    +
  • num {Number} The number to be rounded
  • +
  • scale {Number} The maximum number of decimal places to round to. If the scale is invalid (i.e falsey, not a number, negative value), it is treated as 0. If the scale is a floating point number, it is rounded to an integer.
  • +
  • method {String} (optional) Request a rounding method to use ("round", "ceil", "floor"). If nothing or an invalid method is provided, it will default to "round".
  • +
+

Derived from Sindre Sorhus's round-to node module. (License: MIT)

+

Rounds the supplied number to at most the number of decimal places indicated by the scale, omiting any trailing 0s. There are three possible rounding methods described below: "round", "ceil", "floor".

+
    +
  • "round": Numbers are rounded away from 0 (i.e 0.5 -> 1, -0.5 -> -1).
  • +
  • "ceil": Numbers are rounded up
  • +
  • "floor": Numbers are rounded down
  • +
+
var rounded = fluid.roundToDecimal(1.555, 2); // rounded now holds 1.56
+var ceil = fluid.roundToDecimal(1.555, 2, "ceil"); // rounded now holds 1.56
+var floor = fluid.roundToDecimal(1.555, 2, "floor"); // rounded now holds 1.55
+
+

fluid.remove_if(source, fn[, target])

+
    +
  • source {Array|Object} The array or hash of objects to be scanned over. This structure will be modified in place. Note that in the case this is an array, +iteration will run from the end of the array towards the front, so that the index of elements yet to be removed will remain stable.
  • +
  • fn {Function: (object {Any}, index {Number|String}) → Booleanish } A predicate function determining whether an element should be +removed. This accepts the standard signature (object, index). If the predicate returns a "truthy" value, the corresponding object +will be removed from the source structure.
  • +
  • target {Array|Object} [optional] A target object of the same type as source, which will +receive any objects removed from it.
  • +
  • Returns: {Array|Object} Either target, containing the removed elements, if it was supplied, or else source +modified by the operation of removing the matched elements.
  • +
+

Scan through a list or hash of objects, removing those which match a predicate. The source structure will be modified in place.

+

fluid.getMembers(holder, path)

+
    +
  • holder {Array|Object} The container to be filtered
  • +
  • path {String|Array of String} An EL path to be fetched from each top-level member
  • +
  • Returns: {Array|Object} A container of the same type as holder, with the members of holder deferenced by path.
  • +
+

Extracts a particular member from each top-level member of a container, returning a new container of the same type. Example:

+
var cattes = [
+    { name: "Huggoe" },
+    { name: "Arthur" },
+    { name: "THER CATTE" }
+];
+var names = fluid.getMembers(cattes, "name");
+// names now holds ["Huggoe", "Arthur", "THER CATTE"];
+
+

fluid.filterKeys(toFilter, keys[, exclude])

+
    +
  • toFilter {Array|Object} The object to be filtered - this will be NOT modified by the operation
  • +
  • keys {Array of String} The list of keys to operate with
  • +
  • exclude {Boolean} [optional] If true, the keys listed are removed rather than included
  • +
  • Returns: {Array|Object} the filtered object
  • +
+

Accepts an object to be filtered, and a list of keys. Either all keys not present in +the list are removed (the default), or all keys present in the list are removed (exclude: true). The suppled object is not modified but will be shallow cloned by this operation.

+

fluid.censorKeys(toCensor, keys)

+
    +
  • toFilter {Array|Object} The object to be filtered - this will be NOT modified by the operation
  • +
  • keys {Array of String} The list of keys to operate with
  • +
  • Returns: {Array|Object} A shallow clone of toFilter with the supplied keys removed
  • +
+

A convenience wrapper for fluid.filterKeys with the argument exclude set to true. Returns a shallow clone of the supplied object with listed keys removed.

+

fluid.keys(object)

+
    +
  • object {Object} The object to have its keys listed
  • +
  • Returns: {Array} An array holding the keys of this object.
  • +
+

Return the keys in the supplied object as an array. Note that this will return keys found in the prototype chain as well as "own properties", unlike the builtin Object.keys()

+

fluid.values(object)

+
    +
  • object {Object} The object to have its values listed
  • +
  • Returns: {Array} An array holding the values of this object.
  • +
+

Return the values in the supplied object as an array. This will return values found in the prototype chain as well as those attached to "own properties".

+

fluid.arrayToHash(array)

+
    +
  • array {Array of String} The array to be converted to a hash
  • +
  • Returns: {Object} An object with value true for each key taken from a member of array
  • +
+

Converts an array into an object whose keys are the elements of the array, each with the value true

+

fluid.hashToArray(hash, keyName[, func])

+
    +
  • hash {Array} The hash to be transformed into an array
  • +
  • keyName {String} The name within the resulting array elements which will receive the string which used to form the element's key in hash
  • +
  • func {Function (newElement {Object), oldElement {Object}, key {String}) → Object } [optional] receives (newElement, oldElement, key) where newElement is the freshly cloned element (a fresh Object obj which just has obj[keyName] = key), +oldElement is the original hash's element, and key is the key of the element in the hash. The function returns the final element that will be added to the array - it may ignore newElement if it pleases and make an unrelated +return. If the function makes no return, newElement will be used. If the function is not supplied, the old element is simply deep-cloned onto the new element (same effect as transform fluid.transforms.objectToArray).
  • +
+

Converts a hash into an array by hoisting out the object's keys into an array element via the supplied String key, and then transforming the elements via an optional further function func. Note that without some further +means of sorting the resulting array elements, the order of elements in the array will not be defined. Example:

+
var hash = {
+    "Proailurus":     25000000,
+    "Pseudaelurus":   18500000,
+    "Felis attica":   12000000,
+    "Felis lunensis":  2500000,
+    "CATT":              50000
+};
+var CATTyears = fluid.hashToArray(hash, "species", function (newElement, oldElement) {
+    newElement.yearsAgo = oldElement;
+});
+
+// CATTyears now contains [ {
+//    species: "Proailurus",
+//    yearsAgo: 25000000
+//}, { // etc.
+
+

fluid.flatten(array)

+
    +
  • array {Array} The array to be flattened
  • +
  • Returns: {Array} The flattened array.
  • +
+

Converts an array consisting of a mixture of arrays and non-arrays into the concatenation of any inner arrays +with the non-array elements. The original array will not be modified. See description of mapcat or flat-map.

+

fluid.freezeRecursive(tofreeze)

+
    +
  • tofreeze {Array|Object} The object to be frozen recursively
  • +
  • Returns: {Array|Object} The supplied argument, recursively frozen
  • +
+

Calls Object.freeze at each level of containment of the supplied object. +This function is a no-op if a primitive value is supplied.

+

fluid.pushArray(holder, member, topush)

+
    +
  • holder {Array|Object} The holding object whose member is to receive the pushed element(s).
  • +
  • member {String} The member of the holder onto which the element(s) are to be pushed
  • +
  • topush {Array|Object} If an array, these elements will be added to the end of the array using Array.push.apply. +If an object, it will be pushed to the end of the array using Array.push.
  • +
+

Pushes an element or elements onto an array, initialising the array as a member of a holding object if it is +not already allocated. The member of the holding object should either be undefined or hold an array at the time of the call. Example:

+
var holder = {};
+fluid.pushArray(holder, "array", 3); // holder.array now holds [3]
+fluid.pushArray(holder, "array", [4, 5]); // holder.array now holds [3, 4, 5]
+
+

Sorting and searching

+

fluid.find(source, func[, deflt])

+
    +
  • source {Arrayable|Object} The list or hash of objects to be searched.
  • +
  • func {Function: (element {Any}, index {Number|String}) → Any} A predicate function, acting on a member. A predicate which +returns any value which is not undefined will terminate the search.
  • +
  • deflt {Any} [optional] A value to be returned in the case the predicate is not satisfied on any element +a member. The default will be the natural value of undefined
  • +
  • Returns: The first return value from the predicate function which is not undefined
  • +
+

Scan through a list or hash of objects, terminating on the first member which +satisfies a predicate function. The return is the return value from the predicate.

+

fluid.find_if(source, func[, deflt])

+
    +
  • source {Arrayable|Object} The list or hash of objects to be searched.
  • +
  • func {Function: (element {Any}, index {Number|String}) → Boolean} A predicate function, acting on a member. A predicate which +returns any value which is not false will terminate the search.
  • +
  • deflt {Any} [optional] A value to be returned in the case no predicate function matches a +member. The default will be the natural value of undefined
  • +
  • Returns: The first element for which the value of the predicate function is not false
  • +
+

Scan through a list or hash of objects, terminating on the first member which +matches a predicate function. The return value is the first element itself for which the predicate returns other than false.

+

fluid.contains(tosearch, value)

+
    +
  • tosearch {Object|Array} The structure to be searched for the supplied value,
  • +
  • value {Any} The value to be searched for
  • +
  • Returns: {Boolean|Undefined} Returns true if the value was found in the container
  • +
+

Searches through the supplied structure, and returns true if the supplied value can be found, using === equality

+

fluid.keyForValue(tosearch, value) {

+
    +
  • tosearch {Object|Array} The structure to be searched for the supplied value
  • +
  • value {Any} The value to be found. This will be compared against the structure's members using === equality.
  • +
  • Returns: {String|Integer|Undefined} The first key (an Integer if tosearch is an Array) whose value matches the one supplied, or undefined if no value matches
  • +
+

Searches through the supplied object for the first value which matches the one supplied.

+

fluid.stableSort(array, func)

+
    +
  • array {Array of Any-Element} The array to be sorted. This input array will be modified in place.
  • +
  • func {Function: (a {Any-Element}, b {Any-Element}) → Number} A comparator returning >0, 0, or <0 on pairs of elements representing their sort order (same contract as Array.sort comparator)
  • +
+

Applies a stable sorting algorithm to the supplied array and comparator (note that Array.sort in JavaScript is not specified +to be stable). The algorithm used will be an insertion sort, which whilst quadratic in time, will perform well +on small array sizes.

+

fluid.compareStringLength(ascending)

+
    +
  • ascending {Booleanish} true if a comparator is to be returned which sorts strings in ascending order of length
  • +
  • Returns: {Function: (a {String}, b {String}) → Number} The comparator function to be used for sorting
  • +
+

Produces a comparator function suitable for use with Array.sort or fluid.stableSort to sort an array of strings by length

+

Parsing and rendering

+

fluid.parseInteger(string)

+
    +
  • string {String} A string to be converted to an integer
  • +
  • Returns: {Integer|NaN} The integer value, or NaN if the string does not represent an integer
  • +
+

Returns the converted integer if the input string can be converted to an integer. Otherwise, returns NaN.

+

fluid.stringTemplate(template, terms)

+
    +
  • template {String} A string with embedded tokens of the form %value
  • +
  • terms {Object: String → Stringable} A hash which maps tokens to their required interpolated values
  • +
+

A simple string interpolation system. Accepts a template string with embedded tokens of the form %value. Returns a new string with the tokens replaced by the specified values. +Keys and values can be of any data type that can be coerced into a string. Tokens are not delimited in the template with any syntax - the implementation will replace the longest token which +can be sourced from terms.

+

Handling models and paths

+

fluid.get(model, path)

+
    +
  • model {Any} The model object to be indirected into. This may be undefined, etc. without triggering an error.
  • +
  • path {String|Array of String} Either a period-separated EL path representing a chain of properties to be navigated, or else an array of +path segments representing this
  • +
  • Returns: {Any} The result of the indirection of the path into the supplied model
  • +
+

Accesses an element nested within a model object at the supplied (EL) path. fluid.get can +operate various special behaviour in encountering particular kinds of material - for example, any object with a function member named resolvePathSegment will +hand resolution of the next path segment to that function if there is no corresponding concrete member. If fluid.get navigates off the end of the available +model material, this will not trigger an error - all successive indirections will simply return undefined. fluid.get accepts various esoteric piece of configuration +allowing it to operate indirection rules encoded in arbitrary JSON material - these are imperfectly supported, contact us if you are interested.

+

fluid.getImmediate(model, path)

+
    +
  • model {Any} The model object to be indirected into. This may be undefined, etc. without triggering an error.
  • +
  • path {Array of String} An array of path segments representing representing a chain of properties to be navigated
  • +
  • Returns: {Any} The result of the indirection of the path into the supplied model
  • +
+

An extremely simplistic, high-performance variant of fluid.get that supports none of the same bells and whistles - it is only capable of navigating over concrete +object properties that are actually present in the model, and the path must have already been parsed out into an array of segments. +It still, however, operates the same semantic as fluid.get for navigating over undefined values.

+

fluid.set(model, path, newValue)

+

Writes a new value into a model at a specified path. This is performed by directly modifying the penultimately referenced model object (the one referenced by the first n-1 +path segments in path) by writing the value newValue to its property named after the final path segment. Other approaches to this task are possible +(see New New Notes on the ChangeApplier) but the +fundamental invariant to be respected is that

+
fluid.get(model, fluid.set(model, path, value), path); // === value
+
+

Even a functional programmer could admit that. A slight wrinkle, however, is the behaviour of the special path "" or [], attempting to write a value at the model +root. This API is not capable of this and will fail in this case - since it is hampered at the language level by being unable to rewrite the object reference model which exists +in the scope of its caller. The ADD message of the ChangeApplier can be used to handle this case. Under its new semantics, the reference model is at a known +address in its parent component which can be rebound.

+

If the path path indirects beyond the range of concrete properties in model, the implementation will fill in any intermediate path levels with fresh instances of {} +(in the manner of mkdirs). There are some esoteric extra arguments +for fluid.set which will allow this to be done in a schema-aware way, for example filling in path levels with [] instead - contact us +if you are interested.

+
    +
  • model {Object} The model object to be indirected into. This must be an Object.
  • +
  • path {String|Array of String} Either a period-separated EL path representing a chain of properties to be navigated, or else an array of +path segments representing this
  • +
  • newValue: {Any} The value to be written into model at the path path
  • +
+

fluid.modelPairToChanges(value, oldValue, changePathPrefix)

+
    +
  • value {Any} Model value to compare
  • +
  • oldValue {Any} Model value to compare
  • +
  • changePathPrefix {String|Array of String} [optional] Path prefix to prepend to change request paths
  • +
  • Returns: {Array of changeRequest} An array of changeRequest objects
  • +
+

Calculates the changes between the model values value and oldValue and +returns an array of +changeRequest +objects. The optional argument changePathPrefix is prepended to the change +path of each request (this is useful for generating change requests to be +applied at a non-root path in a model).

+

The returned array of change request objects may be used with +fluid.fireChanges().

+

For example, if we call fluid.modelPairToChanges with value of {b: 2} +and oldValue of {a: 1}:

+
fluid.modelPairToChanges({b: 2}, {a:1});
+
+

we will receive this result:

+
[
+    {
+        path: [ "b" ],
+        value: 2,
+        type: "ADD"
+    },
+    {
+        path: [ "a" ],
+        value: null,
+        type: "DELETE"
+    }
+]
+
+

Indicating that the property "b" was added with value 2 and that the property +"a" was removed.

+

fluid.model.parseEL(EL)

+
    +
  • EL {String} The EL path to be parsed
  • +
  • Returns: {Array of String} The EL path parsed as an array of path segments
  • +
+

Parses a EL path expression by splitting it on the character .. This is a fast, low-quality implementation which assumes that no +escaping of . characters is necessary.

+

fluid.model.composeSegments([seg1, seg2, ...])

+
    +
  • seg1 ... segn {String} The path segments to be composed
  • +
  • Returns: {String} The EL path composed by concatenating the path segments.
  • +
+

Compose any number of path segments, none of which may be empty. The inverse to fluid.model.parseEL - this is a fast, low-quality implementation which does no escaping.

+

fluid.pathUtil.parseEL(EL)

+
    +
  • EL {String} The EL path to be parsed
  • +
  • Returns: {Array of String} The EL path parsed as an array of path segments
  • +
+

Parses a EL path expression by splitting it on the period character ".". This is an analog of fluid.model.parseEL that will escape the characters . as \. and \ as \\, allowing +all possible paths to be expressed. In modern JavaScript VMs, it is not much slower than fluid.model.parseEL and should be used in all applications where paths will be +accepted from external users.

+

fluid.pathUtil.composeSegments([seg1, seg2, ...])

+
    +
  • seg1 ... segn {String} The path segments to be composed
  • +
  • Returns: {String} The EL path composed by concatenating the path segments.
  • +
+

Compose any number of path segments, none of which may be empty. This is an analog of fluid.pathUtil.parseEL that will escape the characters . as \. and \ as \\, allowing +all possible paths to be expressed. In modern JavaScript VMs, it is not much slower than fluid.pathUtil.composeSegments and should be used in all applications where paths will be +accepted from external users.

+

Logging and error handling

+

fluid.log([logLevel, arg1, ... argn])

+
    +
  • logLevel {LogLevel} [optional] One of the members of the fluid.logLevel structure or in general some fluid.marker with a numeric value holding a priority
  • +
  • arg1 ... argn {Stringable} A sequence of arguments to be logged. By default these will be handed unchanged to the multiple arguments of console.log. It is wise to convert these +to String yourself (e.g. by JSON.stringify) if i) this is safe, and ii) you would not be satisfied by the environment's rendering.
  • +
+

Log a message to a suitable environmental console (in current implementations, console.log). If the first argument to fluid.log is +one of the members of the fluid.logLevel structure, this will be taken as the priority of the logged message - else it +will default to fluid.logLevel.INFO. If the logged message priority does not exceed that set by the most recent call to the fluid.setLogging function, +the logging action will be suppressed.

+

fluid.logLevel

+

A hash of strings to LogLevel constants, suitable for sending as the special, optional, first argument to fluid.log. These communicate a logging priority, with lower numbers +of higher priority than higher numbers. The system maintains a current "logging level" as an internal piece of state, updated by fluid.setLogging and fluid.popLogging - any +fluid.log statements whose supplied priority does not exceed the logging level will be inactive.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
LogLevelPriorityDescription
fluid.logLevel.FATAL0the very highest logging level, indicating that the process must now exit immediately due to a fatal error
fluid.logLevel.FAIL5a very high logging priority, corresponding to an assertion failure, similar to that of fluid.fail - the system will terminate shortly if not immediately
fluid.logLevel.WARN10a moderate logging priority, corresponding to a problem which most users would wish to be notified of, but is not sufficient to halt the system
fluid.logLevel.IMPORTANT12a moderate logging priority, corresponding to standard debugging messages. This is the level set by fluid.setLogging(false)
fluid.logLevel.INFO15a low logging level, corresponding to verbose debugging messages. This is the level set by fluid.setLogging(true).
fluid.logLevel.TRACE20a very low logging level, which if enabled would produce extremely voluminous output which would significantly slow execution and consume a lot of storage. This should only be enabled for short periods of time, perhaps conditional on some triggers surrounding an event of interest.
+

fluid.setLogging(logLevel)

+
    +
  • logLevel {Boolean|LogLevel} The system logging level to be made current and to be pushed onto the top of the system's stack of logging levels.
  • +
+

Push a value onto the stack of the system's current logging levels. This will become the system's current logging level until there is a corresponding call to fluid.popLogging. The argument may either be a boolean, +in which case one of the standard logging levels (true: fluid.logLevel.INFO / false: fluid.logLevel.IMPORTANT) will be selected, or else one of the members of the fluid.logLevel structure or a LogLevel marker +in general. The stack is initialised with a single element of fluid.logLevel.IMPORTANT.

+

fluid.popLogging()

+

Pops one LogLevel value that was pushed onto the logging level stack by a previous call to fluid.setLogging. This will expose the previous element on top of the stack and restore the logging level that had previously been in effect. +If the stack has only its one original element, this call is a no-op.

+

fluid.passLogLevel(testLogLevel)

+
    +
  • testLogLevel {LogLevel} The log level against which the system's current logging level is to be checked.
  • +
  • Returns: {Boolean} - true if a message supplied at that log priority would be logged at the current logging level.
  • +
+

Accepts one of the members of the fluid.logLevel structure or a LogLevel object in general. Returns true if +a message supplied at that log priority would be logged at the current logging level. Clients who +issue particularly expensive log payload arguments are recommended to guard their logging statements with this

+

fluid.doLog([arg1, ... argn])

+

The actual implementation to which fluid.log messages and other logging generated by the system are dispatched. Implemented to forward to console.debug and console.log but may be monkey-patched by +clients who require an alternative implementation.

+

fluid.fail([arg1, ... argn])

+

The framework and clients can call this method in order to signal a hard assertion failure. The current contract of fluid.fail is that an implementation/log error has been discovered - the +typical behaviour of the system is to halt or at the very least propagate an unhandled exception to the top process level which is likely to make the system's behaviour unstable. If this failure +resulted from bad user or external input, do not call this function but instead signal it in a milder, more implementation-specific way - for example by sending an HTTP status code or showing +a user message. As Infusion evolves to handle a more finely graded variety of dynamic authoring scenarios, this function will be broken up into variants which can signal failures of different severities.

+

The current system behaviour is to throw a particular subclass of the standard Error type, of type fluid.FluidError. The behaviour of fluid.fail can be customised by contributing handlers to +the standard event fluid.failureEvent

+

fluid.failureEvent

+
    +
  • log - the namespace for the listener which logs the failure to a suitable environment. By default this fires to fluid.logFailure which forwards to fluid.log before also logging the state of the IoC system by +using fluid.logActivity
  • +
  • fail - the namespace for the listener which enacts any failure behaviour. By default this calls fluid.fail but in a testing environment, for example, will react by failing any current test, or +in an HTTP server by aborting the handling of any current request with a suitable HTTP status code and message.
  • +
+

Every call to fluid.fail triggers a firing of this global event. This is a standard Infusion Event with several handlers installed on startup to take on various functions. +Extra handlers are registered, and the builtin handlers overriden, to customise error handling behaviour in various contexts - for example, when Infusion is running in node.js, is running a +jqUnit test or is running in Kettle etc. +There are two currently standard namespaces for listeners to this event:

+

fluid.strategyRecursionBailout

+

A positive integer (default value 50) above which depth the framework's processing of configuration will bail out, assuming that it has become circularly linked. This can be customised by the user +(although this is an unlikely requirement), and is read by algorithms such as fluid.copy and during options expansion.

+

The global namespace

+

Infusion is unusual amongst modern JavaScript systems in that it maintains a single, global namespace of fully qualified implementation names. +For example, builtin Infusion grades are stored in this namespace at paths fluid.* and each +project will in general allocate its own top-level name. Users are assisted to operate on this global namespace with some utility functions. Any user of Infusion who has successfully resolved the +fluid object can access the root object for this namespace as fluid.global. In the browser, the root of this namespace coincides directly +with the real global namespace, which conventionally is addressed as window. In a Web Worker this object +is conventionally known as self. In environments like node.js where a global namespace is discouraged (but not, thankfully, actively prohibited) the global object is not directly accessible and users +will need to use these utilities or the helping reference fluid.global. See fluid.setGlobalValue for some guidelines on the use of global names.

+

fluid.registerNamespace(path)

+
    +
  • path {String|Array of String} The global path at which the namespace is to be allocated
  • +
  • Returns: {Any} Any current value held at the supplied path - or a freshly allocated {} to be held at that path if it was previously empty
  • +
+

Ensures that the supplied path has an object allocated in the global namespace, and retrieves the current value. If no value is stored, a fresh {} will be assigned at the path, and to all +currently empty paths leading to the global namespace root. Calls to fluid.registerNamespace are very common at the start of Infusion-aware .js files - they are analogous to require statements, +only they do not cause any code to be loaded by themselves - but they can grant access to implementations which have been loaded by others, or else provide an intermediate node at which to export +implementations to others.

+

fluid.getGlobalValue(path)

+
    +
  • path {String|Array of String} The global path from which the value is to be fetched
  • +
  • Returns: {Any} The value that was stored at the path, or undefined if there is none.
  • +
+

Returns any value held at a particular global path. This may be an object or a function, depending on what has been stored there.

+

fluid.setGlobalValue(path, value)

+
    +
  • path {String|Array of String} The global path at which the value is to be set.
  • +
  • value {Any} The value to be written to the global path. This should in general be a function or other immutable value, and an existing value should not be overwritten. This rule can be overlooked in a genuine architectural emergency.
  • +
+

Write a value to a particular global path. Users are strongly discouraged from storing any mutable information at these paths, but it is accepted that in certain integration scenarios there can be little alternative. +Please choose a properly qualified global path name that identifies your project (perhaps, derived from a domain name or npm package name) +that you have control over. The Java package naming conventions have proved effective at heading off such problems in the past and +we intend that Infusion global names should be handled in an analogous way.

+

fluid.invokeGlobalFunction(functionPath, args)

+
    +
  • functionPath {String|Array of String} The global path holding the function which is to be invoked
  • +
  • args {Array|Any} The array of arguments to be supplied to the function. If args is not an array, fluid.makeArray will be called on it first.
  • +
  • Returns: {Any} Any return value from the function which was invoked
  • +
+

Invokes a function held at a particular global path with the supplied arguments. Equivalent to fluid.getGlobalValue followed by Function.apply(null, args).

+

fluid.invokeGradedFunction(name, spec)

+
    +
  • name {String} A global name which can be resolved to a Function. The defaults for this name must +resolve onto a grade derived from fluid.function. The defaults record should also contain an entry +argumentMap, a hash of argument names onto indexes.
  • +
  • spec {Object} A hash where the keys are keys of the functions argumentMap, and the values are the argument values to be sent to the function. The keys will be looked +up in the argumentMap and the values resolved into a flat list of arguments.
  • +
  • Returns: {Any} The return value from the function
  • +
+

Invoke a global function by name and named arguments. A courtesy to allow declaratively encoded function calls +to use named arguments, with names encoded in the defaults for a fluid.function, rather than bare arrays.

+

Storing and retrieving defaults

+

Infusion's component system is organised around blocks of JSON which define grades - another way of describing a grade is as a component's default options, which +appeals to a slightly more old-fashioned notion of what a component is. These options are registered into the system and read back from it by using the API fluid.defaults. If the options supplied to fluid.defaults +represent a component grade, the framework will automatically construct and register a component creator function in the global namespace at a path +which matches the component's grade name. Note that not all defaults correspond to a component - some of them are descended from fluid.function in which case they represent a function grade and hold metadata +about it. Some defaults are not descended from a framework grade at all, and are designed to be used as mixins to other grades.

+

fluid.defaults(gradeName[, options])

+
    +
  • gradeName {String} The fully-qualified name of the grade whose defaults are to be read or written.
  • +
  • options {Object} [optional] The defaults which are to be registered for the grade. If this argument is omitted, the existing defaults are read and returned.
  • +
  • Returns: {Object} If the function was called with 1 argument, any defaults already registered for the component. These read defaults will already have gone through options merging and have the contents +of any parent grades resolved in them. If you want to read exactly the raw defaults information that was registered for this grade, instead use fluid.rawDefaults
  • +
+

fluid.rawDefaults(gradeName[, options])

+
    +
  • gradeName {String} The fully-qualified name of the grade whose defaults are to be read or written.
  • +
  • options {Object} [optional] The defaults which are to be registered for the grade. If this argument is omitted, the existing defaults are read and returned.
  • +
  • Returns: {Object} The raw defaults registered for this grade, without being resolved against parent grades by options merging.
  • +
+ +
+
+ + + +
+ +
+ + +
+ + + + + diff --git a/infusion/development/Cutpoints.html b/infusion/development/Cutpoints.html new file mode 100644 index 00000000..680715f1 --- /dev/null +++ b/infusion/development/Cutpoints.html @@ -0,0 +1,643 @@ + + + + + + Cutpoints | Fluid Infusion + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ +
+ + +
+ + + + +
+
+ + + + + +
+ + + +
+ +
+ + +
+
+ +
+ +

Cutpoints

+ + + + +
Note: The renderer will undergo significant changes post Infusion 1.5 +
+ + +
+

A cutpoint is a mapping between a component in the renderer component tree and markup in the template.

+

Cutpoints consist of two fields: The ID of the component in the tree and a selector for the element in the template:

+
{
+    id: <string ID of component in tree>,
+    selector: <string selector referencing an element in the template>
+}
+
+

Working with Cutpoints

+

Many renderer-related functions require a list of cutpoints, but it is rare that developers will have to create cutpoints manually. There are three ways to work with cutpoints:

+

Automatically From Selectors

+

If you are using the rendererComponent grade, you can let the initialization function generate the cutpoints from your selectors. If the default selectors are defined in your component's options, the framework will automatically retrieve the selectors, generate the cutpoints, and provide them to the Renderer wherever necessary. The selector names will be used as the component IDs. This is the simplest option.

+
fluid.defaults("cspace.autocomplete.popup", {
+    selectors: {
+        noMatches: ".csc-autocomplete-noMatches",
+        matches: ".csc-autocomplete-matches",
+        matchItem: ".csc-autocomplete-matchItem",
+        longestMatch: ".csc-autocomplete-longestMatch"
+    }
+    // ...
+});
+
+cspace.autocomplete.popup = function (container, options) {
+    var that = fluid.initRendererComponent("cspace.autocomplete.popup", container, options);
+    // ...
+    return that;
+};
+
+

Generated

+

If you are using fluid.rendererComponent, you can provide a function of your own that will be used to generate cutpoints. The function must accept an object containing a set of named selectors, and will also accept options (see fluid.renderer.selectorsToCutpoints for a description of the options).

+
// Set the cutpointGenerator option of the Renderer component to your cutpoint
+// generator function
+fluid.defaults("fluid.myRendererComponent", {
+    gradeNames: ["fluid.rendererComponent"],
+    rendererFnOptions: {
+        rendererOptions: rendererOptions,
+        repeatingSelectors: that.options.repeatingSelectors,
+        selectorsToIgnore: that.options.selectorsToIgnore,
+        cutpointGenerator: fluid.myRendererComponent.personalizeSelectorsToCutpoints
+    }
+});
+
+fluid.myRendererComponent.personalizeSelectorsToCutpoints = function (selectors, options) {
+    // Override functionality here
+};
+
+

Manually

+

Finally, cutpoints can be provided directly to the renderer.

+
var cutpoints = [
+    { id: "pattern-row:", selector: ".pattern-table-row" },
+    { id: "name", selector: ".pattern-name" },
+    { id: "sample", selector: ".pattern-sample" }
+];
+
+ +
+
+ + + +
+ +
+ + +
+ + + + + diff --git a/infusion/development/DOMBinder.html b/infusion/development/DOMBinder.html new file mode 100644 index 00000000..01e674d9 --- /dev/null +++ b/infusion/development/DOMBinder.html @@ -0,0 +1,743 @@ + + + + + + DOM Binder | Fluid Infusion + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ +
+ + +
+ + + + +
+
+ + + + + +
+ + + +
+ +
+ + +
+
+ +
+ +

DOM Binder

+ + + + + +
+

The purpose of the DOM Binder is to relax the coupling between a component and its markup: A DOM Binder handles any +interaction a component may have with its markup.

+

Any parts of a component's markup that may be accessed by the code is assigned a named selector using an option called +selectors. The component accesses that markup through a request to the DOM Binder using the name, rather than directly. +So instead of having selectors hard-coded, like this:

+
var button = jQuery(".button-classname");
+
+

the selector is given a name and the DOM Binder's locate() method is used, like this:

+
selectors: {
+    button: ".button-classname"
+}
+// ...
+var button = that.locate("button");
+
+

This allows integrators to use whatever selectors they want in the markup (and simply specify the new selector +in the selectors option); the component accesses the DOM through the names, not directly through selectors. The +component defines default values for the selectors, but implementors are free to override the defaults if they +need to change the structure of the markup.

+

The DOM Binder also ensures that a component accesses only markup specific to itself, and not to any other similar +components that might be on the same page. Each Infusion View Component +is scoped to a particular node in the +DOM called its container. The DOM Binder limits any queries to that container.

+

The DOM Binder also caches information, allowing efficient access for searches that are performed very +frequently on material that is not changing - for example within mouse event loops. Caching means these +searches are do not have to be recomputed from the DOM on every query.

+

How Infusion Components Use the DOM Binder

+

The Infusion Framework automatically creates a DOM Binder for any View Component +as it constructs and attaches it to the component as a top-level member named dom.

+

View Components specify a set of named selectors in the component's defaults called selectors:

+
fluid.defaults("fluid.newComponent", {
+    gradeNames: ["fluid.viewComponent"],
+    selectors: {
+        uiBit1: ".className1",
+        uiBit2: ".className2"
+    }
+});
+
+

DOM elements related to this component can be resolved declaratively using the dom member. For example, +if {newComponent} is a reference to an instance of the above component, a reference to one of its +DOM binder elements as declared above could be written as {newComponent}.dom.uiBit1.

+

The full programmatic API to the DOM binder also available through this dom member (see +DOM Binder API for information about available methods). +For convenience, the DOM Binder's locate() function is also added to the component as a top-level instance member.

+

Unless they are otherwise qualified, all searches performed by the DOM binder attached to a particular +component will be automatically scoped to the component's own container.

+

Edge cases for the DOM Binder

+

If the value of the selector is the empty string "", the component's container will be returned. +If the selector matches nothing within the container, an empty jQuery (one with 0 elements) will be returned.

+

Using the DOM Binder Declaratively

+

The preferred way of using the DOM binder to access a component's DOM elements is through declarative configuration, +using the form "{<componentRef>}.dom.<selectorName>". These references typically occur in the component's +default configuration specification, but references may also be made from any other component.

+

In the following example, the component's default configuration assigns a DOM element to another top-level +component member using the members option:

+
fluid.defaults("fluid.tutorials.buttonHolder", {
+    gradeNames: ["fluid.viewComponent"],
+    selectors: {
+        button: ".button"
+    },
+    members: {
+        button: "{that}.dom.button"
+    }
+});
+
+

Declarative configuration is also the preferred approach for supplying arguments to Invokers +and Event Listeners, as shown in the following example:

+
fluid.defaults("fluid.tutorials.buttonHolder", {
+    gradeNames: ["fluid.viewComponent"],
+    selectors: {
+        status: ".holder-status",
+        indicator: ".holder-ind"
+    },
+    events: {
+        onSelect: null
+    },
+    listeners: {
+        onSelect: {
+            funcName: "fluid.tutorials.buttonHolder.selectHandler",
+            args: ["{that}.dom.indicator", "arguments.0"]
+        }
+    },
+    invokers: {
+        highlightStatus: {
+            funcName: "fluid.tutorials.buttonHolder.highlight",
+            args: ["{that}.dom.status"]
+        }
+    }
+});
+
+

Using the DOM Binder Programmatically

+

Standard programmatic access to the DOM binder is available using the locate() function:

+
that.locate(name);
+
+

The locate() method retrieves the specified DOM node by querying the DOM.

+

(For information about parameters for this and other DOM Binder functions, see DOM Binder API.)

+

Other methods on the DOM Binder - caching

+

The other methods on the DOM Binder are less frequently used, and are not attached to the top-level component +in the way that locate() is. They need to be accessed through the DOM Binder's own object available as that.dom.

+
that.dom.fastLocate(name);
+
+

The fastLocate() method retrieves the DOM node from the DOM Binder's cache instead of querying the DOM directly: +When fastLocate() is used instead of locate(), if the results of the search are already present in the DOM +binder's cache, they will be returned directly without searching the DOM again. This can be very much more rapid, +but runs the risk of returning stale results. The DOM binder's cache is populated for a query +whenever a query is submitted via locate().

+
that.dom.clear();
+
+

The clear() method completely clears the cache for the DOM binder for all queries. +It should be used whenever, for example, the container's markup is replaced completely, or +otherwise is known to change in a wholesale way.

+
that.dom.refresh(names);
+
+

The refresh() method refreshes the cache for one or more selector names, ready for subsequent calls to +fastLocate(). It functions exactly as for a call to locate() except that

+
    +
  • The queried results are not returned to the user, but simply populated into the cache, and
  • +
  • More than one selector name (as an array) may be sent to refresh rather than just a single one.
  • +
+

Example: Inline Edit

+

The Inline Edit component requires three parts in its user interface:

+
    +
  • a field to display the text that can be edited,
  • +
  • a field that can actually edit the text, and
  • +
  • a container for the edit field.
  • +
+

The component declares selector names for these elements, and provides defaults, in its call to fluid.defaults():

+
fluid.defaults("fluid.inlineEdit", {
+    selectors: {
+        text: ".text",
+        editContainer: ".editContainer",
+        edit: ".edit"
+    }
+    // ...
+});
+
+

Here, the default selectors use class names. To use these defaults, an implementer can simply attach these +class names to the relevant elements in mark-up. Alternatively, the implementer may choose to override some +or all of these selectors with other selectors. For example:

+
var myOpts = {
+    selectors: {
+        text: "#display-text",
+        edit: "#edit-field"
+    }
+};
+var myIEdit = fluid.inlineEdit(myContainer, myOpts);
+
+

In this example, the implementer is using element IDs to identify the text and edit fields. +(Because a custom editContainer is not supplied, it will default to the selector .editContainer +declared by the component.)

+

To access the DOM elements, the Inline Edit component uses its DOM Binder and the selector names:

+
that.viewEl = that.locate("text");
+that.editContainer = that.locate("editContainer");
+that.editField = that.locate("edit", that.editContainer);
+
+

In this way, the Inline Edit component is completely ignorant of the markup it is working with, +or even the selectors used. When the markup changes, code doesn't break.

+ +
+
+ + + +
+ +
+ + +
+ + + + + diff --git a/infusion/development/DOMBinderAPI.html b/infusion/development/DOMBinderAPI.html new file mode 100644 index 00000000..b02a0cb7 --- /dev/null +++ b/infusion/development/DOMBinderAPI.html @@ -0,0 +1,736 @@ + + + + + + DOM Binder API | Fluid Infusion + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ +
+ + +
+ + + + +
+
+ + + + + +
+ + + +
+ +
+ + +
+
+ +
+ +

DOM Binder API

+ + + + + +
+

The DOM Binder provides a degree of separation between a component and its interface by handling any interaction the component may have with its markup.

+

See the DOM Binder documentation for more information about how DOM Binders work.

+
+

Note: A DOM Binder is automatically created by the Framework for any +view component. Component developers are not expected to +ever create a DOM Binder themselves.

+
+

Creation

+

The Framework creates a DOM Binder as follows:

+
that.dom = fluid.createDomBinder (container, selectors);
+
+

The DOM Binder object is attached to the component as a member called dom.

+

Parameters

+ + + + + + + + + + + + + + + + +
ParameterTypeDescription
containerObjectthe root element in which to locate named elements
selectorsObjecta collection of named jQuery selectors, of the form + +

+{
+    name1: <selector1>,
+    name2: <selector2>
+    // ..
+}
+
+ +Note that selector values may be specified using IoC references to other selectors or expanders. +
+

Selector Examples

+
{
+    displayElement: ".flc-progress",
+    progressBar: ".flc-progress-bar",
+    indicator: ".flc-progress-indicator",
+    label: ".flc-progress-label",
+    ariaElement: ".flc-progress-bar"
+}
+
+
{
+    labelSource: ".flc-reorderer-imageTitle",
+    movables: {
+        expander: {
+            funcName: "fluid.reorderImages.createImageCellFinder",
+            args: "{that}.container"
+        }
+    }
+}
+
+

Methods

+

locate

+
var elementByName = locate(name);
+
+// or
+
+var elementByNameAndContainer = locate(name, localContainer);
+
+

Finds the named element within the specified container. If the value of the selector is the empty string "", the container itself +will be returned. If the selector matches nothing within the container, an empty jQuery (one with 0 elements) will be returned.

+

Return: a jQuery object.

+ + + + + + + + + + + + + + + + +
ParameterTypeDescription
nameStringThe selector name, as declared in the component's defaults
localContainerObjectOptional. The container element used to constrain the search for the element. Defaults to the component container. +
+

fastLocate

+
var elementByName =  fastLocate(name);
+
+// or
+
+var elementByNameAndContainer = fastLocate(name, localContainer);
+
+

Finds the named element within the specified container, using the value in the DOM Binder's cache if present (i.e. the DOM itself will not be searched again). The DOM binder's cache is populated for a query, whenever a query is submitted via locate().

+

Return: a jQuery object.

+ + + + + + + + + + + + + + + + +
ParameterTypeDescription
nameStringThe selector name, as declared in the component's defaults
localContainerObjectOptional. The container element used to constrain the search for the element. Defaults to the component container. +
+

clear

+
that.dom.clear();
+
+

Completely clears the cache for the DOM binder for all queries. It should be used whenever, for example, the container's markup is replaced completely, or otherwise is known to change in a wholesale way.

+

refresh

+
that.dom.refresh(names);
+
+// or
+
+that.dom.refresh(names, localContainer);
+
+

Refreshes the cache for one or more selector names, ready for subsequent calls to fastLocate(). It functions exactly as for a call to locate() except that

+
    +
  • The queried results are not returned to the user, but simply populated into the cache, and
  • +
  • More than one selector name (as an array) may be sent to refresh rather than just a single one.
  • +
+ + + + + + + + + + + + + + + + +
ParameterTypeDescription
namesString or Array of StringsThe selector name or names to refresh, as declared in the component's defaults
localContainerObjectOptional. The container element used to constrain the search for the element(s). Defaults to the component container.. +
+
+
+ + + +
+ +
+ + +
+ + + + + diff --git a/infusion/development/DeclarativeThisismInIoC.html b/infusion/development/DeclarativeThisismInIoC.html new file mode 100644 index 00000000..42095877 --- /dev/null +++ b/infusion/development/DeclarativeThisismInIoC.html @@ -0,0 +1,710 @@ + + + + + + Declarative this-ism in IoC | Fluid Infusion + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ +
+ + +
+ + + + +
+
+ + + + + +
+ + + +
+ +
+ + +
+
+ +
+ +

Declarative this-ism in IoC

+ + + + + +
+

Typically in Infusion, all functions and components adhere to a that-ist approach. This approach implies that the meaning of any function value remains the same, however the function is invoked. This is in contrast to the this-ist approach used frequently in JavaScript code, where the context of a function (the value of this within its body) depends on where the caller has stored it before invoking it. When working with Infusion, there are times when you will need to interact with a library and or function that requires a this, which is a keyword typically intended to refer back to itself. The most common example would be using a jQuery element.

+

For more details on the differences between that-ist and this-ist approaches, as well as the reasoning behind why Infusion employs the former, see the About this and that blog post.

+

Structure

+

A this-ist function can be declaratively bound to invokers and listeners in an IoC tree and takes the following structure:

+
{
+    "this": "{that}.dom.elm",
+    "method": "click",
+    "args": ["console.log"]
+}
+
+ + + + + + + + + + +
PropertyDescription
"this" + The this required by the function; the object that the function will be called on. Note that this property name must include the quotes (" "). +
            <p>e.g. a jQuery object</p>
+        </td>
+    </tr>
+    <tr>
+        <td>method</td>
+        <td>
+            The name of the function to be called.
+
+            <p>e.g. a jQuery function like "click"</p>
+        </td>
+    </tr>
+    <tr>
+        <td>args</td>
+        <td>
+            <em>(Optional)</em> The argument or array of arguments to be passed into the function. This can include <a href="IoCReferences.md">IoC References</a> and expanders, in addition to strings, objects, booleans, etc.
+        </td>
+    </tr>
+    <tr>
+        <td>namespace</td>
+        <td>
+            <em>(Optional)</em>
+        </td>
+    </tr>
+</tbody>
+
+
+

Examples

+

In the following example, a this-ist function is used to attach a listener to the onCreate events: The jQuery click() function of the button identified by the button selector is used to bind the component's writeText() method to the click event.

+
fluid.defaults("demo.hw", {
+    gradeNames: ["fluid.viewComponent"],
+    selectors: {
+        button: "demo-hw-button",
+        title: "demo-hw-title"
+    },
+    strings: {
+        title: "Hello World!"
+    },
+    invokers: {
+        // writes the supplied string to the title element
+        writeText: {
+            "this": "{that}.dom.title",
+            "method": "text",
+            "args": ["{that}.options.strings.title"]
+        }
+    },
+    listeners: {
+        // binds a click handler to the button element
+        onCreate: {
+            "this": "{that}.dom.button",
+            "method": "click",
+            "args": ["{that}.writeText"]
+        }
+    }
+});
+
+

In the following example, taken from the Infusion Table of Contente component, this-ist functions are used to attach methods to the component object in the invokers option.

+
fluid.defaults("fluid.tableOfContents", {
+    gradeNames: ["fluid.viewComponent"],
+    // ...
+    invokers: {
+        // ...
+        hide: {
+            "this": "{that}.dom.tocContainer",
+            "method": "hide"
+        },
+        show: {
+            "this": "{that}.dom.tocContainer",
+            "method": "show"
+        }
+    }
+    //...
+});
+
+

In the following example, taken from the Infusion Inline Edit component, a this-ist function is used to invoke the init function on the tinyMCE object associated with the component as a listener on the onCreate event.

+
fluid.defaults("fluid.inlineEdit.tinyMCE", {
+    gradeNames: ["fluid.inlineEdit"],
+    listeners: {
+        onCreate: {
+            "this": "tinyMCE",
+            method: "init",
+            namespace: "initTinyMCE",
+            args: "{that}.options.tinyMCE"
+        }
+    }
+    // ...
+});
+
+

In the following example, taken from the Infusion Pager component, a this-ist function is used to set the container's role attribute to "application" using the jQuery attr() function.

+
fluid.defaults("fluid.pager", {
+    gradeNames: ["fluid.viewComponent"],
+    // ...
+    listeners: {
+        onCreate: {
+            "this": "{that}.container",
+            method: "attr",
+            args: ["role", "application"]
+        }
+        // ...
+    }
+});
+
+ +
+
+ + + +
+ +
+ + +
+ + + + + diff --git a/infusion/development/DeprecatedIn2_0.html b/infusion/development/DeprecatedIn2_0.html new file mode 100644 index 00000000..2c5f3659 --- /dev/null +++ b/infusion/development/DeprecatedIn2_0.html @@ -0,0 +1,622 @@ + + + + + + Deprecated in 2.0 | Fluid Infusion + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ +
+ + +
+ + + + +
+
+ + + + + +
+ + + +
+ +
+ + +
+
+ +
+ +

Deprecated in 2.0

+ + + + + +
+

This page contains a list of the features, APIs, and etc. that are deprecated as of Infusion 2.0.

+
Note: While the intention is to provide advance notice of future changes, the contents of this page may not be exhaustive.
+

Components

+ + + + + + + + + + + + + +
DeprecatedAlternative
fluid.progressHTML5 progress element
+

Features

+ + + + + + + + + + + + + + + + + +
DeprecatedAlternative
jQuery UI Slider version of fluid.textfieldSliderNative HTML5 version of fluid.textfieldSlider making use of the range input
no JavaScript version of fluid.uploaderSee Infusion 2.0 as an example for creating a custom fallback.
+
+
+ + + +
+ +
+ + +
+ + + + + diff --git a/infusion/development/DeprecationsIn1_5.html b/infusion/development/DeprecationsIn1_5.html new file mode 100644 index 00000000..a1c4fe41 --- /dev/null +++ b/infusion/development/DeprecationsIn1_5.html @@ -0,0 +1,750 @@ + + + + + + Deprecations in 1.5 | Fluid Infusion + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ +
+ + +
+ + + + +
+
+ + + + + +
+ + + +
+ +
+ + +
+
+ +
+ +

Deprecations in 1.5

+ + + + + +
+

This page contains a list of the features, API's, and etc. that were deprecated in Infusion 1.5, and removed in Infusion 2.0.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DeprecatedAlternative
FSS + There are no CSS Framework requirements for working with Infusion. Infusion's strategy going forward will be to use custom CSS for component specific styling and Foundation for demos, as needed. +
demands + Use distributeOptions and/or dynamic grades instead +
grade linkage operated by the fluid.applyGradeLinkage grade + Use distributeOptions and/or dynamic grades instead +
components which aren't autoInit
returning non-component material from a creator functions
manually attaching components to trees
+ manual lifecycle points: +
    +
  • preInit
  • +
  • postInit
  • +
  • finalInit
  • +
+
+ Use listeners and modelListeners +
manual component initialization (e.g. fluid.initLittleComponent and fluid.initViewComponent) + Use grades and autoInit +
+ Legacy IoC expressions +
    +
  • "@1"
  • +
  • "COMPONENT_OPTIONS"
  • +
  • etc.
  • +
+
returnedPath and returnedOptions
+ changeApplier and model features +
    +
  • changeApplier events guards and postGuards
  • +
  • changeApplier event type MERGE
  • +
  • fluid.makeSuperApplier
  • +
  • fluid.model.copyModel
  • +
  • mergePolicy: preserve
  • +
+
Use fluid.copy to copy models.
fluid.tryCatch
+ Event features: +
    +
  • + fluid.event.getEventFier +
  • +
  • + unicast events +
  • +
+
+ Use fluid.makeEventFier instead of fluid.event.getEventFier; however, the signature for this method may change in 2.0. +
+ Progress events and callbacks: +
    +
  • + onProgressBegin +
  • +
  • + afterProgressHidden +
  • +
+
+
    +
  • + fluid.model.setBeanValue +
  • +
  • + fluid.model.getBeanValue +
  • +
+
+
    +
  • + fluid.model.set +
  • +
  • + fluid.model.get +
  • +
+
fluid.lightboxfluid.imageReorderer
fluid.keyForValue
Path utilities in DataBinding.jsRemoved from Infusion 1.5
fl-ProgEnhance-basic class namefl-progEnhance-basic
Renderer APIThe Renderer is likely to undergo large scale changes.
+
+
+ + + +
+ +
+ + +
+ + + + + diff --git a/infusion/development/Enactors.html b/infusion/development/Enactors.html new file mode 100644 index 00000000..973bf3bb --- /dev/null +++ b/infusion/development/Enactors.html @@ -0,0 +1,756 @@ + + + + + + Enactors | Fluid Infusion + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ +
+ + +
+ + + + +
+
+ + + + + +
+ + + +
+ +
+ + +
+
+ +
+ +

Enactors

+ + + + + +
+

An Enactor is an Infusion component that "acts upon" a preference setting, making whatever adjustments that are necessary to enact the preference.

+

Requirements

+

There are only a few requirements for an Enactor, since its nature is determined by the preference it acts upon. For example:

+
    +
  • the 'text size' enactor provided by the Preferences Framework defines functions that adjust CSS on the page;
  • +
  • a 'self-voicing' enactor defined for the GPII Exploration Tool defines functions that use a server-based text-to-speech engine to speak text found on the page.
  • +
+

Enactors defaults must include certain things:

+
    +
  • the fluid.prefs.enactor grade
  • +
  • a preferences map (only when using schemas)
  • +
+

Each of these is explained below.

+

Grade

+

Enactors must be defined using the fluid.prefs.enactor grade, as shown in the following code block:

+
fluid.defaults("my.pref.enactor", {
+    gradeNames: ["fluid.prefs.enactor"]
+    // ...
+});
+
+

Enactors are, by default, model components, so they automatically provide support for a model and for events. If other support is needed, other grades can be added. For example, if the enactor will be operating on the DOM, the fluid.viewComponent grade should be used, and the selectors option should be provided, as shown in the following example:

+
fluid.defaults("my.pref.enactor", {
+    gradeNames: ["fluid.viewComponent", "fluid.prefs.enactor"],
+    selectors: {
+        // selectors as required
+    }
+    // ...
+});
+
+

If you are defining several enactors which share common functionality, you can create a single grade that includes that functionality and uses the fluid.prefs.enactor grade, then use your common grade for your enactors, as illustrated in the following code sample:

+
// shared grade, defining common functionality
+fluid.defaults("my.pref.enactorGrade", {
+    gradeNames: ["fluid.prefs.enactor"]
+    // common defaults
+});
+
+// one specific enactor, which uses the shared grade
+fluid.defaults("my.pref.enactor1", {
+    gradeNames: ["my.pref.enactorGrade"]
+    // defaults specific to enactor 1
+});
+
+// another specific enactor, which uses the shared grade
+fluid.defaults("my.pref.enactor2", {
+    gradeNames: ["my.pref.enactorGrade"]
+    // defaults specific to enactor 2
+});
+
+

Preference Map (Schema Only)

+
+

IMPORTANT NOTE: Preference Maps are only required if you are working with schemas. If you are using grades instead (only necessary in rare cases), you do not need a preference map.

+
+

A Preference Map is an option that allows you to map the information in the Primary Schema into your Enactor. For each relevant preference defined in the primary schema, the preference map specifies where in the current component's options the value should be store. This is used to pull the default preference value into the Enactor's model, as well as any other relevant information.

+

The format of a preference map is shown in the follow code sample:

+
preferenceMap: {
+    <key from primary schema>: {
+        <path in enactor's defaults where value should be held>: <key in primary schema where value held>,
+        <path in enactor's defaults where value should be held>: <key in primary schema where value held>
+        // ...
+    },
+    <key from primary schema>: {
+        <path in enactor's defaults where value should be held>: <key in primary schema where value held>
+    }
+    // ...
+}
+
+

Typically, an enactor will work with only a single preference and will only be concerned with the default value, so the preference map will be quite simple. The following example shows the preference map used in the Preference Framework's text font enactor:

+
fluid.defaults("fluid.prefs.enactor.textFont", {
+    gradeNames: ["fluid.prefs.enactor.classSwapper"],
+    preferenceMap: {
+        "fluid.prefs.textFont": {
+            "model.value": "default"
+        }
+    }
+});
+
+

Models and Model Changes

+

Enactors are Infusion model components: They automatically have a top-level property called model which holds the Enactor's internal model representing the preference it acts upon. It is not necessary for you to define this property directly; its structure will be inferred from the preferences map. If you are working with grades instead of with schemas, the model will be inferred from the rules supplied for the Panel.

+

Examples

+

Example: Enactor that calls a setter function when the model changes

+
fluid.defaults("gpii.enactor.fontSize", {
+    gradeNames: ["fluid.viewComponent", "fluid.prefs.enactor"],
+    preferenceMap: {
+        "gpii.primarySchema.fontSize": {
+            "model.value": "default"
+        }
+    },
+    selectors: {
+        cursorDiv: ".gpiic-increaseSize-previewPerSettingCursorDiv"
+    },
+    invokers: {
+        set: {
+            funcName: "gpii.enactor.fontSize.set",
+            args: ["{arguments}.0", "{that}.dom.cursorDiv"]
+        }
+    },
+    modelListeners: {
+        value: {
+            funcName: "{that}.set",
+            args: ["{change}.value"]
+        }
+    }
+});
+
+gpii.enactor.fontSize.set = function (times, cursorDiv) {
+    cursorDiv.css("font-size", times + "em");
+};
+
+

Example: Enactor that uses a speak enactor to self-voice a page

+
fluid.defaults("fluid.prefs.enactor.selfVoicing", {
+    gradeNames: ["fluid.viewComponent", "fluid.prefs.enactor.speak"],
+    modelListeners: {
+        "enabled": {
+            funcName: "{that}.handleSelfVoicing",
+            args: ["{change}.value"]
+        }
+    },
+    invokers: {
+        handleSelfVoicing: {
+            funcName: "fluid.prefs.enactor.selfVoicing.handleSelfVoicing",
+            // Pass in invokers to force them to be resolved
+            args: ["{that}.options.strings.welcomeMsg", "{that}.queueSpeech", "{that}.readFromDOM", "{that}.cancel", "{arguments}.0"]
+        },
+        readFromDOM: {
+            funcName: "fluid.prefs.enactor.selfVoicing.readFromDOM",
+            args: ["{that}", "{that}.container"]
+        }
+    },
+    strings: {
+        welcomeMsg: "text to speech enabled"
+    }
+});
+
+fluid.prefs.enactor.selfVoicing.handleSelfVoicing = function (welcomeMsg, queueSpeech, readFromDOM, cancel, enabled) {
+    if (enabled) {
+        queueSpeech(welcomeMsg, true);
+        readFromDOM();
+    } else {
+        cancel();
+    }
+};
+
+// Constants representing DOM node types.
+fluid.prefs.enactor.selfVoicing.nodeType = {
+    ELEMENT_NODE: 1,
+    TEXT_NODE: 3
+};
+
+fluid.prefs.enactor.selfVoicing.readFromDOM = function (that, elm) {
+    elm = $(elm);
+    var nodes = elm.contents();
+    fluid.each(nodes, function (node) {
+        if (node.nodeType === fluid.prefs.enactor.selfVoicing.nodeType.TEXT_NODE && node.nodeValue) {
+            that.queueSpeech(node.nodeValue);
+        }
+
+        if (node.nodeType === fluid.prefs.enactor.selfVoicing.nodeType.ELEMENT_NODE && window.getComputedStyle(node).display !== "none") {
+            if (node.nodeName === "IMG") {
+                var altText = node.getAttribute("alt");
+                if (altText) {
+                    that.queueSpeech(altText);
+                }
+            } else {
+                fluid.prefs.enactor.selfVoicing.readFromDOM(that, node);
+            }
+        }
+    });
+};
+
+ +
+
+ + + +
+ +
+ + +
+ + + + + diff --git a/infusion/development/EventInjectionAndBoiling.html b/infusion/development/EventInjectionAndBoiling.html new file mode 100644 index 00000000..a41fdcfc --- /dev/null +++ b/infusion/development/EventInjectionAndBoiling.html @@ -0,0 +1,779 @@ + + + + + + Event Injection and Boiling | Fluid Infusion + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ +
+ + +
+ + + + +
+
+ + + + + +
+ + + +
+ +
+ + +
+
+ +
+ +

Event Injection and Boiling

+ + + + + +
+

The Infusion Event System explains how to declare events of various types attached to a single component. Within a larger design, sometimes it is necessary to

+
    +
  1. collaborate between multiple components in a component tree on sharing references to event firers (event injection)
  2. +
  3. present an event with a particular signature fired by a component as one with a different signature in a listener (event boiling)
  4. +
+

Both of these capabilities rely on the IoC - Inversion of Control system.

+

Event Injection

+

Event injection is the wholesale injection of an event belonging to one component, to appear as an event belonging to another. +These events will share a single set of listeners which will be fired when any sharing component fires the event, and any sharing component may add and remove listeners. +This is achieved by referencing the source event to be injected on the right hand side of the standard events block on the component. For example:

+

Example 1

+

The first defaults block in this example defines a plain component which defines one concrete event, named parentEvent, and one child component, with options unspecified.

+

The second defaults block defines defaults for childComponent. Here, the reference to the event parentEvent becomes shared between the two components. +childComponent will appear to have a event firer named parentEvent which behaves exactly as if it were defined locally (as it is in the parent component) and will share listeners with the parent component.

+
fluid.defaults("fluid.tests.parentComponent", {
+    gradeNames: "fluid.component",
+    events: {
+        parentEvent: null
+    },
+    components: {
+        childComponent: {
+            type: "fluid.tests.childComponent"
+        }
+    }
+});
+
+fluid.defaults("fluid.tests.childComponent", {
+    gradeNames: "fluid.component",
+    events: {
+        parentEvent: "{parentComponent}.events.parentEvent"
+    }
+});
+
+

Alternative Choice of Scoping For Event Binding

+

Note that the defaults we have written in the examples above for childComponent prevent it from being used in contexts where the reference {parentComponent} cannot be resolved. +This may or may not be desirable depending on the purpose for childComponent. Its purpose may only comprise being reused together with {parentComponent}, +or it may be intended to be more generally reusable - since this is only test/example code, this intention can't be made clear. +For completeness, we present another style of writing this configuration which expresses the other intention, that childComponent should be generally reusable: +this moves the reference to parentComponent into the tree for parentComponent itself, ensuring that childComponent can be constructed without the parent if required.

+

Example 2

+

Here, the base component childComponent contains a standard local definition of an event named parentEvent which satisfies the component's own requirements to fire this event when in isolation. +The event binding on parentEvent is defined in the defaults block of parentComponent. At the instantiation of parentComponent, the bound event overwrites the definition of the local event parentEvent.

+
fluid.defaults("fluid.tests.parentComponent", {
+    gradeNames: "fluid.component",
+    events: {
+        parentEvent: null
+    },
+    components: {
+        childComponent: {
+            type: "fluid.tests.childComponent",
+            options: {
+                events:{
+                    parentEvent: "{parentComponent}.events.parentEvent"
+                }
+            }
+        }
+    }
+});
+
+fluid.defaults("fluid.tests.childComponent", {
+    gradeNames: "fluid.component",
+    events: {
+        parentEvent: null
+    }
+});
+
+

Event Boiling

+

A boiled event is derived from another event (a base event) but allows the signature of the event to be adjusted. +A listener to a boiled event receives a call at the same point in time as a standard listener, but can receive a different set of arguments than the ones which were supplied in the original call to fire() which triggered the event. +This modified argument set can draw values from IoC-resolved contextual values around the component tree, as well as from the original argument set which the firer of the event supplied.

+

Boiled events are useful in wiring together consumers and producers of events who have different expectations - these differences can arise, for example, +through the development of the codebases being in different lifecycles - perhaps the producer of the event is part of framework code which is not going to be updated for a long time, +but has been written with a poorly planned API which does not expose crucial information which the event consumer requires.

+

Suggestions are still welcomed for more a suitable name than boiled events.

+

Boiling One Single Event

+

A boiled event is defined in just the same place as a standard event - in the events block of a component's defaults. +The configuration ("right-hand side") value is more complex than that for a simple event - it needs to specify not only the base event, but also the transformation performed on the argument list. +The configured value must contain two elements, the event property, which references the event to be boiled, and the args which specifies the argument list which will be received by listeners to the boiled event. +This uses the standard {context}.pathName format for contextualised EL values which is used in IoC, +with the addition that one extra context object is in scope - the context {arguments} allows the argument list to refer to the original argument list that was presented when the base event was fired. For example:

+

Example 3

+

In this code block, the component defines two events - one basic event named localEvent, and one boiled event named boiledLocal which uses localEvent as a base. +In this case, a listener registered to boiledLocal will receive the first two arguments which were supplied when localEvent was fired, but swapped to appear in the opposite order.

+

+fluid.defaults("fluid.tests.eventBoiled", {
+    gradeNames: "fluid.component",
+    events: {
+        boiledLocal: {
+            event: "localEvent",
+            args: ["{arguments}.1", "{arguments}.0"]
+        },
+        localEvent: null
+    }
+});
+
+

Boiling Multiple Events

+

The event boiling can be used to boil multiple events that are either from the same or a different component.

+

Example 4

+

The example below shows boiling from a different component, the boiled event boiledDouble in the example will be fired once both parentEvent1 and parentEvent2 from parentComponent are fired. +The arguments supplied to boiledDouble would be the first argument provided by parentEvent1 and the second argument provided by parentEvent2.

+
fluid.defaults("fluid.tests.parentComponent", {
+    gradeNames: "fluid.component",
+    events: {
+        parentEvent1: null,
+        parentEvent2: null
+    },
+    components: {
+        child: {
+            type: "fluid.tests.childComponent",
+            options: {
+                events: {
+                    boiledDouble: {
+                        events: {
+                            event1: "{parentComponent}.events.parentEvent1",
+                            event2: "{parentComponent}.events.parentEvent2"
+                        },
+                        args: ["{arguments}.event1.0", "{arguments}.event2.1"]
+                    }
+                }
+            }
+        }
+    }
+});
+
+fluid.defaults("fluid.tests.eventChild3", {
+    gradeNames: "fluid.component",
+    events: {
+        boiledDouble: null
+    }
+});
+
+

The same syntax can be used to boil events from the same component, where the references to source events can be simplified by specifying the events directly without IoC references, +as shown in Example 3, since both source events and boiled event are residing on the same component.

+

Listener Boiling

+

Receiving a Different Signature in the Listener

+

A more lightweight alternative to injecting or fabricating new events wholesale through boiling is to apply the process to just a single listener. +This most often the appropriate approach, especially when the listener enjoys a signature that is not held in common with particularly many other functions around the architecture. +The syntax used for listener boiling is actually identical to that applied for defining Invokers.

+

Here is an example of a component which defines a single event, simpleEvent - the firer for it uses a signature int value, boolean flag but we have a listener that requires a +different signature Object that, int value where the first argument consists of the component itself and the 2nd argument consists of the supplied first argument:

+
examples.externalListener = function (that, value) {
+    console.log("Received value ", value, " fired from component ", that);
+};
+
+fluid.defaults("examples.boiledListenerComponent", {
+    gradeNames: "fluid.component",
+    events: {
+        simpleEvent: null
+    },
+    listeners: {
+        simpleEvent: { // In practice it's unlikely that this listener would be written in the same grade as the event,
+                       // since this case there would be little reason for the signature to mismatch. It's more likely
+                       // this configuration would appear in another grade, or supplied as direct options,
+                       // subcomponent options, or distributeOptions
+            funcName: "examples.externalListener",
+            args: ["{that}", "{arguments.0"]
+        }
+    }
+});
+
+var that = examples.boiledListenerComponent();
+that.fire(5, true); // listener above will log 5, that
+
+

Injecting a Listener to an Event Elsewhere in the Tree

+

Similarly to the previous section, rather than transmitting an entire event around the component tree just so that one listener can be attached to it, +it is often more efficient (although it can be more confusing for the reader) to simply inject the listener itself. +Note that with this built-in syntax the listener can only be injected into (registered as a listener to) a component which is visible as a parent or a sibling of the current component, +using a standard upward-matching IoC Context Selector. If you need the more powerful facility to inject a listener downwards +(that is, to one or more components that may not yet be constructed) please see the section describing the use of the distributeOptions options block.

+
fluid.defaults("examples.injectedListenerParent", {
+    gradeNames: "fluid.component",
+    events: {
+        parentEvent: null
+    },
+    components: {
+        child: {
+            type: "fluid.component",
+            options: {
+                listeners: {
+                    "{injectedListenerParent}.events.parentEvent": "examples.externalListener"
+                }
+            }
+        }
+    }
+});
+
+var that = examples.injectedListenerParent();
+that.events.parentEvent.fire(that, 5); // strikes above listener through injected listener attachment
+
+

Note that both of these kinds of boiling can be applied at the same time - that is, it is possible to adjust the signature of a listener using args at the same +time as resolving to it elsewhere in the tree by means of an IoC reference key. Note also that all injected listeners automatically deregistered by the framework +when the component which holds their record (e.g. the child component in this example) is destroyed - there is no need for the user to call removeListener manually.

+ +
+
+ + + +
+ +
+ + +
+ + + + + diff --git a/infusion/development/ExpansionOfComponentOptions.html b/infusion/development/ExpansionOfComponentOptions.html new file mode 100644 index 00000000..5da3969d --- /dev/null +++ b/infusion/development/ExpansionOfComponentOptions.html @@ -0,0 +1,709 @@ + + + + + + Expansion of Component Options | Fluid Infusion + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ +
+ + +
+ + + + +
+
+ + + + + +
+ + + +
+ +
+ + +
+
+ +
+ +

Expansion of Component Options

+ + + + + +
+

Infusion component options, as written in fluid.defaults blocks, go through a process called expansion when they are used to instantiate a component.

+

Two kinds of expansion happen during this process:

+
    +
  • Expansion of IoC references, written as strings in the form {context}.path as a result of the Value Resolution process, and
  • +
  • Expansion of expanders, which are blocks of JSON occurring in the options with the key expander
  • +
+

Expanders

+

The standard use of an expander is to designate a function to be called when instantiating the component options, which produces a value based on processing the expander arguments. This can be useful when static definition of a default option is not possible.

+

Expanders are specified using the keyword expander in the component defaults:

+
fluid.defaults("component.name", {
+    optionName: {
+        expander: {
+            // ...
+        }
+    }
+});
+
+

The basic form of an expander record is very similar to that of an Invoker - it contains entries func/funcName together with args to designate the function call which will produce the required options values.

+ + + + + + + + + + + + + + + + + +
NameDescription
func/funcName + Either an IoC reference to a function (an invoker or other function member) or else a global function name holding the function to be invoked +
args + An array of arguments (or single argument) to be passed to the user-provided function specified in func/funcName. +
+

Note that unlike an invoker which evaluates its arguments every time it is used by its caller, an expander evaluates only once - when the component whose options hold it is constructing.

+

Examples

+

This example locates the global function named cspace.search.modelFilter and calls it with the arguments given by resolving the context {searchView} - in this case, most likely the top-level component defined in defaults itself. The return value from this function is then placed in the options of the instantiated component (the fluid.pager) at the path modelFilter:

+

The resultsPager is specified as an instance of the Infusion Pager component. When this subcomponent is created, the expander will call the function cspace.search.makeModelFilter, passing it the parent searchView component as an argument. The return value will be used as the default modelFilter option to the Pager.

+
fluid.defaults("cspace.search.searchView", {
+    components: {
+        resultsPager: {
+            type: "fluid.pager",
+            options: {
+                modelFilter: {
+                    expander: {
+                        func: "cspace.search.makeModelFilter",
+                        args: ["{searchView}"]
+                    }
+                }
+            }
+        }
+    }
+});
+
+

Compact format for expanders

+

The framework provides a compact syntax for expressing expanders as a single string - the above expander could have been written in its context as modelFilter: "@expand:cspace.search.makeModelFilter({searchView})". +This is analogous to the similar Compact Format for Invokers.

+

The fluid.noexpand expander

+

The fluid.noexpand expander is a very specialised expander that normal users of the framework should not require to use. It has been retained in the framework for completeness, but its effects should normally be obtained using a mergePolicy of noexpand. This expander simply dumps its literal argument (held at a path named value or tree) into the component's options without expansion.

+ + + + + + + + + + + + + + + + + +
NameDescription
type + fluid.noexpand (the type field must hold this literal value) +
value/tree + This property holds some literal component configuration (either a primitive value or larger tree of JSON values) which will be inserted without expansion into the component options +
+

Example

+

In this example, the function name {specBuilder}.urlExpander will NOT be resolved as an IoC reference. The value {specBuilder}.urlExpander will be assigned to the option named unexpanded.

+
fluid.defaults("cspace.specBuilder", {
+    components: {
+        specBuilderImpl: {
+            type: "cspace.specBuilderImpl",
+            options: {
+                unexpanded: {
+                    expander: {
+                        type: "fluid.noexpand",
+                        value: "{specBuilder}.urlExpander"
+                    }
+                }
+            }
+        }
+    }
+});
+
+
+

Note: The use of the fluid.noexpand expander is not recommended - it is less fragile to use a mergePolicy instead (see Merge Policies) - for example, the same effect as the above definition could be had with the following:

+
+
fluid.defaults("cspace.specBuilder", {
+    components: {
+        specBuilderImpl: {
+            type: "cspace.specBuilderImpl",
+            mergePolicy: {
+                unexpanded: "noexpand"
+            },
+            options: {
+                unexpanded: "{specBuilder}.urlExpander"
+            }
+        }
+    }
+});
+
+ +
+
+ + + +
+ +
+ + +
+ + + + + diff --git a/infusion/development/FetchResources.html b/infusion/development/FetchResources.html new file mode 100644 index 00000000..91f143b0 --- /dev/null +++ b/infusion/development/FetchResources.html @@ -0,0 +1,725 @@ + + + + + + fluid.fetchResources | Fluid Infusion + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ +
+ + +
+ + + + +
+
+ + + + + +
+ + + +
+ +
+ + +
+
+ +
+ +

fluid.fetchResources

+ + + + + +
+

The Infusion API fluid.fetchResources is a low-level API which automates the work of fetching multiple resources, possibly asynchronously, +using AJAX requests or from the current DOM. This functionality is more compactly encoded by more modern idioms depending on Promises +but this historical API remains since several core Infusion components, such as the Resource Loader and the Preferences Framework +still depend on it. This API is deprecated and will be removed in an upcoming revision of the framework.

+

Arguments to fluid.fetchResources

+

The API accepts three arguments - resourceSpecs, callback and options. The first contains a free hash of keys to resource specification objects describing the +resources to be fetched. The second is a function which will receive this structure with the field resourceText filled in if the resources could be fetched. The +last argument contains optional options guiding the fetch process.

+
fluid.fetchResources(resourceSpecs, callback[, options]);
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Arguments to fluid.fetchResources
ArgumentTypeDescription
resourceSpecsresourceSpecsHash of resourceName to resourceSpecA free hash of resource names to resourceSpec structures. Note that this structure will be modified by the action of the function
callbackFunction(resourceSpecs)A function which will accept the filled-in resourceSpecs object
options (optional)ObjectAn optional structure giving further options guiding the fetch process. This includes members amalgamateClasses, defaultLocale which are not documented here.
+

Resource Specification

+

The values in the resourceSpecs hash sent as the first argument to fluid.fetchResources are records of type resourceSpec, with the following members:

+ + + + + + + + + + + + + + + + + + + + + + + +
Elements in a resourceSpec on input to fluid.fetchResources
MemberTypeDescription
hrefStringA full resolvable URL holding a template or template fragment. This will be fetched via AJAX and used to populate the resourceText entry. NOTE that if this value is provided, the nodeId will be ignored.
nodeIdStringThe id of a node within the current document holding a template, for which the innerHTML is to be treated as a template. NOTE that if href is provided, this value will be ignored.
+

On conclusion of the fluid.fetchResources call, the following additional fields will be filled in (as well as some undocumented fields)

+ + + + + + + + + + + + + + + + + + + + + + + +
Elements in a resourceSpec on output from fluid.fetchResources
MemberTypeDescription
resourceTextStringThe full text of the fetched resources, as a string.
fetchErrorObjectFilled in if the AJAX request to fetch the resource failed. It contains the fields status holding the HTTP response status, + textStatus holding the textual version of status, and errorThrown holding details of any exception that was thrown
+

Examples

+

This shows a simple usage of fetchResources which fetches some templates and injects their contents into the DOM without error checking:

+
var myResourceSpecs = {
+    bodyTemplate: {
+        href: "templates/Body.html"
+    },
+    sidebarTemplate: {
+        href: "templates/Sidebar.html"
+    }
+};
+var myCallback = function (returnedResourceSpecs) {
+    // very simple: inject the fetched HTML into the DOM
+    $(".bodyNode").html(returnedResourceSpecs.bodyTemplate.resourceText);
+    $(".sidebarNode").html(returnedResourceSpecs.sidebarTemplate.resourceText);
+};
+fluid.fetchResources(myResourceSpecs, myCallback);
+
+

This shows a more complex example which checks for errors from the fetch process and logs them:

+
var myResourceSpecs = {
+    template1: {
+        href: "html/template1.html"
+    },
+    template2: {
+        href: "html/template1.html"
+    },
+    data: {
+        href: "data/clientData.json"
+    }
+};
+
+var myCallback = function (returnedResourceSpecs) {
+    for (var key in returnedResourceSpecs) {
+        // check for errors before proceeding
+        if (returnedResourceSpecs[key].fetchError) {
+            // log the failed fetch
+            fluid.log("Error loading resource " + returnedResourceSpecs[key].href);
+            fluid.log("status: " + returnedResourceSpecs[key].fetchError.status +
+                    ", textStatus: " + returnedResourceSpecs[key].fetchError.textStatus +
+                    ", errorThrown: " + returnedResourceSpecs[key].fetchError.errorThrown);
+        } else {
+            // process successfully loaded resource
+            // ...
+        }
+    }
+};
+fluid.fetchResources(myResourceSpecs, myCallback);
+
+ +
+
+ + + +
+ +
+ + +
+ + + + + diff --git a/infusion/development/FrameworkConcepts.html b/infusion/development/FrameworkConcepts.html new file mode 100644 index 00000000..972aaebf --- /dev/null +++ b/infusion/development/FrameworkConcepts.html @@ -0,0 +1,672 @@ + + + + + + Framework Concepts | Fluid Infusion + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ +
+ + +
+ + + + +
+
+ + + + + +
+ + + +
+ +
+ + +
+
+ +
+ +

Framework Concepts

+ + + + + +
+

The Fluid Infusion Framework is built on a number of important concepts. This page outlines some of the fundamental design goals of Infusion, providing terminology to help clarify these goals. Descriptions elsewhere in the documentation may also make use of particular terms in certain ways, and this page collects together some of the conceptual and background knowledge you might need to help you interpret these descriptions.

+

Model Objects

+

The greatest goal of the framework is transparency — data is pure data, and markup is pure markup. Infusion doesn't impose any inheritance hierarchies or strict contracts on how you structure your data model.

+

In Infusion, a tree of objects has the status of being a model if it can successfully be copied by the framework utility function fluid.copy(). +This function duplicates an object tree by cloning it recursively, except for immutable values such as strings, numbers, functions, etc. which are copied across. +If everything that is important to you about the object has been successfully cloned, then it is a suitable model object.

+

We recommend that all objects stored in the model area of a component conform to an even stricter definition - that they are equivalent to their form serialised as JSON. This implies that they +consist of only the following types: Array, Object, String, Number and Boolean. In addition, the following values for Number should not be used - Infinity, -Infinity and NaN. The value +undefined also can not be safely stored within a model.

+

EL Paths

+

In some parts of the framework, we refer to "EL paths". This is a somewhat historical phrase that perhaps sounds like it says more than it is trying to. A more accurate name for "EL paths" would be "Model paths". +These paths are dot-separated strings built from names — for example if you had defined an object zar with a member boo which has a member baz, +you could access the nested JavaScript property by writing the expression zar.boo.baz. +If it were held in a string value, this would become an EL path — that is, the string "zar.boo.baz" is an EL path which designates the same piece of data we just referenced. +The framework includes machinery for interpreting such expressions held in strings rather than at the JavaScript language level. +This is useful because it abstracts references to pieces of data from the actual data itself — and allows these references to be stored in documents separately from a running program. +It is possible to replace one object tree with another, but still to maintain a stable reference to the same subproperty baz, whoever it happens to be today. +This is particularly important in web applications where data claiming to be "your data" can suddenly arrive from anywhere (a JSON feed, some persistence, +a particularly aggressive version management system, etc). However it got here, you know it is your data because it is at the right path.

+

EL paths within Infusion can be evaluated (dereferenced with respect to a particular model) by the framework utilities fluid.get() and fluid.set(), +and also global functions can be similarly invoked by path with fluid.invokeGlobalFunction(). EL path expressions of this sort are fundamental to Infusion's model-oriented thinking, and the operation of the Infusion ChangeApplier.

+

The framework will accept an array of path segments (e.g. ["zar", "boo", "baz"]) wherever it accepts an EL path string, and this array form is somewhat preferable in terms of meaning less work (hence less garbage) for the +framework (if slightly more work for the writer) as well as heading off escaping issues.

+

Events

+

Events have a very plain implementation in Infusion — an event here is really just another kind of function call. Events in Infusion aren't specific to the DOM. +Any function signature can be an event signature, any function can be an event listener, and an event's fire method is a plain function handle that can be handed around just like any other function. +There is no special kind of "Event Object" that is fired to event listeners, and anyone can easily define a new event by adding an entry in the events section of the options of their component. +Events are created automatically by the framework as part of the initialisation of every Component. No code required.

+

Infusion Events are so close to the language that they are a suitable replacement/implementation for features found in other frameworks, such as the "delegates" found in Mac OS X's Cocoa environment, +or in Microsoft's C#. Since event signatures are completely free (free as in "like a bird", not like either beer or speech), any function can potentially actually be an event listener. It is all a matter of perspective.

+

A modern parallel to Infusion's events is node.js's EventEmitter. The API and intent are very similar.

+

MVC

+

Fluid Infusion is not formally a Model-View-Controller framework, although it embodies the separation of concerns that MVC implies. +Both models and views are first-class constructs in Infusion, and are both represented by built-in framework Grades. +The weak link in MVC is the controller layer. Controllers are typically conceived of as the "glue" of an application: all the code that connects models and views together. +Controllers are often the most brittle and least reusable part of an architecture. There's no controller layer in Infusion; Infusion takes the approach that the glue should be taken care of for you. +Infusion applications consist, as much as possible, of pure view and model code. Even event binding itself can be performed declaratively, eliminating yet another source of controller code.

+

Infusion has a clear concept of a view: the ViewComponent. As mentioned above, models are central to the framework as well, +represented by the ModelComponent grade - every ViewComponent is automatically a ModelComponent also. +The overall design of Fluid is aimed to reduce to zero the code at the controller level of an application. Instead, Infusion emphasizes declarative configuration, +the powerful and flexible Events system, and the automated approach to data binding enabled by the EL system and the ChangeApplier.

+

Declarative Configuration

+

Less code is better. If you can represent aspects of your application as data rather than as imperative logic, there is a clear benefit to application design: data is transparent, +and is easier to operate on and transform with algorithms. It's also easier to understand by both code in the application and by humans reading the design. +In order to understand a data-oriented component, one merely needs to understand the layout of the data it works with, rather than looking at its implementation or understanding all the details of the contract behind its API documentation.

+

Standard conventions also help simplify your application architecture. Wherever possible, Infusion applies a standard layout to commonly appearing options for a component. +For example, there is a common convention for declaring a component's events, selectors which bind to markup for both styling as well as function, and relationship to its model. +Each component is also supplied with a set of defaults which also take the form of declaratively-specified model data.

+

The Fluid Renderer takes the concept of declarative configuration to a level not achieved with other frameworks. +The renderer reduces the entire binding and controller function of an application to a declarative form, a component tree. +In this form, the user interface is extremely amenable to inspection, interpretation and re-processing.

+

Historically, the desire to be able to treat logic as data has strong roots, for example in the LISP community. +However, where all application code is on a common footing, designs become tangled and hard to interpret. By providing domain-specific forms for carefully selected parts of an application's functionality, +typically at the Controller level, the complexity of code operating on this data can be reduced and transparency increased. +It is a productive middle ground, between all application code becoming a candidate to be data (as in LISP), and none of it (as in Java).

+

IoC

+

IoC stands for Inversion of Control, the traditional name given to this programming concept by its early promoters, +Ralph Johnson and Martin Fowler. +IoC is the technique that naturally results when trying to make sure that dependencies in a codebase are correctly organised. +The goal is to eliminate cycles of knowledge and points of dependency weakness within an application architecture.

+

IoC is a crucial mechanism of avoiding tight binding between framework components in Infusion. +The subcomponents for a top-level component can be expressed in a declarative structure, where a tight binding is avoided between component and subcomponent implementations. +This enables a more flexible design, including the ability to swap out the implementation of one subcomponent for another. +We accomplish this loose-coupling through the use of EL to hold the name of the subcomponent to be instantiated, rather than requiring the user to instantiate the subcomponent themselves directly in code.

+

This "don't call us, we'll call you" approach to instantiation is one of the cornerstones of IoC programming. +Instantiation is performed by the framework after it has performed all dependent lookups, +rather than being in the hands of users whereby they may get themselves into dependency tangles and requiring other components to have too much knowledge of the other parts of the system.

+

This somewhat vague-seeming description is an attempt to codify a way of thinking that can really only be internalised by repeated (and sometimes painful!) experience. +Those unfamiliar with the benefits should read around some of the links above, and also experiment with the relationships between some framework components and their subcomponents.

+

Markup agnosticism

+

Markup agnosticism is ubiquitous throughout Infusion. We don't bake in assumptions about the nature and structure of a user interface's markup, recognizing that components need to be customized and adapted for different context.

+

Markup agnosticism reflects the same basic stance that leads to IoC, Declarative Configuration and Model Transparency: effective organisation of dependencies. +In practice, users of a framework want to be able to use their own markup and customize the look and feel of existing components. +Virtually every other client-side framework ships their widgets as "black boxes:" markup is baked into code and is invisible to the user. +This makes it very difficult to customize the widget without cracking open the code and forking it.

+

The framework DOM Binder, a universal service which is supplied to every Infusion View Component, is the primary vehicle for delivering markup agnosticism. +The DOM Binder allows users to supply their own jQuery selectors to configure a component, allowing them to change the markup and inform the component of how to find important things in the DOM. +This entirely removes the hard-baked assumptions about markup within a component, allowing the user to control how it looks and is structured.

+

Infusion's other tool for DOM agnosticism is the Fluid Renderer. By abstracting the entire process of dynamic markup generation behind a purely data-oriented component tree, +the field is left clear for 100% control of markup down to the tag level by component users. +An important exhibition of this control is in the Pager component. +Other client-side table controls tend to impose a model where one logical table row corresponds to a <tr> tag, and one table cell corresponds to a <td> tag. +The Infusion Pager, on the other hand, breaks down this association and allows a flexible association of markup to data. +The Pager addresses the universal case of "regularly repeating markup," so that the association to <tr> and <td> may be one to many, many to one. +Entirely different tags can even be chosen to render the "table." All layout could, for example, be performed in CSS.

+ +
+
+ + + +
+ +
+ + +
+ + + + + diff --git a/infusion/development/FunctionGrades.html b/infusion/development/FunctionGrades.html new file mode 100644 index 00000000..d1e57206 --- /dev/null +++ b/infusion/development/FunctionGrades.html @@ -0,0 +1,628 @@ + + + + + + Function Grades | Fluid Infusion + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ +
+ + +
+ + + + +
+
+ + + + + +
+ + + +
+ +
+ + +
+
+ +
+ +

Function Grades

+ + + + + +
+

Most grades represent Infusion components - these are derived from the base grade fluid.component. However, some grades describe plain JavaScript functions - these are derived from the base grade fluid.function. +The purpose of the Fluid API call fluid.defaults could be understood as providing metadata about some element of the system. In the case of a full component grade, this metadata is sufficient +to allow the framework to automatically construct the creator function for the component. In the case of a function grade which describes an already existing function with a global name, the metadata supplies hints to the user about +how to call the function and its purpose.

+

Registering a global function

+

A global function is registered within infusion at a stable place in its global namespace by working with the core API functions fluid.registerNamespace and +fluid.setGlobalValue - in practice the latter is rarely used, in favour of directly setting members on namespace objects.

+

If you are working in the browser, the global object (traditionally named window) coincides with Fluid's global object (which can be retrieved from fluid.global - assuming that you have already managed to resolve the fluid object itself). +If you are working in node.js, you need to make calls to fluid.registerNamespace to bring parts of the global namespace into visibility as variables local to your file.

+

A typical sequence could look like this:

+
var examples = fluid.registerNamespace("examples");
+
+examples.linearMap = function (m, x, c) {
+    return m * x + c;
+};
+
+

This registers a global function named examples.linearMap into the global namespace.

+

Registering defaults for a global function

+

This function can be used as-is - however, one piece of metadata we could supply it might be an argument map allowing it to +be invoked with named rather than positional arguments. We could do this as follows:

+
fluid.defaults("examples.linearMap", {
+    gradeNames: "fluid.function",
+    argumentMap: {
+        "m": 0,
+        "x": 1,
+        "c": 2
+    }
+});
+
+

Invoking a global function with named arguments

+

We can then invoke our function using fluid.invokeGradedFunction as follows:

+
var result = fluid.invokeGradedFunction("examples.linearMap", {
+    m: 1.5,
+    x: 2,
+    c: 1
+}); // computes result of 4
+
+

This is a small but occasionally useful courtesy - especially when invoking functions from material encoded in configuration rather than in code.

+

Framework function grades

+

All of the pure function grades (that is, non-component grades) defined in the framework represent model transformation functions derived from fluid.transformFunction. +These grades are fluid.standardInputTransformFunction, fluid.standardOutputTransformFunction, fluid.multiInputTransformFunction, fluid.standardTransformFunction and fluid.lens.

+ +
+
+ + + +
+ +
+ + +
+ + + + + diff --git a/infusion/development/HowToUseInfusionIoC.html b/infusion/development/HowToUseInfusionIoC.html new file mode 100644 index 00000000..36a0e535 --- /dev/null +++ b/infusion/development/HowToUseInfusionIoC.html @@ -0,0 +1,608 @@ + + + + + + How to Use Infusion IoC | Fluid Infusion + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ +
+ + +
+ + + + +
+
+ + + + + +
+ + + +
+ +
+ + +
+
+ +
+ +

How to Use Infusion IoC

+ + + + + +
+

The author of an Infusion component describes the structure of part of an IoC component tree that is rooted at a particular component, by describing what subcomponents the component has.

+

Declaring Subcomponents

+

A parent component declares what subcomponents it requires through the components block of the parent component's default options using fluid.defaults. This list of subcomponents will be examined when the parent component asks the Framework to create subcomponents.

+

In this example, the type of the subcomponent mySubComponent1 of myComponentName is specified as the type (grade) name examples.subComponent1Name.

+
fluid.defaults("examples.myComponentName", {
+    gradeNames: "fluid.component",
+    // ...
+    components: {
+        mySubComponent1: {
+            type: "examples.subComponent1Name"
+        },
+        mySubComponent2: {
+            type: "examples.subComponent2Name"
+        }
+    }
+    // ...
+});
+
+

For more information on how components can declare subcomponents, see Subcomponent Declaration. For details on the fluid.defaults() function, +please see its API page

+

Any IoC References which appear in the definition of a component tree will be resolved onto their targets in the component tree as it constructs. This process occurs in a data-driven way - if the reference is resolved onto a part of the component tree which has not yet constructed at the point of the reference, the framework will shift its workflow to instantiating the target of the reference in order to resolve it.

+ +
+
+ + + +
+ +
+ + +
+ + + + + diff --git a/infusion/development/HowToUseTheRenderer.html b/infusion/development/HowToUseTheRenderer.html new file mode 100644 index 00000000..16c99e3e --- /dev/null +++ b/infusion/development/HowToUseTheRenderer.html @@ -0,0 +1,626 @@ + + + + + + How To Use The Renderer | Fluid Infusion + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ +
+ + +
+ + + + +
+
+ + + + + +
+ + + +
+ +
+ + +
+
+ +
+ +

How To Use The Renderer

+ + + + +
Note: The renderer will undergo significant changes post Infusion 1.5 +
+ + +
+

There are several different ways to use the Infusion Renderer, including the recommended Renderer Component and various Renderer functions.

+ +

Renderer Component

+

If you are creating a component that requires the use of the Renderer, you should use the fluid.rendererComponent grade as a parent grade in your component's defaults block:

+
fluid.defaults("my.component", {
+    gradeNames: ["fluid.rendererComponent"]
+    // put your options here
+});
+
+var that = my.component();
+
+

This function automates the work of constructing a component creator function, applying the Renderer, fetching templates, configuring cutpoints based on the DOM binder, as well as localisation via the string bundle.

+

This function will:

+
    +
  • create that.model, using options.model if available (creating an empty object if not)
  • +
  • fetch any resources (such as HTML templates, etc.) specified in options.resources
  • +
  • create a renderer function and attach it to your that object as that.render(tree);
  • +
+

For detailed information on how to use this method, see Renderer Components.

+

fluid.render

+

If you are not using fluid.rendererComponent, you can use the primary renderer function, fluid.render:

+
var template = fluid.render(source, target, tree, options);
+
+

This function can be used at any time to render a component tree. This function will render the component tree into the target node, using the source (which either references a DOM node or contains a string) as the template.

+

For detailed information on how to use this function, see fluid.render.

+

fluid.selfRender

+

This function is similar to fluid.render, except that it assumes that the markup used to source the template is within the target node:

+
var template = fluid.selfRender(node, tree, options);
+
+

For detailed information on how to use this function, see fluid.selfRender.

+

Other Renderer Functions

+

In addition to these primary ways of using the Renderer, there are a several other functions that are useful in certain circumstances. These are described here.

+

fluid.reRender

+

For detailed information on how to use this function, see fluid.reRender.

+

fluid.fetchResources

+

For detailed information on how to use this function, see fluid.fetchResources.

+ +
+
+ + + +
+ +
+ + +
+ + + + + diff --git a/infusion/development/ImageReordererAPI.html b/infusion/development/ImageReordererAPI.html new file mode 100644 index 00000000..7d7cbc93 --- /dev/null +++ b/infusion/development/ImageReordererAPI.html @@ -0,0 +1,754 @@ + + + + + + Image Reorderer API | Fluid Infusion + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ +
+ + +
+ + + + +
+
+ + + + + +
+ + + +
+ +
+ + +
+
+ +
+ +

Image Reorderer API

+ + + + + +
+

The Image Reorderer is a convenience function for applying the Reorderer to images within a collection. This page provides technical details of the API.

+

Creating an Image Reorderer

+
var myImageReorderer = fluid.reorderImages(container);
+
+// or
+
+var myImageReordererWithOptions = fluid.reorderImages(container, options);
+
+

Parameters

+

container

+

The container parameter is a CSS-based selector, single-element jQuery object, or DOM element specifying the root node of the Reorderer.

+

options parameter

+

The options parameter is an optional collection of name-value pairs that configure the Image Reorderer, as described in the Options section below.

+

Supported Events

+

The Image Reorderer fires the following events.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
EventTypeDescriptionParametersParameters Description
+

onShowKeyboardDropWarning1

+
default + This event fires before a drop warning is displayed. + +

item, kbDropWarning

+
+

item: The item being moved. +kbDropWarning: The DOM element that contains the drop warning, and that will be displayed.

+

onSelect

+
default + This event fires when an item is selected by the user. + +

item

+
+

item: The item being selected.

+

onBeginMove

+
"preventable" + This event fires just before a request to move is processed. Because the event is preventable, listeners may prevent the move from happening. + +

item

+
+

item: The item being moved.

+

onMove

+
default + This event fires just before an item is actually moved. + +

item, requestedPosition

+
+

item: The item being moved. +requestedPosition: An object describing the position that the user is trying to move the item into:

+ +

+requestedPosition = {
+element,
+// the drop target
+
+position
+// the position, relative to the drop target, that a dragged item should be dropped. One of BEFORE, AFTER, INSIDE, or REPLACE
+}
+    
+ +
+

afterMove

+
default +

This event fires after an item has successfully been moved. For more information, see Talking to the Server Using The afterMove Event.

+

This event replaces the afterMoveCallbackUrl option, which was deprecated at version 1.1.2.

+
+

item, requestedPosition, movables

+
+

item: The item being moved. +requestedPosition: An object describing the position that the user is trying to move the item into:

+ +

+requestedPosition = {
+element,
+// the drop target
+
+position
+// the position, relative to the drop target, that a dragged item should be dropped. One of BEFORE, AFTER, INSIDE, or REPLACE
+}
+    
+ +

movables: A list of all of the movable elements.

+
+

onHover

+
default +

This event fires when the cursor moves over top of an item, and when the cursor moves away from an item. The default listener either adds or removes the hover class (styles.hover) to/from the item.

+
+

item, state

+
+

item: The item being moved. +state: A boolean indicating whether the cursor is moving to (true) or away from (false) the item.

+
+

onRefresh

+
default +

This event fires any time the order of the items changes, or when the refresh() function is called.

+
none +
+

Options

+

General options

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionValuesDefault
+

selectors

+
+

JavaScript object defining CSS-style selectors for important DOM elements. See Selectors for more information.

+
+

The object must be a list of objects containing any subset of the following keys:

+
    +
  • dropWarning
  • +
  • movables
  • +
  • selectables
  • +
  • dropTargets
  • +
  • grabHandle +
+ +

+selectors: {
+dropWarning: ".flc-reorderer-dropWarning",
+movables:    ".flc-reorderer-movable",
+selectables: ".flc-reorderer-movable",
+dropTargets: ".flc-reorderer-movable",
+grabHandle:  ""
+}
+
+ +
+ +

listeners

+
JavaScript object containing listeners to be attached to the supported events.Keys in the object are event names, values are functions or arrays of functions. +

See Supported Events

+
+

styles

+
an object containing CSS class names for styling the Reorderer.The object may contain any of the keys defined in the default class names (shown to the right). Any class names not provided will revert to the default. + +

+styles: {
+    defaultStyle: "fl-reorderer-movable-default",
+    selected: "fl-reorderer-movable-selected",
+    dragging: "fl-reorderer-movable-dragging",
+    mouseDrag: "fl-reorderer-movable-dragging",
+    hover: "fl-reorderer-movable-hover",
+    dropMarker: "fl-reorderer-dropMarker",
+    avatar: "fl-reorderer-avatar"
+}
+                    
+ +
+

keysets

+
an object containing sets of keycodes to use for directional navigation, and for the modifier key used for moving a movable item. +The object must be a list of objects containing the following keys: +
    +
  • modifier : a function that returns true or false, indicating whether or not the required modifier(s) are activated
  • +
  • up
  • +
  • down
  • +
  • right
  • +
  • left +
+ +

+fluid.reorderer.defaultKeysets = [{
+modifier : function (evt) {
+return evt.ctrlKey;
+},
+up : fluid.reorderer.keys.UP,
+down : fluid.reorderer.keys.DOWN,
+right : fluid.reorderer.keys.RIGHT,
+left : fluid.reorderer.keys.LEFT
+},
+{
+modifier : function (evt) {
+return evt.ctrlKey;
+},
+up : fluid.reorderer.keys.i,
+down : fluid.reorderer.keys.m,
+right : fluid.reorderer.keys.k,
+left : fluid.reorderer.keys.j
+}];
+
+ +
+ +

selectablesTabindex

+
Normally injected automatically from the layoutHandler +

String IoC expression

+ +

+selectablesTabindex: "{that}.layoutHandler.options.selectablesTabindex"
+
+ +

+

avatarCreator

+
a function that returns a valid DOM node to be used as the dragging avatarThe item being dragged will be cloned
+

disableWrap

+
This option is used to disable wrapping of elements within the container.booleanfalse
+

mergePolicy

+
+

an object describing how user options should be merged in with defaults +For information on options merging, see Options Merging

+
+ +

+mergePolicy: {
+    keysets: "replace",
+    "selectors.selectables":
+        "selectors.movables",
+    "selectors.dropTargets":
+        "selectors.movables"
+}
+                    
+ +
+

Image Reorderer Options

+ + + + + + + + + + + + + + + + + +
NameDescriptionValuesDefault
+

Deprecated as of 1.1.2: afterMoveCallbackUrl

+
If an URL is provided with this option, the current state of the component model will be sent to that URL after a move is carried out using a default afterMove event handler.an URLnone
+

Selectors

+

The selectors option is an object containing CSS-based selectors for various parts of the Image Reorderer. Supported selectors are:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionDefaultExamples
+

grabHandle

+
If present, identifies a single element within a movable item that the user must click on to drag the movable item. (If not specified, the entire movable item can be clicked on.)"" +(empty string) + +

+selectors: {
+    grabHandle: ".title-bar"
+}
+                    
+ +
+

dropTargets

+
Identifies the DOM elements contained within the Reorderer container that can have movable elements dropped relative to them. Note that not all elements within the container need to be drop targets.same as movables + +

+selectors: {
+    dropTargets: "div.dropTarget"
+}
+                    
+ +
+

selectables

+
Identifies the DOM elements contained within the Reorderer container that can be selected using keyboard. Note that selectable elements do not have to be movable. same as movables + +

+selectors: {
+    selectables: "div.selectable"
+}
+                    
+ +
+

movables

+
Identifies the DOM elements contained within the Reorderer container that can be moved using the Reorderer.".flc-reorderer-movable" + +

+selectors: {
+    movables: "div.movable"
+}
+                    
+ +
+

dropWarning

+
Identifies a single element within the DOM that can be shown to display a warning when the user tries to move an item where it can't be moved. It is assumed that this element contains whatever drop warning text and mark-up the implementor desires.".flc-reorderer-dropWarning" + +

+selectors: {
+    dropWarning: "#drop-warning"
+}
+                    
+ +
+

Image Reorderer-specific Selector

+

The Image Reorderer supports one additional selector:

+ + + + + + + + + + + + + + + + + +
NameDescriptionValuesDefault
+

imageTitle

+
Identifies a DOM element that contains a title for the image +

".flc-reorderer-imageTitle"

+
+ +

+selectors: {
+    imageTitle: ".caption"
+}
+                    
+ +
+

Styling the Image Reorderer

+

The Image Reorderer includes default CSS styles that it applies to the thumbnails. The application of styles is based on known class names. The default class names are described below, and can be used by including the Image Reorderer stylesheet:

+
<link href="components/reorderer/css/imageReorderer.css" type="text/css" rel="stylesheet" media="all">;
+
+

NOTE that the default class names can be overridden with your own classes using the styles option: refer to the Options section above.

+

Default Classes

+
    +
  • fl-reorderer-movable-default - This class is applied to thumbnail elements in their default state.
  • +
  • fl-reorderer-movable-selected - This class is applied to the thumbnail that has been selected. The selected thumbnail item can be moved using keystrokes.
  • +
  • fl-reorderer-movable-hover - This class is applied to thumbnails when the mouse hovers over them.
  • +
  • fl-reorderer-movable-dragging - This class is applied to the thumbnail that is currently being moved.
  • +
  • fl-reorderer-avatar - This class is applied to the avatar, the image of the thumbnail as it is being dragged about by the mouse.
  • +
  • fl-reorderer-dropMarker - This class is applied to the drop target indicator when the mouse is used to drag a thumbnail.
  • +
+

Dependencies

+

The Image Reorderer dependencies can be met by including the infusion-custom.js file in the header of the HTML file:

+
<script type="text/javascript" src="infusion-custom.js"></script>
+
+

Alternatively, the individual file requirements are:

+
<script type="text/javascript" src="lib/jquery/core/js/jquery.js"></script>
+<script type="text/javascript" src="lib/jquery/ui/js/jquery.ui.core.js"></script>
+<script type="text/javascript" src="lib/jquery/ui/js/jquery.ui.widget.js"></script>
+<script type="text/javascript" src="lib/jquery/ui/js/jquery.ui.mouse.js"></script>
+<script type="text/javascript" src="lib/jquery/ui/js/jquery.ui.draggable.js"></script>
+<script type="text/javascript" src="framework/core/js/FluidDocument.js"></script>
+<script type="text/javascript" src="framework/core/js/jquery.keyboard-a11y.js"></script>
+<script type="text/javascript" src="framework/core/js/Fluid.js"></script>
+<script type="text/javascript" src="framework/core/js/FluidDOMUtilities.js"></script>
+<script type="text/javascript" src="framework/core/js/FluidIoC.js"></script>
+<script type="text/javascript" src="framework/core/js/FluidView.js"></script>
+<script type="text/javascript" src="framework/core/js/DataBinding.js"></script>
+<script type="text/javascript" src="components/reorderer/js/ReordererDOMUtilities.js"></script>
+<script type="text/javascript" src="components/reorderer/js/GeometricManager.js"></script>
+<script type="text/javascript" src="components/reorderer/js/Reorderer.js"></script>
+<script type="text/javascript" src="components/reorderer/js/ImageReorderer.js"></script>
+
+

The Image Reorderer also requires the following stylesheets:

+
<link rel="stylesheet" type="text/css" href="framework/core/css/fluid.css" />
+<link rel="stylesheet" type="text/css" href="components/reorderer/css/Reorderer.css" />
+<link rel="stylesheet" type="text/css" href="components/reorderer/css/ImageReorderer.css" />
+
+ +
+
+ + + +
+ +
+ + +
+ + + + + diff --git a/infusion/development/InfusionEventSystem.html b/infusion/development/InfusionEventSystem.html new file mode 100644 index 00000000..301b3710 --- /dev/null +++ b/infusion/development/InfusionEventSystem.html @@ -0,0 +1,828 @@ + + + + + + Infusion Event System | Fluid Infusion + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ +
+ + +
+ + + + +
+
+ + + + + +
+ + + +
+ +
+ + +
+
+ +
+ +

Infusion Event System

+ + + + + +
+

Infusion events are one of the most basic and widely used facilities in the framework. Almost every Infusion component exposes one or more events and/or listeners to events fired by itself or other components. A component opts in to the event system by mentioning fluid.component or some other grade derived from it such as fluid.viewComponent in its list of parent Component Grades.

+

An Infusion event (or more precisely, a particular firing of an Infusion event) represents

+
    +
  1. a particular instant in time (corresponding to when it is fired)
  2. +
  3. a particular array of JavaScript objects, forming its arguments or signature (sometimes called its payload).
  4. +
+

An Infusion event can be fired at any time, and any collection of JavaScript objects can be supplied as its payload - that is, any JavaScript function call can serve as the initiation point where an event is fired.

+

Rather than firing and listening to events in raw JavaScript code, we recommend using the framework to encode firing and listening to events declaratively. We'll show how this syntax works first, and then later show procedural equivalents and more details.

+

Declaring an event on a component

+

A top-level options block named events is supported on every component derived from the core framework grade fluid.component. The keys in this block represent the event name, and the values represent the type of the event. Currently only two event types are supported, represented by the values null and preventable (this second value is almost never used). This table explains the meaning of the two values:

+ + + + + + + + + + + + + + + +
TypeDescription
null + The standard right hand side in an events structure - this indicates a standard event which may have any number of listeners and with no other special semantic +
preventable + The event represents a preventable action. + The listeners may each return a boolean value of false, representing both +
    +
  • that further listeners should fail to be queried, and
  • +
  • that the operation represented by the event should be cancelled.
  • +
+ This is similar to the default semantics on browser events. +
+
+

Note: preventable events are very rarely used and will soon be deprecated in the framework.

+
+

For every such entry in the events section of a component's options, the framework will construct a corresponding event firer with the same name in the events section of the constructed component. The most common use of an event firer is to call its member named fire with some set of arguments. Here is a simple, self-contained example:

+
fluid.defaults("examples.eventedComponent", {
+    gradeNames: ["fluid.component"],
+    events: {
+        myEvent: null
+    }
+});
+
+var myComponent = examples.eventedComponent();
+
+myComponent.myEvent.fire(97, false);
+// firer of event can supply whatever arguments they like,
+// but these should conform to some agreed signature
+
+

As a real-world example, here is a block of configuration taken from Infusion's Reorderer component:

+
{
+    events: {
+        onShowKeyboardDropWarning: null,
+        onSelect: null,
+        onBeginMove: "preventable",
+        onMove: null,
+        afterMove: null,
+        onHover: null, // item, state
+        onRefresh: null
+    }
+}
+
+

This indicates that the Reorderer supports 6 events of the listed types, of which one, onBeginMove represents a preventable event - a listener may countermand the beginMove effect by returning true when the event is received. The implementor has helpfully annotated the signature which is fired by the onHover event - in general since JavaScript doesn't have a type system this has to be done informally. If you have a Reorderer instance stored in a variable named thatReorderer, for example, the onSelect event could be fired with a call like thatReorderer.onSelect.fire(item). The fire method of the event is a plain function which can be detached and treated as a general callback - for example, this sequence is valid:

+
var myCallback = myComponent.myEvent.fire;
+myCallback(42, true);
+
+

In general you shouldn't fire any of a component's events unless invited to by its documentation - you may disrupt its state. However, registering listeners to a component's events is always safe.

+

Registering a listener to an event

+

Both as part of defaults, and also as supplied instantiation options, an Infusion component can accept a structure named listeners. +In the simplest form, the keys of the listeners structure are taken from the set of events present in the component's Grade, and the values are either single listener specifications or arrays of listener specifications. +A listener specification can take a number of forms - either being written as a simple String or Function, or as a full JSON object. +The standard way of declaring a listener using Infusion's IoC system is to supply the name of a global function using the member funcName or +to supply a reference to a function handle (usually an Invoker) somewhere in the component tree using the member func. +If your listener would like to receive different arguments than the ones that the event was fired with, you can supply references to these using the member args. +You can consult the page Event injection and boiling for the use of these more complex listener specifications. +If you are happy with the existing arguments you can write a simple definition as a String or Function holding the value that would have been written in func/funcName. +Here is a simple example of a listener definition, expanding our example from earlier:

+
examples.myListener = function (number, condition) {
+    console.log("Event listener received number " + number + " and condition " + condition);
+};
+
+fluid.defaults("examples.eventedComponent", {
+    gradeNames: ["fluid.component"],
+    events: {
+        myEvent: null
+    },
+    listeners: {
+        myEvent: "examples.myListener"
+    }
+});
+
+var myComponent = examples.eventedComponent();
+myComponent.myEvent.fire(97, false);
+// console logs "Event listener received number 97 and condition false"
+
+

You should use the String forms for listener specifications rather than raw Function objects. This enables your component's options to consist of standard JSON which is more easily stored and manipulated.

+

Namespaced listeners

+

There are two more complex options for the keys held by listeners - firstly, the listener name may be qualified with a namespace following a period character . - this follows the jQuery convention for namespaced events. For example, the key myEvent.myNamespace could be used above - this still attaches the listener to exactly the same event, the one named myEvent, but in this case the framework will make sure that only one listener will ever be attached to myEvent which mentions the same namespace myNamespace. Event namespaces are useful in order to specify functional roles for listeners, and to insist that only one listener can ever fill this role at the same time. It is a good idea to namespace your listeners whenever you can.

+

Here is an example again from Infusion's Reorderer component:

+
{
+    listeners: {
+        "onShowKeyboardDropWarning.setPosition": "fluid.moduleLayout.defaultOnShowKeyboardDropWarning"
+    }
+}
+
+

represents that the function with the global name fluid.moduleLayout.defaultOnShowKeyboardDropWarning should be attached as a listener to the event onShowKeyboardDropWarning under the namespace setPosition. +setPosition is a name which encodes the purpose of the listener for readers of the component - it is the one to be notified whenever the position of an item changes. +Any integrator of this component can override exactly this listener by supplying the same namespace in their own listener specification.

+

If one namespaced listener displaces another, the displaced listener is pushed onto a hidden stack of inactive listeners for that namespace. If the listener which displaces it is removed (for example, through +the component which registered it being destroyed), the displaced listener will be popped back off the stack and become active again.

+

Listeners to events held elsewhere

+

Secondly, rather than a simple string, the key in a listeners structure can hold any IoC Reference which resolves to an event anywhere in the component tree - +that is, even one belonging to a different component. In this case the listener on the right hand side will be attached to that event rather than one of this component's own events. +The framework will make sure to automatically deregister the listener when this component is destroyed. Many more complex cases are possible, including the wholesale injection of events from one component to another, +and the creation of new events derived from existing ones. You can consult the page Event injection and boiling for more details.

+

Full listener record form

+

In many cases, the short form above where the listener declaration just consists of a single String doesn't provide enough space for all the directives that you want to supply for how the listener is notified. +In this case, you can use the long form record, where the listener record takes the form of a JSON structure with the following members (the key for this record stays the same as above):

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Member NameTypeDescription
listener, func/funcName{String} +

This holds the actual designation of the function which is to be the listener, which was the string that consisted of the entire "short form" for the listener definition above. This, as before, holds either +the name of a global function or an IoC reference to a function. The func/funcName form is supported for consistency with the syntax for Invokers and the name listener will be deprecated for the Infusion 2.0 release.

+
args (optional){Any} +

If supplied, this structure will be used to replace the actual arguments received by the listener, rather than necessarily receiving the exact signature fired by the firer. Any IoC references or expanders will be expanded +at the time of invoking the listeners, with the additional possibility of referring to the original argument list by using the special context {arguments}. Consult Event Injection and Boiling for more details of this process.

+
namespace (optional){String} +

This holds the same string that would have followed the listener name after a period in the "short form" described above. The namespace can serve three functions - i) to ensure that exactly one listener per namespace is registered with this event firer, +ii) to serve as a convenient value by which the listener can be identified for later removal by a procedural call to removeListener, and iii) to allow the listener to be targetted by a priority rule (see the next option for details).

+
priority (optional){String|Number} +

This field allows the configurer to control the sequence in which several listeners to the same event are notified. The recommended form of this field is either before:otherNamespace or after:otherNamespace where otherNamespace represents the namespace of some other +listener attached to this firer. The framework will sort all the listeners attached to a single firer so that such a listener is fired immediately before or after the other target listener, unless a further constraint positions a third listener in between them. +If a group of listeners express a cyclic set of constraints, the framework will signal an error. If there is no listener with the target namespace, the constraint is ignored. There are other possibilities for the priority field which are not - +more details are present in the page on Priorities.

+
+

Using events and listeners procedurally

+

Traditional procedural APIs corresponding to all the above declarations exist. However, these APIs, with the exception of the fire method of an event, are not encouraged for typical users of the framework. +For managing the lifecycle of event firers, as well as adding and removing listeners, you are recommended to use the declarative configuration above.

+

Using an event firer procedurally

+

Once an event firer is constructed, it can be called with the following methods (these form a stable API - but only the fire method is recommended for typical users):

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
MethodArgumentsDescription
addListener(listener {Function|String}[, namespace {String},
priority {String|Number}])
+

Registers the supplied listener with this firer. The listener represents a function of a particular signature which is determined between the firer and listener of an event. +The namespace parameter is an optional String which defines a key representing a particular function of the listener. +At most one listener may be actively registered with a firer with a particular namespace. If a further listener B is registered with the same namespace as a previous one A, A will be +pushed onto a hidden stack, from the top of which it will be recovered by a call to removeListener removing B. Priorities are discussed in more detail on their own page Priorities.

+
removeListener(listener {String|Function}) + Supplies either the same listener object which was previously supplied to addListener, or else the String representing its namespace key. The designated listener will be removed from the list of registered listeners for this firer. +
fire(arbitrary) + Fires an event to all the registered listeners. They will each be invoked with the exact argument list which is supplied to fire itself. + If this is a preventable event, fire may return true indicating that a listener has requested to prevent the effect represented by this event. +
destroynone + Destroys this event firer. If an event is currently in the process of firing, no further listeners will be notified after the current listener returns. Any firing action performed in the future on this firer will be a no-op. +
+

Constructing an event firer procedurally

+

The Fluid event system is operated by instances of an event firer which are created by a call to fluid.event.makeEventFirer(). +It is recommended that users don't construct event firers by hand but instead rely on the framework's facilities for automatically constructing these given event +blocks in component options. The signature of fluid.event.makeEventFirer is not a stable API:

+
var myFirer = fluid.makeEventFirer(options);
+
+ + + + + + + + + + + + + + + + + + + + + +
Members of the options structure supplied to fluid.event.makeEventFirer (unstable API)
OptionTypeDescription
preventable [optional] DEPRECATEDboolean + If true, this event firer represents a preventable action (see Declaring an event on a component). +
name [optional]string + A name for this event firer, useful for diagnostic and debugging purposes +
+
+
+ + + +
+ +
+ + +
+ + + + + diff --git a/infusion/development/Invokers.html b/infusion/development/Invokers.html new file mode 100644 index 00000000..5bd2c60b --- /dev/null +++ b/infusion/development/Invokers.html @@ -0,0 +1,814 @@ + + + + + + Invokers | Fluid Infusion + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ +
+ + +
+ + + + +
+
+ + + + + +
+ + + +
+ +
+ + +
+
+ +
+ +

Invokers

+ + + + + +
+

The public and implementation functions on your component ("methods", +in OO terminology) are defined by configuration representing invokers.

+

Invokers can bind free functions, IoC resolved functions, and +this based functions to the component, and to the context of the component. Invokers allow the +signature received in the bound function to differ from the signature sent by the caller. +As well as allowing the traditional OO facility for shifting the that argument +representing the component itself in and out of the argument list, this also allows for much +more powerful reuse of existing functions where signature elements can be sourced freely from +around the component tree and within the original argument list.

+

Types of Invokers

+

Standard invoker binding to a function using funcName, func

+

An invoker can specified with either the funcName property to reference a free function by its +global name (e.g. fluid.copy, fluid.log, etc.) or the func property to reference an existing +function (perhaps another invoker) from elsewhere in the component tree.

+ + + + + + + + + + + + + + + + + +
PropertyDescription
funcName or func + Required
+ type: string
+ funcName - A string representing the name of a free function.
+ func - A string representing an IoC reference to a function which is + attached to the component tree +
args + Optional
+ type: array
+An array of arguments to be passed into the function specified by the +func or funcName property. The +values in the array can be of any type, including IoC references. In this context, you may also use +references of the form {arguments}.n, where n is an integer indexing from 0 which refers +to the position of the originating argument, to use arguments passed in when the invoker is called. +If no args are specified, all of the arguments passed into the invoker are sent to the underlying +function unchanged. +
+

An invoker record in context

+

The following skeleton example defines an invoker named invokerName attached to a component of +type component.name. When a component of the type is instantiated, for example with a line such +as var that = component.name();, the invoker will then be available as a function directly +attached to the instance, callable under the name invokerName - e.g. as +that.invokerName(...args...)

+
fluid.defaults("component.name", {
+    // ...
+    invokers: {
+        invokerName: {
+            funcName: "my.namespaced.function",
+            args: [] // Array of arguments
+        }
+        // ...
+    }
+    // ...
+});
+
+

Example:

+

The following example defines a component of type xyz.widget, with two invokers named addTwo +and subtractTwo - the former binds onto a free function named xyz.widget.add, the latter binds +onto another invoker elsewhere in the tree, which is not shown. Note that there is no necessary +relationship between the name of a component and the name of a free function which is bound to it. +If there is a close relationship between the purpose of a function and a related component, it is +a helpful convention to prefix its name with the component name, as here - however, any free +function may be bound via its global name to any component.

+
fluid.defaults("xyz.widget", {
+    // ...
+    invokers: {
+        addTwo: {
+            funcName: "xyz.widget.add",
+            args: [2, "{arguments}.0"]
+        },
+        subtractTwo: {
+            func: "{parent}.subtract",
+            args: ["{arguments}.0", 2]
+        }
+    }
+    // ...
+});
+
+xyz.widget.add = function (a, b) {return a + b;};
+
+

Compact format for invokers

+

Alternatively, invokers can be specified in a compact single line format. However, arguments +specified in the invoker can only be strings or IoC References. Strings which can be converted +into Numbers or Booleans will be so converted before being interpreted.

+
fluid.defaults("component.name", {
+    // ...
+    invokers: {
+        invokerName: "<fully namespaced string name of function>(<comma-separated ioc references>)"
+        // ...
+    }
+    // ...
+});
+
+

Example:

+
fluid.defaults("xyz.widget", {
+    // ...
+    invokers: {
+        addVal: "xyz.widget.add({that}.staticVal, {arguments}.0)",
+        subtractVal: "{parent}.subtract({arguments}.0, {that}.staticVal)"
+    }
+    // ...
+});
+
+xyz.widget.add = function (a, b) {return a + b;};
+
+

Example:

+
fluid.defaults("fluid.uploader.fileQueue", {
+    // ...
+    invokers: {
+        start: {
+            funcName: "fluid.uploader.fileQueue.start",
+            args: "{that}"
+        },
+        startFile: {
+            funcName: "fluid.uploader.fileQueue.startFile",
+            args: "{that}.currentBatch"
+        }
+        //...
+    }
+    //...
+});
+
+

Invoker triggering a model change to some component's model

+

If the invoker's record contains the field changePath (rather than the standard func/funcName) +this is recognised as a special type of invoker triggering a change to a particular component's +model via its ChangeApplier. This type of record is documented in its own +section with the ChangeApplier API. The compact syntax may not be used with +this variety of record.

+

"this"-ist invoker binding to a OO-style JavaScript function referencing "this"

+

Specifying an invoker with a "this" property allows the invocation of functions whose body +makes a reference to the special JavaScript value "this". These are generally functions external +to the Infusion framework such as console.log, since it is a Fluid community standard to write "that"-ist functions +whose execution is independent of the calling context. These can be any functions, but will most +often be used for jQuery methods. See Declarative this-ism in IoC +for more details. Note that the string this must always be quoted when appearing as a key as it is +a JavaScript keyword.

+ + + + + + + + + + + + + + + + + + + + + +
PropertyDescription
"this"Required
+ type: object +The object used referenced by "this" internally in the function. For a jQuery method, this is usually an jQuery element. +
methodRequired
+ type: string
+The name of the "thisist" function (attached to the this object designated above) to call. +
argsOptional
+ type: array
+An array of arguments to be passed into the function specified by the func or funcName property. The +values in the array can be of any type, including IoC references. In this +context, you may also use references of the form {arguments}.n, where n is an integer +indexing from 0 which refers to the position of the originating argument, to use arguments passed +in when the invoker is called. If no args are specified, all of the arguments passed into the invoker +are sent to the underlying function unchanged. Identical to role in func/funcName style +invokers. +
+

Format

+
fluid.defaults("component.name", {
+    // ...
+    invokers: {
+        invokerName: {
+            "this": "console", // reference to an object
+            method: "log", // string name of method on the this-ist object
+            args: ["Hello, world."] // array of arguments
+        }
+    }
+    // ...
+});
+
+

Example:

+
fluid.defaults("xyz.widget", {
+    // ...
+    invokers: {
+        setAriaLabel: {
+            "this": "{that}.dom.elm",
+            method: "attr",
+            args: ["aria-label", "{arguments}.0"]
+        }
+    }
+    // ...
+});
+
+

Example:

+
fluid.defaults("fluid.uploader.html5Strategy.browseButtonView", {
+    // ...
+    invokers: {
+        // ...
+        disable: {
+            "this": "{that}.dom.fileInputs",
+            method: "prop",
+            args: ["disabled", true]
+        }
+        // ...
+    }
+    // ...
+});
+
+

Compact format

+

"this"-ist invokers have no equivalent compact syntax.

+ +
+
+ + + +
+ +
+ + +
+ + + + + diff --git a/infusion/development/IoCAPI.html b/infusion/development/IoCAPI.html new file mode 100644 index 00000000..6a2b6125 --- /dev/null +++ b/infusion/development/IoCAPI.html @@ -0,0 +1,710 @@ + + + + + + Infusion IoC API | Fluid Infusion + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ +
+ + +
+ + + + +
+
+ + + + + +
+ + + +
+ +
+ + +
+
+ +
+ +

Infusion IoC API

+ + + + + +
+

Whilst Infusion's IoC is primarily a declarative system, operated by a declarative dialect of +JSON configuration, there are a few language-level APIs which are useful in dealing with the system. Some of these +are externalisable in that there is a reasonable semantic for operating them from outside the JavaScript VM housing the +component tree - these special APIs are grouped under the heading Nexus API methods, named after the +Nexus component that will shortly be built around them.

+

IoC utility methods

+

fluid.pathForComponent(component)

+
    +
  • component: {Component} The component whose global path is required
  • +
  • Returns: {Array of String} The component's global path, as an array of path segments
  • +
+

Each instantiated component in the Infusion system has a stable base path in the system's global component tree. +Records about the component are held in Infusion's instantiator where the path and numerous other +details can be looked up. This utility method accepts a currently instantiated (not destroyed) +component and returns its path as a set of parsed array segments. This information can be very useful for making calculations about +the geometry of component trees - that is, which components are descended from which others and which are siblings, etc.

+

fluid.componentForPath(path)

+

Retrieves a component by global path.

+
    +
  • path {String|Array of String} The global path of the component to look up
  • +
  • Returns: The component at the specified path, or undefined if none is found
  • +
+

fluid.queryIoCSelector(root, selector[, flat])

+

Query for all components matching a selector in a particular tree.

+
    +
  • root {Component} The root component at which to start the search. A reasonable choice for this can be fluid.rootComponent although +such global searches can be very slow. A more reasonable choice will be some particular component in the tree whose descendents are of interest.
  • +
  • selector {String} An IoCSS selector, in form of a string. Note that since selectors supplied to this function implicitly +match downwards, they need not contain the "head context" followed by whitespace required in the distributeOptions form. E.g. +simply fluid.viewComponent will match all viewComponents below the root.
  • +
  • flat {Boolean} [optional] true if the search should just be performed at top level of the component tree. Note that with flat=true this search will scan every component in the tree and may well be very slow.
  • +
+

fluid.makeGradeLinkage(linkageName, inputNames, outputNames)

+

Registers a grade into the system, and create a global instance of it, which ensures that any components where the grades listed in inputNames co-occur (that is, occur +attached to the same component) will also be supplied the grades listed in outputNames. This is a shorthand for an effect that the user can achieve for themselves by +constructing an instance of a component holding a distributeOptions block globally targetting the co-occuring grades.

+
    +
  • linkageName {String} The grade name which will hold the required options distribution. The component instance's global name will be derived from this grade name via fluid.typeNameToMemberName.
  • +
  • inputNames {Array of String} The list of grade names which must co-occur in a single component in order to trigger the addition of outputNames.
  • +
  • outputNames {String or Array of String} The grade names which will be added to any component in which the inputNames co-occur.
  • +
+

fluid.expand(material, that)

+

Expands some options material in the context of a particular component - any IoC References and expanders held at any +depth in the material will be expanded to hold their resolved contents. The source material will not be modified.

+
    +
  • material {Object} The configuration material to be expanded
  • +
  • that {Component} The component in whose context the material is to be expanded
  • +
  • Returns: {Object} An expanded version of the input material.
  • +
+

fluid.getForComponent(component, path)

+

This is a fairly interesting method. During the instantiation of an IoC component tree, the framework's "focus of attention" moves around the tree +in a data-driven way. If an IoC reference is seen to a particular path, this will direct attention to instantiate the +material referenced by the path. fluid.getForComponent is the method used internally by the framework in order to ensure that any referenced +material has actually been instantiated before the results from any IoC reference are filled in in the expanded +options material. You can use this method too, in order to make sure that any member of a component has been instantiated before you look at it. This +should not normally be necessary - and the use of this API only makes sense during a construction "fit" - during the "semi-static period", you can +assume that all members of all visible components are concrete.

+

This is an analogue of the API fluid.get for use during the "ginger construction process".

+
    +
  • component {Component} The component whose resolved member is required
  • +
  • path {String|Array of String} The path within the component which is to be resolved
  • +
  • Returns: {Any} The fully observed value held at path of component component.
  • +
+

fluid.resolveContext (context, that)

+

Another method for enthusiasts. Given a particular IoC Context, determine which (if any) component in the tree it refers to, from the point +of view of component that.

+
    +
  • context {String} The context to be resolved. For example, in an IoC reference of the form "{myContext}.myPath1.myPath2", the context is myContext.
  • +
  • that {Component} The component from whose point of view the context is to be resolved
  • +
  • Returns: {Component|None} Returns the component to which the context refers, or undefined if the reference cannot be resolved.
  • +
+

fluid.parseContextReference(reference) {

+

Parse an IoC reference of the form "{myContext}.myPath1.myPath2" into an object form. In this case, for example, the output would be

+
{
+    context: "myContext",
+    path: "myPath1.myPath2"
+}
+
+

From here it is a simple matter to resolve them in a DIY fashion with reference to the APIs fluid.resolveContext and fluid.getForComponent or fluid.get.

+
    +
  • reference {String} An IoC reference expressed as a String
  • +
  • Returns: {Object} The parsed form of the reference, with the following fields: +
      +
    • context {String} The context portion of the IoC reference
    • +
    • path {String} The path portion of the IoC reference
    • +
    +
  • +
+

fluid.globalInstantiator

+

This path holds the global instantiator which holds all the records for Infusion's IoC system. Whilst any methods +on this object should not be called by applications, there are many entries in here that can aid debugging, especially +the members instantiator.pathToComponent which holds a mapping for every instantiated component from its global path +in the component tree, and instantiator.idToShadow which holds a mapping from every component's id to its shadow record +which holds many useful pieces of bookkeeping, including the mergeOptions structure which can be used to inspect the details +of the options merging process resulting in the component's final options.

+

fluid.rootComponent

+

Holds the global root component for the global instantiator's component tree.

+

Nexus API methods

+

fluid.construct(path, options[, instantiator])

+

Construct a component with the supplied options at the specified path in the component tree. The parent path of the location must already be a component.

+
    +
  • path {String|Array of String} Path where the new component is to be constructed, represented as a string or array of segments
  • +
  • options {Object} Top-level options supplied to the component - must at the very least include a field type holding the component's type. Note that these are expressed +in the future-compatible post-FLUID-5750 format with type alongside the component's options rather than at +a higher nested level as is currently required in local configuration supplied as subcomponents.
  • +
  • instantiator {Instantiator} [optional] The instantiator holding the component to be created - if blank, the global instantiator will be used
  • +
+

fluid.destroy(path[, instantiator])

+

Destroys a component held at the specified path. The parent path must represent a component, although the component itself may be nonexistent.

+
    +
  • path {String|Array of String} Path where the component is to be destroyed, represented as a string or array of segments
  • +
  • instantiator {Instantiator} [optional] The instantiator holding the component to be destroyed - if blank, the global instantiator will be used
  • +
+

fluid.typeNameToMemberName(typeName)

+

This method is included in the Nexus API since the effects of the ContextAwareness API fluid.constructSingle need to be replicable +from outside the process. This API assists users to compute the name at which the IoC system will be expecting an "adaptation" component with a particular +typeName to be instantiated as a member of the global root component. Note that the period character . is not supported within a +component member name.

+
    +
  • typeName {String} The "principal type name" of the component which should be used to compute its global name for the purposes of a fluid.constructSingle adaptation +honoured through fluid.construct.
  • +
  • Returns: {String} The required member name of the global root component
  • +
+ +
+
+ + + +
+ +
+ + +
+ + + + + diff --git a/infusion/development/IoCReferences.html b/infusion/development/IoCReferences.html new file mode 100644 index 00000000..7baf4678 --- /dev/null +++ b/infusion/development/IoCReferences.html @@ -0,0 +1,895 @@ + + + + + + IoC References | Fluid Infusion + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ +
+ + +
+ + + + +
+
+ + + + + +
+ + + +
+ +
+ + +
+
+ +
+ +

IoC References

+ + + + + +
+

The Infusion IoC Framework uses a basic syntax for referencing objects in the current context.

+

References always take the syntactic form {context-name}.some.path.segments, which we name as the type <reference> - the meaning and form of the context name can vary and have a different meaning in different contexts:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Different permitted forms for a <reference> string
SyntaxDescription
{<componentRef>}.<path to member> +
    +
  • + <componentRef> is a reference to a component via one of its context names. It may be: +
      +
    • that, to reference the current component e.g. {that}
    • +
    • the fully qualified name of the component's type or one of its grade names e.g. {fluid.pagedTable}
    • +
    • the short name of the component's type or one of its gradeNames, i.e. the last segment of the fully namespaced name, e.g. {pagedTable}
    • +
    • the component's member name, i.e. the name used when defining a subcomponent in a components block
    • +
    • an entire <reference> string in itself. This is useful in highly dynamic cases where the context name should be determined from some other options material, e.g. {{that}.options.targetContext} +
    +
  • +
  • + <path to member> is an EL path into the referenced component's members (this path may be empty) +
  • +
+
{arguments}.<index> +
    +
  • + {arguments} refers to the array of arguments passed to a function. This form is used in the definition of Invokers +
  • +
  • + <index> is the 0-based numeric index of the desired argument +
    Note: + The arguments context name can only be used in contexts where arguments are in scope - for example, as part of the arguments + to an event listener or invoker, or within component configuration that is + being instantiated as part of a dynamic component with a source event . +
    +
  • +
+
{source}.<path to member> +
    +
  • + {source} refers to the particular instance of the sources array which was used to instantiate a + particular dynamic component. This context name is not valid outside a dynamic component definition. +
  • +
+
{<iocss expression>}.<path to member> +
    +
  • + <iocss expression> is an IoCSS expression referencing a component. +
  • +
  • + <path to member> is an EL path into the referenced component's members. +
    Note: + Full IoCSS expressions are not valid in all contexts. They can primarily be used in the target field of the distributeOptions record. +
    +
  • +
+
+

Where To Use IoC References

+

IoC references may be used almost anywhere within a component's options, for example:

+ +

How IoC References are resolved

+

For a conventional IoC reference (of the style <componentRef> rather than the style <iocss expression>), a search is begun upwards from the site of the reference in the component tree to find the first component which matches the context name. +The following diagram shows a possible such reference site in green:

+ +

IoC Context Resolution

+

The set of components which are in scope for resolution from this site are shown in yellow (circles) and orange (diamonds) in this diagram. These are components which are either

+

i) an ancestor of the component holding the reference site, or

+

ii) a sibling of such a component.

+

iii) a component anywhere in the tree which has been marked with the grade fluid.resolveRoot - these are the ones shown in orange diamonds

+

The context reference matches a component if it matches via the 2nd, 3rd or 4th rules in the first row of the above table - either +it agrees with a fully-qualified grade or type name of a component, or it agrees with the last path segment of such a name, or it agrees with the component's member name. +If no context name matches anywhere in the tree, the reference expression resolves to undefined. In this case, if the path segments following the context name in the reference expression are not empty, the framework will throw an error.

+

Components which are not in scope for resolution from the reference site (shown as a green pentagon) are shown as blue squares.

+

Examples of {<componentRef>}

+

In the example below, the IoC reference {that} refers to the component in which it is being used.

+
fluid.defaults("fluid.prefs.separatedPanel", {
+    gradeNames: ["fluid.prefs.prefsEditorLoader"],
+    listeners: {
+        onCreate: {
+            funcName: "fluid.prefs.prefsEditorLoader.hideReset",
+            args: ["{that}"]
+        }
+    }
+});
+
+

This could equally be written using the short name of the fluid.prefs.separatedPanel component, as shown below:

+
fluid.defaults("fluid.prefs.separatedPanel", {
+    gradeNames: ["fluid.prefs.prefsEditorLoader"],
+    listeners: {
+        onCreate: {
+            funcName: "fluid.prefs.prefsEditorLoader.hideReset",
+            args: ["{separatedPanel}"]
+        }
+    }
+});
+
+

The above two examples are equivalent.

+

In the example below, the IoC expression {fluid.prefs.enactor.tableOfContents} refers to the component being defined by the defaults block. +The short name tableOfContents must not be used here, because it would not be unique: It would be unclear whether the nickname was referring to fluid.prefs.enactor.tableOfContents or fluid.tableOfContents.

+
fluid.defaults("fluid.prefs.enactor.tableOfContents", {
+    gradeNames: ["fluid.viewComponent", "fluid.prefs.enactor"],
+    components: {
+        tableOfContents: {
+            type: "fluid.tableOfContents",
+            container: "{fluid.prefs.enactor.tableOfContents}.container",
+            options: {
+                // ...
+            }
+        }
+    }
+});
+
+

Another way to avoid the ambiguity mentioned above would be to use the member name, which is the name used when defining the subcomponent in the components block. +In the example below {toc} refers to the name used to define the subcomponent in the component block.

+
fluid.defaults("fluid.prefs.enactor.tableOfContents", {
+    gradeNames: ["fluid.viewComponent", "fluid.prefs.enactor"],
+    components: {
+        toc: {
+            type: "fluid.tableOfContents",
+            container: "{fluid.prefs.enactor.tableOfContents}.container",
+            options: {
+                components: {
+                    type: "fluid.tableOfContents.levels",
+                    container: "{toc}.dom.tocContainer"
+                }
+            }
+        }
+    }
+});
+
+

Examples of {<componentRef>}.<path to member>

+

The example below includes several IoC references. All of them are inside a subcomponent declaration and all include {controllers}, which in this case is a reference to the parent component. Specifically:

+
    +
  • {controllers}.model is a reference to the model that is a member of the parent component - note that this reference sets up a permanent model relay between these two models;
  • +
  • the IoC expressions in the subcomponent's events block are references to events defined on the parent component's event block;
  • +
  • {controllers}.dom.scrubberContainer is a reference to one of the selectors defined on the parent component.
  • +
+
fluid.defaults("fluid.videoPlayer.controllers", {
+    gradeNames: ["fluid.viewComponent"],
+    selectors: {
+        scrubberContainer: ".flc-videoPlayer-scrubberContainer"
+    },
+    events: {
+        onScrub: null,
+        onStartScrub: null,
+        afterScrub: null
+    },
+    components: {
+        scrubber: {
+            type: "fluid.videoPlayer.controllers.scrubber",
+            container: "{controllers}.dom.scrubberContainer",
+            options: {
+                model: "{controllers}.model",
+                events: {
+                    onScrub: "{controllers}.events.onScrub",
+                    afterScrub: "{controllers}.events.afterScrub",
+                    onStartScrub: "{controllers}.events.onStartScrub"
+                }
+            }
+        }
+    }
+});
+
+

Examples of {arguments}.n

+

The example below uses the {arguments}.n syntax to deliver the first and second arguments passed to listeners to the onMove event to the fluid.moduleLayout.onMoveListener function.

+
fluid.defaults("fluid.moduleLayoutHandler", {
+    gradeNames: ["fluid.layoutHandler"],
+    events: {
+        onMove: "{reorderer}.events.onMove"
+    },
+    listeners: {
+        onMove: {
+            funcName: "fluid.moduleLayout.onMoveListener",
+            args: ["{arguments}.0", "{arguments}.1", "{that}.layout"]
+        }
+    }
+});
+
+

Examples of {<iocss expression>}

+

The example below uses an IoCSS expression {that > moreText}.options.selectors.images. The expression refers to the images selector in the moreText subcomponent that is a direct descendent of the current component.

+
fluid.defaults("gpii.explorationTool.enactors.showMoreText", {
+    gradeNames: ["fluid.viewComponent", "fluid.prefs.enactor"],
+    selectors: {
+        images: "img, [role~='img']"
+    }
+});
+fluid.defaults("gpii.explorationTool.enactorSet", {
+    gradeNames: ["fluid.uiEnhancer.starterEnactors"],
+    components: {
+        moreText: {
+            type: "gpii.explorationTool.enactors.showMoreText"
+        }
+    },
+    distributeOptions: {
+        source: "{that}.options.moreTextSelector",
+        removeSource: true,
+        target: "{that > moreText}.options.selectors.images"
+    }
+});
+
+

More Examples

+

Example 1

+
// Range Annotator
+fluid.defaults("fluid.pagedTable.rangeAnnotator", {
+    gradeNames : ["fluid.component"],
+    listeners : {
+        "{pagedTable}.events.onRenderPageLinks" : {
+            funcName : "fluid.pagedTable.rangeAnnotator.onRenderPageLinks",
+            args : ["{pagedTable}", "{arguments}.0", "{arguments}.1"]
+        }
+    }
+});
+// Paged Table
+fluid.defaults("fluid.pagedTable", {
+    gradeNames : ["fluid.pager", "fluid.table"],
+    components : {
+        rangeAnnotator : {
+            type : "fluid.pagedTable.rangeAnnotator"
+        }
+    }
+    // ...
+});
+
+

The above example defines a rangeAnnotator, which is used as a subcomponent of a pagedTable. This definition uses several IoC references:

+
    +
  • the expression "{pagedTable}.events.onRenderPageLinks" is used to refer to the onRenderPageLinks event of the pagedTable component
  • +
  • the IoC references: +
      +
    • {pagedTable}.events.onRenderPageLinks refers to the pagedTable component
    • +
    • {arguments}.0 and {arguments}.1 refer to the first and second arguments supplied when the source event is fired onRenderPageLinks
    • +
    +
  • +
+

Example 2

+
fluid.defaults("fluid.videoPlayer.languageControls.eventBinder", {
+    gradeNames: ["fluid.component"],
+    listeners: {
+        "{button}.events.onPress": "{menu}.toggleView"
+    }
+});
+
+

The above example uses two IoC references:

+
    +
  • {button}.events.onPress refers to the onPress even of the button component
  • +
  • {menu}.toggleView refers to the toggleView method of the menu component
  • +
+

Example 3

+
fluid.defaults("fluid.uploader", {
+    gradeNames: ["fluid.viewComponent"],
+    components: {
+        uploaderImpl: {
+            type: "fluid.uploaderImpl"
+        }
+    },
+    distributeOptions: {
+        source: "{that}.options",
+        removeSource: true,
+        exclusions: ["components.uploaderContext", "components.uploaderImpl"],
+        target: "{that > uploaderImpl}.options"
+    }
+});
+
+

The above example uses IoC references in the distributeOptions block:

+
    +
  • {that}.options identifies the options block of the current that (i.e. fluid.uploader)
  • +
  • {that > uploaderImpl}.options identifies the uploaderImpl subcomponent of the current that (fluid.uploader) (see IoCSS for more information about this notation)
  • +
+

Reserved IoC Names

+

The following context names are reserved within the IoC system:

+
    +
  • that
  • +
  • arguments
  • +
  • source
  • +
  • sourcePath
  • +
  • change
  • +
  • instantiator
  • +
+

As a result, you should typically avoid defining types that use these names as the final segment (e.g todoList.source or todoList.panel.that), since it will be impossible to resolve references to these components in many contexts.

+ +
+
+ + + +
+ +
+ + +
+ + + + + diff --git a/infusion/development/IoCSS.html b/infusion/development/IoCSS.html new file mode 100644 index 00000000..a59fb95c --- /dev/null +++ b/infusion/development/IoCSS.html @@ -0,0 +1,828 @@ + + + + + + IoCSS | Fluid Infusion + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ +
+ + +
+ + + + +
+
+ + + + + +
+ + + +
+ +
+ + +
+
+ +
+ +

IoCSS

+ + + + + +
+

The Infusion Inversion of Control (IoC) system includes a simple method for distributing options from any components to any others in the component tree. This system uses +a special block named distributeOptions which is supported in the options of every Infusion component. The key addressing scheme needed to make this system work — the +means for determining where the target of the distribution is — is dubbed "IoCSS" because it uses a syntax and idiom very similar to that used in CSS selectors.

+

distributeOptions and IoCSS: Downward-matching CSS-like context selectors for options forwarding

+

The distributeOptions option is a top-level block supported by every Infusion component. It specifies how options should be distributed to components elsewhere in the tree. A typical, conservative +usage would have a component distribute only downwards to its own subcomponents, but it is also possible to use the considerable power of distributeOptions to distribute to any component +anywhere in the (global) component tree - naturally such power should be used with extreme discretion since it could very easily reduce a design to chaos. However, in many situations, for example +when writing powerful authoring tools, this kind of power is completely indispensible.

+

Background for distributeOptions

+

As component trees become larger, it will often happen that a high-level component will need to specify options for a component further down the component tree. Without distributeOptions, component configuration can become very, what we might call, "pointy":

+
// without developer's use of IoCSS, user writes
+
+fluid.uiOptions(".my-uio-container", {
+    components: {
+        templateLoader: {
+            options: {
+                templatePrefix: "../../myTemplates"
+            }
+        }
+    }
+});
+
+

The example above shows a simplified version of a situation with Infusion's "UI Options" component. In practice, the user of the component would have to write an even more deeply nested piece of configuration than this, if the developer had not made use of the distributeOptions directive in the component's options block, together with the use of "IoCSS" expressions to distribute the user's options to the right place in the component tree, as shown in the following example:

+
// developer writes:
+
+fluid.defaults("fluid.uiOptions", {
+    distributeOptions: {
+        source: "{that}.options.templatePrefix",
+        target: "{that templateLoader}.options.templatePrefix"
+    }
+});
+
+// user writes:
+
+fluid.uiOptions(".my-uio-container", {
+    templatePrefix: "../../myTemplates"
+});
+
+

In the distributeOptions block above, the context {that templateLoader} is an IoCSS expression which designates one or more of the child components of UI Options that are to receive the user's option. The syntax and meaning of these expressions is defined below.

+

As well as converting the exposed options structure of a component into a more compact form, distributeOptions is also a powerful tool for maintaining API stability for a component or family of components. +Since the binding of IoCSS selectors such as that templateLoader onto child components is flexible, the component tree could be refactored in quite an aggressive way without requiring changes in either the user's configuration, or even the distributeOptions block itself. +If the refactoring was even more thorough (involving wholesale removal of the target component, or a change in its important grades), the developer could still maintain stability of the external user API just by changing the distributeOptions block.

+

In terms of a standard discussion on Design Patterns, this use of distributeOptions could be seen as an automated and declarative scheme for achieving the ends of the Facade Design Pattern, without the need for either user or developer code.

+

However, facade formation isn't the only possible function of an options distribution. They are also sufficiently powerful to encompass most uses of the so-called Aspect-oriented programming (AOP) by the +use of the target root context / to match (and "advise", in AOP terminology) all components in a design matching a particular specification. Unlike traditional AOP techniques, however, these options distributions do not put ultimate and final power in the hands of the wielder - since the component holding +the distribution itself can be either advised itself, or destroyed completely - thus withdrawing the "advice" from the system.

+

distributeOptions format

+

The distributeOptions option is a top-level block supported by every Infusion component, holding an array of records, hash of records, or single record containing the following properties:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescription
target(Required) An IoC expression describing the location in the component tree where the options are to be set. The "context" part of this expression will usually consist of an IoCSS selector (see below for format). However, it may also in specialised cases consist of a standard "upwards" IoC context expression, indicating that options are to be distributed to a parent component (this is only meaningful in the case the parent has not finished instantiating).
record(Mutually exclusive with source) A record of options to set at the target. This will be interpreted literally - however it will be expanded according to standard options expansion rules. General configuration will be expanded in the context of the component holding distributeOptions - however, configuration for listeners and invokers will be expanded at the target component.
source(Mutually exclusive with record) An IoC expression into the options structure of the source component, referencing what to copy to the target.
  removeSource(Only possible if source is used) true/false: If true, the source options block is removed from its original site in the options structure when it is forwarded to the target.
  exclusions(Only possible if source is used) A list of EL paths into the source material which should not be forwarded. Whether or not removeSource is used, these will be retained in their original position in the source component's options.
priority(Optional) a Priority specification specifying how the priority of this distribution is to be resolved with respect to any other options distributions which are targetted at the same component in the tree as this one. Typically one will write after:otherNamespace to indicate that this distribution should be stronger than (i.e. should merge options on top of) another distribution whose namespace is otherNamespace, or before:otherNamespace to indicate that this distribution should be weaker than (have option merged on top of by) a distribution whose namespace is otherNamespace.
namespace(Optional, recommended) A namespace to identify this options distribution amongst others in an extended design. This can be used by the priority field of other distributions in order to defer to it or be deferred to by it. (The framework should also ensure to uniquify distributions with respect to namespace at the target - not currently implemented)
+

In the case that a hash of these records is provided, the keys of the structure will be interpreted as the namespace of the distribution.

+

IoCSS Selectors

+

An IoCSS selector appears in some special kinds of references in the framework, most notably in the target element of a distributeOptions block. +Informally, it can be distinguished from a standard IoC reference since it contains some whitespace between its various matching segments, and a standard +IoC reference just consists of a single context name without whitespace. Some representative examples of IoCSS selectors are:

+
    +
  • {that sessionManager} - matches any component which matches the context sessionManager below the current component
  • +
  • {that > ownSub} - matches any component directly a child of the current one matching a context ownSub (perhaps by being a member with that name)
  • +
  • {testEnvironment flowManager preferencesServer} - firstly looks upward to find a testEnvironment component somewhere above the current one, and then matches a preferencesServer that is nested within a flowManager
  • +
  • {/ fluid.viewComponent} - matches any fluid.viewComponent anywhere in the component tree
  • +
+

Each block separated by whitespace matches a component by one of the following component selector rules:

+ + + + + + + + + + + + + + + + + + + + + + + + + +
FormDescription
*matches any component - universal selector
/matches the global root component of the entire component tree - may only be used in the head position of an IoCSS selector
E or &Ematches any component holding a context name of E - the & character may be omitted for the first context in a group. There is special support for the context that as with standard IoC context matching
#myidmatches the component with id equal to myid (of no use to developers since component ids cannot be predicted)
+

Mediating each neighbouring pair of component rules is a descendent rule, of which we currently support 2:

+ + + + + + + + + + + + + + + + + +
FormDescription
E FMatches any F component that is a descendant of an E component
E > FMatches any F component that is a direct child of an E component
+

If you are familiar with CSS selectors you can compare this set of 6 simple syntax rules with the wide +range of CSS selector rules listed in the article's table.

+

Simple Example of distributeOptions: record for grade distribution

+

This is the form taken by the most commonly seen and straightforward use of distributeOptions - the contribution of an additional grade to +one or more subcomponents of the current component:

+
fluid.defaults("kettle.use.session.io", {
+    gradeNames: ["fluid.component"],
+    distributeOptions: {
+        record: "kettle.sessionManager.io",
+        target: "{that sessionManager}.options.gradeNames"
+    }
+});
+
+

The sessionManager, wherever it is in the set of child components, will be granted the additional grade kettle.sessionManager.io.

+

Complex Example: record

+
fluid.defaults("fluid.moduleLayoutHandler", {
+    gradeNames: ["fluid.layoutHandler"],
+    // ...
+    distributeOptions: {
+    // unusual: not an IoCSS selector - upward-matching selector distributes options back to parent before instantiation ends
+        target: "{reorderer}.options",
+        record: {
+            selectors: {
+                movables: {
+                    expander: {
+                        func: "{that}.makeComputeModules",
+                        args: [false]
+                    }
+                },
+                dropTargets: {
+                    expander: {
+                        func: "{that}.makeComputeModules",
+                        args: [false]
+                    }
+                },
+                selectables: {
+                    expander: {
+                        func: "{that}.makeComputeModules",
+                        args: [true]
+                    }
+                }
+            }
+        }
+    }
+});
+
+

Example: source

+
fluid.defaults("fluid.tests.uploader", {
+    gradeNames: ["fluid.component"],
+    components: {
+        uploaderContext: {
+            type: "fluid.progressiveCheckerForComponent",
+            options: {componentName: "fluid.tests.uploader"}
+        },
+        uploaderImpl: {
+            type: "fluid.tests.uploaderImpl"
+        }
+    },
+    distributeOptions: [{
+        target: "{that > uploaderImpl}.options", // Target a directly nested component matching the context "uploaderImpl"
+        source: "{that}.options", // Distribute ALL of our options there, except exclusions:
+        exclusions: ["components.uploaderContext", "components.uploaderImpl"] // options targetted directly at these subcomponents are left undisturbed in place
+
+    }],
+    progressiveCheckerOptions: {
+        checks: [{
+            feature: "{fluid.test}",
+            contextName: "fluid.uploader.html5"
+        }]
+    }
+});
+
+

Example: broadcast via root to all components

+

(All Husnock, everywhere)

+

+// A `mixin grade` to contribute two listeners to every viewComponent in the system
+fluid.defaults("fluid.debug.listeningView", {
+    listeners: {
+        onCreate: {
+            funcName: "fluid.debug.viewMapper.registerView",
+            args: ["{fluid.debug.viewMapper}", "{that}", "add"]
+        },
+        onDestroy: {
+            funcName: "fluid.debug.viewMapper.registerView",
+            args: ["{fluid.debug.viewMapper}", "{that}", "remove"]
+        }
+    }
+});
+
+fluid.defaults("fluid.debug.viewMapper", {
+    gradeNames: ["fluid.component", "fluid.resolveRoot"],
+    // Distribute the grade `fluid.debug.listeningView` to every viewComponent in the system
+    distributeOptions: {
+        record: "fluid.debug.listeningView",
+        target: "{/ fluid.viewComponent}.options.gradeNames" // <- use of IoCSS root context "/"
+    }
+});
+
+ +
+
+ + + +
+ +
+ + +
+ + + + + diff --git a/infusion/development/IoCTestingFramework.html b/infusion/development/IoCTestingFramework.html new file mode 100644 index 00000000..6c290179 --- /dev/null +++ b/infusion/development/IoCTestingFramework.html @@ -0,0 +1,1262 @@ + + + + + + The IoC Testing Framework | Fluid Infusion + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ +
+ + +
+ + + + +
+
+ + + + + +
+ + + +
+ +
+ + +
+
+ +
+ +

The IoC Testing Framework

+ + + + + +
+

The IoC Testing Framework is written using our existing jqUnit wrapper for jQuery's QUnit as a base. +The IoC Testing Framework is both written using Fluid's IoC system, as well as being designed to test components +which are themselves written using IoC. This framework aims to extend our power to write tests in various directions at the same time. +As well as creating an idiomatic way of writing integration tests addressed at realistic-sized chunks of applications, expressed as IoC component +trees, the IoC testing framework also considerably eases the task of testing complex event sequences - that is, sequences of application state +that are derived from an alternating conversation between user interaction and application response.

+

When to use the IoC Testing Framework

+
Note: The IoC Testing framework is primarily for integration testing requiring asynchrony, e.g. on the client, testing that involves user interaction via the DOM, or +AJAX requests; or alternatively on the server, involving asynchronous I/O such as HTTP requests. +

If your tests don't involve a number of back-to-back asynchronous interactions, it is better to express them as plain jqUnit tests.

+
+

Integration testing within a component tree

+

The concept of context in Infusion IoC is derived from the entire collection of components held in an IoC component tree. +The behaviour of each component is potentially altered by all of the other components with which it is deployed.

+
    +
  • for a detailed guide to the operation of scope within Infusion IoC, please consult the page on Contexts.
  • +
+

Therefore in order to test component behaviour in context, we need a testing system whose lifecycle (in particular, the lifecycle +of setup and teardown common to all testing systems) is aligned with the lifecycle of component trees - as well as a testing system which enables testing directives to be referred to the components +under test, wherever they may be in the tree.

+

Event sequence testing

+

The idiom to be used when binding event listeners which are responsible for implementing application behaviour is very different from that to be +used when testing the application behaviour. Implementation listeners are typically bound permanently - that is, for the entire +lifecycle of the component holding the listener. This is in order to make application behaviour as regular as possible, and in order to make +it as easy as possible to reason about application behaviour by excluding race conditions. However, when writing tests directed at an +event stream, typically the behaviour required for the listener to each individual event in the sequence is different - since the testing +assertion(s) held in the listener will be verifying a component state against required conditions which change with each successive event. +This requirement often makes test fixture code convoluted and brittle, holding deeply nested sequences of event binding +and unbinding operations held within listeners to other events. We need a system which allows such assertions to be expressed declaratively, +with this sequence flattened out into a linear list of JSON elements corresponding to each successive state in the event chain.

+

How to Use the IoC Testing Framework

+

Writing fixtures using the IoC Testing framework requires the test implementor to derive from two special grades, fluid.test.testEnvironment and fluid.test.testCaseHolder, +which are packaged within the testing framework implementation in the +file IoCTestUtils.js. The tester must derive their own component types from these grades, and assemble +them into various component trees corresponding to the desired integration scenarios.

+

The first type of component corresponds to the overall root of the component tree under test - the test environment, defined in the grade +fluid.test.testEnvironment. The children of this component correspond to the entire "application segment" under test - +this may be as large (as an entire application) or as small (as a single component) as required in order to comprise the desired fixture. +These children are intermixed with components of the second type, the test fixtures, derived from the grade fluid.test.testCaseHolder. +These fixture components are holders for declarative JSON configuration defining the +sequence and structure of a group of test cases which are to be run.

+

modules, tests and sequence

+

The standard structure inside a fluid.test.testCaseHolder has an outer layer of containment, modules, with members corresponding to +QUnit modules, and within that an entry named tests, holding an array of structures corresponding to QUnit test. In +ordinary use, each element tests then contains a member named sequence holding a list of fixture records.

+

As well as containing a flat list of fixture records, sequence may also contain nested arrays of such records. These nested arrays will be +flattened into a single array by use of the utility fluid.flatten before being processed. This helps in +assembling complex sequences out of previously canned sequence segments. However, building up complex, reusable test sequences is best done by +use of the sequenceGrade element, instead of the sequence element.

+

Simple Example

+

This simple example shows the testing of a simple component, fluid.tests.cat which defines one event, onMakeSound, and an +invoker makeSoundLater which fires the event asynchronously with the supplied argument. Firstly, we define the component under test:

+
/** Component under test **/
+fluid.defaults("fluid.tests.cat", {
+    gradeNames: ["fluid.component"],
+    events: {
+        onMakeSound: null
+    },
+    invokers: {
+        makeSoundLater: {
+            funcName: "fluid.tests.cat.makeSoundLater",
+            args: ["{that}", "{arguments}.0"]
+        }
+    }
+});
+
+fluid.tests.cat.makeSoundLater = function (that, sound) {
+    fluid.invokeLater(function () {
+        that.events.onMakeSound.fire(sound);
+    });
+};
+
+

In order to test this single component, we embed it appropriately within a testing environment, derived from the grade +fluid.test.testEnvironment, together with a component to hold the test fixtures named fluid.tests.catTester:

+
/** Testing environment - holds both fixtures as well as components under test, exposes global test driver **/
+fluid.defaults("fluid.tests.catTestTree", {
+    gradeNames: ["fluid.test.testEnvironment"],
+    components: {
+        cat: {       // instance of component under test
+            type: "fluid.tests.cat"
+        },
+        catTester: { // instance of test fixtures
+            type: "fluid.tests.catTester"
+        }
+    }
+});
+
+

Finally, we need to define the test fixture holder itself, fluid.tests.catTester, derived from fluid.test.testCaseHolder, +as well as the test fixture code itself. This contains a simple sequence of 2 elements, the first of which is an active fixture record which calls the invoker, and the +second of which is a passive fixture record which waits for the event to be fired and makes an assertion that its argument is correct:

+
/** Test Case Holder - holds declarative representation of test cases **/
+fluid.defaults("fluid.tests.catTester", {
+    gradeNames: ["fluid.test.testCaseHolder"],
+    modules: [ /* declarative specification of tests */ {
+        name: "Cat test case",
+        tests: [{
+            expect: 1,
+            name: "Test Asynchronous Meow",
+            sequence: [{
+                func: "{cat}.makeSoundLater",
+                args: "meow"
+            }, {
+                event: "{cat}.events.onMakeSound",
+                listener: "fluid.tests.testCatSound"
+            }]
+        }
+        ]
+    }]
+});
+
+fluid.tests.testCatSound = function (sound) {
+    jqUnit.assertEquals("CATT sound is MEO", "meow", sound);
+};
+
+
Note: In straightforward cases, the test environment component +(e.g. fluid.tests.catTestTree), and the test fixture component (e.g. fluid.tests.catTester) can be written +as the same component.
+

A more complex example of the sequence element appears below in the asyncTester example below.

+

In order to run this test case, we can either simply construct an instance of the environment tree by calling fluid.tests.catTestTree(), +or submit its name to the global driver function fluid.test.runTests as fluid.test.runTests("fluid.tests.catTestTree"). +The latter method should be used when running multiple environments within the same file to ensure that their execution is properly serialised.

+

Supported fixture records

+

The IoC testing system currently supports the following 6 types of fixture record, which can be assigned to two categories - +"executors", which actively trigger an action, and "binders" which register some form of listener in order to receive an event from +the tree under test. These are recognised using a "duck typing system" similar to that used in the Fluid Renderer. These records may +either form the complete payload for a test held in the tests section of a TestCaseHolder, or may appear as elements of an array held +in its sequence member, representing a sequence of actions (either executors or binders) to be performed by the test case.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Fixture nameField nameField typeField descriptionFixture category
Function executorfunc/funcName[*]{Function|String}The function to be executed, represented either literally (not recommended) or as an IoC reference to a function or the global name of one. It is also possible to use the + compact format for invokers to encode the contents of args within the IoC reference func in simple cases.executor
args [optional]{Object|Array}The argument or arguments to be supplied to function
Event listenerevent [*]{String}Reference to the event to which the listener will be bound. This may be either a standard IoC Reference to an event above the testCaseHolder, + or else a full IoCSS reference to an event anywhere in the tree.binder
listener[†]{Function|String}Reference to the listener to be bound to the event
args[†] [optional]{Object|Array} +

Arguments to be supplied to the listener function when it is called - these may contain IoC references including +references to the context {arguments} as described in Listener Boiling

+
listenerMaker[‡]{Function|String}A function which will produce a listener to be bound
makerArgs[‡] [optional]Object/ArrayThe arguments to be supplied to the listener maker function in order to produce a listener
Tasktask [*]{String}Reference to a function returning a Promise - such a function is known as a task.executor
args [optional]{Object|Array}The argument or arguments to be supplied to the function task
resolve[†]{Function|String}A function to be registered as an onResolve callback to the promise. + Exactly one out of the fields resolve, reject must be set.
resolveArgs[†] [optional]{Object|Array}Arguments to be supplied to the resolve function when it is called - these may contain IoC references including + references to the context `{arguments}` as described in [Listener Boiling](EventInjectionAndBoiling.md#listener-boiling).
reject[‡]{Function|String}A function to be registered as an onReject callback to the promise. + Exactly one out of the fields resolve, reject must be set.
rejectArgs[‡] [optional]{Object|Array} +

Arguments to be supplied to the reject function when it is called - these may contain IoC references including +references to the context {arguments} as described in Listener Boiling.

+
Change event listenerchangeEvent [*]{String} + Reference to the change event to be listened to. Must be the modelChanged event attached to the ChangeApplier of a component - e.g. a reference of the form {component}.applier.modelChangedbinder
path{String}A path specification matching the EL paths for which the listener is to be registered, as per the ChangeApplier API. Just one of path or spec should be used.
spec{Object}A record holding a structured description of the required listener properties, as per the ChangeApplier API. Just one of path or spec should be used.
listener[†]{Function|String}The listener to be bound to the event
args[†] [optional]{Object|Array} +

arguments to be supplied to the listener function when it is called - these may contain IoC references including +references to the context {arguments} as described in Listener Boiling. {change} is not currently supported.

+
listenerMaker[‡]{Function|String}A function which will produce a listener to be bound
makerArgs[‡] [optional]{Object|Array}arguments to be supplied to the listener maker function in order to produce a listener
jQuery event triggerjQueryTrigger [*]{String}The name of a jQuery event (jQuery eventType) to be triggered via a call to jquery.triggerexecutor
args [optional]{Object|Array}additional arguments to be supplied to + jQuery.trigger
element{jQueryable} (DOM element, jQuery, or selector)The jQuery object on which the event is to be triggered
jQuery event binderjQueryBind [*]{String}The name of a jQuery event for which a listener is to be registered via a call to jquery.onebinder
element{jQueryable} (DOM element, jQuery, or selector)The jQuery object on which a listener is to be bound
args [optional]{Object|Array}additional arguments to be supplied to jQuery.one
listener[†]{Function|String}The listener to be bound to the event
listenerMaker[‡]{Function|String}A function which will produce a listener to be bound
makerArgs[‡] [optional]{Object|Array}arguments to be supplied to the listener maker function in order to produce a listener
+

In each case in this table,

+
    +
  • In cases where "Field type" accepts a String and the description reads "reference to", the field holds an IoC reference to the value in question.
  • +
  • Fields marked with [*] (grey rows) are the essential "duck typing fields" which define the type of the fixture records and are mandatory.
  • +
  • Fields marked with [†] (red rows) and [‡] (green rows) are alternatives to each other - they may not be used simultaneously within the same fixture. +For example, you must use just one of the styles listener or listenerMaker to specify an event listener, or specify just one of +resolve or reject to a task fixture.
  • +
+

More Advanced Use of the IoC Testing Framework

+

This section covers topics of interest to more advanced users of the IoC Testing Framework. These topics relate to more flexible and dynamic ways of building up test +sequence fixtures, beyond simply listing them in the fixed array named sequence.

+

Using sequenceGrade to build up complex, reusable test sequences

+

A common patten is for groups of related tests to form an ecology, sharing some test sequence elements but with others interleaved between them +and/or some others removed or reconfigured. Working with the raw sequence array directly will lead to this testing code becoming fragile as the sequence array +indices will be unstable between different members of the ecology. Instead, the IoC Testing framework supports a variant element sequenceGrade which +uses Infusion's priority system to allow sequences to be built up piece by piece using priority directives after: and before: +expressing their relative positions in the sequence. sequenceGrade can be used together with the existing sequence element, but is more regularly +used without it.

+

The element sequenceGrade holds a string value, designating a component grade name which has been implemented by the +test case author, descended from the standard framework grade fluid.test.sequence. The framework will instantiate a component with this grade as a child component of the +testCaseHolder, and then resolve its options path sequenceElements, whose keys represent namespaces and whose values are of a type testSequenceElement, the members of which are described in the following table:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Members of a testSequenceElement entry within the sequenceElements block of a fluid.test.sequence component
MemberTypeDescription
gradeNames (optional){String|Array of String}One or more grade names, designating the grades of a component descended from fluid.test.sequenceElement
options (optional){Object}Any additional options required to construct the fluid.test.sequenceElement
priority (optional){Priority} value - see Priorities for a full explanationThe priority (if any) that the sequence element component should have over any others appearing within the same elements block + of its parent fluid.test.sequence. The namespaces used in these priority constraints will be taken from the keys of the elements hash. +
namespace (optional){String}If present, will override the key of this member of elements in representing the namespace of this element. +
+

The members gradeNames and options in the above table collectively designate an Infusion component derived from fluid.test.sequenceElement — this component will be +instantiated as a child component of the fluid.test.testCaseHolder and its options member sequence will be evaluated. This member sequence holds one or more +fixture elements just as seen in the top-level sequence element.

+

Any fixture elements listed at the traditional top-level sequence member will be grandfathered in to this system with a namespace of sequence — for example, a testSequenceElement with +a priority of "before:sequence" will be sorted before these elements.

+

Example of sequence building using sequenceGrade

+

Here is a simple example of building up a sequence of elements piece by piece, using priority constraints of the type after:<namespace> and before:<namespace>. At the top +level, we define a compound testEnvironment and testCaseHolder that defines a single module holding a single test, referencing the grade fluid.tests.elementPrioritySequence as +designating the overall sequence to be built up as a sequenceGrade. This grade is defined with four testSequenceElement entries, whose namespaces are check, end, postBeginning and beginning +(deliberately defined in a different order to that which they will be executed in). These elements each specify a priority element to guide the order in which they should be sorted into a sequence. +If you run this example, you will see them executed in the order beginning, postBeginning, sequence (the grandfathered-in top-level sequence), end and finally check.

+

The sequence makes use of two reusable sequenceElement grades, fluid.tests.elementPriority.log which defines a sequence element which logs a console message (this fixture element uses +the compact syntax for encoding simple argument lists together with the function), and fluid.tests.elementPriority.check which defines +a sequence element making a jqUnit assertion which always passes.

+
fluid.defaults("fluid.tests.elementPriority.log", {
+    gradeNames: "fluid.test.sequenceElement",
+    sequence: [{
+        func: "fluid.log({that}.options.message)"
+    }]
+});
+
+fluid.defaults("fluid.tests.elementPriority.check", {
+    gradeNames: "fluid.test.sequenceElement",
+    sequence: [{
+        func: "jqUnit.assert",
+        args: "I am the check, right at the end"
+    }]
+});
+
+fluid.defaults("fluid.tests.elementPrioritySequence", {
+    gradeNames: "fluid.test.sequence",
+    sequenceElements: {
+        check: {
+            gradeNames: "fluid.tests.elementPriority.check",
+            priority: "after:end"
+        },
+        end: {
+            gradeNames: "fluid.tests.elementPriority.log",
+            options: {
+                message: "I am at the end, just before the check"
+            },
+            priority: "after:sequence"
+        },
+        postBeginning: {
+            gradeNames: "fluid.tests.elementPriority.log",
+            options: {
+                message: "I come after the beginning"
+            },
+            priority: "after:beginning"
+        },
+        beginning: {
+            gradeNames: "fluid.tests.elementPriority.log",
+            options: {
+                message: "I will be executed first"
+            },
+            priority: "before:sequence"
+        }
+    }
+});
+
+fluid.defaults("fluid.tests.elementPriority", {
+    gradeNames: ["fluid.test.testEnvironment", "fluid.test.testCaseHolder"],
+    modules: [{
+        name: "Priority-driven grade budding",
+        tests: [{
+            expect: 1,
+            name: "Simple sequence of 4 active elements",
+            sequenceGrade: "fluid.tests.elementPrioritySequence",
+            sequence: [{
+                func: "fluid.log",
+                args: "I am the original sequence, in the middle"
+            }]
+        }
+        ]
+    }]
+});
+
+

A further author could now use grade inheritance to build on the above testing scenario to add their own element — for example, easily interleaving +an extra step before the end step:

+
fluid.defaults("fluid.tests.derivedElementPrioritySequence", {
+    gradeNames: "fluid.tests.elementPrioritySequence",
+    sequenceElements: {
+        beforeEnd: {
+            gradeNames: "fluid.tests.elementPriority.log",
+            options: {
+                message: "I come just before the end"
+            },
+            priority: "before:end"
+        }
+    }
+});
+
+fluid.defaults("fluid.tests.derivedElementPriority", {
+    gradeNames: ["fluid.test.testEnvironment", "fluid.test.testCaseHolder"],
+    modules: [{
+        name: "Derived Priority-driven grade budding",
+        tests: [{
+            expect: 1,
+            name: "Sequence with extra element inserted before end",
+            sequenceGrade: "fluid.tests.derivedElementPrioritySequence"
+        }]
+    }]
+});
+
+

Using moduleSource for dynamic test fixtures

+

To take complete control of the fixture building process, you can write arbitrary code returning the entire set of modules by replacing it with the +entry moduleSource which takes the same form as an invoker record with entries func/funcName and args, +and returns a list of fixtures in the same format as modules. Again, in a real example, this would use the sequence form of fixtures shown at the bottom of the page.

+

Before choosing this option, you are encouraged to see how far you can go with the completely declarative approach involving +sequenceGrade.

+
// Example of the above fixture written with "moduleSource"
+// Definition of modules as namespaced global so that it is available for others and processing
+fluid.tests.catTesterModules = [{
+    name: "Cat test case",
+    tests: [{
+        expect: 1,
+        name: "Test Global Meow",
+        type: "test",
+        func: "fluid.tests.globalCatTest",
+        args: "{cat}"
+    }]
+}];
+
+// A helper function which just returns the global -
+// realistically, it would assemble a sequence using more complex logic
+fluid.tests.getCatModules = function () {
+    return fluid.tests.catTesterModules;
+};
+
+fluid.defaults("fluid.tests.catTester", {
+    gradeNames: ["fluid.test.testCaseHolder"],
+    moduleSource: {
+        funcName: "fluid.tests.getCatModules"
+    }
+});
+
+

A More Complex Example using sequence

+

This example shows sequence testing of a view component fluid.tests.asyncTest with genuine asynchronous behaviour (as well as synchronous +event-driven behaviour). The component under the test is an Infusion Renderer component +which renders a button, and a model-bound text entry +field. The component defines a listener to clicks to the button which asynchronously (via window.setTimeout) fires to an Infusion event named +buttonClicked. Separately, the component binds listeners to change events from the text field, which are corresponded with the standard +ChangeApplier events resulting from corresponding changes to the component's model.

+
/** Component under test **/
+fluid.defaults("fluid.tests.asyncTest", {
+    gradeNames: ["fluid.rendererComponent"],
+    model: {
+        textValue: "initialValue"
+    },
+    selectors: {
+        button: ".flc-async-button",
+        textField: ".flc-async-text"
+    },
+    events: {
+        buttonClicked: null
+    },
+    protoTree: {
+        textField: "${textValue}",
+        button: {
+            decorators: {
+                type: "fluid",
+                func: "fluid.tests.buttonChild"
+            }
+        }
+    }
+});
+
+fluid.defaults("fluid.tests.buttonChild", {
+    gradeNames: ["fluid.viewComponent"],
+    events: {
+        buttonClicked: "{asyncTest}.events.buttonClicked"
+    },
+    listeners: {
+        "onCreate.bindClick": "fluid.tests.buttonChild.bindClick"
+    }
+});
+
+fluid.tests.buttonChild.bindClick = function (that) {
+    that.container.click(function () {
+        setTimeout(that.events.buttonClicked.fire, 1);
+    });
+};
+
+

Just as with the simple cat testing example above, we embed this component together with a suitable TestCaseHolder +within an overall testEnvironment:

+
fluid.defaults("fluid.tests.asyncTestTree", {
+    gradeNames: ["fluid.test.testEnvironment"],
+    markupFixture: ".flc-async-root",
+    components: {
+        asyncTest: {
+            type: "fluid.tests.asyncTest",
+            container: ".flc-async-root"
+        },
+        asyncTester: {
+            type: "fluid.tests.asyncTester"
+        }
+    }
+});
+
+

Walkthrough of the example sequence

+

Finally, we show the contents of the associated TestCaseHolder. In this case, the 1 test it defines holds a sequence +member prescribing a sequence of 11 states for the component, which run a total of 7 jqUnit assertions. These show +records of 5 of the types defined above - the framework ensures the correct sequence of activities (including +binding and unbinding of listeners registered in binder records) is operated.

+

The sequence first initiates rendering of the overall component with a custom global function fluid.tests.startRendering, +which checks that the component has rendered correctly and then initiates a click on the rendered button element. +The sequence then checks for the expected asynchronous Fluid event firing - it then synthesises a further click on the +button and checks for the same event again. It then synthesises an update to the rendered text field in the UI, +and listens to the expected ChangeEvent generated by this update. It changes the field again to a different value +and listens for the further ChangeEvent. Next, the sequence makes a direct call to a jqUnit assertion function to +verify that the component's model has been updated properly. Finally, it returns to the button, directly simulating +a click event using the jQueryTrigger fixture type, and listening to that event itself using the jQueryBind fixture type.

+

The TestCaseHolder makes reference to a few global utility functions which are reproduced below.

+

testCaseHolder demonstrating sequence record

+
fluid.defaults("fluid.tests.asyncTester", {
+    gradeNames: ["fluid.test.testCaseHolder"],
+    newTextValue:     "newTextValue",
+    furtherTextValue: "furtherTextValue",
+    modules: [ {
+        name: "Async test case",
+        tests: [{
+            name: "Rendering sequence",
+            expect: 7,
+            sequence: [ {
+                func: "fluid.tests.startRendering",
+                args: ["{asyncTest}", "{instantiator}"]
+            }, {
+                listener: "fluid.tests.checkEvent",
+                event: "{asyncTest}.events.buttonClicked"
+            }, { // manually click on the button
+                jQueryTrigger: "click",
+                element: "{asyncTest}.dom.button"
+            }, {
+                listener: "fluid.tests.checkEvent",
+                event: "{asyncTest}.events.buttonClicked"
+            }, { // Issue two requests via UI to change field, and check model update
+                func: "fluid.tests.changeField",
+                args: ["{asyncTest}.dom.textField", "{asyncTester}.options.newTextValue"]
+            }, {
+                 // old-fashioned "listenerMaker" - discouraged in modern code
+                listenerMaker: "fluid.tests.makeChangeChecker",
+                args: ["{asyncTester}.options.newTextValue", "textValue"],
+                path: "textValue",
+                changeEvent: "{asyncTest}.applier.modelChanged"
+            }, {
+                func: "fluid.tests.changeField",
+                args: ["{asyncTest}.dom.textField", "{asyncTester}.options.furtherTextValue"]
+            }, {
+                listenerMaker: "fluid.tests.makeChangeChecker",
+                makerArgs: ["{asyncTester}.options.furtherTextValue", "textValue"],
+                // alternate style for registering listener
+                spec: {path: "textValue", priority: "last"},
+                changeEvent: "{asyncTest}.applier.modelChanged"
+            }, {
+                func: "jqUnit.assertEquals",
+                args: ["Model updated", "{asyncTester}.options.furtherTextValue",
+                    "{asyncTest}.model.textValue"]
+            }, { // manually click on the button a final time with direct listener
+                jQueryTrigger: "click",
+                element: "{asyncTest}.dom.button"
+            }, {
+                jQueryBind: "click",
+                element: "{asyncTest}.dom.button",
+                listener: "fluid.tests.checkEvent"
+            }
+            ]
+        }
+        ]
+    }]
+});
+
+fluid.tests.checkEvent = function () {
+    jqUnit.assert("Button event relayed");
+};
+
+fluid.tests.changeField = function (field, value) {
+    field.val(value).change();
+};
+
+fluid.tests.makeChangeChecker = function (toCheck, path) {
+    return function (newModel) {
+        var newval = fluid.get(newModel, path);
+        jqUnit.assertEquals("Expected model value " + toCheck + " at path " + path, toCheck , newval);
+    };
+};
+
+fluid.tests.startRendering = function (asyncTest, instantiator) {
+    asyncTest.refreshView();
+    var decorators = fluid.renderer.getDecoratorComponents(asyncTest, instantiator);
+    var decArray = fluid.values(decorators);
+    jqUnit.assertEquals("Constructed one component", 1, decArray.length);
+    asyncTest.locate("button").click();
+};
+
+

Such repetitive sequences of standardised fixtures are best factored into reusable grades of type fluid.test.sequenceElement as seen +in the sequenceGrade example above.

+

markupFixture property supporting fixtures written against markup in the host document

+

This environment shows use of the optional markupFixture property on the testEnvironment. Since the IoC testing framework +operates setup/teardown on the unit of overall testEnvironments, we cannot (should not) make use of QUnit's standard +markup setup/teardown operated on the hard-wired DOM node with id qunit-fixture, which is on the unit of individual +test cases. The markupFixture property is to be used where the overall environment makes use DOM material where its +markup is rendered, which should be reset to its original value between runs of different testEnvironments. +The markupFixture property holds any jQueryable value, designating the overall root node of this DOM material. After +the testEnvironment has been torn down, the framework will reset the markup within this root to the contents it +enjoyed before setup of the environment.

+

Sequence progress feedback in the browser

+

When run in the browser, the framework will show feedback in the +QUnit UI relating to the sequence point reached by the system. This can be used to diagnose the last successfully +reached sequence point in the case of a "hang" caused by an unexpectedly missing event in the sequence.

+

Sequence hang test detection

+

If the next expected "binder" type fixture in a test sequence is not reached within a configurable interval, the console will +log a message of the following form to help the user to diagnose how far the system has progressed through the sequence:

+
21:26:33.262: Test case listener has not responded after 5000ms - at sequence pos 4 of 7 sequence element {
+"event": "{testEnvironment}.browser.events.onLoaded",
+"listener": "{testEnvironment}.browser.evaluate",
+"args": [
+{ Function
+
+    },
+    "md",
+    "[unified listing](http://ul.gpii.net/)"
+]
+} of fixture Confirm that the client-side renderer can render markdown...
+
+

The default value of the interval is 5000ms, which can be altered by supplying a value in ms to the option hangWait of the testEnvironment.

+

Running tests in the node.js server environment

+

The IoC Testing Framework can also be used to run test sequences in the node.js server environment - in this case +the above browser-related features (markupFixture, live sequence progress) are not provided. However, the sequence hang detection message +appears in all environments.

+

Design Discussion about the Testing Framework

+

The framework was designed over October-December 2012, with initial call for implementation on the fluid-work mailing list at +October 31st, continuing over a sequence of community meetings, and +including a summary of work in progress on December 5th. The overall goals for the testing framework were presented as these:

+
    +
  • To facilitate the testing of demands blocks that may be issued by integrators against components deployed in a particular (complex) context
  • +
  • To automate and regularise the work of "setup" and "teardown" in complex integration scenarios, by deferring this to our standard IoC infrastructure
  • +
  • To simplify the often tortuous logic required when using the "nested callback style" to test a particular sequence of asynchronous requests and responses (via events) issued against a component with complex behaviour
  • +
  • To facilitate the reuse of testing code by allowing test fixtures to be aggregated into what are the two standard forms for our delivery of implementation - a) pure JSON structures which can be freely interchanged and transformed, b) free functions with minimum dependence on context and lifecycle
  • +
+

The framework was given a substantial spring-cleaning in October 2016, implementing significant new features such as promise-based fixtures, and priority-driven +sequence grade assembly, and some support for compact invokers. A few significant bugs remain, especially when listing multiple "listener"-type fixtures +adjacent in the sequence - see FLUID-5502. The support for model change event fixtures is also very old-fashioned and needs to be reformed - see FLUID-6077.

+ +
+
+ + + +
+ +
+ + +
+ + + + + diff --git a/infusion/development/LocalizationInThePreferencesFramework.html b/infusion/development/LocalizationInThePreferencesFramework.html new file mode 100644 index 00000000..93e53472 --- /dev/null +++ b/infusion/development/LocalizationInThePreferencesFramework.html @@ -0,0 +1,807 @@ + + + + + + Localization in the Preferences Framework | Fluid Infusion + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ +
+ + +
+ + + + +
+
+ + + + + +
+ + + +
+ +
+ + +
+
+ +
+ +

Localization in the Preferences Framework

+ + + + + +
+

Localization in the Preferences Framework makes use of Message Bundles: JSON files containing the strings that are to be used in the interface.

+

Message Bundles

+

Message Bundles are JSON files containing key/value pairs representing the message key and the localized text associated with it. Each set of localized text should be contained in its own Message Bundle.

+
{
+    "slidingPanelShowText": "+ Show Display Preferences",
+    "slidingPanelHideText": "- Hide"
+}
+
+

Message Bundles cannot contain arrays. Instead a namespace should be used to group message keys together. This will require extra processing when using the messages. (See Using Message Bundles below)

+
Note: The namespace should not include ".", which is used for path parsing.
+
{
+    "contrast-default": "Default",
+    "contrast-bw": "Black on white",
+    "contrast-wb": "White on black",
+    "contrast-by": "Black on yellow",
+    "contrast-yb": "Yellow on black",
+    "contrast-lgdg": "Low contrast",
+    "contrastLabel": "Colour & Contrast"
+}
+
+

Required Components

+

MessageLoader

+

The messageLoader is an instance of a fluid.prefs.resourceLoader responsible for retrieving all of the Message Bundles added to the Prefs Editor (See Adding Message Bundles below). Message Bundles are automatically distributed to the Prefs Editor and Panels based on the configuration supplied in the auxiliary schema. However, to access the Message Bundle from other components on the IoC tree, the IoC reference {messageLoader}.resources.<messageBundle>.resourceText can be used. Additionally the defaultLocale and locale options are used to specify which localization to fetch for each bundle. (See: Specifying a localization below)

+

MsgLookup

+

The fluid.prefs.msgLookup grade is required for any component through which a message lookup is performed. The msgLookup grade wires up the msgLookup IoC reference and the lookup method for retrieving messages from the Message Bundle (See: Using Message Bundles). The msgLookup's message resolution is mediated by a fluid.messageResolver subcomponent and it is to this subcomponent that the messageBase option, containing the fetched Message Bundle, is set.

+

For a fluid.prefs.panel component, all of the fluid.prefs.msgLookup configuration is prewired. For other components to make use of this functionality, the following configuration is needed:

+
    +
  • add fluid.prefs.msgLookup as a parent grade
  • +
  • add an instance of fluid.messageResolver as a subcomponent with the member name msgResolver
  • +
  • link the messageBase to the fetched Message Bundle. +
      +
    • e.g. using an IoC reference to the messageLoader: {messageLoader}.resources.<messageBundle>.resourceText
    • +
    +
  • +
  • for an instance of fluid.rendererComponent it is also necessary to use the messageResolver's resolve method as the messageLocator
  • +
+

Adding MsgLookup to a Component

+
+

Note: Renderer components require additional configuration. (See: Adding MsgLookup to a Renderer Component)

+
+
fluid.defaults("my.component", {
+    gradeNames: ["fluid.prefs.msgLookup", "fluid.component"],
+    components: {
+        msgResolver: {
+            type: "fluid.messageResolver"
+        }
+    },
+    // should contain the strings loaded from a Message Bundle
+    // e.g. messageBase: "{messageLoader}.resources.messageBundleName.resourceText"
+    messageBase: {},
+    distributeOptions: {
+        source: "{that}.options.messageBase",
+        target: "{that > msgResolver}.options.messageBase"
+    }
+});
+
+

Adding MsgLookup to a Renderer Component

+
fluid.defaults("my.renderer.component", {
+    gradeNames: ["fluid.prefs.msgLookup", "fluid.rendererComponent"],
+    components: {
+        msgResolver: {
+            type: "fluid.messageResolver"
+        }
+    },
+    rendererOptions: {
+        messageLocator: "{msgResolver}.resolve"
+    },
+    // should contain the strings loaded from a Message Bundle
+    // e.g. messageBase: "{messageLoader}.resources.messageBundleName.resourceText"
+    messageBase: {},
+    distributeOptions: {
+        source: "{that}.options.messageBase",
+        target: "{that > msgResolver}.options.messageBase"
+    }
+});
+
+

Adding Message Bundles

+

Message Bundles can be specified through the auxiliary schema. The Preferences Framework will load all of the Message Bundles and automatically distribute them to the panels.

+

Example Auxiliary Schema

+
{
+    "namespace": "fluid.prefs.constructed",
+    "terms": {
+        "templatePrefix": "../../../framework/preferences/html",
+        "messagePrefix": "../../../framework/preferences/messages"
+    },
+    "template": "%templatePrefix/SeparatedPanelPrefsEditor.html",
+    "message": "%messagePrefix/prefsEditor.json", // Message Bundle for the preference editor itself
+    "textSize": {
+        "type": "fluid.prefs.textSize",
+        "enactor": {
+            "type": "fluid.prefs.enactor.textSize"
+        },
+        "panel": {
+            "type": "fluid.prefs.panels.textSize",
+            "container": ".flc-prefs-text-size",
+            "template": "%templatePrefix/PrefsEditorTemplate-textSize.html",
+            "message": "%messagePrefix/textSize.json" // Message Bundle for the fluid.prefs.panels.textSize component
+        }
+    },
+    "lineSpace": {
+        "type": "fluid.prefs.lineSpace",
+        "enactor": {
+            "type": "fluid.prefs.enactor.lineSpace",
+            "fontSizeMap": {
+                "xx-small": "9px",
+                "x-small": "11px",
+                "small": "13px",
+                "medium": "15px",
+                "large": "18px",
+                "x-large": "23px",
+                "xx-large": "30px"
+            }
+        },
+        "panel": {
+            "type": "fluid.prefs.panels.lineSpace",
+            "container": ".flc-prefs-line-space",
+            "template": "%templatePrefix/PrefsEditorTemplate-lineSpace.html",
+            "message": "%messagePrefix/lineSpace.json" // Message Bundle for the fluid.prefs.panels.lineSpace component
+        }
+    }
+}
+
+

Using Message Bundles

+

In the ProtoTrees

+

When using a fluid.rendererComponent, strings from the Message Bundles are rendered into the templates through a protoTree, using the messagekey with a message key from the Message Bundle:

+ + + + + + + + + + + + + +
Example use in a ProtoTreeJSON Message Bundle
fluid.defaults("fluid.prefs.panels.linksControls", {
+    // ...
+    protoTree: {
+        label: {messagekey: "linksLabel"},
+        linksChoiceLabel: {messagekey: "linksChoiceLabel"},
+        inputsChoiceLabel: {messagekey: "inputsChoiceLabel"},
+        links: "${links}",
+        inputsLarger: "${inputsLarger}"
+    }
+});
{
+    "linksLabel": "Links & buttons",
+    "linksChoiceLabel": "Underline and bold",
+    "inputsChoiceLabel": "Enlarge buttons, menus, text-fields, and other inputs"
+}
+

IoC References

+

Message Bundles can also be resolved directly through an IoC reference making use of the msgLookup property, which is automatically created for any panel component. This process is quite similar to how IoC references to selectors are resolved.

+
fluid.defaults("fluid.slidingPanel", {
+    // ...
+    strings: {
+        showText: "{that}.msgLookup.slidingPanelShowText",
+        hideText: "{that}.msgLookup.slidingPanelHideText"
+    }
+    // ...
+});
+
+

There are other, more complex cases where an array of strings is required (for example, for a set of radio buttons or a drop-down). In these cases, a stringArrayIndex in the components options needs to be specified. This defines the following:

+
    +
  1. which strings to include
  2. +
  3. the order in which they should be returned.
  4. +
+

It is accessed the same way that an individual string is referenced, except that reference should point to the key in the stringArrayIndex instead of a single string name. In the example below, the stringArrayIndex is used to define the theme string bundle, and the theme string bundle is referenced within the protoTree.expander.tree ('optionnames: "${{that}.msgLookup.theme}"'):

+
fluid.defaults("fluid.prefs.panel.contrast", {
+    // ...
+    stringArrayIndex: {
+        // the theme values correspond to message keys in the Message Bundle.
+        theme: ["contrast-default", "contrast-bw", "contrast-wb", "contrast-by", "contrast-yb", "contrast-lgdg"]
+    },
+    protoTree: {
+        label: {messagekey: "contrastLabel"},
+        expander: {
+            type: "fluid.renderer.selection.inputs",
+            rowID: "themeRow",
+            labelID: "themeLabel",
+            inputID: "themeInput",
+            selectID: "theme-radio",
+            tree: {
+                optionnames: "${{that}.msgLookup.theme}", // IoC reference to the array of strings
+                optionlist: "${{that}.options.controlValues.theme}",
+                selection: "${value}"
+            }
+        }
+    }
+    // ...
+});
+
+

The values in the theme array, within stringArrayIndex, directly correspond to namespaced message keys from the Message Bundle.

+
{
+    "contrast-default": "Default",
+    "contrast-bw": "Black on white",
+    "contrast-wb": "White on black",
+    "contrast-by": "Black on yellow",
+    "contrast-yb": "Yellow on black",
+    "contrast-lgdg": "Low contrast"
+}
+
+

Direct Access

+

The strings can also be accessed directly, outside of the context of IoC references or renderer protoTrees (for example, in an invoker function), by making function calls to the internal string bundle lookup() method.

+
that.msgLookup.lookup(value); // where value is either the string name or the key in the stringArrayIndex to lookup.
+
+

Specifying a Localization

+

The messageLoader is implemented using fluid.resourceLoader. It takes defaultLocale and locale options for specifying which localized Message Bundle to fetch. The locale option specifies the localization desired. By default it is sourced from the prefsEditorLoader's settings object, "{prefsEditorLoader}.settings.locale". The defaultLocale provides a fallback to use if the desired localization cannot be located. By default it is sourced from the prefsEditorLoader's defaultLocale option.

+

See fluid.resourceLoader options for the accepted form of locale and defaultLocale. +See fluid.resourceLoader fallback rules for fallback rules when attempting to locate a localization.

+

Bundle Naming

+

The Message Bundles should conform to the following naming convention to facilitate discovery by the messageResolver: +<bundle name>_<language code>_<country code>.json

+

The following are all valid Message Bundle names and will work with the above Fallback Rules:

+
    +
  • prefsEditor_fr_CA.json
  • +
  • prefsEditor_fr.json
  • +
  • prefsEditor.json
  • +
+ +
+
+ + + +
+ +
+ + +
+ + + + + diff --git a/infusion/development/ModelRelay.html b/infusion/development/ModelRelay.html new file mode 100644 index 00000000..21f7a66f --- /dev/null +++ b/infusion/development/ModelRelay.html @@ -0,0 +1,850 @@ + + + + + + Model Relay | Fluid Infusion + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ +
+ + +
+ + + + +
+
+ + + + + +
+ + + +
+ +
+ + +
+
+ +
+ +

Model Relay

+ + + + + +
+

Using the Infusion Model Relay system, you can supply declarative configuration which specifies rules for keeping multiple pieces of model state around the component tree automatically up to date with each other's changes.

+

We sometimes use the term model skeleton to refer to a connected set of models around the component tree which are related together by relay rules. This term illustrates that these models form an inner core which +arrive at a set of mutually consistent model values, before they start to notify listeners out in the periphery of each component (generally, in its view layer). The system might make several passes over a model skeleton in +order to satisfy all the relay rules, and then update all modelListeners as a single operation — presenting them with a consistent snapshot of the state of the entire +skeleton all at once. This guarantees that no model listener ever sees a model value which is inconsistent with the relay rules which are meant to be keeping them in step, which greatly enhances the reliability and clarity of the +application design.

+

Every Infusion component descended from the grade fluid.modelComponent (a model-bearing component) supports a configuration area named modelRelay in which these rules can be defined, as well as allowing a short-form implicit syntax in the model area which can be used where the model values to be synchronised are identical at each end of the relationship.

+

Two styles for configuring model relay

+

There are two styles of configuration for setting up model relay — firstly, using the implicit syntax which just consists of IoC References from the model configuration for one model-bearing component to another — +that is, in the component's configuration under the top-level model entry. Secondly, the explicit syntax which involves an entry in the component's top-level modelRelay block expressing a more complex rule, +most likely involving some form of Model Transformation to apply during the relay process. Both of these styles will set up a permanent and bidirectional relationship between the two models at the ends of the relay — +the relationship will be established as the components construct (during the initial transaction), and will persist until one of the components at the endpoints is destroyed.

+

How model relay updates propagate

+

A set of models which are linked by relay rules are called a model skeleton. Whenever an update (via its ChangeApplier) is received to any model which is part of the skeleton, a transaction +begins in order to propagate it to all the related models with which it should be synchronised. The framework will keep propagating the change to all the models in the skeleton until they have all been brought up to date — +however, these updates will initially occur privately within the transaction and any external listeners (modelListeners) will not be notified during the update process. Once the framework has computed final synchronised values for all of the models in the skeleton, the transaction ends, and then all listeners (via their respective ChangeAppliers) will be notified all at once.

+

If any of these listeners have a priority field attached to the listener declaration, the framework will sort all of these listeners globally across the entire model skeleton impacted by the change, before starting to +notify them.

+

The initial transaction

+

Whenever a new model-bearing component (or an entire tree of model-bearing components) constructs, there will be a particular, large style of update transaction known as an initial transaction. +This is very similar to any other synchronisation transaction caused by a model relay update, although it will typically involve more data since all of the initial values of all the involved models must be taken into account — +these result from any of the normal sources for component configuration, including defaults, user-supplied values, +distributed options, etc. At the end of the initial transaction, any declaratively registered listeners will observe all of the new models go through the transition from holding their primordial value of undefined +to holding their correct synchronised initial values. As with any other relay update transaction, this will appear to all the observers to occur in a single step even though from the point of view of the framework it may be a +complex process involving many passes through the components.

+

You can control which components have the default values for their models honoured and which ignored during the initial transaction, by using the directives forward and backward in the modelRelay block - these are discussed in the section +Controlling Propagation Through a Relay Rule.

+

Implicit model relay style

+

This is the most straightforward style for setting up model relay. This takes the form of a simple IoC Reference between one component's model and other. +Here is a component which has a child component which sets up a model relay relationship with it:

+
fluid.defaults("examples.implicitModelRelay", {
+    gradeNames: "fluid.modelComponent",
+    model: {
+        parentValue: 3
+    },
+    components: {
+        child: {
+            type: "fluid.modelComponent",
+            options: {
+                model: {
+                    // implicit relay rule setting up synchronisation with one field in parent's model
+                    childValue: "{examples.implicitModelRelay}.model.parentValue"
+                }
+            }
+        }
+    }
+});
+
+var that = examples.implicitModelRelay();
+// next line logs 3 - parent's value has been synchronised to child on construction
+console.log(that.child.model.childValue);
+
+

The IoC expression {examples.implicitModelRelay}.model.parentValue here refers from one field of the child's model called childValue to one field of the parent's model called parentValue. +This sets up a permanent model relay linking these two fields. From the construction point onwards, the framework will ensure that all updates made to one field will be reflected in the other. +The framework will naturally ensure that if either of the components at the endpoint are destroyed, the relay will be torn down.

+

For example, here are some further pieces of code we could write, following on from the above example — these use the programmatic ChangeApplier API although in practice it is +desirable to express as many such updates as declaratively as possible:

+
that.applier.change("parentValue", 4);      // update the parent's model field to hold the value 4
+console.log(that.child.model.childValue);   // 4 - The child's model value has been updated
+that.child.applier.change("childValue", 5); // update the child's model to hold the value 5
+console.log(that.model.parentValue);        // 5 - The parent's model value has been updated
+
+

Explicit model relay style

+

This style is used when we require a Model Transformation rule to mediate between the updates synchronising one model value with another, or more control over the occasions +when the updates occur. +The simple implicit style is only capable of "moving" the same value between one path and another. Sometimes different models choose different strategies for representing "the same value" — for example, +one component might represent a sound volume level on a scale of 0-100, whereas another might use a range of 0-1. +The framework is capable of accommodating this kind of difference in viewpoint by allowing the user to explicitly list a transformation rule relating one model's instance of a value with another. +This is done using the modelRelay section of a component's top-level options. Here is the layout of this options section:

+

Layout of top-level modelRelay section of fluid.modelComponent options

+

The modelRelay options block may take one of the following three forms -

+
    +
  • A single modelRelayBlock holding a single model relay rule - OR
  • +
  • An array of modelRelayBlock sections - OR
  • +
  • A map of keys (namespaces) to modelRelayBlock sections
  • +
+

The first and third cases are disambiguated by looking for a member of the block named target which holds a String value - required for a single modelRelayBlock.

+

modelRelayBlock layout

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Option nameTypeDescriptionExample
source (usual, but not required)String (EL Reference or short local path) +

The source model path to be linked by this relay rule. This option can be omitted if all arguments to the transform are presented as IoC references in its definition — as, for example, with fluid.transforms.free.

+
"volume" / "{someComponent}.model.volume"
target (required)String (EL Reference or short local path)The target model path to be linked by this relay rule. This option must always be present."volume" / "{someComponent}.model.volume"
singleTransformJSON (single Model Transformation rule)A short form which can be used where the transformation consists of just a single Model Transformation transform rule. Use either this or transform +{ + type: "fluid.transforms.linearScale", + factor: 100 +} +
transformJSON (full Model Transformation document)A long form of singleTransform which allows any valid Model Transformation document to be used to mediate the relay. This is an infrequently used form.See the list of available transformation functions for more information.
forward (optional)sourceFilterRecordControl the situations in which the forward leg of the transform operates - by listing one or more change sources which must match (includeSource) or not match (excludeSource) in the current transaction.{excludeSource: "init"}
backward (optional)sourceFilterRecordControl the situations in which the backward leg of the transform operates - by listing one or more change sources which must match (includeSource) or not match (excludeSource) in the current transaction.{excludeSource: "init"}
namespace (optional)String +

Identifies this model relay rule uniquely within its parent component. This namespace may be used to override the relay rule from a derived grade, or to control the priority of +one relay rule with respect to another by using the priority field. +Compare with the similar uses of namespaces within Infusion events, model listeners, etc. As with modelListener, this +value will be taken from the key of the modelRelayBlock if it is in the "map of keys" form and the namespace member is absent.

+
"resolveCentre"
priority (optional)Priority (Number|String)In complex scenarios where multiple model relay rules might be activated in response to a particular invalidation of the model, + it can be useful to be able to control which one is picked first. Depending on the implementation of the model + relay rules, very different model states might result from the final relay resolution, and only one of these might be acceptable to the user."after:resolveCentre"
+

sourceFilterRecord in an explicit model relay block

+

A sourceFilterRecord holds members with one or both of the names +excludeSource and includeSource. These members hold one or more strings representing +change sources which can be used to control the situations in which the relay rule holding the record operates. +These strings will be matched against all of the sources currently marked to the current transaction, and will +prevent the relay being triggered (for excludeSource or allow it +(for includeSource). These rules are exactly the same as the source matching +rules for the members of the same names in a modelListener record.

+

Example showing explicit relay rule

+

Here is an example of two components linked by explicit model relay representing the situation we described earlier:

+
fluid.defaults("examples.explicitModelRelay", {
+    gradeNames: "fluid.modelComponent",
+    model: {
+        volume: 95
+    },
+    components: {
+        child: {
+            type: "fluid.modelComponent",
+            options: {
+                modelRelay: {
+                    source: "{examples.explicitModelRelay}.model.volume",
+                    target: "volume",
+                    singleTransform: {
+                        type: "fluid.transforms.linearScale",
+                        factor: 0.01
+                    }
+                }
+            }
+        }
+    }
+});
+
+var that = examples.explicitModelRelay();
+console.log(that.child.model.volume); // 0.95 - transformed during the initial transaction to sync with outer value
+that.applier.change("volume", 50);
+console.log(that.child.model.volume); // 0.5 - transformed to update with outer value
+that.child.applier.change("volume", 1);
+console.log(that.model.volume);       // 100 - inverse transformed to accept update from child component
+
+

In general those transformations which are invertible are the best choice for this kind of linkage. If the transforms are not invertible (or have no inverse defined in the framework), +the updates will propagate only in one direction. This can still be highly useful. In addition to its invertibility, the propagation of updates through a relay rule can be fine-tuned by the options +forward and backward, as described in the following section.

+

Controlling propagation through a relay rule

+

Each explicit relay rule can accept options forward and backward which allows the configurer to +control the occasions on which the relay is operated in those directions — that is, forward +representing the direction from source to target, and backward representing the direction +from target to source. If the transform is not invertible, the backward option is ignored, +and the system will behave as if it read backward: {excludeSource: "*"}.

+

Some use cases for controlling propagation relative to the init source are:

+
    +
  • Operating only during the initial transaction with includeSource: "init",
  • +
  • Operating only during the "mature life" of the component after construction with excludeSource: "init"
  • +
+

Restricting the relay with excludeSource: init in one direction can often be useful to express the fact that whatever default value is +configured into the model at the other end of the relay is to be ignored. This is frequently useful, since default model values typically propagate outwards from an implementation core and +are normally expected to overwrite defaults which are held in more reusable components held at the periphery.

+

A rule leg marked excludeSource: "*" can be useful to express the fact that a particular component +is only expected to act as a source of updates and is not prepared to receive them from the outside — +it may control some kind of device, for example, which by construction cannot accept input.

+

A rule leg marked includeSource: "init" is less often useful, but can be helpful in +contributing special initial values to certain kinds of "integrated models".

+

Compare these directives with the similar ones used for source guarding in model listeners.

+

Example showing propagation directive in explict relay

+

Here the same example that we saw illustrating explicit relay above showing the use of a propagation directive, in this case backward: {excludeSource: "init"}. In this +case the directive is useful because we have added a default initial value 0.5 to the volume field at the forward end of the relay which conflicts with the value that the relay would establish as it +synchronises the value 95 from the backward end. In this case, we want the backward value to take precedence during the initial transaction, but the relay to operate normally in both directions once both +components are fully constructed. This component behaves identially as in the transcript in the above example.

+
fluid.defaults("examples.modelRelayPropagation", {
+    gradeNames: "fluid.modelComponent",
+    model: {
+        volume: 95
+    },
+    components: {
+        child: {
+            type: "fluid.modelComponent",
+            options: {
+                model: {
+                    volume: 0.5 // conflicting default initial value
+                },
+                modelRelay: {
+                    source: "{examples.modelRelayPropagation}.model.volume",
+                    target: "volume",
+                    backward: {
+                        excludeSource: "init"
+                    },
+                    singleTransform: {
+                        type: "fluid.transforms.linearScale",
+                        factor: 0.01
+                    }
+                }
+            }
+        }
+    }
+});
+
+

Applying priorities to model relay rules

+

Just as with many other directives in the framework (e.g. listeners, model listeners, options distributions, etc.) a model +relay rule can be supplied with a priority annotation. In many cases, the exact order +in which model relay rules are operated is not important, and the different orders will lead to the same +final synchronised model state. However, in some cases where several transform-based model relay rules +might react to the same model change, it might be important to ensure that one of them is always chosen +first.

+

General notes on model relay rules

+

NOTE: Any plain function which accepts one argument and returns one argument is suitable to appear in the type field of a transform or singleTransform rule — e.g. fluid.identity. This is a quick and easy way +of setting up "ad hoc" transforms. If the function accepts multiple arguments, or an argument which holds a complex structure derived from several values around the model, you should instead use the transform with type +fluid.transform.free and encode them in its option named args. Note that no such transforms will be invertible — they can only propagate updates from source to target.

+

NOTE: The documentation for the available transformation functions mentions, for each input or output of the transform, +a parallel option whose name ends in Path - e.g. inputPath, outputPath, leftPath, rightPath, etc. - these forms with Path are not used in relay documents — the relay system automatically takes up +the role of gearing values to the arguments of transforms when you write an IoC reference in any of those slots. Relay documents are just written with the simple option names, e.g. input, output, left, right etc.

+

Note on future evolution and some technicalities

+

The use of the term "transactions" to describe the process by which the model skeleton updates is not entirely consistent with its use elsewhere in the industry. +Those interested in more semantic and detailed discussion can consult New Notes on the ChangeApplier +which describes how the new relay-capable implementation differs from the old one, and how our approach to and thinking about coordinated model updates is different to that of other frameworks. +A more recent page of notes describing the future evolution of model relay can be found at New New Notes on the ChangeApplier.

+ +
+
+ + + +
+ +
+ + +
+ + + + + diff --git a/infusion/development/ModelTransformationAPI.html b/infusion/development/ModelTransformationAPI.html new file mode 100644 index 00000000..d97ba071 --- /dev/null +++ b/infusion/development/ModelTransformationAPI.html @@ -0,0 +1,4240 @@ + + + + + + Model Transformation API | Fluid Infusion + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ +
+ + +
+ + + + +
+
+ + + + + +
+ + + +
+ +
+ + +
+
+ +
+ +

Model Transformation API

+ + + + + +
+

The model transformation framework is a core part of Infusion and allows you to transform an input +model (JSON structure) based on a set of rules. +The result will be a new model, built according to the rules specified and the input model. Many kinds of +transformation can also have their inverses computed +and operated automatically.

+

Any model transformation can be supplied as part of a model relay rule +registered in a fluid.modelComponent's modelRelay +block - the system will then constantly operate the transformation rule whenever there is a model change to keep the +linked model in sync. Note that the modelRelay system does not support xxxPath style inputs, and steer towards +the use of SingleTransform rather than full transforms. For more information, see the documentation on +model relay.

+

The user may also operate model transformation rules manually by use of the +fluid.model.transformWithRules API.

+

List of available transformations

+

Below is a list of all the available transformations in the framework. For details on each, see the individual description in the Transformation Functions section.

+ +

fluid.model.transformWithRules(source, rules[, options])

+

Function to manually apply transformation rules to a source model. It will return the transformed source model.

+
    +
  • source {Object} The input model to transform - this will not be modified
  • +
  • rules {Transform} A transformation rules object containing instructions on how to transform the model (see below for more information)
  • +
  • options {Object} A set of options governing the kind of transformation to be operated. At present this may contain the values: +
      +
    • isomorphic {Boolean} If true indicating that the output model is to be governed by the same schema found in the input model, or
    • +
    • flatSchema {Object: String -> String} Holding a flat schema object which consists of a hash of EL path specifications with wildcards, to the string values "array"/"object" defining the schema to be used to construct missing trunk values. This option is not part of the official API and might be subject to change.
    • +
    +
  • +
  • Returns: {Object} The transformed model
  • +
+

Structure of a transformation document

+

The top-level structure of a full transformation document {Transform} is keyed by output EL paths and looks like this:

+
{
+    <output-el-path1>: <input-el-path1> OR {SingleTransform},
+    <output-el-path2>: <input-el-path2> OR {SingleTransform}
+    // ...
+}
+
+

A {SingleTransform} record is as follows:

+
{
+    transform: {
+        "type": <transform-type>
+        // ...
+    }
+}
+
+

where transform-type is the name of a registered transformation function. This will be a function grade derived from the base grade fluid.transformFunction. +Each transformation function can accept arbitrary additional options on the level of the "type" key, but many are derived from the grade fluid.standardInputTransformFunction which accept a standard input value named input (or path named inputPath) and/or derived from the grade fluid.standardOutputTransformFunction +which accepts an output path named outputPath.

+

In general you should consult the below documentation for each transform function to +see the names and interpretations of its options. Many transforms will themselves accept configuration of type {SingleTransform} in their options, leading transform documents to have a recursive structure.

+

Reserved words

+

The model transformation system contains some reserved words - words which have a special meaning when used as JSON keys. +In general, the reserved words of the model transformation system are:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
keyReserved in
transformeverywhere
literalValueeverywhere
typeinside all transform blocks
inputPathinside all standardInputTransformFunctions
inputinside all standardInputTransformFunctions, fluid.transforms.linearScale
outputPathinside all standardOutputTransformFunctions, fluid.transforms.delete, fluid.transforms.valueMapper (match and nomatch directives)
valuesfluid.transforms.firstValue
defaultInputPathfluid.transforms.valueMapper (top level)
defaultOutputPathfluid.transforms.valueMapper (top level)
defaultOutputValuefluid.transforms.valueMapper (top level)
matchfluid.transforms.valueMapper (top level)
partialMatchesfluid.transforms.valueMapper (inside match)
inputValuefluid.transforms.valueMapper (inside match)
outputValuefluid.transforms.valueMapper (inside match/noMatch)
outputUndefinedValuefluid.transforms.valueMapper (inside match/noMatch)
leftfluid.transforms.binaryOp
rightfluid.transforms.binaryOp
operatorfluid.transforms.binaryOp
conditionfluid.transforms.condition
truefluid.transforms.condition
falsefluid.transforms.condition
factorfluid.transforms.linearScale
offsetfluid.transforms.linearScale
rangesfluid.transforms.quantize
upperBound(inside entries of) fluid.transforms.quantize
output(inside entries of) fluid.transforms.quantize
minfluid.transforms.inRange
maxfluid.transforms.inRange
keyfluid.transforms.indexArrayByKey, fluid.transforms.deindexIntoArrayByKey
innerValuefluid.transforms.indexArrayByKey, fluid.transforms.deindexIntoArrayByKey
arrayfluid.transforms.indexOf, fluid.transforms.dereference
notFoundfluid.transforms.indexOf, fluid.transforms.dereference
offsetfluid.transforms.indexOf, fluid.transforms.dereference
templatefluid.transforms.stringTemplate
termsfluid.transforms.stringTemplate
funcfluid.transforms.free
argsfluid.transforms.free
presentValuefluid.transforms.arrayToSetMembership, fluid.transforms.setMembershipToArray
missingValuefluid.transforms.arrayToSetMembership, fluid.transforms.setMembershipToArray
optionsfluid.transforms.arrayToSetMembership, fluid.transforms.setMembershipToArray
+

Besides these, most transformations have further reserved words. These are briefly listed here, with the transformation(s) they belong to. They will be more fully described for each relevant transformation.

+

Grades of transformations

+

Transformation can be registered with different grades (or types), which define how they handle inputs and outputs. The standard base grades recognized by the framework as follows:

+

standardInputTransformFunction

+

These transformations take a single input which can be defined in two ways:

+
    +
  • input: As a constant or nested transform function
  • +
  • inputPath: As a path reference to the input (model) by using the key inputPath.
  • +
+

If both keys are used in a transform declaration, the value found at the inputPath will be used if something is found there. If not, the transformer will default to using the value defined by input.

+

More details are given on input and inputPath later in this document.

+

standardOutputTransformFunction:

+

These transformations only outputs a single value. The value of the output depends on the transformation, but the path to output can be defined by:

+
    +
  • outputPath: An EL path to where the transformation should output its value to.
  • +
+

The output path provided here is always relative to the current path. See section on building the output document structure, found further down.

+

standardTransformFunction:

+

These transformations satisfy the requirements of both standardInputTransformFunction and standardOutputTransformFunction

+

multiInputTransformFunction:

+

These transformations allow for multiple inputs. In their default blocks, besides the gradename, they require an inputVariables key. The value of this should be a hash of key-value pairs, where the key is the variable name and the value is the default value to assign to the variable in case no matching constant or path is found. For each of the variables declared, the system will look up the source-model path defined by Path in the transform and the declared in the transform. They will behave in the same way as input and inputPath, where the path takes priority , so the non-path value can be used as fallback if nothing found at the path.

+

An example of a multiInputTransformFunction declaration:

+
fluid.defaults("fluid.transforms.weirdScale", {
+    "gradeNames": [ "fluid.multiInputTransformFunction" ],
+    "inputVariables": {
+        "factor": 1,
+        "randomSeed": 0
+    }
+});
+
+

The above declaration defines two input variables; factor and randomSeed. Taking as an example the factor, the first thing that will be looked up in the transform is the value of factorPath. If it is defined, this path will be looked up in the source-model and this will be assigned to factor if found. If it is not found, the value (expanded if necessary) of the "factor" key of the transform will be used if found. If neither is found, the default value of 1 will be assigned to factor.

+

The inputVariables will be available to fluid.transforms.weirdScale as the first argument in the form of an object keyed by variable names with the values as described above.

+

Combining standardInputTransformFunction and multiInputTransformFunction:

+

A transformation can have both the grades standardInputTransformFunction and multiInputTransformFunction. This is useful if one has a variable named input (or inputPath) and want to take advantage of the frameworks built in support for standardInputTransformations, but also has other inputs that need supporting. The behavior will be a combination of the standardInputTransformFunction and multiInputTransformFunction. In the below example, the transform function will have three inputs available to resolve, namely factor, offset and input (and their *Path equivalents), with the input not requiring to be expressed in the inputVariables declaration of the defaults block.

+

The input variables will be available to the fluid.transforms.scaleValue function in the following way: the first argument is the input (as for the standardInputTransformFunction). The remaining variables will be passed as the second argument in the form of an object keyed by variable names with the values as described in the multiInputTransformFunction section above.

+
fluid.defaults("fluid.transforms.scaleValue", {
+    "gradeNames": [ "fluid.standardTransformFunction", "fluid.multiInputTransformFunction" ],
+    "inputVariables": {
+        "factor": 1,
+        "offset": 0
+    }
+});
+
+

Building the output document structure

+

The ultimate goal when using the model transformation is to create an output document with some desired structure and +values (based on information in some input document). Therefore it is important to know how to build the output +structure of the document. There are different ways of achieving this, and these will be explained below.

+

Keys in the top-level of your document are output el-paths

+

All keys at the top level of the transformation rules document are interpreted as output paths. Each subsequent key +will also be interpreted as so; until a transform or literalValue keyword is encountered. Anything inside a +transform directive is interpreted according to the general transformation rules (see below), and the literalValue +keyword results in its content being output to the current output path.

+

Example

+ + + + + + +
sourceruleOutput
+

+{
+    "my": {
+        "number": 93.56
+    }
+}
+
+
+

+{
+    "Magnification": {
+        "dataType": {
+            "literalValue": "integer"
+        },
+        "value": {
+            "transform": {
+                "type": "fluid.transforms.round",
+                "inputPath": "my.number"
+            }
+        }
+    }
+}
+
+
+

+{
+    "Magnification": {
+        "dataType": "integer"
+        "value": 94
+    }
+}
+
+
+

In the above example, the output structure is defined via the top-level keys: Magnification, dataType and value. +Whenever the transformation system encounters a key, that is a non-reserved word, and that is not inside a transform +block, it will consider that a change in the output path / output structure.

+

So walking through the above rules, the first thing we encounter is Magnification. Since this is not a reserved word, +the system will ensure that everything within that block is output relative to the path Magnification. The same goes +for dataType - everything inside here will be output relative to the path dataType (which in turn is relative to +"Magnification", giving us the output path: magnification.dataType). literalValue inside dataType is a reserved +word, so instead of interpreting this as a change to the output structure, it will be resolved by the model +transformation system . The literalValue key, is a way to tell the system to literally print the value to the +current output path, which as described above is at this location Magnification.dataType. More information about +the literalValue keyword can be found in the below.

+

As with dataType, the value key under Magnification means that we change the output path for anything in that +block. transform is a keyword, so this does not affect the output path. As previously mentioned, once inside a +transform block, keys will no longer be interpreted as output paths. As a result, the type and input will not +affect the output path. This means that whatever the result of the rules inside the transform block of the value +key block is, they will get output to Magnification.value path. In this case, the value 94.

+

Explicitly outputting to a (relative) path

+

An alternative way to specifying where you want to output values is by using the outputPath key. The value of +outputPath defines the relative location where you want to output the result of the transform. outputPath can +only be specified in a transform block(i.e. at the same level as the type specification for the transform). +outputPath works for most transformations (namely any transform of the grade standardOutputTransformFunction +or standardTransformFunction).

+

Returning to the example in the previous section, this could be written as:

+ + + + + + + + +
sourceruleOutput

+{
+    "my": {
+        "number": 93.56
+    }
+}
+

+{
+    "transform": [
+        {
+            "type": "fluid.transforms.literalValue",
+            "input": "integer",
+            "outputPath": "Magnification.dataType"
+        }, {
+            "type": "fluid.transforms.round",
+            "inputPath": "my.number",
+            "outputPath": "Magnification.value"
+        }
+    ]
+}
+
+

+{
+    "Magnification": {
+        "dataType": "integer"
+        "value": 94
+    }
+}
+

+{
+    "my": {
+        "number": 93.56
+    }
+}
+

+{
+    "Magnification": {
+        "transform": [
+            {
+                "type": "fluid.transforms.literalValue",
+                "input": "integer",
+                "outputPath": "dataType"
+            }, {
+                "type": "fluid.transforms.round",
+                "input": "my.number",
+                "outputPath": "value"
+            }
+        ]
+    }
+}
+
+

+{
+    "Magnification": {
+        "dataType": "integer"
+        "value": 94
+    }
+}
+
+

Looking at the first example, the literalValue transformation specifies that the result should be output to the path +Magnification.dataType. Same for the fluid.transforms.round transform, where the output will be sent to the path +Magnification.value.

+

The second example above, shows how the outputPath will be relative to the current output path. Since the entire block +is keyed by Magnification, this becomes the current output path. When we encounter outputPath: dataType, this is +interpreted as being relative to the Magnification path, and hence result in the full output path Magnification.dataType.

+

Return values, Arrays of transforms and outputting arrays

+

Return values

+

In general, transformations pass their result one level up, unless outputPath is explicitly given. +This is the reason that something like the below works:

+ + + + + + +
sourceruleOutput

+{
+    "display": {
+        "magnification": 1.5412
+    }
+}
+

+{
+    "Magnification": {
+        "transform": {
+            "type": "fluid.transforms.round",
+            "input": {
+                "transform": {
+                    "type": "fluid.transforms.linearScale",
+                    "inputPath": "display.magnification",
+                    "factor": 100
+                }
+            },
+            "outputPath": "Percent"
+        }
+    }
+}
+
+

+{
+    "Magnification": {
+        "Percent": 154
+    }
+}
+
+

Here the result of the inner fluid.transforms.linearScale transform is passed to the fluid.transforms.round +transform, which in turn outputs it to the outputPath. Whenever an outputPath is specified, the result is output +to the output document instead, and hence not returned to the parent transform function (if any). Instead what is +returned to the parent function is undefined. Generally, this behavior should be rather intuitive.

+

Arrays of transforms

+

Things get slightly more complicated when we introduce arrays of transforms. Whenever you specify an array of +transforms (i.e. transform: [ (...) ]), nothing will get returned to the outer transform. The consequence of this is +that if you have arrays of transforms, you are required to explicitly output values via outputPath if you want +anything output. Some examples to clarify this rule:

+ + + + + + + + +
sourceruleOutput

+{
+    "display": {
+        "magnification": 1.5412
+    }
+}
+

+{
+    "Magnification": {
+        "transform": [
+            {
+                "type": "fluid.transforms.literalValue",
+                "input": "percent",
+                "outputPath": "dataType"
+            }, {
+                "type": "fluid.transforms.round",
+                "input": {
+                    "transform": {
+                        "type": "fluid.transforms.linearScale",
+                        "inputPath": "display.magnification",
+                        "factor": 100
+                    }
+                },
+                "outputPath": "value"
+            }
+        ]
+    }
+}
+
+

+{
+    "Magnification": {
+        "dataType": "percent"
+        "value": 154
+    }
+}
+

+{
+    "display": {
+        "magnification": 1.5412
+    }
+}
+

+{
+    "Magnification": {
+        "transform": [
+            {
+                "type": "fluid.transforms.literalValue",
+                "input": "percent"
+            }, {
+                "type": "fluid.transforms.round",
+                "input": {
+                    "transform": {
+                        "type": "fluid.transforms.linearScale",
+                        "inputPath": "display.magnification",
+                        "factor": 100
+                    }
+                }
+            }
+        ]
+    }
+}
+
+

+{}
+
+

This first example works because we have specified the outputPath for both transforms. If we omit these, as in the +second example, nothing is output to the document. Note that the fluid.transforms.linearScale function does not +have an outputPath. Instead its output is used as a return value passed to fluid.transforms.round - this is +because the linearScale is not part of an array of transforms, but rather a regular entry in a transform.

+

Outputting Arrays

+

Outputting an array in the document is very straightforward. One simply specifies it, as one would normally in +JavaScript/JSON - using []. The array will be populated with the results of the content as one would expect as well. +If one of the array entries has a result of undefined (e.g. due to an inputPath referencing something non-existent +in the input model -- see below), this would also populate a spot in the array - to ensure that indexes of results are +consistent.

+

As an example, take the following transformation:

+ + + + + + +
sourceruleOutput

+{
+    "petlist": {
+        "cat": "Kaspar the Titanic Cat",
+        "frog": "Portuguese Steve"
+    }
+}
+

+{
+    "my_pets": [
+        {
+            "transform": {
+                "type": "fluid.transforms.value",
+                "inputPath": "petlist.cat"
+            }
+        }, {
+            "transform": {
+                "type": "fluid.transforms.value",
+                "inputPath": "petlist.goldfish"
+            }
+        }, {
+            "transform": {
+                "type": "fluid.transforms.value",
+                "inputPath": "petlist.frog"
+            }
+        }
+    ]
+}
+
+

+{
+    "my_pets": [
+        "Kaspar the Titanic Cat",
+        undefined,
+        "Portuguese Steve"
+    ]
+}
+
+

Notice the undefined value. This is the result of the second transform (since no value was found at the +petlist.goldfish input path, undefined is returned.

+

The difference between this and the use of arrays in the previous sections is that in the previous section the array +was used as the value for a transform key. When this is not the case, an array will be interpreted as a regular +array as shown in the above example.

+

Static inputs and nested transforms vs. reading from input model

+

For any standardInputTransformFunction, standardTransformFunction, multiInputTransformFunction and most other +transformations, there are three ways of providing inputs to be used by the transformation.

+
    +
  • Using values from the input model: This is done by referencing the path where the value to be used can be found. +When doing this, the result of the transformation will vary depending on the input document provided to the transformation.
  • +
  • Passing a static value, given directly in the rules document: In other words, one or more of the input values for +the transformation is hardcoded into the transformation rule you set up. This means that the result of the transformation +in question will be the same every time.
  • +
  • Nested Transformation: One can use the output of a transformation as an input value to its parent transformation
  • +
+

The three types will be explained in detail in the below:

+

Using values from the source model:

+

Obviously, to make model transformations useful, one needs to be able to get a different output document depending on +the source model supplied to the transformations. One can read from the source model by use of the inputPath key in +any standardTransformFunction or standardInputTransformFunction. In general, any transformation that is not of +these types allow to reference the source model, usually denoted by having Path as part of the key name - we defer +to the documentation on the individual transformations below for more details on these kinds of transforms. +In this section, we will only show examples of using inputPath.

+ + + + + + + + + + +
sourceruleOutput

+{
+    "petlist": {
+        "cat": "Kaspar the Titanic Cat"
+    }
+}
+

+{
+    "my_pet": {
+        "transform": {
+            "type": "fluid.transforms.value",
+            "inputPath": "petlist.cat"
+        }
+    }
+}
+
+

+{
+    "my_pet": "Kaspar the Titanic Cat"
+}
+

+{
+    "petlist": {
+        "cat": "CATTOO"
+    }
+}
+

+{
+    "my_pet": {
+        "transform": {
+            "type": "fluid.transforms.value",
+            "inputPath": "petlist.cat"
+        }
+    }
+}
+
+

+{
+    "my_pet": "CATTOO"
+}
+

+{
+    "petlist": {
+        "dog": "Spot"
+    }
+}
+

+{
+    "my_pet": {
+        "transform": {
+            "type": "fluid.transforms.value",
+            "inputPath": "petlist.cat"
+        }
+    }
+}
+
+

+{}
+
+

In the first two examples, you can see how, using the same transformation rules document, the output will vary based +on the source model. The inputPath describes the el-path from where to fetch the input to the function. If no value +is found in the given path, undefined will be the input to the transformation, and undefined returned. So if we have +an input model without the path petlist.cat, like in the third example, the result of the literalValue +transformation would be undefined, and one would receive an empty output document.

+

Static Values

+

Any standardTransformFunction or standardInputTransformFunction supports an input key, which can be used for +passing either static values or nest transforms (see next section). +Most other transforms support the same types of input - we defer to their individual documentation for more details.

+

As mentioned, static values are written directly into the transformation rule document, resulting in the same input to +the transform each time the model transformation is run. Defining static values to transformations is +straightforward:

+ + + + + + + + +
sourceruleOutput

+{
+    "dog": "Snoopy"
+}
+

+{
+    "my_pet": {
+        "transform": {
+            "type": "fluid.transforms.literalValue",
+            "input": "Kaspar the Titanic Cat"
+        }
+    }
+}
+
+

+{
+    "my_pet": "Kaspar the Titanic Cat"
+}
+

+{}
+

+{
+    "my_pet": {
+        "transform": {
+            "type": "fluid.transforms.literalValue",
+            "input": "Kaspar the Titanic Cat"
+        }
+    }
+}
+
+

+{
+    "my_pet": "Kaspar the Titanic Cat"
+}
+
+

As can be seen, regardless of the input model supplied to the transformation. Every time the transformation is run, +the result will be the same.

+

Nested Transforms

+

Besides static values, the input key for standardTransformFunctions and standardInputTransformFunctions supports +nested transforms (the same is the case for most other transforms, see their individual documentation). Nested +transforms are transformations whose output value will be used as input value for its parent transformation.

+

An input interprets the content as a nested transform if its value is an object containing the transform or +literalValue keywords, else the value is interpreted as a static value as described above.

+ + + + + + + + +
sourceruleOutput

+{
+    "display": {
+        "magnification": 1.5412
+    }
+}
+

+{
+    "Magnification": {
+        "transform": {
+            "type": "fluid.transforms.round",
+            "input": {
+                "transform": {
+                    "type": "fluid.transforms.linearScale",
+                    "inputPath": "display.magnification",
+                    "factor": 100
+                }
+            },
+            "outputPath": "percent"
+        }
+    }
+}
+
+

+{
+    "Magnification": {
+        "percent": 154
+    }
+}
+

+{
+    "display": {
+        "magnification": 1.5412
+    }
+}
+

+{
+    "Magnification": {
+        "transform": {
+            "type": "fluid.transforms.round",
+            "input": {
+                "transform": {
+                    "type": "fluid.transforms.linearScale",
+                    "inputPath": "display.magnification",
+                    "factor": 100,
+                    "outputPath": "sneakyPath"
+                }
+            },
+            "outputPath": "percent"
+        }
+    }
+}
+
+

+{
+    "Magnification": {
+        "sneakyPath": 154.12
+    }
+}
+
+

The first example above shows the correct usage of nested transforms when one wants to use the return value. The +output here from the inner transform (i.e. fluid.transforms.linearScale) which is 154.12 is used as input for the +outer fluid.transforms.round function.

+

The second example shows a case where outputPath has been specified in the inner transform. As described in a +previous section, the consequence of this is that the transform result is output to the given path and undefined is +returned. In the example, this means that the output of fluid.transforms.linearScale is output to the specified +path sneakyPath. The fluid.transforms.round will get undefined as input, which result in outputting nothing +to its outputPath.

+

Using static values as default fallback value

+

Generally, inputPath takes precedence over input. This means that if both input and inputPath are provided +for a transformation, the value found in the model at inputPath will be used.

+

This can be used to provide a 'default' or fallback value. As mentioned, it is possible to use both types of inputs in +your rule set in the different transforms, but it is also possible to specify both for a given transformation. +The effect of this is that the input from the model (via path) will be used if it is found, else the static value +(or result of transform) will be used. The usefulness should be made clear by the below examples:

+ + + + + + + + + + +
sourceruleOutput

+{
+    "petlist": {
+        "cat": "Kaspar the Titanic Cat"
+    }
+}
+

+{
+    "my_pet": {
+        "transform": {
+            "type": "fluid.transforms.value",
+            "inputPath": "petlist.cat",
+            "input": "I have no cat"
+        }
+    }
+}
+

+{
+    "my_pet": "Kaspar the Titanic Cat"
+}
+

+{
+    "petlist": { }
+}
+

+{
+    "my_pet": {
+        "transform": {
+            "type": "fluid.transforms.value",
+            "inputPath": "petlist.cat",
+            "input": "I have no cat"
+        }
+    }
+}
+
+

+    "my_pet": "I have no cat"
+
+

The transformation rule stays the same, but in the second example, there is no cat entry in the input model. +This means that the model transformation framework will default to the value found at input instead. Note that +the value at input could also be an object containing transforms.

+

Inversion

+

The framework can generate the inverse of a document where it does not use nested transforms, and to the extent +that individual transforms are invertible (and have their invertible function defined in the framework). One can +then use the results of a transform as input to this inverse transformation and should get the original document as +output.

+

The function used for inverting rules is: fluid.model.transform.invertConfiguration(transformDocument), which +takes a single input: the transformation rules that should be inverted. It outputs the inverted rules (inverted +transformation rules).

+

In practice, perfect inversion of a rule is not always possible. Unless extra information is kept, or extra +information added about defaulting values, etc., +the inversion/lensing will be lossy (see FLUID-5133 ).

+

If we call our original transformation function F, input document x and output document y, a general +transformation is described as follows: F(x)=y. If we say the inverse of F is called G, we use the following +vocabulary to describe different levels of invertibility:

+
    +
  • Losslessly Invertible: G(y)=G(F(x))=x +
      +
    • This is in practice not always possible, since the generated x may be missing some entries, or have extra entries, +depending on how well all the paths in the original x match the ones used by the transformation function F.
    • +
    +
  • +
  • Partly Invertible: F(x)=F(G(F(x))) +
      +
    • In this case, there is no condition on the output of G alone, but it is guaranteed that one can pipe an original +input model through an F->G sequence an unlimited number of times and always get the same model y as output +(we say that F(G) is idempotent on the image of F)
    • +
    +
  • +
  • Not Invertible: G does not exist (or has not been defined in the framework) +
      +
    • For non-invertible functions, there is either no logical way of deciding what an inverse would mean for that +function, or there is no way to reproduce the original input document from an output document.
    • +
    +
  • +
+

The invertibility of each transform function will be described in connection to the individual transform function below.

+

Working with non-serialisable models

+

The framework currently permits the use of model values which cannot be serialised directly to JSON (e.g. objects of +type Date, Regexp, DOM nodes or other native types) - however, this is done at the user's own risk, understanding the limitations +of this usage, and bearing in mind that in future the framework may forbid such models in some contexts. When the +framework encounters any such object (strictly, any object which fails the +fluid.isPlainObject test), it will treat such an object as immutable, +and if it appears in a relay or transform context, its object reference will simply be copied from the source to target +document/model. This implies that with respect to these objects, if they are not immutable, the source and target documents +will be aliased together, and any changes made to the native object will be reflected in both documents.

+

See the entry on model objects +on the Framework Concepts for further discussion on this topic.

+

Transformation Functions:

+

Output a value given as input (fluid.transforms.value and fluid.transforms.identity)

+

Type: standardTransformFunction

+

Description: This transform takes an input value and outputs it. When an inputPath is present, the value is taken from that path. +Else the value found at input will be output (unless it is a transform, in which case it will be interpreted). +It is primarily used by the framework in its shorthand notation (see examples). It is a synonym to fluid.transforms.identity.

+

Invertibility: Partly invertible. The input default values are always ignored.

+

Examples:

+
Example 1: Standard usage
+ + + + + + + +
sourceruleOutput

+{
+    "my": {
+        "path": "balloon"
+    }
+}
+

+{
+    "myfavorite": {
+        "transform": {
+            "type": "fluid.transforms.value",
+            "inputPath": "my.path"
+        }
+    }
+}
+
+

+{
+    "myfavorite": "balloon"
+}
+
+
Example 2: Short notation
+

Note that this transform is implicit when using a string as a value to a key, where a transform directive would usually be expected.

+ + + + + + + +
sourceruleOutput

+{
+    "my": {
+        "path": "balloon"
+    }
+}
+

+{
+    "myfavorite": "my.path"
+}
+
+

+{
+    "myfavorite": "balloon"
+}
+

Literal Value (fluid.transforms.literalValue)

+

Type: standardOutputTransformFunction

+

Description: Returns the value given as input, without attempting to do further transformations or interpretations for that value. It will always produce the same value independent of the source model/document.

+

Invertibility: Partly invertible.

+

Syntax:

+
{
+    "transform": {
+        "type": "fluid.transforms.literalValue",
+        "input": "some constant"
+    }
+}
+
+

Examples:

+
Example 1: You can use literalValue if you have some constant that you want to output to the document
+ + + + + + + + +
sourceruleOutput

+{}
+

+{
+    "transform": {
+        "type": "fluid.transforms.literalValue",
+        "input": "some constant",
+        "outputPath": "foo"
+    }
+}
+

+{
+    "foo": "some constant"
+}
+
+
Example 2: The content of literal value will not be transformed further
+ + + + + + + +
sourceruleOutput

+{}
+

+{
+    "transform": {
+        "type": "fluid.transforms.literalValue",
+        "input": {
+           "transform": {
+              "type": "fluid.transforms.helloworld",
+              "input": "I'm not interpreted"
+           }
+        },
+        "outputPath": "foo"
+    }
+}
+
+

+{
+    "foo": {
+        "transform": {
+            "type": "fluid.transforms.helloworld",
+            "input": "I'm not interpreted"
+        }
+    }
+}
+
+

fluid.transforms.stringToNumber

+

Type: standardTransformFunction

+

Description: Parses a string into a number. The number can be floating point or decimal. If the string is not parseable into a number, undefined will be returned.

+

Invertibility: Partly invertible. The input default values are always ignored.

+

Examples:

+
Example 1: Number conversion
+ + + + + + + +
sourceruleOutput

+{
+    "my": {
+        "path": "100.91"
+    }
+}

+{
+    "transform": {
+        "type": "fluid.transforms.stringToNumber",
+        "inputPath": "my.path",
+        "outputPath": "outie"
+    }
+}
+
+

+{
+    "outie": 100.91
+}
+
+
Example 2: Non-number string
+ + + + + + + +
sourceruleOutput

+{
+    "my": {
+        "path": "i am no number"
+    }
+}

+{
+    "transform": {
+        "type": "fluid.transforms.stringToNumber",
+        "inputPath": "my.path",
+        "outputPath": "outie"
+    }
+}
+
+

+{}
+
+

fluid.transforms.numberToString

+

Type: standardTransformFunction

+

Description: Parses a number into a string. If the input is not a number, undefined will be returned. +Can optionally provide a scale which denotes the maximum number of decimal places to round the number to and a rounding method. Trailing 0s are omitted and numbers are rounded as follows:

+
    +
  • "round": Numbers are rounded away from 0 (i.e 0.5 -> 1, -0.5 -> -1).
  • +
  • "ceil": Numbers are rounded up
  • +
  • "floor": Numbers are rounded down
  • +
+

If the scale value is not numerical or is NaN, it is treated as though it were not specified at all. The method is only used when a valid scale is provided, and defaults to "round".

+

Invertibility: Partly invertible. It is invertible when its domain is restricted to numbers.

+

Examples:

+
Example 1: Number conversion
+ + + + + + + +
sourceruleOutput

+{
+    "my": {
+        "path": 100.91
+    }
+}

+{
+    "transform": {
+        "type": "fluid.transforms.numberToString",
+        "inputPath": "my.path",
+        "outputPath": "outie"
+    }
+}
+
+

+{
+    "outie": "100.91"
+}
+
+
Example 2: Non-number string
+ + + + + + + +
sourceruleOutput

+{
+    "my": {
+        "path": "I'm a string"
+    }
+}

+{
+    "transform": {
+        "type": "fluid.transforms.stringToNumber",
+        "inputPath": "my.path",
+        "outputPath": "outie"
+    }
+}
+
+

+{}
+
+
Example 3: Number conversion with scale
+ + + + + + + +
sourceruleOutput

+{
+    "my": {
+        "path": 100.91
+    }
+}

+{
+    "transform": {
+        "type": "fluid.transforms.numberToString",
+        "inputPath": "my.path",
+        "outputPath": "outie",
+        "scale": 1
+    }
+}
+
+

+{
+    "outie": "100.9"
+}
+
+
Example 4: Number conversion with scale and method
+ + + + + + + +
sourceruleOutput

+{
+    "my": {
+        "path": 100.91
+    }
+}

+{
+    "transform": {
+        "type": "fluid.transforms.numberToString",
+        "inputPath": "my.path",
+        "outputPath": "outie",
+        "scale": 1,
+        "method": "ceil"
+    }
+}
+
+

+{
+    "outie": "101"
+}
+
+
Example 5: Number conversion with invalid scale
+ + + + + + + +
sourceruleOutput

+{
+    "my": {
+        "path": 100.91
+    }
+}

+{
+    "transform": {
+        "type": "fluid.transforms.numberToString",
+        "inputPath": "my.path",
+        "outputPath": "outie",
+        "scale": "one"
+    }
+}
+
+

+{
+    "outie": "100.91"
+}
+
+

Count length of array (fluid.transforms.count)

+

Type: standardTransformFunction

+

Description: If the input is an array, the length of the array will be the output of this function. If the input is a primitive or object, 1 will be returned.

+

Invertibility: Not invertible.

+

Examples:

+
Example 1: Counting the length of an array
+ + + + + + + +
sourceruleOutput

+{}
+

+{
+    "transform": {
+        "type": "fluid.transforms.count",
+        "input": [ "foo", "bar" ],
+        "outputPath": "howLong"
+    }
+}
+
+

+{
+    "howLong": 2
+}
+
+
Example 2: Using path as input
+ + + + + + + +
sourceruleOutput

+{
+    "my": {
+        "path": [ "foo", "bar" ]
+    }
+}
+

+{
+    "transform": {
+        "type": "fluid.transforms.count",
+        "inputPath": "my.path",
+        "outputPath": "howLong"
+    }
+}
+
+

+{
+    "howLong": 2
+}
+
+
Example 3: Primitive value as input
+ + + + + + + +
sourceruleOutput

+{
+    "my": {
+        "path": "i am a string"
+    }
+}
+

+{
+    "transform": {
+        "type": "fluid.transforms.count",
+        "inputPath": "my.path",
+        "outputPath": "howLong"
+    }
+}
+
+

+{
+    "howLong": 1
+}
+
+

Round a floating point number (fluid.transforms.round)

+

Type: standardTransformFunction

+

Description: Rounds the input to the nearest integer, or to a decimal value if a scale value is provided. The scale option denotes the number of decimal places to round the number to and defaults to 0. The method option denotes the rounding method to use and defaults to "round". Numbers are rounded as follows:

+
    +
  • "round": Numbers are rounded away from 0 (i.e 0.5 -> 1, -0.5 -> -1).
  • +
  • "ceil": Numbers are rounded up
  • +
  • "floor": Numbers are rounded down
  • +
+

Invertibility: Partly invertible. The input default values are always ignored.

+

Examples:

+
Example 1: Round to the nearest whole number
+ + + + + + + +
sourceruleOutput

+{
+    "myin": 123.41
+}
+

+{
+    "transform": {
+        "type": "fluid.transforms.round",
+        "inputPath": "myin",
+        "outputPath": "outie"
+    }
+}
+
+

+{
+    "outie": 123
+}
+
+
Example 2: Round to one decimal place
+ + + + + + + +
sourceruleOutput

+{
+    "myin": 123.41
+}
+

+{
+    "transform": {
+        "type": "fluid.transforms.round",
+        "inputPath": "myin",
+        "outputPath": "outie",
+        "scale": 1
+    }
+}
+
+

+{
+    "outie": 123.4
+}
+
+
Example 3: Round to one decimal place using a specified rounding method
+ + + + + + + +
sourceruleOutput

+{
+    "myin": 123.41
+}
+

+{
+    "transform": {
+        "type": "fluid.transforms.round",
+        "inputPath": "myin",
+        "outputPath": "outie",
+        "scale": 1,
+        "method": "ceil"
+    }
+}
+
+

+{
+    "outie": 123.5
+}
+
+

Get first value of array (fluid.transforms.firstValue)

+

Type: fluid.standardOuputTransformFunction

+

Description: Returns the first entry of the array that does not evaluate to undefined. The input is required to be of type array.

+

Invertibility: Not invertible

+

Syntax:

+
{
+    "transform": {
+        "type": "fluid.transforms.firstValue",
+        "values": <array of input values interpreted as transforms>
+    }
+}
+
+

Examples:

+
Example 1: Takes first entry of an array
+ + + + + + + +
sourceruleOutput

+{
+    "foo": "hello",
+    "bar": "world"
+}
+

+{
+    "transform": {
+        "type": "fluid.transforms.firstValue",
+        "values": [ "foo", "bar" ],
+        "outputPath": "myfirst"
+    }
+}
+
+

+{
+    "myfirst": hello"
+}
+
+
Example 2: Ignores undefined values
+ + + + + + + +
sourceruleOutput

+{
+    "bar": "world"
+}
+

+{
+    "transform": {
+        "type": "fluid.transforms.firstValue",
+        "values": [ "foo", "bar" ],
+        "outputPath": "myfirst"
+    }
+}
+
+

+{
+    "myfirst": world"
+}
+
+

Delete path from the output (fluid.transforms.delete)

+

type: transformFunction

+

Description: Deletes a path from the output document. This is useful when outputting a large structure to the output document, but you require deletion of a certain part of that structure.

+

The only option that delete supports is outputPath, which points to the outputPath to be deleted.

+

Invertibility: Not invertible

+

Syntax:

+
{
+    "transform": {
+        "type": "fluid.transforms.delete",
+        "outputPath": "path.to.delete"
+    }
+}
+
+

Examples:

+

The "": "" in the transform would normally mean that the entire input model is copied without any transformations, but the delete transform ensures that the path "foo" is deleted.

+ + + + + + + +
sourceruleOutput

+{
+    "hello": "world",
+    "foo": "bar"
+}
+

+{
+    "": "",
+    "transform": {
+        "type": "fluid.transforms.delete",
+        "outputPath": "foo"
+    }
+}
+
+

+{
+     "hello": "world"
+}
+
+

Mapping based on input value (fluid.transforms.valueMapper)

+

type: transformFunction

+

Description:

+

This is a very powerful and flexible transformation function, which maps a defined collection of input values to corresponding output values by applying a matching algorithm. The input can be partly or fully matched, the result of the mapping can be customized on a per match basis. For further explanation, see the syntax and examples sections below.

+

Invertibility: Partly invertible.

+

Syntax:

+
{
+    type: "fluid.transforms.valueMapper",
+    defaultInputPath: <default input path>,
+    defaultOutputPath: <default output path>,
+    defaultOutputValue: <default output value>,
+    input: <direct input data, or nested transformation>,
+    match: [{
+        partialMatches: <accept partial match>,
+        outputUndefinedValue: <output `undefined` flag>,
+        inputValue: <the value to match>,
+        outputValue: <output value>,
+        outputPath: <output path>
+    },{
+        // ...
+    }],
+    noMatch: {
+        outputUndefinedValue: <output `undefined` flag>,
+        outputValue: <output value>,
+        outputPath: <output path>
+    }
+};
+
+

Top level:

+
    +
  • defaultInput +
      +
    • The direct input data to use.
    • +
    • Will take precedence over any input path directive.
    • +
    +
  • +
  • defaultInputPath +
      +
    • The input path to use.
    • +
    • Any value provided here will be overwritten by any inputPath given in the match directives.
    • +
    • This is optional if inputPath directives are given in each of the match directives.
    • +
    +
  • +
  • defaultOutputValue +
      +
    • The value to output by default.
    • +
    • Used if no outputValue is provided for a given match.
    • +
    • Optional if outputValue is provided for all matches
    • +
    • The meaning of defaultOutputValue is NOT "the output in case no case matches" but "the outputValue that should be used in a case where it has not been explicitly written".
    • +
    +
  • +
  • defaultOutputPath +
      +
    • The output path used by default.
    • +
    • Used if no outputPath is provided for a given case.
    • +
    • Optional if outputPath is provided for all matches.
    • +
    +
  • +
+

Within match/noMatch:

+
    +
  • outputPath +
      +
    • Path to output to if this case matches.
    • +
    • If not provided, the defaultOutputPath will be used.
    • +
    +
  • +
  • outputValue +
      +
    • Value to output to the outputPath if this case matches.
    • +
    • Value is interpreted as literal value unless it contains a transforms key.
    • +
    • If not provided, the defaultOutputValue will be used.
    • +
    +
  • +
  • inputPath +
      +
    • The input path to match against.
    • +
    • Overwrites defaultInputPath for the given directive.
    • +
    +
  • +
  • outputUndefinedValue +
      +
    • This will cause the match directive to return undefined as an output value, even if outputValue and defaultOutputValue are specified.
    • +
    +
  • +
+

Only within match:

+
    +
  • inputValue +
      +
    • The value to check the input against.
    • +
    • This can also be implicitly provided as a key in the top-level of options block.
    • +
    • Will always be interpreted literally (ie. no transforms allowed here)
    • +
    +
  • +
  • partialMatches +
      +
    • Boolean flag, signifying whether this directive is allowed to match partly.
    • +
    • If any exact match can be made (even if it contains a partialMatches flag), this beats a partial match. Else the best partial match (ie. deepest matching) will be selected. Else the value from noMatch will be used.
    • +
    • If the two best partial matches are equally good, the first one listed will be returned.
    • +
    +
  • +
+
Priority of keys at parsing:
+

Some of the keys used in the ValueMapper conflict, in that they reference the same part of the transformation mechanisms. Below is a summary of which term takes priority when the valueMapper parses the keys:

+
    +
  • if defaultInput is provided, inputPath and defaultInputPath values ae ignored.
  • +
  • inputPath before defaultInputPath - If an inputPath is provided, that value will be used, else defaultInputPath will be used.
  • +
  • outputPath before defaultOutputValue - The outputPath will be used used if provded, else defaultOutputPath will.
  • +
  • outputUndefinedValue over outputValue over defaultOutputValue - If outputUndefinedValue is provided, it will always be used. If it is not provided, but outputValue is, this will be used. Finally, if neither are provided, defaultOutputValue is used.
  • +
+
Shorthand syntax:
+

ValueMapper supports the shorthand syntax shown below. Here, the <inputX> entries are interpreted as inputValue by the system. If <outputX> are primitive datatypes (string, number or boolean), they will be used directly as output. Else they should be objects with the same format in the longhand syntax described above - excluding support the inputValue option.

+
{
+    type: "fluid.transforms.valueMapper",
+    input: <direct input data, or nested transformation>,
+    defaultInputPath: <default input path>,
+    defaultOutputPath: <default output path>,
+    defaultOutputValue: <default output value>,
+    match: {
+        "<input1>": <output1>,
+        "<input2>": <output2>,
+        // ...,
+        "<inputN>": <output3>
+    },
+    noMatch: {
+        outputUndefinedValue: <output `undefined` flag>,
+        outputValue: <output value>,
+        outputPath: <output path>
+    }
+};
+
+

Examples

+
Example 1: Shorthand with primitive output values
+ + + + + + + +
sourceruleOutput

+{
+    condition: "yes"
+}
+

+{
+    "transform": {
+        type: "fluid.transforms.valueMapper",
+        defaultInputPath: "condition",
+        defaultOutputPath: "CATTOO",
+        match: {
+            "yes": "positiveCATT",
+            "no": "negativeCATT"
+        }
+    }
+}
+
+

+{
+    "CATTOO": "positiveCATT"
+}
+
+
Example 2: Shorthand with non-primitive output values
+ + + + + + + +
sourceruleOutput

+{
+    condition: "no"
+}
+

+{
+    "transform": {
+        type: "fluid.transforms.valueMapper",
+        defaultInputPath: "condition",
+        defaultOutputPath: "defPath",
+        match: {
+            "yes": {
+                outputPath: "myPath1",
+                outputValue: "positiveCATT"
+            },
+            "no": {
+                outputPath: "myPath1",
+                outputValue: "negativeCATT"
+        }
+    }
+}
+
+

+{
+    "myPath1": "negativeCATT"
+}
+
+
Example 3: Longhand syntax with noMatch
+ + + + + + + +
sourceruleOutput

+{
+    whichAnimal: "CATTOO"
+}
+

+{
+    "transform": {
+        type: "fluid.transforms.valueMapper",
+        defaultInputPath: "whichAnimal",
+        defaultOutputValue: "selected",
+        match: [
+            {
+                inputValue: "eagle",
+                outputPath: "eagleCATT"
+            }, {
+                inputValue: "tiger",
+                outputPath: "tigerCATT"
+            }
+        ],
+        noMatch: {
+            outputPath: "WhosThat",
+            outputValue: "theNoMatchCATT"
+        }
+}
+
+

+{
+    "WhosThat": "theNoMatchCATT"
+}
+
+
Example 4: Longhand syntax with partial Matches
+ + + + + + + +
sourceruleOutput

+{
+    info: {
+        "arms": 2,
+        "ears": 2
+    }
+}
+

+{
+    "transform": {
+        type: "fluid.transforms.valueMapper",
+        defaultInputPath: "info",
+        defaultOutputPath: "creature",
+        match: [{
+            inputValue: {
+                "legs": 2,
+                "arms": 2,
+                "veryhairy": false
+            },
+            partialMatches: true,
+            outputValue: "human"
+        }, {
+            inputValue: {
+                "legs": 2,
+                "arms": 2
+            },
+            partialMatches: true,
+            outputValue: "probably monkey"
+        }, {
+            inputValue: {
+                "arms": 2
+            },
+            partialMatches: true,
+            outputValue: "can handstand"
+        }]
+    }
+}
+
+

+{
+    creature: "can handstand"
+}
+
+
Example 5: defaultInput provided
+ + + + + + + +
ruleOutput

+{
+    "transform": {
+        type: "fluid.transforms.valueMapper",
+        defaultOutputPath: "creature",
+        defaultInput: {
+            "arms": 2,
+            "ears": 2
+        },
+        match: [{
+            inputValue: {
+                "arms": 2
+            },
+            partialMatches: true,
+            outputValue: "can handstand"
+        }]
+    }
+}
+
+

+{
+    creature: "can handstand"
+}
+
+
Example 6: Nested transformation
+ + + + + + + +
ruleOutput

+{
+    "transform": {
+        type: "fluid.transforms.valueMapper",
+        defaultOutputPath: "creature",
+        defaultInput: {
+            transform: {
+                type: "fluid.transforms.identity",
+                input: {
+                    "arms": 2,
+                    "ears": 2
+                }
+            }
+        },
+        match: [{
+            inputValue: {
+                "arms": 2
+            },
+            partialMatches: true,
+            outputValue: "can handstand"
+        }]
+    }
+}
+
+

+{
+    creature: "can handstand"
+}
+
+

Binary operation (fluid.transforms.binaryOp)

+

type: multiInputTransformFunction, standardOutputTransformFunction

+

Description:

+

This will do a binary operation given the two operands (left and right) and the operator. You can reference to the input model for both left and right by using leftPath and rightPath. If both rightPath and right is given, a lookup will be done of rightPath first, and if nothing is found the constant from right will be used. Same goes for left and leftPath. Both the left and right operands are required (either in their path or constant form). The operator is also required. The result of the expansion will be the result of the binary operation, and this will be returned or output to the outputPath as any other standardOutputTransformFunction. Valid operands are:

+

Arithmetic Operators (operands are required to be numbers, output will be a number):

+
    +
  • + (Addition) Adds 2 numbers.
  • +
  • - (subtraction) subtracts 2 numbers
  • +
  • * (Multiplication) Multiplies 2 numbers.
  • +
  • / (Division) Divides 2 numbers.
  • +
  • % (Modulus) Computes the integer remainder of dividing 2 numbers.
  • +
+

Comparison Operators: (operands are required to be numbers, output will be boolean)

+
    +
  • === Returns true if the operands are equal.
  • +
  • !== Returns true if the operands are not equal.
  • +
  • > Returns true if left operand is greater than right operand.
  • +
  • >= Returns true if left operand is greater than or equal to right operand.
  • +
  • < Returns true if left operand is less than right operand.
  • +
  • <= Returns true if left operand is less than or equal to right operand.
  • +
+

Logical Operators: (both operands are required to be booleans, output will be boolean)

+
    +
  • && (Logical AND) Returns true if both logical operands are true. Otherwise, returns false.
  • +
  • || (Logical OR) Returns true if either logical expression is true. If both are false, returns false.
  • +
+

Invertibility: Not invertible.

+

Syntax:

+
transform: {
+    "type": "fluid.transforms.binaryOp",
+    "left": <constant of appropriate type>,
+    "right": <constant of appropriate type>,
+    "operator": <the operator to use>
+}
+
+

Examples

+
Example 1: Standard addition
+ + + + + + + +
sourceruleOutput

+{
+    "some": {
+        "path": 200
+    }
+}
+

+{
+    "transform": {
+        "type": "fluid.transforms.binaryOp",
+        "left": 100,
+        "rightPath": "some.path",
+        "operator": "+",
+        "outputPath": "sum"
+    }
+}
+
+

+{
+    "sum": 300
+}
+
+
Example 2: Fallback from path
+ + + + + + + +
sourceruleOutput

+{
+    "some": {
+        "path": 200
+    }
+}
+

+{
+    "transform": {
+        "type": "fluid.transforms.binaryOp",
+        "left": 100,
+        "leftPath": "some.other.path",
+        "right": 0,
+        "rightPath": "some.path",
+        "operator": "+",
+        "outputPath": "sum"
+    }
+}
+
+

+{
+    "sum": 300
+}
+
+

Conditional transform (fluid.transforms.condition)

+

type: multiInputTransformFunction , standardOutputTransformFunction

+

Syntax:

+
transform: {
+    "type": "fluid.transforms.condition",
+    "condition": <boolean value>
+    "true": <optional>,
+    "false": <optional>
+}
+
+

Description:

+

Based on the boolean condition constant (or the path to the inputModel conditionPath) either the value or true or false (truePath/falsePath, respectively) will be the result of the transform. The condition is required and either true or false (or both) - or their path equivalents - should be defined. As usual, the *Path equivalents of the input variables can be used as fallbacks.

+

Invertibility: Not invertible

+

Example:

+
Example 1: Standard usage
+ + + + + + + +
sourceruleOutput

+{
+    "some": {
+        "path": true
+    }
+}
+

+{
+    "transform": {
+        "type": "fluid.transforms.condition",
+        "conditionPath": "some.path",
+        "true": "It was true",
+        "false": "It was false",
+        "outputPath": "result"
+    }
+}
+
+

+{
+    "result": "It was true"
+}
+
+
Example 2: Fallback from path
+ + + + + + + +
sourceruleOutput

+{}
+

+{
+    "transform": {
+        "type": "fluid.transforms.condition",
+        "conditionPath": "some.path",
+        "condition": true,
+        "true": "It was true",
+        "false": "It was false",
+        "outputPath": "result"
+    }
+}
+
+

+{
+    "result": "It was true"
+}
+
+
Example 3: Nested transform
+ + + + + + + +
sourceruleOutput

+{
+    "some": {
+        "path": true
+    }
+}
+

+{
+    "transform": {
+        "type": "fluid.transforms.condition",
+        "conditionPath": "some.path",
+        "true": {
+            "transform": {
+                "type": "fluid.transforms.binaryOp",
+                "left": 100,
+                "right": 200,
+                "operator": "+"
+            }
+        },
+        "false": "It was false",
+        "outputPath": "result"
+    }
+}
+
+

+{
+    "result": 300
+}
+
+
Example 4: Using an undefined input
+

If either the left or right (or their path equivalents) evaluate to undefined and there is no default in case of using path, the result of the transform will be undefined.

+ + + + + + + +
sourceruleOutput

+{
+    "some": {
+        "path": true
+    }
+}
+

+{
+    "transform": {
+        "type": "fluid.transforms.condition",
+        "conditionPath": "some.path",
+        "truePath": "nonexistent.path",
+        "false": "It was false",
+        "outputPath": "result"
+    }
+}
+
+

+{}
+
+

Scale value with optional offset (fluid.transforms.linearScale)

+

type: multiInputTransformFunction, standardInputTransformFunction and standardOutputTransformFunction.

+

Description: This will scale the input value using the equation: value * factor + offset. If factor is unspecified it will be interpreted as 1 and if offset is unspecified it will be interpreted as 0. Both factor and offset can references to the input model by using: factorPath and offsetPath, respectively. If both the path and constant for any of these values is defined, first the path is looked up, and if a value is found it will be used. Else the system will fallback to using the constant.

+

Invertibility: Partly invertible.

+

Syntax:

+
transform: {
+    "type": "fluid.transforms.linearScale",
+    "input": <constant of array type>,
+    "factor": <the scaling factor>,
+    "offset": <the offset to use for the scaling>
+}
+
+

Examples:

+
Example 1: all variables specified
+ + + + + + + +
sourceruleOutput

+{}
+

+{
+    "transform": {
+        "type": "fluid.transforms.linearScale",
+        "input": 12,
+        "factor": 10,
+        "offset": 100,
+        "outputPath": "mypath"
+    }
+}
+
+

+{
+    "mypath": 220
+}
+
+
+
Example 2: Only some variables specified
+

In this example, since no value is found at some.path, the factor will default to 1, outputting 12*1+0=12. If a value was instead found (say, 12) the output would have been 12*12+0=144

+ + + + + + + +
sourceruleOutput

+{}
+

+{
+    "transform": {
+        "type": "fluid.transforms.linearScale",
+        "input": 12,
+        "factorPath": "some.path",
+        "outputPath": "mypath"
+    }
+}
+
+

+{
+    "mypath": 12
+}
+
+
Example 3: Only some variables specified
+

This example uses the same transformation rule as above, but in this case a value is found at factorPath, so this will be used as factor. Since offset is not specified, the value 0 will be used for this.

+ + + + + + +
sourceruleOutput

+{
+    "some": {
+        "path": 12
+    }
+}
+

+{
+    "transform": {
+        "type": "fluid.transforms.linearScale",
+        "input": 12,
+        "factorPath": "some.path",
+        "outputPath": "outie"
+    }
+}
+
+

+{
+    "outie": 144
+}
+
+

Mapping a continuous range into discrete values (fluid.transforms.quantize)

+

type: standardTransformFunction

+

Description: If you have a continuous range of values (e.g. 0...*) and want to change that into discrete values, this is the transform to use. It also works as a non-linear scale of values, as you can define what ranges maps to what outputs.

+

The transform allows you to specify some ranges, defined by an upperBound. The first entry, the range will be the upperBound value to negative infinite. For the second entry, the range will be the range from the upperBound to (but excluding) the previous entry's upperBound. For the final entry no upper bound can be given, indicating that this range is from the previous upperBound to infinity.

+

Syntax:

+
"transform": {
+    "type": "fluid.transforms.quantize",
+    "inputPath": <path to the value to check ranges from>,
+    "ranges": [
+        {
+            "upperBound": <the upper bound for first entry, lower bound is infinity>,
+            "output": <output value (or transform) in case the input falls into this range>
+        }, {
+            "upperBound": <the upper bound for second entry, lower bound is the 'upperBound' value from first entry>,
+            "output": <output value (or transform) in case the input falls into this range>
+        }, {
+            (...)
+        }, {
+            "output": <output value (or transform) if input is between previous upper bound and infinity>
+        }
+    ]
+}
+
+

Invertibility: Not invertible.

+

Examples:

+
Example 1: Standard usage of quantize transformer
+ + + + + + + +
sourceruleOutput

+{
+    "my": {
+        "input": 12
+    }
+}
+

+{
+    "transform": {
+        "type": "fluid.transforms.quantize",
+        "inputPath": "my.input",
+        "outputPath": "mysize",
+        "ranges": [
+            {
+                "upperBound": 11,
+                "output": "small"
+            }, {
+                "upperBound": 13,
+                "output": "normal"
+            }, {
+                "upperBound": 17,
+                "output": "big"
+            }, {
+                "output": "very big"
+            }
+        ]
+    }
+}
+

+{
+    "mysize": "normal"
+}
+
+
Example 2: Standard usage of quantize transformer - hitting lower bound
+ + + + + + +
sourceruleOutput

+{
+    "my": {
+        "input": 2
+    }
+}
+

+{
+    "transform": {
+        "type": "fluid.transforms.quantize",
+        "inputPath": "my.input",
+        "outputPath": "mysize"
+        "ranges": [
+            {
+                "upperBound": 11,
+                "output": "small"
+            }, {
+                "upperBound": 13,
+                "output": "normal"
+            }, {
+                "upperBound": 17,
+                "output": "big"
+            }, {
+                "output": "very big"
+            }
+        ]
+    }
+}
+
+

+{
+    "mysize": "small"
+}
+
+
Example 3: Standard usage of quantize transformer - hitting upper bound
+ + + + + + +
sourceruleOutput

+{
+    "my": {
+        "input": 200
+    }
+}
+

+{
+    "transform": {
+        "type": "fluid.transforms.quantize",
+        "inputPath": "my.input",
+        "outputPath": "mysize"
+        "ranges": [
+            {
+                "upperBound": 11,
+                "output": "small"
+            }, {
+                "upperBound": 13,
+                "output": "normal"
+            }, {
+                "upperBound": 17,
+                "output": "big"
+            }, {
+                "output": "very big"
+            }
+        ]
+    }
+}
+
+

+{
+    "mysize": "very big"
+}
+
+

Check whether a number is in a given range (fluid.transforms.inRange)

+

type: standardTransformFunction

+

Description: Checks whether an input or inputPath is in a given range, outputs true or false depending on whether it is in that range. The range is indicated by min and max, both of which are inclusive. The range can be open-ended by not specifying one of these.

+

Syntax:

+
"transform": {
+    "type": "fluid.transforms.inRange",
+    "inputPath": <path to the value to check ranges from - input is valid as well>,
+    "min": <OPTIONAL: the minimum (inclusive) of the range to check>,
+    "max": <OPTIONAL: the maximum (inclusive) of the range to check>,
+    "outputPath": <OPTIONAL: path to output to>
+}
+
+

Invertibility: Not invertible.

+

Examples:

+
Example 1: Standard usage of inRange transformer
+ + + + + + +
sourceruleOutput

+{
+    "my": {
+        "input": 12
+    }
+}
+

+{
+    "transform": {
+        "type": "fluid.transforms.inRange",
+        "inputPath": "my.input",
+        "outputPath": "isInRange",
+        "min": 10,
+        "max": 100
+    }
+}
+
+

+{
+    "isInRange": true
+}
+
+
Example 2: Standard usage of inRange transformer (out of range)
+ + + + + + +
sourceruleOutput

+{
+    "my": {
+        "input": 110
+    }
+}
+

+{
+    "transform": {
+        "type": "fluid.transforms.inRange",
+        "inputPath": "my.input",
+        "outputPath": "isInRange",
+        "min": 10,
+        "max": 100
+    }
+}
+
+

+{
+    "isInRange": false
+}
+
+
Example 3: Open ended usage of inRange transformer
+ + + + + + +
sourceruleOutput

+{
+    "my": {
+        "input": 110
+    }
+}
+

+{
+    "transform": {
+        "type": "fluid.transforms.inRange",
+        "inputPath": "my.input",
+        "outputPath": "isInRange",
+        "min": 10
+    }
+}
+
+

+{
+    "isInRange": true
+}
+
+
Example 4: Range endpoints are inclusive
+ + + + + + + +
sourceruleOutput

+{
+    "my": {
+        "input": 100
+    }
+}
+

+{
+    "transform": {
+        "type": "fluid.transforms.inRange",
+        "inputPath": "my.input",
+        "outputPath": "isInRange",
+        "min": 10,
+        "max": 100
+    }
+}
+
+

+{
+    "isInRange": true
+}
+
+

Creates an object indexed with keys from array entries (fluid.transforms.indexArrayByKey)

+

type: standardTransformFunction

+

Description: This transform is one of the more specialized and complex transforms. It takes an array of objects as input, and outputs an object of objects. For each array entry, the value of a given key in that entry (from the key transform option) is used as key in the output object. The values in the output object are the remaining content of that arrays' entries.

+

This means that the transform requires a key defined - and that this should be present in each of the array-entries of the input - and that the values found for this key will be used to key the resulting object.

+

Besides the key and standard input/inputPath options, the indexArrayByKey transform allows optionally for a innerValue, which allows one do transforms on the values of the resulting output object. Note that within this innerValue, all inputPath (and other *Path declarations) are relative to the path defined by the inputPath of the indexArrayByKey transform.

+

Note: this transform was developed in relation to the XMLSettingsHandler used by the GPII auto-personalization. This translates data from XML files (which often represents "morally indexed" data in repeating array-like constructs where the indexing key is held, for example, in an attribute) to JSON format. This transform makes it easier (possible) to reference the specific elements within one of these XML arrays that are otherwise only uniquely identifiable via their content (and not their order).

+

Invertibility: Partly invertible (into fluid.transforms.deindexIntoArrayByKey).

+

Syntax:

+
{
+    "transform": {
+        "type": "fluid.transforms.indexArrayByKey",
+        "inputPath": "some input path pointing to an array",
+        "key": "the variable from array to use as key",
+        "innerValue": [ /* ...inner transforms... */ ]
+    }
+}
+
+

Examples:

+
Example 1: Simple Example
+

In this example, the key provided in our transform function is product. This means that for each entry in our input array, we will use the value found by the product key (i.e. "salad" and "candy", respectively) and use that as the key in our output object. The output object will contain, for each key, the remaining entries from the array entry's object.

+ + + + + + +
sourceruleOutput

+{
+    "foo": {
+        "bar": [
+            { "product": "salad", "price": 10, "healthy": "yes" },
+            { "product": "candy", "price": 18, "healthy": "no" }
+        ]
+    }
+}
+

+{
+    "transform": {
+        "type": "fluid.transforms.indexArrayByKey",
+        "inputPath": "foo.bar",
+        "key": "product",
+        "outputPath": "transformed"
+    }
+}
+
+

+{
+    "transformed": {
+        "salad": { price: 10, healthy: "yes" },
+        "candy": { price: 18, healthy: "no" }
+    }
+}
+
+
Example 2: Using InnerValue for transforms
+

An optional variable to the transform is innerValue. Any variable or transform that needs to refer to the content of the array should be declared here. The input paths within the innerValue block will be relative to the original array entry.

+

For the below example, in the second (innermost) inputPath, we refer to info.healthy, which is relative to the path defined by our outer inputPath. As can be seen the transform defined within innerValue is applied to the value of the output object.

+ + + + + + +
sourceruleOutput

+{
+    "foo": {
+        "bar": [
+            { "product": "salad", "info": { "price": 10, "healthy": "yes" }},
+            { "product": "candy", "info": { "price": 18, "healthy": "no", "tasty": "yes" }}
+        ]
+    }
+}
+

+{
+    "transform": {
+        "type": "fluid.transforms.indexArrayByKey",
+        "outputPath": "transformed",
+        "inputPath": "foo.bar",
+        "key": "product",
+        "innerValue": [{
+            "transform": {
+                "type": "fluid.transforms.value",
+                "inputPath": "info.healthy"
+            }
+        }]
+    }
+}
+<p>

+

+{
+    "transformed": {
+        "salad": "yes",
+        "candy": "no"
+    }
+}
+
+

Create an object indexed with keys from array entries (fluid.transforms.deindexIntoArrayByKey).

+

type: standardTransformFunction

+

Description: Transforms an object of objects into an array of objects, by deindexing the object keys. The objects within the output object, will each contain a de-indexed key as an extra item, with the key for that new item being defined by the key parameter.

+

A brief illustration of this is given here:

+
{
+    "input": {
+        "cat": { "name": "CATTOO" },
+        "mouse": { "name": "MAUS" }
+    },
+    "output": [
+        { "name": "CATTOO", "animal": "cat" },
+        { "name": "MAUS", "animal": "mouse" }
+    ]
+}
+
+

In the above case, the key option would be animal. The outer key-names are added to their respective object as an entry with a key animal.

+

Besides the key and standard input/inputPath options, the deindexIntoArrayByKey transform allows optionally for a innerValue, which allows one do transforms on the values of the resulting output object. Note that within this innerValue, all inputPath (and other *Path declarations) are relative to the path defined by the inputPath of the deindexIntoArrayByKey transform.

+

Note: this transform was developed in relation to the XMLSettingsHandler used by the GPII auto-personalization. This translates data from XML files (which often represents "morally indexed" data in repeating array-like constructs where the indexing key is held, for example, in an attribute) to JSON format. This transform makes it easier (possible) to reference the specific elements within one of these XML arrays that are otherwise only uniquely identifiable via their content (and not their order).

+

Invertibility: Partly invertible. (into is fluid.transforms.indexArrayByKey)

+

Syntax:

+
{
+    transform: {
+        "type": "fluid.transforms.deindexIntoArrayByKey",
+        "inputPath": "some input path pointing to an object of objects",
+        "key": "the variable to use as key for newly added entries",
+        "innerValue": [ /* inner transforms */ ]
+    }
+}
+
+

Examples:

+
Example 1: Simple Example
+

In this example, the key provided in our transform function is product. This means that each of the keys within the object given as input, will be added as a value to the corresponding object with product as key.

+ + + + + + + +
sourceruleOutput

+{
+    "foo": {
+        "salad": { "price": 10, "healthy": "yes" },
+        "candy": { "price": 18, "healthy": "no" }
+    }
+}
+

+{
+    "transform": {
+        "type": "fluid.transforms.deindexIntoArrayByKey",
+        "inputPath": "foo",
+        "outputPath": "bar",
+        "key": "product"
+    }
+}
+
+

+bar: [
+    { product: "salad", price: 10, healthy: "yes" },
+    { product: "candy", price: 18, healthy: "no" }
+]
+
+
Example 2: Using InnerValue for transforms
+

An optional variable to the transform is innerValue. Any variable or transform that needs to refer to the content of the array should be declared here. The input paths within the innerValue block will be relative to the original array entry.

+

For the below example, in the second (innermost) inputPath, we refer to info.healthy, which is relative to the path defined by our outer inputPath. As can be seen the transform defined within innerValue is applied to the value of the output object.

+ + + + + + +
sourceruleOutput

+{
+    "foo": {
+        "salad": { "price": 10, "healthy": "yes" },
+        "candy": { "price": 18, "healthy": "no" }
+    }
+}
+

+{
+    "transform": {
+        "type": "fluid.transforms.deindexIntoArrayByKey",
+        "inputPath": "foo",
+        "outputPath": "bar",
+        "key": "product",
+        "innerValue": [{
+            "transform": {
+                "type": "fluid.transforms.value",
+                "inputPath": "",
+                "outputPath": "info.healthy"
+            }
+<pre><code>    }]
+}
+
+

}

+

+

+{
+    "bar": [
+        { product: "salad", info: { price: 10, healthy: "yes" }},
+        { product: "candy", info: { price: 18, healthy: "no" }}
+    ]
+}
+
+

Get the index of an element in an array (fluid.transforms.indexOf)

+

Type: standardTransformFunction

+

Description: Returns the index of a given element in an array. This transform checks whether the given input/inputPath is in the array provided via array. If it is found, the index of the element is given. If it is not found, -1 will be returned instead.

+

It furthermore allows for an offset to be provided, which will be added to the return value, and a notFound which will be returned in case the element is not found in the array. notFound is not allowed to be a positive integer, as this threatens invertibility.

+

The offset will be added to the output index, even if the element is not found.

+

Returns undefined if no array is provided.

+

Invertibility: Fully invertible (into fluid.transforms.dereference) with the domain of values that are present in the array.

+

Syntax:

+
{
+    "type": "fluid.transforms.indexOf",
+    "array": <the array to look in>,
+    "input": <the value to look for>,
+    "notFound": <OPTIONAL: to be returned in case the element is not found>,
+    "offset": <OPTIONAL: offset to the returned index>
+}
+
+

Examples:

+
Example 1: standard usage
+ + + + + + +
sourceruleOutput

+{
+    "element": "dog"
+}
+

+{
+    "value": {
+        "transform": {
+            "type": "fluid.transforms.indexOf",
+            "array": ["sheep", "dog"],
+            "inputPath": "element"
+        }
+    }
+}
+
+

+{
+    "value": 1
+}
+
+
Example 2: -1 is returned if element is not found
+ + + + + + +
sourceruleOutput

+{
+    "element": "goat"
+}
+

+{
+    "value": {
+        "transform": {
+            "type": "fluid.transforms.indexOf",
+            "array": ["sheep", "dog"],
+            "inputPath": "element"
+        }
+    }
+}
+
+

+{
+    "value": -1
+}
+
+
Example 3: Usage with notFound
+ + + + + + +
sourceruleOutput

+{
+    "element": "goat"
+}
+

+{
+    "value": {
+        "transform": {
+            "type": "fluid.transforms.indexOf",
+            "array": ["sheep", "dog"],
+            "inputPath": "element",
+            "notFound": "not there"
+        }
+    }
+}
+
+

+{
+    "value": "not there"
+}
+
+
Example 4: Usage with offset
+ + + + + + +
sourceruleOutput

+{
+    "element": "dog"
+}
+

+{
+    "value": {
+        "transform": {
+            "type": "fluid.transforms.indexOf",
+            "array": ["sheep", "dog"],
+            "inputPath": "element",
+            "offset": 2
+        }
+    }
+}
+
+

+{
+    "value": 3
+}
+
+
Example 5: Offset added even if element is not found
+ + + + + + +
sourceruleOutput

+{
+    "element": "goat"
+}
+

+{
+    "value": {
+        "transform": {
+            "type": "fluid.transforms.indexOf",
+            "array": ["sheep", "dog"],
+            "inputPath": "element",
+            "offset": 2
+        }
+    }
+}
+
+

+{
+    "value": 1
+}
+
+

Get the value at an index of array (fluid.transforms.dereference)

+

Type: standardTransformFunction

+

Description:

+

Returns the value of a given index in an array. This transform looks up the index given by input/inputPath in the array provided via array. It returns the value found at that index.

+

It allows for an offset to be provided, which will be added to the index that is being looked up.

+

Invertibility: Partly invertible (into fluid.transforms.indexOf).

+

Syntax:

+
{
+    "type": "fluid.transforms.dereference",
+    "array": <the array to look in>,
+    "input": <the index to look for>,
+    "offset": <OPTIONAL: offset to the index being looked up>
+}
+
+

Examples:

+
Example 1: standard usage
+ + + + + + +
sourceruleOutput

+{
+    "element": 1
+}
+

+{
+    "value": {
+        "transform": {
+            "type": "fluid.transforms.dereference",
+            "array": ["sheep", "dog"],
+            "inputPath": "element"
+        }
+    }
+}
+
+

+{
+    "value": "dog"
+}
+
+
Example 2: Usage with offset
+ + + + + + +
sourceruleOutput

+{
+    "element": 0
+}
+

+{
+    "value": {
+        "transform": {
+            "type": "fluid.transforms.dereference",
+            "array": ["sheep", "dog"],
+            "inputPath": "element",
+            "offset": 1
+        }
+    }
+}
+
+

+{
+    "value": "dog"
+}
+
+

Create string from template (fluid.transforms.stringTemplate)

+

Type: standardOutputTransformFunction.

+

Description:

+

Simple string template system. Takes a template string (via the template parameter) containing tokens in the form of "%value". Returns a new string with the tokens replaced by values specified in the terms parameter. Keys and values can be of any data type that can be coerced into a string. Arrays will work here as well.

+

Currently it does not support reading any of its values from the input model. Furthermore, both template and terms are read as literal values, and hence not further interpreted by the model transformation system.

+

Invertibility: Not invertible.

+

Syntax:

+
{
+    "type": "fluid.transforms.stringTemplate",
+    "template": <string template>,
+    "terms": <map or array of template values>
+}
+
+

Examples:

+
Example 1: Usage with map of terms
+ + + + + + +
sourceruleOutput

+{}
+

+{
+    "value": {
+        "transform": {
+            "type": "fluid.transforms.stringTemplate",
+            "template": "Paused at: %atFile of %totalFiles files (%atSize of %totalSize)",
+            "terms": {
+                "atFile": 12,
+                "totalFiles": 14,
+                "atSize": "100 Kb",
+                "totalSize": "12000 Gb"
+            },
+            "outputPath": "finalstring"
+        }
+    }
+}
+
+

+{
+    "finalstring": "Paused at: 12 of 14 files (100 Kb of 12000Gb)"
+}
+
+
Example 2: Usage with array of terms
+ + + + + + +
sourceruleOutput

+{}
+

+{
+    "value": {
+        "transform": {
+            "type": "fluid.transforms.stringTemplate",
+            "template": "Paused at: %0 of %1 files (%2 of %3)",
+            "terms": [ 12, 14, "100 Kb", "12000 Gb" ],
+            "outputPath": "finalstring"
+        }
+    }
+}
+
+

+{
+    "finalstring": "Paused at: 12 of 14 files (100 Kb of 12000Gb)"
+}
+
+

Use any globally available function as transform (fluid.transforms.free)

+

Type: transformFunction

+

Description:

+

Proxy transform to call any globally available function. The function to be called is passed via the func key, and the arguments passed are to the function are passed via the args key. If args is an array, each entry will be passed as individual arguments to the function. If args is an object, it will be passed to the function as a single argument which is the object - this is also true for any primitive datatype.

+

Does not support reading any of its values from the input model, and any value passed to this transform via the func and args keys are passed into the transform as literal values (i.e. further transforms will not be parsed).

+

Invertibility: Not invertible.

+

Syntax:

+
{
+    "type": "fluid.transforms.free",
+    "func": <function name>,
+    "args": <arguments to the function>
+}
+
+

Examples:

+
Example 1: Usage with array
+

For the below example, imagine that the following function is globally available:

+
fluid.myfuncs.addThree = function (a, b, c) {
+    return a + b + c;
+};
+
+ + + + + + +
sourceruleOutput

+

+{
+    "value": {
+        "transform": {
+            "type": "fluid.transforms.free",
+            "func": "fluid.myfuncs.addThree",
+            "args": [9, 2, 3]
+            "outputPath": "result",
+        }
+    }
+}
+
+

+{
+    "result": 14
+}
+
+
Example 2: Usage with object as args
+

In the following example, imagine you have the following two functions globally available:

+
fluid.myfuncs.addThree = function (a, b, c) {
+    return a + b + c;
+};
+
+fluid.myfuncs.addNumbers = function (options) {
+    return fluid.myfuncs.addThree.apply(null, options.numbers);
+};
+
+ + + + + + +
sourceruleOutput

+{}
+

+{
+    "value": {
+        "transform": {
+            "type": "fluid.transforms.free",
+            "func": "fluid.myfuncs.addNumbers",
+            "args": {numbers: [1, 2, 3]},
+            "outputPath": "result"
+        }
+    }
+}
+
+

+{
+    "result": 6
+}
+
+

fluid.transforms.arrayToSetMembership

+

Type: standardTransformFunction

+

Description:

+

This transform can be used when one wants to create a set based on values available in an array. +This is yet another specialized and complex transformation. Based on which values are present in the input array, +an output object will be produced with predefined keys and values indicating whether a specific value was present +in the array.

+

As an example, if one has an array listing of capabilities supported by a specific system and need an object listing +all possible system capabilities with a true/false value indicating whether the specific system supports it.

+

Invertibility: Partly invertible (into setMembershipToArray)

+

Syntax:

+

If presentValue and missingValue are not defined they will default to: true and false, respectively.

+
transform: {
+    "type": "fluid.transforms.arrayToSetMembership",
+    "inputPath": <standard inputPath>,
+    "presentValue": <Value for an entry in output set if expectedArrayEntryX is present in array>,
+    "missingValue": <That value given to an entry if expectedArrayEntryX is present in array>,
+    "options": {
+        "expectedArrayEntry1": "Key of output set 1",
+        // ...
+        "expectedArrayEntryN": "Key of output set N",
+    }
+}
+
+

Examples:

+
Example 1: Standard Usage
+ + + + + + +
sourceruleOutput

+{
+    "controls": [ "mouse", "keyboard" ]
+}
+

+{
+    "transform": {
+        "type": "fluid.transforms.arrayToSetMembership",
+        "outputPath": "detections",
+        "inputPath": "controls",
+        "presentValue": "supported",
+        "missingValue": "not supported",
+        "options": {
+            "mouse": "hasMouse",
+            "keyboard": "hasKeyboard",
+            "trackpad": "hasTrackpad",
+            "headtracker": "hasHeadtracker"
+        }
+    }
+}
+
+

+{
+    "detections": {
+        "hasMouse": "supported",
+        "hasKeyboard": "supported",
+        "hasTrackpad": "not supported",
+        "hasHeadtracker": "not supported"
+    }
+}
+
+
Example 2: Not defining presentValue and missingValue
+ + + + + + +
sourceruleOutput

+{
+    "controls": [ "mouse", "keyboard" ]
+}
+

+{
+    "transform": {
+        "type": "fluid.transforms.arrayToSetMembership",
+        "outputPath": "detections",
+        "inputPath": "controls",
+        "options": {
+            "mouse": "hasMouse",
+            "keyboard": "hasKeyboard",
+            "trackpad": "hasTrackpad",
+            "headtracker": "hasHeadtracker"
+        }
+    }
+}
+
+

+{
+    "detections": {
+        "hasMouse": true,
+        "hasKeyboard": true,
+        "hasTrackpad": false,
+        "hasHeadtracker": false
+    }
+}
+
+

fluid.transforms.setMembershipToArray

+

Type: standardTransformFunction

+

Description: This is inverse of fluid.transforms.arrayToSetMembership. This transformation was developed to +accommodate a use case where a boolean list of system capabilities needed to be translated to an array containing only +capabilities that were true.

+

It takes an object with a set of keys and where the value space only consist of two values (presentValue, +missingValue). This is mapped to an array that only contains entries for which the input object has a presentValue. +The actual entries output to the array are based on a map passed as options to the transformation.

+

Invertibility: Partly invertible (into arrayToSetMembership)

+

Syntax:

+

If presentValue and missingValue are not defined they will default to: true and false, respectively.

+
{
+    transform: {
+        "type": "fluid.transforms.setMembershipToArray",
+        "inputPath": <standard inputPath>,
+        "outputPath": <standard outputPath>
+        "presentValue": <Value indicating that an entry should be in output array>,
+        "missingValue": <Value indicating that an entry should not be in output array>,
+        "options": {
+            "inputObjectKey1": "outputArrayValue1",
+            // ...
+            "inputObjectKeyN": "outputArrayValueN",
+        }
+    }
+}
+
+

Examples:

+
Example 1: Standard Usage
+ + + + + + +
sourceruleOutput

+{
+    "detections": {
+        "hasMouse": "supported",
+        "hasKeyboard": "supported",
+        "hasTrackpad": "not supported",
+        "hasHeadtracker": "not supported"
+    }
+}
+

+{
+    "transform": {
+        "type": "fluid.transforms.setMembershipToArray",
+        "inputPath": "detections",
+        "outputPath": "controls",
+        "presentValue": "supported",
+        "missingValue": "not supported",
+        "options": {
+            "hasMouse": "mouse",
+            "hasKeyboard": "keyboard",
+            "hasTrackpad": "trackpad",
+            "hasHeadtracker": "headtracker"
+        }
+    }
+}
+
+

+{
+    "controls": [ "mouse", "keyboard" ]
+}
+
+
Example 2: Not defining presentValue and missingValue
+ + + + + + +
sourceruleOutput

+{
+    "detections": {
+        "hasMouse": true,
+        "hasKeyboard": true,
+        "hasTrackpad": false,
+        "hasHeadtracker": false
+    }
+}
+

+{
+    "transform": {
+        "type": "fluid.transforms.setMembershipToArray",
+        "inputPath": "detections",
+        "outputPath": "controls",
+        "options": {
+            "hasMouse": "mouse",
+            "hasKeyboard": "keyboard",
+            "hasTrackpad": "trackpad",
+            "hasHeadtracker": "headtracker"
+        }
+    }
+}
+
+

+{
+    "controls": [ "mouse", "keyboard" ]
+}
+
+

fluid.transforms.stringToBoolean

+

Type: standardTransformFunction

+

Description: Convert a String to a Boolean, for example, when working with HTML checkbox form element values. +The following are all false: undefined, null, "", "0", "false", false, 0. Everything else is true.

+

Invertibility: Partly invertible via fluid.transforms.booleanToString.

+

Syntax:

+
{
+    "transform": {
+        "type": "fluid.transforms.stringToBoolean",
+        "inputPath": "checkboxElement",
+        "outputPath": "isChecked"
+    }
+}
+
+

Examples:

+
Example 1: Convert the string "true" to a boolean.
+ + + + + + + + +
sourceruleOutput

+{
+    "checkboxElement": "true"
+}
+

+{
+    "transform": {
+        "type": "fluid.transforms.stringToBoolean",
+        "inputPath": "checkboxElement",
+        "outputPath": "isChecked"
+    }
+}
+

+{
+    "isChecked": true
+}
+
+

fluid.transforms.booleanToString

+

Type: standardTransformFunction

+

Description: Convert any value into a stringified boolean, i.e. either "true" or "false". +Anything that evaluates to true (1, true, "non empty string", {}, etc.) returns "true". +Anything else (0, false, null, etc.) returns "false".

+

Invertibility: Partly invertible via fluid.transforms.stringToBoolean.

+

Syntax:

+
{
+    "transform": {
+        "type": "fluid.transforms.booleanToString",
+        "inputPath": "isChecked",
+        "outputPath": "checkboxElement"
+    }
+}
+
+

Examples:

+
Example 1: Convert a boolean false into the string "false".
+ + + + + + + + +
sourceruleOutput

+{
+    "isChecked": false
+}
+

+{
+    "transform": {
+        "type": "fluid.transforms.booleanToString",
+        "inputPath": "isChecked",
+        "outputPath": "checkboxElement"
+    }
+}
+

+{
+    "checkboxElement": "false"
+}
+
+

fluid.transforms.JSONstringToObject

+

Type: standardTransformFunction

+

Description: Transform stringified JSON to an object using JSON.parse. Returns undefined if the JSON string is invalid.

+

Invertibility: Partly invertible via fluid.transforms.objectToJSONString.

+

Syntax:

+
{
+    "transform": {
+        "type": "fluid.transforms.JSONstringToObject",
+        "inputPath": "",
+        "outputPath": "string"
+    }
+}
+
+

Examples:

+
Example 1: Convert a stringified JSON payload into an object.
+ + + + + + + + +
sourceruleOutput

+{
+    "string": "{ \"foo\": \"bar\" }"
+}
+

+{
+    "transform": {
+        "type": "fluid.transforms.JSONstringToObject",
+        "inputPath": "string",
+        "outputPath": "object"
+    }
+}
+

+{
+    "object": {
+        "foo": "bar"
+    }
+}
+
+

fluid.transforms.objectToJSONString

+

Type: standardTransformFunction

+

Description: Transform an object to a string using JSON.stringify.

+

Invertibility: Partly invertible via fluid.transforms.JSONstringToObject.

+

Syntax:

+
{
+    "transform": {
+        "type": "fluid.transforms.objectToJSONString",
+        "inputPath": "",
+        "outputPath": "string"
+    }
+}
+
+

Examples:

+
Example 1: Convert an object payload into a string payload.
+ + + + + + + + +
sourceruleOutput

+{
+    "object": {
+        "foo": "bar"
+    }
+}
+

+{
+    "transform": {
+        "type": "fluid.transforms.objectToJSONString",
+        "inputPath": "object",
+        "outputPath": "string"
+    }
+}
+

+{
+    "string": "{\"foo\":\"bar\"}"
+}
+
+
Example 2: Add spaces and carriage returns to the stringified output.
+

You can pass the space option to control whether spaces are included between keys and values in the string output. A +positive value also results in carriage returns between key/value pairs. The default value for space is 0, which +disables spacing and line breaks.

+ + + + + + + + +
sourceruleOutput

+{
+    "object": {
+        "foo": "bar"
+    }
+}
+

+{
+    "transform": {
+        "type": "fluid.transforms.objectToJSONString",
+        "inputPath": "object",
+        "outputPath": "string",
+        "space": 2
+    }
+}
+

+{
+    "string": "{\n  \"foo\":  \"bar\"\n}"
+}
+
+

fluid.transforms.stringToDate

+

Type: standardTransformFunction

+

Description: Transform a string to a date using the Date constructor. Accepts (among other things) the date and +dateTime values returned by HTML5 date and dateTime inputs. This function allows you to create Date objects from an +ISO-8601 string such as 2017-01-23T08:51:25.891Z. +It is intended to provide a consistent mechanism for recreating Date objects stored as strings.

+

Note that framework does not generally recommend that non-serialisable values such as Date objects are stored in models, +although this can be done at your own risk. See the section on +working with non-serialisable models for more information.

+

Invertibility: Partly invertible using either fluid.transforms.dateTimeToString or fluid.transforms.dateToString.

+

Syntax:

+
{
+    "transform": {
+        "type": "fluid.transforms.stringToDate",
+        "inputPath": "",
+        "outputPath": "string"
+    }
+}
+
+

Examples:

+
Example 1: Convert an date string into a date.
+ + + + + + + + +
sourceruleOutput

+{
+    "string": "2016-11-23T15:28:19.052Z"
+}
+

+{
+    "transform": {
+        "type": "fluid.transforms.stringToDate",
+        "inputPath": "string",
+        "outputPath": "date"
+    }
+}
+

+{
+    "date": // A javascript Date object
+}
+
+

fluid.transforms.dateToString

+

Type: standardTransformFunction

+

Description: Transform a Date object into a date string using its toISOString method. +Strips the "time" portion away to produce date strings that are suitable for use with both HTML5 "date" inputs and +JSON Schema "date" format string validation, for example: 2016-11-23. +If you wish to preserve the time, use fluid.transforms.dateTimeToString instead. +A non-date object will be treated as undefined.

+

Note that framework does not generally recommend that non-serialisable values such as Date objects are stored in models, +although this can be done at your own risk. See the section on +working with non-serialisable models for more information.

+

Invertibility: Partly invertible via fluid.transforms.stringToDate.

+

Syntax:

+
{
+    "transform": {
+        "type": "fluid.transforms.dateToString",
+        "inputPath": "date",
+        "outputPath": "string"
+    }
+}
+
+

Examples:

+
Example 1: Convert a Date object into a string.
+ + + + + + + + +
sourceruleOutput

+{
+    "date": // A javascript Date object
+}
+

+{
+    "transform": {
+        "type": "fluid.transforms.dateToString",
+        "inputPath": "object",
+        "outputPath": "string"
+    }
+}
+

+{
+    "string": "2016-11-23"
+}
+
+

fluid.transforms.dateTimeToString

+

Type: standardTransformFunction

+

Description: Transform a Date object into a date/time string using its toISOString method. +Results in date strings that are suitable for use with both HTML5 "dateTime" inputs and JSON Schema "date-time" format +string validation, for example: 2016-11-23T13:05:24.079Z. A non-date object will be treated as undefined.

+

Note that framework does not generally recommend that non-serialisable values such as Date objects are stored in models, +although this can be done at your own risk. See the section on +working with non-serialisable models for more information.

+

Invertibility: Partly invertible via fluid.transforms.stringToDate.

+

Syntax:

+
{
+    "transform": {
+        "type": "fluid.transforms.dateTimeToString",
+        "inputPath": "dateTime",
+        "outputPath": "string"
+    }
+}
+
+

Examples:

+
Example 1: Convert a Date object into a string.
+ + + + + + + + +
sourceruleOutput

+{
+    "date": // A javascript Date object
+}
+

+{
+    "transform": {
+        "type": "fluid.transforms.dateTimeToString",
+        "inputPath": "object",
+        "outputPath": "string"
+    }
+}
+

+{
+    "string": "2016-11-23T15:28:19.052Z"
+}
+
+
+
+ + + +
+ +
+ + +
+ + + + + diff --git a/infusion/development/NodeAPI.html b/infusion/development/NodeAPI.html new file mode 100644 index 00000000..22dbbc9f --- /dev/null +++ b/infusion/development/NodeAPI.html @@ -0,0 +1,658 @@ + + + + + + Infusion node.js Support and API | Fluid Infusion + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ +
+ + +
+ + + + +
+
+ + + + + +
+ + + +
+ +
+ + +
+
+ +
+ +

Infusion node.js Support and API

+ + + + + +
+

Infusion's core API and IoC system are fully supported in node.js. Infusion is supplied with a +standard package.json file and registered as a module in npm's registry. +Infusion's global namespace model, as operated through functions such as fluid.registerNamespace +and fluid.defaults, requires some care in the node.js environment which makes significant efforts to balkanise +modules one from another, and to ensure that precisely this kind of thing never occurs — reference to artifacts held +in a single, shared global namespace.

+

Accessing and exporting global names

+

Given that node.js ensures that each module's global object is scrubbed clean of any potentially contaminating references, you will need to make liberal use of +Infusion's fluid.registerNamespace API in order to import such references back into your scope. Statements like

+
var colin = fluid.registerNamespace("colin");
+
+

are common in the preamble to node-aware, Infusion-aware .js files. Note that you will still need to make calls to node.js's standard require implementation if the +code or definitions you wish to reference have not been loaded into the system at all. The recommended pattern is for a package with npm name colin to make an +export of the same value that will be assigned to the global namespace colin in its implementation — e.g.

+

+var colin = fluid.registerNamespace("colin");
+
+// Add definitions to namespace colin, either directly or via fluid.defaults
+
+module.exports = colin;
+
+

is a standard pattern for a module named colin — ensuring that the results of var colin = require("colin") and var colin = fluid.registerNamespace("colin") +will coincide in client code.

+

node.js module APIs

+

Infusion includes a few small utilities to ease the process of working with a node/npm module layout:

+

fluid.module.register(name, baseDir, moduleRequire)

+

This is an intensely useful method that will allow you to register your Infusion-aware module and its base path in Infusion's global registery of modules. +This will allow you, for example, to later issue a call to fluid.require("%myModule/myPath") for any asset nested within that module, regardless of its location in +the filesystem. Other productive uses of such records are imaginable — for example, issuing require directives for modules from their point of view, resolving cyclic references between modules, etc.

+
    +
  • name {String} The name of your module. This should agree with its name in the npm registry.
  • +
  • baseDir {String} The base directory of your module. This should be the value of __dirname in its root directory.
  • +
  • moduleRequire {Require} This should be the value of require handed to you by node's own module loader.
  • +
+

fluid.module.resolvePath(path)

+

Resolve a path expression which may begin with a module reference of the form %module-name into an absolute path. Note that more +modules are resolvable here than were necessarily registered with fluid.module.register — on startup, Infusion's node module will "pre-inspect" its filesystem path +to the root in order to discover anything which plausibly looks like a module root — that is, it will recognise a package.json file which need not necessarily have a grandparent path of node_nodules. +If the supplied path does not begin with such a module reference, it is returned unchanged.

+
    +
  • path {String} A path expression to be resolved, perhaps containing symbolic module references such as %module-name
  • +
  • Returns: {String} The path expression with any symbolic module references resolved against the fluid.module.modules database
  • +
+

fluid.require(moduleName[, foreignRequire, namespace])

+

Issues node's require against a possibly symbolic path, and possibly also install the result at a particular global namespace path from the point of view of Infusion.

+
    +
  • moduleName {String} A string to be supplied to node's require, possibly starting with a module reference of the form %module-name to indicate a base reference into an already +loaded module that was previously registered using fluid.module.register.
  • +
  • foreignRequire {Require} The instance of require to be operated after the module name has been interpolated. If omitted, defaults to Infusion's own require (which may not be able to +see everything you can, as a result of its different position in the module tree)
  • +
  • namespace {String} If this is supplied, the returned value from require will be written into Infusion's global namespace by using the fluid.setGlobalValue API.
  • +
+

fluid.module.modules

+

Holds for public inspection Infusion's records of modules as registered via fluid.module.register. This will be a hash of moduleName to records of the following form:

+
    +
  • baseDir {String} the baseDir argument supplied to fluid.module.register for this module
  • +
  • require {Require} the moduleRequire argument supplied to fluid.module.register for this module
  • +
+

Global nature of Infusion and self-deduping

+

It is essential that just a single instance of Infusion's node module is present in +an application's module tree. This is essential for Infusion because of its global nature — duplicate +modules will result in some grade definitions being sent to +one Infusion instance and some to another, resulting in "global chaos". Normally npm's standard deduplication algorithm is sufficient, but it can often fail in the case of version mismatches +or else in the case the dependency is hosted from git. Infusion applies a special algorithm at the point one issues require("infusion") to hunt upwards through +the current module tree for the copy of Infusion at the highest path, and return that one to the requestor, rather than the one resolved by the standard node module resolution algorithm.

+

Normally this is completely transparent to users and occurs automatically — however, in some cases +users may be surprised by receiving a different version of Infusion than the one they expected — in practice, the one requested by the top-level module in whatever +application they are nested in, rather than the one the requested via their own package.json.

+

This is an architectural risk that we are aware of — in that it requires that all the cooperating modules within an Infusion application are compatible with a single +version of Infusion, the one requested at the application's module root. Future work on modularization of Infusion will address +this risk by splitting Infusion into several smaller modules, only one of which (responsible for storing and retrieving grade definitions and module paths) requires to be application-global.

+ +
+
+ + + +
+ +
+ + +
+ + + + + diff --git a/infusion/development/OptionsMerging.html b/infusion/development/OptionsMerging.html new file mode 100644 index 00000000..e0b270e2 --- /dev/null +++ b/infusion/development/OptionsMerging.html @@ -0,0 +1,647 @@ + + + + + + Options Merging | Fluid Infusion + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ +
+ + +
+ + + + +
+
+ + + + + +
+ + + +
+ +
+ + +
+
+ +
+ +

Options Merging

+ + + + + +
+

The framework merges a component's defaults with the options specified by the user at runtime. Default options for a component are registered by the component developer using the fluid.defaults() function. +The framework combines these values with those supplied by the user to the component creator function.

+

Left unchecked, this options merging code becomes unruly and verbose. The vast majority of merging can be taken care of by a simple call to a standard "object merging function" such as jQuery.extend - however, there are a few cases where this behaviour is inappropriate, +and where manual merging code might still be required.

+

The Fluid component API therefore contains a specialised merging routine, fluid.merge, which allows the user to specify an (optional) more fine-grained merge policy object, which allows detailed behaviour during options merging to still be specified by a declarative strategy.

+

Use of fluid.merge

+

fluid.merge is invoked automatically by the framework as part of standard component initialisation. However, the component author does have the capability of directing the operation of fluid.merge by means of specifying the policy object. +Every standard Fluid component accepts a top-level option named mergePolicy which will be supplied as the policy argument to fluid.merge. This option itself also undergoes merging, although the user may not specify policy for the merging of the mergePolicy, and users may contribute material into the mergePolicy from any parent grades of the component, arguments, etc.

+

Structure of the Merge Policy Object

+

The merge policy object is a hash of keys, which represent EL paths into the target object, onto values which represent a policy.

+

By default if there is no policy specified, a deep merge is done together with expansion. Firstly, any IoC references and expanders in the source objects will be expanded. Secondly, everything in the source objects are copied over the target object, +in a manner very similar to the operation of the jQuery API method $.extend(true, ...). Anything that existed in the target but was not present in any of the source objects will continue to be present in the resulting merged object.

+

The following are the policy types that are supported, determined by the key's value in the policy object. For the custom policies in the first three rows, combinations may be applied by separating them with commas - e.g. noexpand, nomerge.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Policy ValueDescription
"replace" + If any value is found at the EL path in a source object, the value held at the target path will be cleared (that is, blasted back to an empty state with no properties) before the values are copied. +
"noexpand" + Apply no expansion to any of the options material in the tree below this path. Unless you also specify nomerge, although no expansion occurs, the contents of the source options will be merged together as if they consist of pure JSON material. +
"nomerge" + Can be specified together with, or separately from, noexpand. This directs the framework to perform no merging when multiple values are discovered at the same path - instead, the rightmost value from any of the sources will be chosen as the final value. The framework will make a good attempt to preserve the exact object handle present at that path in the final options structure. This is the appropriate policy when the option value does not consist of pure JSON material but instead contains some form of exotic material such as a Fluid component or native object (e.g. Date, Float32Array, Socket, etc.). The framework detects some kinds of native object (e.g. DOM nodes, jQuery objects) and protects them from merging without the use of this option. +
Any other String value + The value will be interpreted as an EL path into a source object. If no user-supplied value is present at this options path (other than those supplied in defaults), the value will be taken from the final merged value held at this specified EL path. That is, this style of policy is used to specify that an options value has a default value which defaults to the value of another supplied option. +
Function + This option allows the user to take complete control of the merging process at this path with a custom policy function. The value holds as a function which accepts two arguments (target, source) representing the sub-objects which are about to enter merging. The function will be invoked on these arguments and no further operations will be performed on this subtree. The return value of the function will become the next **running value** of the target and may be supplied as argument 1 to another invocation of the same policy function. These semantics are the same as those of the standard functional algorithm known as reduce (or fold, accumulate, etc.) +
+

fluid.merge signature

+
Note: The use of fluid.merge directly is deprecated. The framework user should never need to invoke fluid.merge directly - it is invoked automatically by the framework as part of standard component initialisation.
+

The signature to fluid.merge is

+
/* you can have as many sources as you like, one per argument from the third argument on. */
+fluid.merge(policy, target, source1, /* ... */ sourceN);
+
+

where policy is the merge policy object (may be empty), target is the object to (destructively) be the target of the merge operation, and source-1 through source-n are a list of a number of "source" options structure from which the merge is to be performed.

+ +
+
+ + + +
+ +
+ + +
+ + + + + diff --git a/infusion/development/Panels.html b/infusion/development/Panels.html new file mode 100644 index 00000000..96ca1834 --- /dev/null +++ b/infusion/development/Panels.html @@ -0,0 +1,819 @@ + + + + + + Panels | Fluid Infusion + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ +
+ + +
+ + + + +
+
+ + + + + +
+ + + +
+ +
+ + +
+
+ +
+ +

Panels

+ + + + + +
+

A Panel is an Infusion component that present adjusters, or controls, to the user to allow them to adjust the preference settings. Panels are Renderer components that work with an HTML template.

+

A Panel can contain any number of adjusters. If you need to combine several small panels into a larger panel, use Composite Panels.

+

Panel defaults must include certain things:

+
    +
  • the fluid.prefs.panel grade
  • +
  • a preferences map (only when using schemas)
  • +
  • Renderer requirements, including selectors and prototree
  • +
+

Each of these is explained below.

+

Grade

+

Panels must be defined using the fluid.prefs.panel grade, as shown in the following code block:

+
fluid.defaults("my.pref.panel", {
+    gradeNames: ["fluid.prefs.panel"]
+    // ...
+});
+
+

Panels are, by default, renderer components, which automatically provide support for DOM binding, for a model and for events. Other grades can be combined with the Panel grade, if necessary. For example, if you are defining several panels which share common functionality, you can create a single grade that includes that functionality and uses the fluid.prefs.panel grade, then use your common grade for your panels, as illustrated in the following code sample:

+
// shared grade, defining common functionality
+fluid.defaults("my.pref.panelGrade", {
+    gradeNames: ["fluid.prefs.panel"]
+    // common defaults
+});
+
+// one specific panel, which uses the shared grade
+fluid.defaults("my.pref.panel2", {
+    gradeNames: ["my.pref.panelGrade"]
+    // defaults specific to panel 1
+});
+
+// another specific panel, which uses the shared grade
+fluid.defaults("my.pref.panel2", {
+    gradeNames: ["my.pref.panelGrade"]
+    // defaults specific to panel 2
+});
+
+

Preference Map (Schema Only)

+
+

IMPORTANT NOTE: Preference Maps are only required if you are working with schemas). If you are using grades instead (only necessary in rare cases), you do not need a preference map.

+
+

A Preference Map is an option that allows you to map the information in the Primary Schema into your Panel. For each relevant preference defined in the primary schema, the preference map specifies where in the current component's options the value should be store. This is used to pull the default preference value into the Panel's model, as well as any other relevant information.

+

The format of a preference map is shown in the following code sample:

+
preferenceMap: {
+    <key from primary schema>: {
+        <path in panel's model where value should be held>: <key in primary schema where value held>
+        <path in panel's model where value should be held>: <key in primary schema where value held>
+        // ...
+    },
+    <key from primary schema>: {
+        <path in panel's model where value should be held>: <key in primary schema where value held>
+    }
+    // ...
+}
+
+

The content of a Panel's preference map will be dependent on the preferences being controlled and their types. The following example shows the preference map used in the Preference Framework's text font panel, which displays a drop-down menu listing different font choices. The preference map indicate:

+
    +
  • the "default" field in the primary schema should be stored in the Panel's model.value property
  • +
  • the "enum" field in the primary schema should be stored in the Panel's controlValues.textFont property
  • +
+
fluid.defaults("fluid.prefs.panel.textFont", {
+    gradeNames: ["fluid.prefs.panel.classSwapper"],
+    preferenceMap: {
+        "fluid.prefs.textFont": {
+            "model.value": "default",
+            "controlValues.textFont": "enum"
+        }
+    }
+    // ...
+});
+
+

The following example shows the preference map used in the Preference Framework's text size panel, which displays a slider. The preference map indicates where in the primary schema to find the default, minimum and maximum values, and where in the Panel to store those values:

+
fluid.defaults("fluid.prefs.panel.textSize", {
+    gradeNames: ["fluid.prefs.panel.classSwapper"],
+    preferenceMap: {
+        "fluid.prefs.textSize": {
+            "model.value": "default",
+            "range.min": "minimum",
+            "range.max": "maximum"
+        }
+    }
+    // ...
+});
+
+

Renderer Requirements

+

For detailed information about the Infusion Renderer, see Renderer and its sub-pages. What follows is a brief overview of the renderer requirements of a Preferences Framework Panel.

+

Selectors

+

The selectors options is a list of names CSS-style selectors. They identify the elements in the HTML template that the Renderer will bind to the Panel's model values.

+

Example: A checkbox adjuster

+
fluid.defaults("fluid.prefs.panel.layoutControls", {
+    gradeNames: ["fluid.prefs.panel"],
+    selectors: {
+        toc: ".flc-prefsEditor-toc",
+        label: ".flc-prefsEditor-toc-label",
+        tocDescr: ".flc-prefsEditor-toc-descr"
+    },
+    protoTree: {
+        label: {messagekey: "tocLabel"},
+        tocDescr: {messagekey: "tocDescr"},
+        toc: "${toc}"
+    }
+});
+
+

Prototree (or produceTree function)

+

The protoTree option defines the Renderer component tree – the instructions to the Renderer for how to render the data. In general, it consists of one property per selector, defining how that particular element in the template should be used. The property will define which element in the data model to use, or a message key in a message bundle if the element is a label. See the Renderer documentation for information on how to define Renderer protoTrees.

+

Example: A checkbox adjuster

+
fluid.defaults("fluid.prefs.panel.layoutControls", {
+    gradeNames: ["fluid.prefs.panel"],
+    selectors: {
+        toc: ".flc-prefsEditor-toc",
+        label: ".flc-prefsEditor-toc-label",
+        tocDescr: ".flc-prefsEditor-toc-descr"
+    },
+    protoTree: {
+        label: {messagekey: "tocLabel"},
+        tocDescr: {messagekey: "tocDescr"},
+        toc: "${toc}"
+    }
+});
+
+

In rare cases, it may not be possible to specify the protoTree in a declarative manner. In these cases, use the produceTree option to declare the name of a function that will generate the required protoTree.

+

Models and Model Changes

+

Panels are, by default, Infusion model components: They automatically have a top-level property called model which holds the Panel's internal model representing the preference it acts upon. It is not necessary for you to define this property directly; its structure will be inferred from the preferences map. If you are working with grades instead of with schemas, the model will be inferred from the rules supplied for the Panel.

+

Examples

+

Example: A checkbox adjuster

+
fluid.defaults("demo.panels.speak", {
+    gradeNames: ["fluid.prefs.panel"],
+    preferenceMap: {
+        "demo.speakText": {
+            "model.speakText": "default"
+        }
+    },
+    selectors: {
+        bool: ".mpe-speakText",
+        choiceLabel: ".mpe-speakText-choice-label"
+    },
+    protoTree: {
+        choiceLabel: {messagekey: "speakText"},
+        bool: "${speakText}"
+    }
+});
+
+

Example: A drop-down adjuster

+
fluid.defaults("demo.panels.language", {
+    gradeNames: ["fluid.prefs.panel"],
+    preferenceMap: {
+        "demo.language": {
+            "model.lang": "default",
+            "controlValues.langStrings": "enum"
+        }
+    },
+    selectors: {
+        language: ".mpe-dropDown",
+        label: ".mpe-dropDown-label"
+    },
+    stringArrayIndex: {
+        langs: ["langs-zho", "langs-spa", "langs-eng", "langs-hin", "langs-ara", "langs-por", "langs-ben", "langs-rus"]
+    },
+    protoTree: {
+        label: {messagekey: "langLabel"},
+        language: {
+            optionnames: "${{that}.stringBundle.langs}",
+            optionlist: "${{that}.options.controlValues.langStrings}",
+            selection: "${lang}"
+        }
+    }
+});
+
+

Example: Two adjusters: a textfieldSlider and a set of radio buttons

+
fluid.defaults("demo.panels.vol", {
+    gradeNames: ["fluid.prefs.panel"],
+    preferenceMap: {
+        // pref map for the slider
+        "demo.volume": {
+            "model.volume": "default",
+            "range.min": "minimum",
+            "range.max": "maximum"
+        },
+        // pref map for the radio button
+        "demo.volPosition": {
+            "model.volPos": "default",
+            "controlValues.volPos": "enum"
+        }
+    },
+    selectors: {
+        // selectors for the slider
+        label: ".mpe-slider-label",
+        multiplier: ".mpe-slider-multiplier",
+        vol: ".mpe-slider",
+
+        // selectors for the radio buttons
+        posLabel: ".mpe-radio-label",
+        volPosRow: ".mpe-radioRow",
+        volPosLabel: ".mpe-radioLabel",
+        volPosInput: ".mpe-radioInput"
+    },
+    selectorsToIgnore: ["vol"],
+    components: {
+        // The subcomponent for rendering the slider
+        vol: {
+            type: "fluid.textfieldSlider",
+            container: "{that}.dom.vol",
+            createOnEvent: "onDomBind",
+            options: {
+                model: {
+                    value: "{demo.panels.vol}.model.volume"
+                },
+                range: "{demo.panels.vol}.options.range",
+                sliderOptions: "{demo.panels.vol}.options.sliderOptions"
+            }
+        }
+    },
+    protoTree: {
+        // protoTree for rendering slider labels
+        label: {messagekey: "volLabel"},
+        multiplier: {messagekey: "volMultiplier"},
+
+        // protoTree for the radio buttons
+        posLabel: {messagekey: "volPosLabel"},
+        expander: {
+            type: "fluid.renderer.selection.inputs",
+            rowID: "volPosRow",
+            labelID: "volPosLabel",
+            inputID: "volPosInput",
+            selectID: "volControlPosition",
+            tree: {
+                optionnames: "${{that}.stringBundle.volPos}",
+                optionlist: "${{that}.options.controlValues.volPos}",
+                selection: "${volPos}"
+            }
+        }
+    }
+});
+
+ +
+
+ + + +
+ +
+ + +
+ + + + + diff --git a/infusion/development/PreferencesEditor.html b/infusion/development/PreferencesEditor.html new file mode 100644 index 00000000..ea3e10f7 --- /dev/null +++ b/infusion/development/PreferencesEditor.html @@ -0,0 +1,737 @@ + + + + + + Preferences Editor | Fluid Infusion + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ +
+ + +
+ + + + +
+
+ + + + + +
+ + + +
+ +
+ + +
+
+ +
+ +

Preferences Editor

+ + + + + +
+

One of the primary functions of the Infusion Preferences Framework is to allow you to create a Preferences Editor: a collection of adjusters that users can use to set their interface preferences.

+

The Preferences Framework provides a utility that creates and instantiates a preferences editor in a single step, given primary and auxiliary schemas.

+
var prefsEditor = fluid.prefs.create(container);
+
+// or
+
+var prefsEditorWithOptions = fluid.prefs.create(container, options);
+
+

Parameters

+ + + + + + + + + +
container(required) (String) A CSS-style selector that will contain the preferences editor markup.
options(optional) (Object) Configuration options. See Options below for more information.
+

Return Value

+ + + + + +
Object(Object) The preferences editor instance.
+

Options

+ + + + + + + + + + + + + + +
NameDescriptionValuesDefault
build(Optional) Configuration options for the builder; see Builder Options below for more information.Object{}
prefsEditor(Optional) Configuration options for the preferences editor itself. See PrefsEditor Options below for more information.Object{}
+

Builder Options

+ + + + + + +

+ + + + + + + + + + + + + +
NameDescriptionValuesDefault
gradeNames(Optional) A list of grade names to be used for the builder. +

This option can be used to specify the names of grades that define schemas, as an alternative to specifying the schemas through the direct options. If you do not provide the auxiliarySchema option, you must include the grade name of a grade that includes an auxiliary schema.

Array of stringsnone
primarySchema(Optional) A JavaScript object providing primary schema details. See Primary Schema for Preferences Framework for more details.Object{}
auxiliarySchema(Optional) A JavaScript object providing auxiliary schema details. See Auxiliary Schema for Preferences Framework for more details. If you do not specify the grade name of a grade that includes an auxiliary schema, you must include this option.Object{}
+
Note: You must provide at least one of
+
    +
  • the auxiliarySchema option, or
  • +
  • a gradeName indicating an auxiliary schema.
  • +
+

If you provide both, they will be merged (with the auxiliarySchema overriding anything in the grade schema), but you must provide at least one.

+

PrefsEditor Options

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+ +
NameDescriptionValuesDefault
storeType +

(Optional) The string name of a grade of a Settings Store.

+
Integrators can define their own store grade by deriving from the built-in default grade "fluid.prefs.store" as a base grade and providing custom get and set methods."fluid.prefs.cookieStore"
enhancerType(Optional) The string name of a grade of a UI Enhancer.Integrators can define their own enhancer grade by using the built-in default grade "fluid.pageEnhancer" as a base grade."fluid.pageEnhancer"
terms(Optional) A object containing relative paths to directories containing the template files and the message bundles. This value will overwrite the terms value supplied by auxiliary schemas.
prefsEditor(Optional) The data structure that configures the internal prefsEditor component.
uiEnhancer(Optional) The data structure that configures the uiEnhancer component. See UI Enhancer for what is accepted in the data structure.
store(Optional) The data structure that configures the store component.
listeners(Optional) A data structure defining listener functions for supported events. See Infusion Event System for more information about registering event listeners.The Preferences Framework supports one event: +

onReady: Fires after the preferences editor is rendered and ready to use.

+

Usage

+

The simplest way to create a separated panel preferences editor is to provide the primary and auxiliary schema using the options:

+
var prefsEditor = fluid.prefs.create("#myPrefsEditor", {
+    build: {
+        primarySchema: {
+            // ...
+        },
+        auxiliarySchema: {
+            // ...
+        }
+    }
+});
+
+

The preferences editor will be instantiated and rendered into the container specified as the first argument to fluid.prefs.create().

+

Examples

+
fluid.prefs.create("#myPrefsEditor", {
+    build: {
+        gradeNames: ["fluid.prefs.auxSchema.starter"],
+        auxiliarySchema: {
+            "loaderGrades": "fluid.prefs.fullPreview",
+            "template": "prefsEditorPreview.html",
+            "tableOfContents": {
+                "enactor": {
+                    "tocTemplate": "../../../components/tableOfContents/html/TableOfContents.html"
+                }
+            }
+        }
+    }
+});
+
+ +
+
+ + + +
+ +
+ + +
+ + + + + diff --git a/infusion/development/PreferencesFramework.html b/infusion/development/PreferencesFramework.html new file mode 100644 index 00000000..141837fb --- /dev/null +++ b/infusion/development/PreferencesFramework.html @@ -0,0 +1,613 @@ + + + + + + Preferences Framework | Fluid Infusion + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ +
+ + +
+ + + + +
+
+ + + + + +
+ + + +
+ +
+ + +
+
+ +
+ +

Preferences Framework

+ + + + + +
+

The Infusion Preferences Framework offers a reusable set of schemas, programming APIs, and UI building blocks specific to the creation, persistence, and integration of preference editors into a variety of web-based applications, content management systems, and delivery environments. It does not prescribe a single means by which content should be delivered to users. Instead, the Preferences Framework architecture provides an event-driven API that enables different, pluggable personalization strategies to listen for changes in a user's preferences and respond accordingly.

+

The Preferences Framework allows for the creation of a customized Preferences Editor by supplying a Primary Schema and Auxiliary Schema. The Primary Schema provides a description of the preferences that the editor will manage. It includes both the default values, as well as, the set of values that the preference can take. The Auxiliary Schema provides the instructions for combining the panels (for setting preferences) and enactors (for applying preferences) that will operate on these preferences.

+

More Information

+ +

Tutorials

+ + +
+
+ + + +
+ +
+ + +
+ + + + + diff --git a/infusion/development/PrimarySchemaForPreferencesFramework.html b/infusion/development/PrimarySchemaForPreferencesFramework.html new file mode 100644 index 00000000..a2d9e40f --- /dev/null +++ b/infusion/development/PrimarySchemaForPreferencesFramework.html @@ -0,0 +1,637 @@ + + + + + + Primary Schema for Preferences Framework | Fluid Infusion + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ +
+ + +
+ + + + +
+
+ + + + + +
+ + + +
+ +
+ + +
+
+ +
+ +

Primary Schema for Preferences Framework

+ + + + + +
+

A Primary Schema is a JSON document that contains the information necessary to define desired preferences using the format specified by the JSON Schema specification. A Primary Schema defines such things as the type of the preference, its default value, the limits of its range (if appropriate), an enumeration of possible values (if appropriate), etc.

+

The format of a preference definition in the Primary Schema is as shown below:

+
{
+    <namespaced.preference.name>: {
+        <propertyName>: <propertyValue>
+        // ...
+    }
+}
+
+

The "namespaced.preference.name" is the string that will be used throughout the Preferences Framework to identify the particular preference. It will be used to associate panels and enactors with the preference.

+

Example: Schema for Preferences Framework Starter Preferences

+
{
+    "fluid.prefs.textSize": {
+        "type": "number",
+        "default": 1,
+        "min": 1,
+        "max": 2,
+        "divisibleBy": 0.1
+    },
+    "fluid.prefs.lineSpace": {
+        "type": "number",
+        "default": 1,
+        "min": 1,
+        "max": 2,
+        "divisibleBy": 0.1
+    },
+    "fluid.prefs.textFont": {
+        "type": "string",
+        "default": "default",
+        "enum": ["default", "times", "comic", "arial", "verdana"]
+    },
+    "fluid.prefs.contrast": {
+        "type": "string",
+        "default": "default",
+        "enum": ["default", "bw", "wb", "by", "yb"]
+    },
+    "fluid.prefs.layoutControls": {
+        "type": "boolean",
+        "default": false
+    },
+    "fluid.prefs.emphasizeLinks": {
+        "type": "boolean",
+        "defaults": false
+    },
+    "fluid.prefs.inputsLarger": {
+        "type": "boolean",
+        "defaults": false
+    }
+}
+
+ +
+
+ + + +
+ +
+ + +
+ + + + + diff --git a/infusion/development/Priorities.html b/infusion/development/Priorities.html new file mode 100644 index 00000000..ad5472e6 --- /dev/null +++ b/infusion/development/Priorities.html @@ -0,0 +1,681 @@ + + + + + + Priorities | Fluid Infusion + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ +
+ + +
+ + + + +
+
+ + + + + +
+ + + +
+ +
+ + +
+
+ +
+ +

Priorities

+ + + + + +
+

Many elements of an Infusion application (in particular, Listeners, +Model Listeners, Options Distributions and Subcomponents) +accept a standardised entry named priority which allows the position of that element within a list of similar elements to be adjusted. +Depending on what the element is, the effect of the priority will be different — for example, a listener may be notified earlier or later than another +listener, or a set of options or grades may take priority over another during options merging.

+

The priority system is designed to be "open" in the face of evolving application designs that are worked on by different groups. As well as standard +fixed priorities (represented by numbers or extremal values such as "first" or "last"), Infusion priorities may be constraint-based in which +an element defines its priority only with respect to another element which is identified by namespace. The syntax and idiom for namespaces follows that for +event listeners. These constraint-based priorities are +much less brittle than the use of fixed priorities, and are recommended whenever a priority directive seems to be required.

+

Supported values for priorities

+ + + + + + + + + + + + + + + +
TypeDescriptionExamples
NumericAn integer value representing a fixed priority (not generally recommended). In general, higher numbers represent "greater priority" with whatever meaning +that takes in the relevant context. For example, a listener with higher priority will fire before one with a lower priority, or options with higher priority +will merge on top of options with a lower priority1, 10, 100
ConstraintEither of the strings before or after followed by the namespace of some other element (the "target element") of the same type, separated by a colon. +The framework will sort all the elements in the same set so that this element will be placed immediately before or after the target element, +unless a further constraint positions a third listener in between them."before:bindMarkup", "after:computeLayout"
Extremal PriorityEither of the strings first or last, either by themselves, or followed by an extremal priority class (currently supported values testing and authoring) separated by a colon. Elements annotated first or +last will sort either before or after all those which have been given finite numerical priorities (although a constraint-based priority will always have its directive honoured, even if +it involves being situated beyond an element with extremal priority). If the string is followed by :class for one of the supported classes, this increases the "level of infinity" that the priority +represents to that of the class, so that it will beat any extremal priority of a lower class or an unqualified extremal priority. The currently supported extremal priority classes are testing and authoring. +So, an element listed last:authoring will beat an element listed last:testing, which will beat any element merely listed as last."last", "last:testing"
+

Note that the framework's algorithm for sorting by priority uses a stable sorting algorithm so that in the absence of any priorities, any +original ordering of the elements will be preserved. Elements without any priority will sort close to those which have been specified with an explicit numeric priority of 0, whilst retaining any original relative ordering. +In the case of event listeners, this will be significant since it will respect any procedural order of addition, as well as any order +resulting from grade merging. For options distributions, the natural ordering will be derived instead from the tree's topology (distributions which travelled a longer distance will +be weaker than those which travelled a shorter distance), and numeric priorities should not be used.

+

Example of priority resolution for listeners

+

Here is part of a grade definition from the framework's Uploader component implementation, showing a recommended use of a constraint-based priority:

+
fluid.defaults("fluid.uploader.errorPanel.section", {
+    gradeNames: ["fluid.viewComponent"],
+    // ...
+    listeners: {
+        "onCreate.bindHandlers": {
+            funcName: "fluid.uploader.errorPanel.section.bindHandlers",
+            priority: "before:refreshView"
+        },
+        "onCreate.refreshView": "{that}.refreshView"
+    }
+});
+
+

Amongst the two onCreate listeners, the framework guarantees that the bindHandlers listener will always be invoked before refreshView.

+

Table of supported sites for priorities and namespaces

+

The following table lists all the locations in component options where priorities are supported, together with some notes about their limitations and interpretation.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Options Record EntryPolarityNotes
listenersLower numeric numbers, last, and after will fire later than othersFull support for constraints, listeners uniquified based on namespace
modelListenersOrdering as for listeners. Model listeners will be sorted globally across the entire model skeleton by priority when a transaction concludes.Full support for constraints, model listeners uniquified based on namespace
modelRelayOrdering as for listeners. Model relay rules will be sorted locally at the point of responding to a model change within a transaction. + Note that the same model relay rule(s) may operate multiple times within a transaction.Full support for constraints, model relay rules uniquified based on namespace
distributeOptionsLower numeric numbers, last and after will appear later in the merge order (with merging considering to occur from left to right — note that this is the opposite direction in which + parent gradeNames of a grade are considered), that is, these will represent stronger options that will merge on top of other options.Full support for constraints, distributions not uniquified based on namespace (currently). Note that priority for distributions with the priority field left blank will be determined by component tree + topology — distributions which travel a further distance will have weaker ("earlier", "lower") priority than distributions from nearby. Numeric priorities should not be used.
contextAwarenessSupported in both adaptationRecord entries and checkRecord entries. In checks, lower numeric numbers, last, and after will be executed later than others. In adaptations, + lower numeric numbers, last, and after will have their grades override those which appear beforeFull support for constraints, records uniquified based on namespace
componentsOrdering as for listeners. Components with lower priority will be constructed later.Note that there is no support for namespace for component declarations, and hence no support for constraint-based priorities. The use of priorities for subcomponent declarations is not recommended. You should always be able + to rely on the natural data-driven (by order of resolving IoC references) order for instantiation of components.
+
+
+ + + +
+ +
+ + +
+ + + + + diff --git a/infusion/development/PromisesAPI.html b/infusion/development/PromisesAPI.html new file mode 100644 index 00000000..538070aa --- /dev/null +++ b/infusion/development/PromisesAPI.html @@ -0,0 +1,784 @@ + + + + + + Infusion Promises API | Fluid Infusion + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ +
+ + +
+ + + + +
+
+ + + + + +
+ + + +
+ +
+ + +
+
+ +
+ +

Infusion Promises API

+ + + + + +
+

Promises are a now widespread programming construct aiming to +simplify coding of complex workflows involving values which may be available asynchronously (perhaps as a result +of requiring I/O) or fallibly. JavaScript enjoys numerous competing libraries implementing this feature, such as +when.js, Q and Bluebird +as well as even multiple competing promise standards, such as Promises/A+ and others from CommonJS. +Promises are even built into an upcoming version of the JavaScript language itself, ES6.

+

Infusion required an extremely simple implementation which can evolve independently, as well as begin the process of merging with +the general declarative facilities of Infusion IoC and hence become invisible as code. The implementation described here is a +transitional, mostly procedural system on its way to being summarised as configuration - as numerous Infusion features have +been in their turn over the years.

+

Notes on interoperability

+

As commented below, Infusion promises have taken a different set of tradeoffs to many of those elsewhere in the industry. In terms of interoperability, +Infusion promises are at least universally recognised as a "foreign thenable" and hence can be easily adapted into promises of any of the other libraries. +In terms of promise algorithms, since Infusion promises meet a weaker contract than usual, Infusion promises cannot safely be supplied to the promise +algorithms of other libraries without adaptation. However, promises from foreign libraries can easily be used within Infusion's algorithms.

+

Core Promises API

+

In our implementation/interpretation, a promise is, in terms of familiar constructions such as events,

+
    +
  • A linked pair of event firers, named resolve and reject
  • +
  • At most one of these two events can be fired, at most one time in total
  • +
  • Any listeners registered to either of the events after the point of firing will be able to recover the (unique) fired value at the point of registration
  • +
+

Note that this description does not adequately account for the features of specification-conformant promises more widely used in the industry - since these +implement chaining and asynchronous behaviours which we do not implement.

+

fluid.promise()

+
    +
  • Returns: {Promise}
  • +
+

Construct a fresh promise. This is the only point at which fresh promises are constructed within the core API. The structure of the returned {Promise} +object comprises the following four members:

+

promise.then(onResolve, onReject)

+

Adds handlers to either or both of the resolve or reject actions of the promise. Note that if the promise has already been +rejected or resolved, the appropriate handler will be notified immediately on this registration.

+
    +
  • onResolve: {Function ({Any}) → {None}} A callback to receive the successfully resolved value of the promise
  • +
  • onReject: {Function ({Error}) → {None}} A callback to receive a rejection of the promise, in the case its resolution fails.
  • +
+

promise.resolve(value)

+

Resolves the promise successfully, yielding the value value to any listeners which were previously registered as the first +argument of promise.then. Any further attempts to call either resolve or reject will signal an assertion failure.

+
    +
  • value: {Any} The value to be supplied as the resolution value of the promise
  • +
+

promise.reject(error)

+

Rejects the promise, yielding the error error to any listeners which were previously registered as the second +argument of promise.then. Any further attempts to call either resolve or reject will signal an assertion failure.

+
    +
  • error: {Object|Error} The value to be supplied as the rejection reason for the promise. It is recommended that this be an +object with a boolean entry isError: true and a String message summarising the reason for the rejection.
  • +
+

promise.disposition

+

The current disposition of the promise may be inspected at any time. This is a String value which encodes which, if any, of +resolve or reject have been received by the promise. At the fresh construction of the promise, the member disposition holds +the value undefined. If the promise has received resolve, disposition will hold the string "resolve", or if the +promise has received reject, disposition will hold the string "reject".

+

Commentary on requirements

+

As well as evolvability and enormous simplicity, we had a couple of other somewhat soft requirements - readability, and debuggability. +Modern promise specifications actually require that fresh promises are constructed at every chaining point, and that every +promise resolves asynchronously even if its resolving value is available synchronously. Our implementation guarantees that no promise is +constructed unless there is an explicit call to the constructor fluid.promise(). Thus it is easy to see at a glance exactly how many +promises are in play in a given piece of code. Secondly, our implementation will synchronously relay a value which is available +synchronously - this means that in the debugger, or other source of stack traces, the maximal size of stack will be visible to +account for the cause of the promise resolution.

+

Plenty of arguments exist against these choices - in fact, these choices place us firmly in the category of people who "don't really understand +promises and think of them as glorified ... callback aggregators". In the meantime, we have work to do. Infusion is about the elimination of +code, and so we only have limited time to spend thinking about how to make the code we do have conform to a faulty ideal of what we dreamed +that the virtues of conventional, synchronous code might once have been. However, it's worth noting that there is at least one virtue of +conventional, synchronous code that is recaptured by no other promise system but ours. Also, this github issue attached to the +A+ promises specification is a useful source of convincing argumentation that the decision in favour of universally asynchronous resolution is flawed.

+

As a further landmark for discussion, note that in terms of the following very illuminating category theoretic treatment of +promises (itself rejected by mainstream promises proponents), our then method is very definitely not "the name for flatMap". +Our then method is simply a "glorified callback aggregator".

+

The implementation skeleton for Infusion's promises was taken from a code sample by John Hann (unscriptable) in this gist - full credit and thanks, +and please read the gist for some further commentary and coverage of limitations.

+

Core Promises Utility API

+

The library implements a few utilities without which it is inconvenient to use promises:

+

fluid.isPromise(totest)

+
    +
  • totest {Any} An object to be checked for being a promise
  • +
  • Returns: {Boolean} If totest has a member then of type Function, returns true.
  • +
+

Determines whether an object is a promise, for our purposes. Any object with a member then of type Function passes this test. +This includes essentially every known variety, including jQuery promises. This test in fact identifies what in other libraries is +termed a "foreign thenable".

+

fluid.toPromise(value)

+
    +
  • value {Any} A value to be converted ("hoisted") to a promise
  • +
  • Returns: {Promise} If the supplied value is already a promise, it is returned unchanged. Otherwise a fresh promise is created with the value as resolution and returned.
  • +
+

Coerces any value to a promise. If it is already a promise, it is returned unchanged.

+

fluid.promise.follow(source, target)

+
    +
  • source {Promise} A promise which is to be followed in its resolution.
  • +
  • target {Promise} A promise which will follow the source in its resolution. target will receive a call to then causing it to resolve when source resolves, and reject when source rejects.
  • +
+

Chains the resolution methods of one promise (target) so that they follow those of another (source). +That is, whenever source resolves, target will resolve, or when source rejects, target will reject, with the +same payloads in each case.

+

fluid.promise.map(source, func)

+
    +
  • source {Object|Promise} An object or promise whose value is to be mapped by a function (if an object, will be converted first to a promise via fluid.toPromise()).
  • +
  • func {Function: ({Any}) → {Any|Promise}} A function which will map the resolved promise value. This function can return either an actual mapped value or a promise whose resolved value is the mapped value.
  • +
  • Returns: {Promise} A promise for the resolved mapped value.
  • +
+

Returns a promise whose resolved value is mapped from the source promise or value by the supplied function. If the input value is not a promise, it will +be converted first to a promise via fluid.toPromise(). If the input promise rejects, its rejection reason will be propagated unmapped. Examples:

+
var promiseTwo = fluid.toPromise(2);
+var double = function (value) {
+    return value * 2;
+};
+var promiseFour = fluid.promise.map(promiseTwo, double);
+
+
var promiseTwo = fluid.toPromise(2);
+var double = function (value) {
+    return fluid.promise().resolve(value * 2);
+};
+var promiseFour = fluid.promise.map(promiseTwo, double);
+
+

Promise algorithms

+

The only currently implemented promise algorithms are based around a core skeleton operating an array of promises in a linear sequence. These +are responsive to an additional element of our promises API, the promise.accumulateRejectionReason "inverse API" described below.

+

fluid.promise.sequence(sources[, options])

+
    +
  • sources {Array of {Any|Promise|Function:(options {Object}) → {Any|Promise}}} An array of sources of values or promises which will be evaluated in sequence.
  • +
  • options {Object} [optional] A structure of options which will be supplied to function members of sources.
  • +
+

Accepts an array of values, promises, functions returning values or functions returning promises and evaluates them in sequence. Evaluating a value is a no-op which returns the value itself. +Note that a standard name for a "function returning a promise" is a task - this implementation can be directly compared to +sequence in the when.js library.

+

In the case that the source element is a function returning a promise (a task), fluid.promise.sequence will ensure that +at most one of these in "in flight" at a time - that is, the succeeding function will not be invoked +until the promise at the preceding position has resolved.

+

fluid.promise.fireTransformEvent(event, payload[, options])

+
    +
  • event {Event} A "pseudoevent" whose listeners are to be treated as sucessive (asynchronous) stages in the process of transforming a payload.
  • +
  • payload {Any} The original payload input to the transforming chain.
  • +
  • options {Object} [optional] A set of additional options to be supplied to each listener in the transform chain. Accepts two special options: +
      +
    • reverse: {Boolean} If true, the sequence of handlers will be notified in reverse order
    • +
    • filterNamespaces: {Array of String} A collection of event namespaces to be filtered out of the processing chain for this particular firing
    • +
    +
  • +
+

This is a slightly esoteric but very powerful API. To get a sense of its overall function, it could be compared with the standard pipeline +algorithm supplied with when.js - the concept is that an "initial payload" (which may be empty) is successively +transformed by sequential, possibly asynchronous, stages of a pipeline of functions. Each function accepts the return value of its predecessor, +and may synchronously return a transformed payload, or a promise asynchronously yielding such a payload. It may also of course also return a promise which rejects, +terminating the transform chain.

+

This packaging of the pipeline algorithm is significantly more powerful, since it can call upon the priority feature of +standard Infusion events in order to allow processing elements to be integrated together from multiple sources, +with each one free to insert themselves at any symbolically identified (by means of before: and after: type constraint priorities) position +in the chain.

+

Each listener to the "transform event" (we call this a "pseudoevent" precisely because each listener does not receive the same argument list +as with traditional events, but instead receives the returned and resolved value of its precessor) has the following signature:

+
    +
  • listener {Function:(previousValue {Any}, options {Object}) → {Any|Promise}} where previousValue is the resolved return from the previous listener notified in the chain, or the initial payload value supplied to fluid.promise.fireTransformEvent if it is the first in the chain, and options is the last argument to fluid.promise.fireTransformEvent.
  • +
+

Inverse API recognised by promises consumed by sequential algorithms

+

Both fluid.promise.sequence and fluid.promise.fireTransformEvent will recognise the following method supplied by the user on any promise +returned by one of the sources in the sequence:

+

promise.accumulateRejectionReason(error)

+
    +
  • error: {Object|Error} A rejection which has been received from a promise "to the right" of this one in a promise sequence.
  • +
  • Returns: {Object|Error} A rejection reason which has been "wrapped" or "decorated" in some way in order to add information about the +function of this promise. For example, if this promise was intended to resolve by reading a file from the filesystem, the rejection reason +could be decorated with a string like "while reading file Xxxxx". It's important that the user's implementation preserves all the information in +the original rejection reason - if it contains a string message, it should be prefixed or suffixed with the additional information, or if it +contains an error stack, it should be left untouched.
  • +
+

This is a form of "inverse API". The promise API does not implement this method, but it can be implemented by any consumer of +promises by adding a function with this signature named accumulateRejectionReason to a promise object. This method is only +relevant when consuming a sequence of promises using one of Infusion's sequential promise algorithms.

+

Let us imagine the promises in a sequence (array) laid out from left to right, in order of sequential execution. +This method is called by a sequential promise algorithm when a promise somewhere in the sequence has rejected. Ordinarily, execution would +pass directly to the overall rejection handler for the sequence. However, before this happens, the sequence algorithm will pass from +right to left from the point of rejection and inspect each of the promises in that section for an accumulateRejectionReason implementation.

+

If an implementation is found, it will be called with the current rejection reason as an argument, and the return value will be used as the new +rejection reason. The resolution algorithm then continues to the left with this new rejection reason in place, etc. Finally the fully accumulated +rejection reason will be dispatched to the overall rejection handler.

+

What familiar exception-handling pattern from synchronous code does this reproduce? It is the rethrowing pattern, described in the Java context by +Bruce Eckel. Some more general commentary is on the "original wiki" at Nested Exception. +Thankfully, JavaScript is free of "checked exception specifications" but both the bathwater and baby have been thrown out in that it is also free of exception wrapping. +The promises community is still so immature that the lack of this facility has not yet even been characterised. Here is some old-fashioned sequential code illustrating what is going on here:

+

+try {
+    fallibleThing()
+} catch (e) {
+    e.message += " whilst doing what I was doing";
+    throw e;
+}
+
+

The contents of the catch block correspond to the internals of the accumulateRejectionReason function. Note that this is impossible to emulate +with standard promises since there is no reason for the system to revisit a previously seen source of promises to query it for more information. And outside +the context of a sequential algorithm this construct has no meaning because there is no natural sense of "before" and "after" (or, correspondingly, "above" and "below" in the call stack) +unless the sequential algorithm gives it one. So this facility could only ever be implemented with i) an extension to the base contract of a promise that ii) is recognised specially within +the context of a sequential algorithm. This is not possible even in theory with "industry standard promises" since there is no stable concept of "an instance of a promise" - since their +object identity is constantly changed after a chaining action.

+ +
+
+ + + +
+ +
+ + +
+ + + + + diff --git a/infusion/development/ProtoComponentTypes.html b/infusion/development/ProtoComponentTypes.html new file mode 100644 index 00000000..9cb567aa --- /dev/null +++ b/infusion/development/ProtoComponentTypes.html @@ -0,0 +1,742 @@ + + + + + + ProtoComponent Types | Fluid Infusion + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ +
+ + +
+ + + + +
+
+ + + + + +
+ + + +
+ +
+ + +
+
+ +
+ +

ProtoComponent Types

+ + + + +
Note: The renderer will undergo significant changes post Infusion 1.5 +
+ + +
+

The Renderer categorizes components into different types depending on the nature of the data that is to be rendered. Different component types will have different fields, but in general, the values of the fields will contain either the actual data or a reference to a data model containing the data. The component types are not stated explicitly in the object, but the type is inferred by the Renderer based on the presence of particular fields.

+

The following tables describe the different types of components and the fields used by each component. In these tables, field names shown in bold text are the definitive fields that will indicate which type of component is being described.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeDescriptionFormatExample
Bound + A control which holds a single value, such as headers, labels, etc. + + +

+componentID: { fieldName: valueOrBinding }
+                
+
+

+var protoTree = {
+    mainHeader: "Carving Woods",
+    sectionHeader1: "Sassafras",
+    sectionHeader1: "Butternut",
+    sectionHeader1: "Basswood"
+};
+                
+
Array of Boundrepeated Bound fields +

+componentID: {
+    fieldName: [
+        valueOrBinding1,
+        valueOrBinding2
+        // ...
+    ]
+}
+                
+
+

+var protoTree = {
+    mainHeader: "Carving Woods",
+    sectionHeaders: [
+        "Sassafras",
+        "Butternut",
+        "Basswood"
+    ]
+};
+                
+
Selection + A selection control where a user chooses either one or many options from a set of alternatives, such as a drop-down + +

+componentID: {
+    selection: valueOrBinding,
+    optionlist: [array of internal values],
+    optionnames: [array of display strings]
+}
+                
+ For information on how to create trees for radio buttons and checkboxes, see Renderer Component Tree Expanders. +
+

+var protoTree = {
+    contact-addressType1: {
+        selection: "${fields.addressType1}",
+        optionlist: ["Home", "Work"],
+        optionnames: ["home", "work"]
+    }
+};
+                
+
Link + A reference to a URL, such as a hyperlink + +

+componentID: {
+    target: destinationUrl,
+    linktext: stringToDisplay
+}
+                
+
+

+var protoTree = {
+    contact-addressType1: {
+        target: "http://company.com/help/${topic.url}",
+        linktext: "${topic.name}"
+    }
+};
+                
+
Container + A component that contains other components in a free-form way + +

+componentID: {
+    children: [array of other protocomponents]
+}
+                
+
Message + A component that encapsulates the data needed to resolve a localised message. Similar to a Bound, but the value is a key into a string bundle + +

+componentID: {
+    messageKey: key,
+    args: [] // array of arguments to be interpolated into the message format
+}
+                
+ See fluid.formatMessage for more information about message formatting. +
+

+var protoTree = {
+    instructions: {
+        messageKey: "instructionKey",
+        args: ["thing", 3, "%path1"]
+    }
+};
+                
+
+
+
+ + + +
+ +
+ + +
+ + + + + diff --git a/infusion/development/README.html b/infusion/development/README.html new file mode 100644 index 00000000..8c610f74 --- /dev/null +++ b/infusion/development/README.html @@ -0,0 +1,266 @@ + + + + + + Infusion Documentation | Fluid Infusion + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ +
+ + +
+ + + + +
+
+ + + + + +
+ + + +
+ +
+ + +
+
+ +
+ +

Infusion Documentation

+ + + + + +
+

Writing Configuration

+ +

API

+ +

Inversion of Control

+ +

Events

+ +

Models

+ +

Views

+ +

Renderer

+ +

Preferences Framework

+ +

Testing

+ +

Migrating from earlier versions

+ +

Tutorials

+ +

Components

+ + +
+
+ + + +
+ +
+ + +
+ + + + + diff --git a/infusion/development/Renderer.html b/infusion/development/Renderer.html new file mode 100644 index 00000000..e506a0a1 --- /dev/null +++ b/infusion/development/Renderer.html @@ -0,0 +1,605 @@ + + + + + + Renderer | Fluid Infusion + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ +
+ + +
+ + + + +
+
+ + + + + +
+ + + +
+ +
+ + +
+
+ +
+ +

Renderer

+ + + + +
Note: The renderer will undergo significant changes post Infusion 1.5 +
+ + +
+

The Infusion Framework includes a client-side Renderer that allows users to create user interface templates in pure HTML, and render the pages entirely on the client side. The Renderer offers a clean separation of Model and View: it works with internal Renderer Component Trees that are independent of the mark-up, supporting the Infusion goal of markup agnosticism.

+

This page provides resources to help you learn about the Renderer and how to use it.

+ + +
+
+ + + +
+ +
+ + +
+ + + + + diff --git a/infusion/development/RendererComponentTreeExpanders.html b/infusion/development/RendererComponentTreeExpanders.html new file mode 100644 index 00000000..9ce401e5 --- /dev/null +++ b/infusion/development/RendererComponentTreeExpanders.html @@ -0,0 +1,889 @@ + + + + + + Renderer Component Tree Expanders | Fluid Infusion + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ +
+ + +
+ + + + +
+
+ + + + + +
+ + + +
+ +
+ + +
+
+ +
+ +

Renderer Component Tree Expanders

+ + + + +
Note: The renderer will undergo significant changes post Infusion 1.5 +
+ + +
+
Note: The Renderer Component Tree Expanders described on this page have been deprecated and will likely be removed in a future release. If you are using this already or want to use something like it, please get in touch with the infusion maintainers using the IRC channel or mailing list links on our website.
+

The Renderer offers some utility functions for simplifying the tree-creation process. These functions are called expanders because they expand information you provide into a full component tree. These expanders are specified in the prototree itself by name and and are provided options to control the expansion process. For example:

+
var protoTree = {
+    expander: {
+        type: "fluid.renderer.repeat",
+        repeatID: "recordType",
+        controlledBy: "recordlist.name",
+        pathAs: "elementPath",
+        tree: { value: "${{elementPath}}" }
+    }
+};
+
+

This prototree above uses the fluid.renderer.repeat expander (described in more detail below), which repeats the provided tree based on the data found in data model at the path specified by controlledBy. The expander saves the developer the work of having to create a prototree with an array of Bound components with a ":" at the end of the ID (indicating a repeated element), one for each piece of data in the data model:

+
var protoTree = {
+    recordType: {
+        children: [
+            { "recordType:": "${recordlist.name.0}" },
+            { "recordType:": "${recordlist.name.1}" },
+            { "recordType:": "${recordlist.name.2}" },
+            { "recordType:": "${recordlist.name.3}" }
+            // ...
+        ]
+    }
+};
+
+

Using Expanders

+

Expanders are specified as wrappers around a component specification in the component tree: Instead of the usual componentID: {specification} form, the keyword expander is used, as shown below:

+
var tree = {
+    expander: {
+        type: "fluid.renderer.repeat",
+        repeatID: "tab:"
+        // ...
+    }
+};
+
+

You can also specify multiple expanders within a prototree by providing an array of expander specification in the expander field, as shown below:

+
var tree = {
+    expander: [
+        {
+            type: "fluid.renderer.repeat",
+            repeatID: "tab:"
+            // ...
+        },
+        {
+            type: "fluid.renderer.selection.inputs",
+            selectID: "language"
+            // ...
+        }
+        // ...
+    ]
+};
+
+

Available Expanders

+

Repetition Expander

+

The repetition expander takes care of replicating part of the prototree as many times as are required based on the data in the the model.

+

The following fields are supported by the fluid.renderer.repeat expander:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionValuesDefault
treeA prototree snippet to use for the repeated dataObject
controlledByEL path of repeated data in modelString
repeateIDthe id to useString
pathAs + (Optional) The string that will be used in the tree to represent an instance of the repeated data in the data model. + Stringnone
typeThe type of the expanderfluid.renderer.repeateN/A
valueAs(Optional)Stringnone
ifEmpty(Optional)Booleanfalse
+

Example

+

In this example, the fluid.renderer.repeat expander is being used to declare a tree for a set of tabs. The controlledBy property indicates that the data model field of tabs contains the data to be used.

+
cspace.tabsList.modelToTree = function (model, options) {
+    var tree = {
+        expander: {
+            type: "fluid.renderer.repeat",
+            repeatID: "tab:",
+            controlledBy: "tabs",
+            pathAs: "tabInfo",
+            tree: {
+                tabLink: {
+                    target: "${{tabInfo}.href}",
+                    linktext: {
+                        messagekey: "${{tabInfo}.name}"
+                    }
+                }
+            }
+        }
+    };
+    return tree;
+};
+
+

Selection To Inputs Expander

+

The simple Select protocomponent format shown on the ProtoComponent Types page is sufficient for a <select> element, but radio buttons and check boxes must also have entries for each button or box. The selection to inputs expander will automatically generate these entries based on the options available in the select.

+

The following fields are supported by the fluid.renderer.selection.inputs expander:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionValuesDefault
typeThe type of the expanderfluid.renderer.selection.inputsN/A
selectIdThe ID of the selection itself.Stringnone
inputIdThe ID of the input element associated with the select.Stringnone
rowId + The ID of the template for the row that is to be repeated for each possible selection. + Stringnone
labelIdThe ID of the label for the input element.Stringnone
tree + (Optional) The prototree snippet containing the selection that is to be expanded + Objectnone
+

Example

+
var tree = {
+    expander: {
+        type: "fluid.renderer.selection.inputs",
+        rowID: "layout",
+        labelID: "layoutLabel",
+        inputID: "layoutChoice",
+        selectID: "layout-checkbox",
+        tree: {
+            selection: "${layouts.selection}",
+            optionlist: "${layouts.choices}",
+            optionnames: "${layouts.names}"
+        }
+    }
+};
+
+

Condition Expander

+

The condition expander provides a mechanism for selecting between two alternative renderer component sub-trees based on the outcome of a condition e.g. the boolean evaluation of a value, or the return value of a function call.

+

The following fields are supported by the fluid.renderer.condition expander:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionValuesDefault
typeThe type of the expanderfluid.renderer.conditionN/A
condition + An object that can be evaluated as true or false, or a function that returns a boolean. + Object or Functionnone
trueTree + (Optional) A component sub-tree to be used in the case that the condition evaluates to true. + Objectnone
falseTree + (Optional) A component sub-tree to be used in the case that the condition evaluates to false. + Objectnone
+

Examples

+

In the following example, the condition is that.options.showDeleteButton. The renderer will evaluate the component's showDeleteButton option and if it is true will use the component tree specified by trueTree. Note that no falseTree is provided. If the option is false or not present, nothing will be rendered.

+
my.conditional.modelToTree = function (model, options) {
+    var tree = {
+        expander: {
+            type: "fluid.renderer.condition",
+            condition: options.showDeleteButton,
+            trueTree: {
+                deleteButton: {
+                    decorators: [{
+                        type: "attrs",
+                        attributes: {
+                            value: options.strings.deleteButton
+                        }
+                    }, {
+                        type: "jQuery",
+                        func: "prop",
+                        args: {
+                            disabled: options.checkDeleteDisabling
+                        }
+                    }]
+                }
+            }
+        }
+    };
+    return tree;
+};
+
+

In the following example, the condition is a call to the function cspace.header.assertMenuItemDisplay() with a particular argument taken from the itemName subcomponent. If the function call returns true, the renderer component subtree specified by trueTree will be used.

+
my.conditional.modelToTree = function (model, options) {
+    var tree = {
+        expander: {
+            type: "fluid.renderer.condition",
+            condition: {
+                funcName: "cspace.header.assertMenuItemDisplay",
+                args: "${{itemName}.hide}"
+            },
+            trueTree: {
+                label: {
+                    target: "${{item}.href}",
+                    linktext: {
+                        messagekey: "${{item}.name}"
+                    }
+                }
+            }
+        }
+    };
+};
+
+ +
+
+ + + +
+ +
+ + +
+ + + + + diff --git a/infusion/development/RendererComponentTrees.html b/infusion/development/RendererComponentTrees.html new file mode 100644 index 00000000..ffabbe10 --- /dev/null +++ b/infusion/development/RendererComponentTrees.html @@ -0,0 +1,602 @@ + + + + + + Renderer Component Trees | Fluid Infusion + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ +
+ + +
+ + + + +
+
+ + + + + +
+ + + +
+ +
+ + +
+
+ +
+ +

Renderer Component Trees

+ + + + +
Note: The renderer will undergo significant changes post Infusion 1.5 +
+ + +
+

A renderer component tree describes the UI in terms of renderer components (not to be confused with Infusion Components). A renderer component is a data structure that represent the contents and data binding function of a view, separate from any particular rendering of it. For example, the component representing a 'selection' would include information regarding the available choices, the display strings associated with the choices, and the current selection:

+
{
+    optionlist: ["kitchen", "livingRoom", "bedroom", "diningRoom"],
+    optionnames: ["Kitchen", "Living Room", "Bedroom", "Dining Room"],
+    selection: "${myModel.roomChoice}"
+}
+
+

The renderer component for the selection is independent of whether or not it is rendered using a <select> element, a set of radio buttons, or a set of checkboxes.

+

ProtoTrees

+

While the Renderer functions accept a full component tree as an argument, developers typically won't need to create these trees directly. We expect developers to work with simpler structures called protoTrees, which are expanded into full component trees using utility functions provided by the Renderer. The Renderer also provides functions for generating common tree structures from other information, such as a data model.

+

ProtoComponents

+

The Renderer categorizes components into different types depending on the nature of the data that is to be rendered. Different component types will have different fields, but in general, the values of the fields will contain either the actual data or a reference to a data model containing the data. For more information about the different protoComponent types, see ProtoComponent Types.

+ +
+
+ + + +
+ +
+ + +
+ + + + + diff --git a/infusion/development/RendererComponents.html b/infusion/development/RendererComponents.html new file mode 100644 index 00000000..1162322e --- /dev/null +++ b/infusion/development/RendererComponents.html @@ -0,0 +1,887 @@ + + + + + + Renderer Components | Fluid Infusion + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ +
+ + +
+ + + + +
+
+ + + + + +
+ + + +
+ +
+ + +
+
+ +
+ +

Renderer Components

+ + + + +
Note: The renderer will undergo significant changes post Infusion 1.5 +
+ + +
+

If you are creating a component that requires the use of the Renderer, you should use the fluid.rendererComponent grade as a parent grade in your component's defaults block:

+
fluid.defaults("my.component", {
+    gradeNames: ["fluid.rendererComponent"]
+    // put your options here
+});
+
+var that = my.component();
+
+

This function automates the work of constructing a component creator function, applying the Renderer, fetching templates, configuring cutpoints based on the DOM binder, as well as localisation via the string bundle.

+

This function will:

+
    +
  • create that.model, using options.model if available (creating an empty object if not)
  • +
  • fetch any resources (such as HTML templates, etc.) specified in options.resources
  • +
  • create a renderer function and attach it to your that object as that.render(tree);
  • +
+

Options for Renderer Components

+

While developers are free to define whatever options they like for their component, a component descended from fluid.rendererComponent will also understand certain options specific to the Renderer:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionValuesDefault
model + The data model to which value bindings expressed within the tree will be expressed + Objectnone
resources + A list of resources (such as HTML files, CSS files, data files) that are required by the component. + + Object as required by fluid.fetchResources + none
resolverGetConfig + Configuration functions to be applied to any data retrieved from the model + Array of FunctionsThe raw value will be retrieved unchanged.
resolverSetConfig + Configuration functions to be applied to any data being saved in the model + Array of FunctionsThe raw value will be saved unchanged.
rendererOptions + Options that will be included in the rendererFnOptions as rendererOptions + Object
rendererFnOptions + Options that will be passed directly to the renderer creation function + Object + See the documentation for fluid.renderer.createRendererSubcomponent +
selectors + A set of named selectors that will be converted to cutpoints for use by the renderer + Objectnone
repeatingSelectors + A list of any of the named selectors that reference elements that will be repeated when renderer (e.g. rows in a table) + Array of Stringsnone
selectorsToIgnore + A list of any of the named selectors that should not be included in the renderer cutpoints + Array of Stringsnone
protoTree + A data structure that represents the binding between the contents and data. Also see Renderer Component Trees for more detail. + Objectnone
produceTreeA user-defined function that returns protoTreeFunctionnone
renderOnInit + A flag indicating whether or not the component should render itself automatically after initialization. + Booleanfalse
+

Events for Renderer-bearing Components

+

Note: The 3 events are fired in the order of prepareModelForRender, onRenderTree, afterRender. They are only intended for use by experts.

+

prepareModelForRender

+ + + + + + + + + + + + + + + + + + + +
Description + This event fires before the generation of protoTree. Whatever adjustment on the model, which is the protoTree is generated based on, is ideal to be performed at this event. +
Parameters +
+
model
+
+ The internal Model Component that is used by this renderer component. +
+
applier
+
+ The internal Change Applier Component that is used by this renderer component. +
+
that
+
The reference to the current renderer component.
+
+
ReturnsNone
Note + The first event to be fired before events onRenderTree and afterRender. +
+

onRenderTree

+ + + + + + + + + + + + + + + + + + + +
Description + This event fires right before protoTree is rendered. This event is ideal for the final manipulation of the fully expanded protoTree. +
Parameters +
+
that
+
+ The reference to the current renderer component. +
+
tree
+
+ Expanded renderer tree. +
+
+
ReturnsNone
Note + The event fired after prepareModelForRender and before afterRender. +
+

afterRender

+ + + + + + + + + + + + + + + + + + + +
DescriptionThis event fires after protoTree is rendered.
Parameters +
+
that
+
+ The reference to the current renderer component. +
+
+
ReturnsNone
Note + The event fired after onRenderTree and afterRender. +
+

Functions on "that"

+

render(tree)

+
that.render(tree);
+
+

Expands the provided tree, generates cutpoints, and renders the tree.

+

produceTree()

+
that.produceTree();
+
+

This function is only present if a protoTree has been provided in the options. This function can be overridden by providing a produceTree in the options.

+

refreshView()

+
that.refreshView();
+
+

This function calls that.render(that.produceTree()); This function is only present if a protoTree has been provided in the options.

+

Example: Rendering a select box

+
fluid.defaults("fluid.examples.renderer", {
+    gradeNames: ["fluid.rendererComponent"],
+    selectors: {
+        textFont: ".flc-examples-text-font",
+        notInProtoTree: ".flc-examples-not-in-protoTree"
+    },
+    // "selectorsToIgnore" is an array of all the selectors
+    // that are defined in "selectors" but not used in
+    // "protoTree". It tells renderer not to generate cutpoints
+    // for these selectors.
+    selectorsToIgnore: ["notInProtoTree"],
+    model: {
+        textFontNames: ["Serif", "Sans-Serif", "Arial"],
+        textFontList: ["serif", "sansSerif", "arial"],
+        textFontValue: ""
+    },
+    rendererOptions: {
+        autoBind: true
+    },
+    renderOnInit: true,
+    protoTree: {
+        // "textFont" is an ID that is defined in "selectors"
+        // option
+        textFont: {
+            // "textFontNames", "textFontList", "textFontValue"
+            // must be defined in "model"
+            optionnames: "${textFontNames}",
+            optionlist: "${textFontList}",
+            selection: "${textFontValue}"
+        }
+    },
+    resources: {
+        template: {
+            forceCache: true,
+            url: "examples-rederer.html"
+        }
+    }
+});
+
+
+var that = fluid.examples.renderer("#options");
+
+

The template "examples-rederer.html" looks like,

+
<form id="options" action="">
+    <label for="text-font" class="fl-label">Font style:</label>
+    <select class="flc-examples-text-font" id="text-font">
+    </select>
+</form>
+
+

This example uses a renderer component to generate a drop down list box. The protoTree is the key option that establishes the binding between the selectors and data presented in model.

+ +
+
+ + + +
+ +
+ + +
+ + + + + diff --git a/infusion/development/RendererDecorators.html b/infusion/development/RendererDecorators.html new file mode 100644 index 00000000..138587ad --- /dev/null +++ b/infusion/development/RendererDecorators.html @@ -0,0 +1,874 @@ + + + + + + Renderer Decorators | Fluid Infusion + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ +
+ + +
+ + + + +
+
+ + + + + +
+ + + +
+ +
+ + +
+
+ +
+ +

Renderer Decorators

+ + + + +
Note: The renderer will undergo significant changes post Infusion 1.5 +
+ + +
+

Decorators allow users of the Renderer to attach various things, such as functions, class names, etc., to the components at render time. A number of different types of decorators are currently supported.

+

Using Decorators

+

To use a decorator, include it in the component tree for the component in question, using the decorators field. This field contains an array of objects providing configuration information for the desired decorators. The contents of each object will vary based on the decorator type. For example, the addClass decorator will specify a string of class names, the jQuery decorator will specify a function name and a list of parameters.

+

Decorators are specified using a notation similar to that of Subcomponents in an options structure. They include a type field and whatever other fields are necessary, based on the type:

+
{
+    ID: "my-id",
+    value: <value>,
+    decorators: [{
+        type: "typeName",
+        field: <value>,
+        field: <value>
+    }]
+}
+
+

Supported Decorators

+

The following table provides an overview of the currently-supported decorators. The sections that follow discuss each decorator in turn.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Decorator TypeField NameField TypeField DescriptionExample
+ + jQuery or $ + + funcStringjQuery function to be invoked +

+decorators: [{
+    type: "jQuery",
+    func: "click",
+    args: function() { $(this).hide(); }
+}]
+                
+
argsArray of ObjectArguments to the jQuery function
+ + addClass + + classesStringSpace-separated list of CSS class names +

+decorators: [{
+    type: "addClass",
+    classes: "fl-widget fl-centred"
+}]
+                
+
+ + removeClass + + classesStringSpace-separated list of CSS class names +

+decorators: [{
+    type: "removeClass",
+    classes: "fl-hidden"
+}]
+                
+
+ + fluid + + funcStringGlobal function name to be invoked +

+decorators: [{
+    type: "fluid",
+    func: "fluid.componentName",
+    container: container,
+    options: options
+}]
+                
+
containerjQueryable + Designator for the container node at which to base the component +
optionsObjectConfiguration options for the component
argsArrayRaw argument list to override container and options
+ + identify + + keyString + The key, or nickname for the decorated node - its allocated id will be stored in idMap under this key + +

+decorators: [{
+    type: "identify",
+    key: "mySpecialName"
+}]
+                
+
+ + attrs + + attributesObjectThe attribute map to be applied to the rendered node +

+decorators: [{
+    type: "attrs",
+    attributes: ""
+}]
+                
+
+ + event + + eventStringName of event handler to be bound +

+decorators: [{
+    type: "event",
+    event: "click",
+    handler: myHandler
+}]
+                
+
handlerFunctionHandler function to be bound
+

jQuery Decorator

+

Perhaps the most frequently used decorator is the jQuery decorator. This will accept any jQuery function and its arguments, and invoke that function, as the rendered markup is placed into the document. Here is an example of specifying a UILink component together with a jQuery-bound click() handler:

+
decorators: [{
+    type: "jQuery",
+    func: "click",
+    args: "${that}.hide"
+}]
+
+

Any number of decorators of any types could be accommodated in the decorators list.

+

An alternative name for the jQuery decorator is $ - this can be used interchangeably for jQuery as a type name.

+

addClass Decorator

+

The addClass decorator allows a CSS class to be attached to the rendered node. It has just one argument/member, which is a space-separated list of CSS classes in just the same form that would have been accepted by jQuery.addClass.

+

Here is a simple component which has been decorated with two CSS classes:

+
{
+    ID: "my-menu",
+    value: "Cheeses",
+    decorators: {
+        type: "addClass",
+        classes: "fl-listmenu fl-activemenu"
+    }
+}
+
+

removeClass Decorator

+

The removeClass decorator allows a CSS class to be removed from the rendered node. It has just one argument/member, which is a space-separated list of CSS classes. It is identical in syntax to the addClass decorator, but opposite in function.

+

Here is a simple component for which we will remove a CSS class:

+
{
+    ID: "my-menu",
+    value: "Cheeses",
+    decorators: {
+        type: "removeClass",
+        classes: "fl-listmenu"
+    }
+}
+
+

identify decorator

+

Useful in more intricate scenarios, where the rendered nodes need to be easily and quickly retrievable, perhaps where events bound to one node need to manipulate another, or when nodes are part of a wider relation, such as table cells and their headers. The model behind the identify decorator, is that the node is given a free nickname by the user, by which its final HTML id, and hence the node itself, can be quickly looked up later. This works in conjunction with a lookup table named idMap which is passed in the options structure to the renderer driver. As rendering progresses, the final HTML id allocated to the node is stored in idMap under the key provided to the identify decorator.

+

Here is a short sequence showing a possible use of identify:

+
var tree = {
+    ID: "data-row:",
+    decorators: {
+        identify: "this-catt"
+    }
+};
+var idMap = {};
+fluid.selfRender($(".paged-content-2"), tree, {idMap: idMap});
+fluid.jById(idMap["this-catt"]).show();
+
+

Whilst component tree nodes are allocated a fullID in a regular way by a stable algorithm involving their ID values and structure, this may not always relate them in a stable way in the global document - firstly, trees may be processed and reaggregated, which might change their ID or containment structure, and secondly, they may come to collide with already existing IDs in the document and hence come to be relabelled further. The "identify nickname" system lets developers to get at exactly the nodes they are interested in, in a simple, stable and efficient way.

+

fluid Decorator

+

This is a highly powerful decorator, that completes the active functionality supplied by the jQuery and identify decorators. Use of the fluid decorator allows any Fluid Component to be scheduled to be instantiated against the rendered markup, as it is added to the target document. These decorators promote markup agnosticism, as well as developer efficiency – without them, one would be left to rescan the just-rendered markup once again, in order to convert it from raw markup to an active interface. With these decorators and the component tree, one has a surface with which to talk about the function of the interface whilst leaving design and markup issues in their own space.

+

The full form of the decorator takes three members, func, container and args, mirroring the instantiation syntax of a standard Fluid Component - as described in Understanding Infusion Components, this takes the form:

+
fluid.componentName = function (container, options) {
+    // ...
+};
+
+

In this case, the equivalent decorator instantiation takes the form:

+
{
+    decorators: {
+        type: "fluid",
+        func: "fluid.componentName",
+        container: <container>,
+        options: <options>
+    }
+}
+
+
+

Note that rather than specifying container and options separately, one can instead set the member args to consist of the entire argument list - this might be useful for instantiating a non-Fluid component that does not conform to the general syntax. For example, the decorator above could be given a member args: [container, options]. The args member takes precendence if specified.

+
+

There is no specially dehydrated form for the fluid decorator – however, like all renderer decorators it may be dehydrated to the extent of having its type field folded onto a key field on decorators if there is just one decorator of a particular type.

+

attrs Decorator

+

The attrs director is simple and crude - it allows freeform access to all of the attributes of the rendered node. Since this is not likely to result in a very markup-agnostic relationship, its use is only recommended in special situations. The decorator takes a value named attributes which is a free hash of keys to values, which will be applied "on top of" the target node as it is rendered, overwriting any values which were inherited from the original markup template.

+
{
+    ID: "component-names",
+    value: "Reorderer",
+    decorators: {
+        attrs: {title: "Reorderer Component"}
+    }
+}
+
+
+

Note: Specifying a value of null will remove the attribute.

+
+

event Decorator

+

The final implemented decorator, event, allows direct access to the functionality of binding a raw browser event to the rendered node. This is not generally recommended, since this is more safely and portably achieved using jQuery. However, it is possible this might be a useful function in some special situation. The decorator has a member called handler which is directly assigned to be the native event handler for the event named event.

+

For example, this decorator:

+
{
+    decorators: {
+        type: "event",
+        event: "onClick",
+        handler: function() {
+            alert("You are using some grubby browser-level functionality");
+        }
+    }
+}
+
+

This could be attached to bind (and hence overwrite) the onClick handler for the target rendered node. Don't do this at home.

+ +
+
+ + + +
+ +
+ + +
+ + + + + diff --git a/infusion/development/ResourceLoader.html b/infusion/development/ResourceLoader.html new file mode 100644 index 00000000..75ff41d4 --- /dev/null +++ b/infusion/development/ResourceLoader.html @@ -0,0 +1,718 @@ + + + + + + Resource Loader | Fluid Infusion + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ +
+ + +
+ + + + +
+
+ + + + + +
+ + + +
+ +
+ + +
+
+ +
+ +

Resource Loader

+ + + + + +
+

The Infusion Resource Loader fluid.resourceLoader is an Infusion component which offers a mechanism to load multiple physical files in one shot. +These resources can be HTML templates, JSON objects or any other resources. +On completion, the resource loader fires an onResourcesLoaded event with an argument of the populated structure with fetched resource text in the field "resourceText" for each entry. +This populated structure can also be retrieved directly on the resource loader instance via the path resources.

+

The underlying implementation of fluid.resourceLoader is the +low-level fluid.fetchResources API which in turn defers to jQuery.ajax.

+

Although we show an example here of constructing the resource loader as a free-standing component, a more typical usage would be as a subcomponent in a wider +component tree:

+
var resourceLoader = fluid.resourceLoader([options]);
+
+

Parameters

+ + + + + +
options(Object) Configuration options. See Options below for more information.
+

Return Value

+ + + + + +
Object(Object) The resource loader instance.
+

Options

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionValuesDefault
termsContains a map of variable names and replacement values to compose the path to each physical file. The map structure complies with the format of the second terms argument of fluid.stringTemplate() API. Also see Using String Templates for more information.Object{}
resources +

Contains a map of resource names and paths to these resources. These paths can be actual path strings, for example, ../data/template.html, or templating strings with embedded variables that have mapped replacement values defined in the term option, for example, %prefix/template.html. The format of templating paths complies with the format of the template argument of fluid.stringTemplate() API.

+
Object{}
localeSpecifies the language code with the desired localization. Language codes are expected in a form similar to BCP 47 tags but with a "_" instead of a "-" separating the language code from the country code. When specified, the resource loader will add a suffix of the locale value to each entry defined in the resources and look for them at the first attempt. If any such resource is not located, the resource loader follows Fallback Rules to attempt to find aother localization.Stringnull
defaultLocaleSpecifies the default language code. Provides a fallback to use if the desired localization cannot be located. See locale option for the format of language codes. Also See Fallback Rules for when defaultLocale value will be used.Stringnull
resourceOptionsContains "options" holding raw options to be forwarded to jQuery.ajax().Object{}
+

Fallback Rules with locale and defaultLocale

+

locale and defaultLocale options can be used to load localized resources, for example, to load messages in different languages.

+
fluid.defaults("fluid.messageLoader", {
+    gradeNames: ["fluid.resourceLoader"],
+    resources: {
+        translation: "../data/translation.json"
+    },
+    locale: "fr_CA",
+    defaultLocale: "en_US"
+});
+
+

This example requests to load a JSON file that contains translations. The fluid.messageLoader follows fallback rules below to satisfy the request:

+
    +
  1. look for a suffixed resource corresponding to the language code specified by the locale option: ../data/translation-fr_CA.json
  2. +
  3. look for a suffixed resource with the same language as the language code specified by the locale option: ../data/translation-fr.json
  4. +
  5. look for a suffixed resource corresponding to the language code specified by the defaultLocale option: ../data/translation-en_US.json
  6. +
  7. look for a suffixed resource with the same language as the language code specified by the defaultLocale option: ../data/translation-en.json
  8. +
  9. look for a resource with the exact URL as specified through the resources option: ../data/translation.json
  10. +
+

Events

+ + + + + + + +
NameDescriptionArguments
onResourcesLoadedFired when all resources are finished loading. +

A populated object with fetched resource text in the field resourceText for each entry. If an error occurs during a fetch, the fetchError field will be populated for that entry. This object can also be retrieved directly on the resource loader instance via the path resources.

+
+

Using fluid.resourceLoader

+

The example below demonstrates when and how to use the fetched resource text in an IoC component tree. Generally speaking, the part that requires the fetched resources needs to postpone the instantiation via createOnEvent until resources are ready.

+
fluid.defaults("fluid.UI", {
+    gradeNames: ["fluid.viewComponent"],
+    components: {
+        templateLoader: {
+            type: "fluid.resourceLoader",
+            options: {
+                terms: {
+                    prefix: "../data"
+                },
+                resources: {
+                    template: "%prefix/testTemplate.html"
+                },
+                listeners: {
+                    "onResourcesLoaded.escalate": "{fluid.UI}.events.onTemplatesReady"
+                }
+            }
+        },
+        renderUI: {
+            type: "fluid.viewComponent",
+            container: "{fluid.UI}.container",
+            createOnEvent: "onTemplatesReady",
+            options: {
+                listeners: {
+                    "onCreate.appendTemplate": {
+                        "this": "{that}.container",
+                        "method": "append",
+                        args: ["{templateLoader}.resources.template.resourceText"]
+                    }
+                }
+            }
+        }
+    },
+    events: {
+        onTemplatesReady: null
+    }
+});
+
+var UI = fluid.UI(".flc-UI");
+
+ +
+
+ + + +
+ +
+ + +
+ + + + + diff --git a/infusion/development/SettingsStore.html b/infusion/development/SettingsStore.html new file mode 100644 index 00000000..e949082c --- /dev/null +++ b/infusion/development/SettingsStore.html @@ -0,0 +1,651 @@ + + + + + + Settings Store | Fluid Infusion + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ +
+ + +
+ + + + +
+
+ + + + + +
+ + + +
+ +
+ + +
+
+ +
+ +

Settings Store

+ + + + + +
+

The Infusion Preferences Framework uses a Settings Store to read and +write preferences.

+

fluid.prefs.store

+

A base grade to be used by any preference setting store. +This component uses the following base grades:

+ +

fluid.prefs.dataSource

+

A grade used by fluid.prefs.store; defines placeholders for get and set methods.

+ + + + + + + + + + + + + + + + + +
Method PlaceholderDescription
getFor retrieving preferences. Should return the preferences
setFor saving preferences. Should accept the preferences as an argument.
+
Note that no particular parameters are prescribed for these methods. It is up to the developer +to choose whatever is appropriate for the particular implementation.
+

fluid.prefs.cookieStore

+

A settings store grade that uses a cookie for persistence.

+ + + + + + + + + + + + + + +
MethodImplementation
get
fluid.prefs.cookieStore.get = function (cookieName)
set
fluid.prefs.cookieStore.set = function (settings, cookieOptions)
+

fluid.prefs.tempStore

+

A settings store mock that doesn't do persistence. This grade is useful for tests.

+ + + + + + + + + + + + + + +
MethodImplementation
getfluid.identity
set
fluid.prefs.tempStore.set = function (settings, applier)
+
+
+ + + +
+ +
+ + +
+ + + + + diff --git a/infusion/development/SubcomponentDeclaration.html b/infusion/development/SubcomponentDeclaration.html new file mode 100644 index 00000000..8507fdfc --- /dev/null +++ b/infusion/development/SubcomponentDeclaration.html @@ -0,0 +1,844 @@ + + + + + + Subcomponent Declaration | Fluid Infusion + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ +
+ + +
+ + + + +
+
+ + + + + +
+ + + +
+ +
+ + +
+
+ +
+ +

Subcomponent Declaration

+ + + + + +
+

In the Infusion IoC system, a component declares its subcomponents through the components property of its options. +Subcomponent declaration in a defaults block takes the following form:

+
fluid.defaults("my.component.name", {
+    // ...
+    components: {
+        subcomponent1: <subcomponent declaration>,
+        subcomponent2: <subcomponent declaration>,
+        subcomponent3: <subcomponent declaration>,
+    }
+    // ...
+});
+
+

When the parent component is constructed, one subcomponent will be constructed for each entry in the finally elaborated form of its components options, and attached to the parent at the paths held as keys in the components structure. +In this case, executing var component = my.component.name() would construct three subcomponents as members of component named subcomponent1, subcomponent2 and subcomponent3.

+

Minimal working example

+

Here's a minimal working example:

+
fluid.defaults("examples.myParent", {
+    gradeNames: "fluid.component",
+    components: {
+        mySubcomponent: {
+            type: "fluid.component"
+        }
+    }
+});
+
+var component = examples.myParent();
+console.log("Parent component has a child of type ", component.mySubcomponent.typeName);
+
+

Component options can arrive at an instantiated component through various routes other than just its defaults - and so further subcomponents can arrive through all these other routes too. +For example, with dynamic grades, further subcomponents can be added after the fact to any component. +Other routes for options are direct arguments to its creator function, options distributed by distributeOptions, or by 2nd-level nested components entries in the subcomponent record of the defaults of a component grandparent. +Later on in this section we will see direct framework facilities for other kinds of dynamic subcomponents, those driven by dynamic data or event firing.

+

Basic Subcomponent Declaration

+

The subcomponent declaration has the following form, holding the subcomponent record as the value corresponding to the key holding the subcomponent's member name (in this case subcomponent1):

+
fluid.defaults("my.component.name", {
+    // ...
+    components: {
+        subcomponent1: {
+            type: "type.name",
+            options: {
+                // ...
+            }
+        }
+    }
+    // ...
+});
+
+

The properties allowed at top level in the subcomponent record are as follows:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyTypeDescriptionExample
typeStringThis is the grade name of the type of subcomponent to be created. May be an IoC Reference.
subcomponent1: {
+    type: "my.component.gradename"
+}
options [optional]ObjectThese are options to be passed to the subcomponent as "user options." +
Note: These are not the default options for the subcomponent, rather these options override the defaults. + The defaults for the component will have already been registered by the fluid.defaults call(s) appropriate for its type and grade names.
subcomponent1: {
+    type: "fluid.mySubcomponent",
+    options: {
+        myOptions: "{name}.options.someOption"
+        // ...
+    }
+}
createOnEvent [optional]String

Specifies an event that will trigger the creation of the subcomponent. + This option is used when the subcomponent should not be created immediately as part of the construction process of its parent, but rather at a later time signalled by the firing of the specified event. + If this value is a simple string, it represents an event held on the parent component - it may also take the form of an IoC reference to an event elsewhere in the component tree.

+
Note: If the specified event fires multiple times, the corresponding component will be destroyed and then recreated on every firing of the event after the first time.
subcomponent1: {
+    type: "fluid.mySubcomponent",
+    createOnEvent: "someEvent"
+}
priority [optional]Number or "first"/"last"Specifies the order priority of the creation of the particular subcomponent. During component tree instantiation, the framework will sort the collection of subcomponents based on the priority specified. +
Note: The use of this option should be discouraged as it leads to fragile configuration. If you find yourself using it, please report the instance to the development team to see if a better solution can be found.
subcomponent1: {
+    type: "fluid.mySubcomponent",
+    priority: "first"
+}
container (Required only for view components)StringThis property is a CSS-style selector (or, more usually, an IoC Reference to an element produced by the DOM Binder of some other component) + identifying the container element to be used for this subcomponent. This property is required for any View components.
+

Injected Subcomponent Declaration

+

The entire subcomponent record may be replaced by a simple IoC reference to a component held elsewhere in the component tree. +In this case the subcomponent is known as an injected component - the already existing component reference is simply copied into the parent component's member field. +In many cases, you will not need to inject components elsewhere in the tree since they can be effectively used in +their original position by means of IoC references (for reading) or options distributions (for modifying)

+

Examples

+

Standard Subcomponent Declaration

+

This first example shows a straightforward subcomponent declaration. adminRecordEditor, a component of grade cspace.recordEditor +(which would be a view component grade since we make use of the container top-level option) is a standard subcomponent of cspace.admin:

+
fluid.defaults("cspace.admin", {
+    gradeNames: ["fluid.rendererComponent"],
+    components: {
+        adminRecordEditor: { // view subcomponent declaration
+            type: "cspace.recordEditor",
+            container: "{admin}.dom.recordEditor",
+            options: {
+                csid: "{admin}.selectedRecordCsid"
+            }
+        }
+    }
+});
+
+

Injected Subcomponent Declaration

+

Our second example shows a component being injected from one site in the tree to another. We call the standard, original +component concreteChild a concrete subcomponent because it is constructed in-place where it is defined. The site +to which it is injected has a path child2.injectedComponent in the final instantiated tree, and at that site it is +called an injected subcomponent because it appears at a path other than the one where it was constructed. In memory, the +JavaScript object references at path concreteChild and child2.injectedComponent will be identical.

+

Injecting subcomponents can be useful in order to capture (or parameterise) variability in the relationship between two components, in +order to expose it more cleanly to a third component. For example, a component A may be managed by a component B elsewhere in the tree, +where the configurer of A wishes to have the freedom for B to be located at a variety of places - expressing this variety by binding to B +as an injected subcomponent referenced by an IoC reference held at member path, say, named b. A third component C can then cleanly refer to +the respective B simply as A.b without having to deal with the indirection by the IoC reference themselves.

+
Note: You should use only this facility for +shipping Infusion component references around within the tree, and not copy raw component references around by hand, otherwise you will +confuse the framework's book-keeping for reference resolution. +
+
fluid.defaults("examples.injection.root", {
+    gradeNames: "fluid.component",
+    components: {
+        concreteChild: {
+            type: "fluid.component"
+        },
+        child2: {
+            type: "fluid.component",
+            options: {
+                components: {
+                    // injected component declaration
+                    injectedComponent: "{examples.injection.root}.concreteChild"
+                }
+            }
+        }
+    }
+});
+
+var that = examples.injection.root();
+// that.concreteChild and that.child2.injectedComponent are identical references
+that.concreteChild.destroy();
+// destroying the concrete child clears it from that.child2.injectedComponent too
+
+

Subcomponent with createOnEvent

+

This example shows a subcomponent defined with the createOnEvent annotation. Unlike an ordinary concrete subcomponent, this +subcomponent will not be constructed at the same time as its parent. Instead, it will only be constructed once the +onUIOptionsMarkupReady event fires. However, it will still be destroyed along with its parent component at the standard time.

+
Note: There is an important distinction between standard subcomponents defined with createOnEvent, and +dynamic subcomponents which also may be written with createOnEvent. For the former, if the event fires a 2nd and subsequent time, the existing +subcomponent will be destroyed, and a fresh one created. For the latter, a fresh subcomponent is created on each event firing, and these will all accumulate until they are manually destroyed (or until the parent is destroyed) +
+
fluid.defaults("gpii.explorationTool.modelTransformer", {
+    gradeNames: ["fluid.modelComponent", "fluid.uiOptions.modelRelay"],
+    events: {
+        onUIOptionsMarkupReady: null
+    },
+    components: {
+        highContrast: { // complex subcomponent declaration with createOnEvent
+            type: "gpii.explorationTool.panels.highContrast",
+            container: "{uiOptions}.dom.highContrast",
+            createOnEvent: "onUIOptionsMarkupReady"
+        }
+    }
+});
+
+

Dynamic components

+

A powerful facility known as dynamic (sub)components allows you to direct the framework to construct a number of subcomponents whose number is not known in advance from a template subcomponent record. There are two principal varieties of dynamic components. The first requires the existence of a source array for the construction - at run-time, the framework will inspect the array you refer to and construct one component from your template for each element of the array. The components which get constructed in this way can each be contextualised by both the contents of the corresponding array element as well as its index. +The second requires the existence of a source event for the construction. The framework will construct one subcomponent for each firing of the event - the constructed component can be contextualised by the arguments that the event was fired with.

+

Both of these schemes make use of a special top-level area in a component's options, entitled dynamicComponents. The structure of this area is almost identical to the standard components area described above, with a few differences described in the dedicated subsections below.

+

Naming of dynamic components

+

The actual member names given to dynamic components follows a very straightforward scheme. The very first such component created will have the same name as the dynamicComponents record entry. Subsequent such components will have the name <key>-<n> where <key> represents the record entry name and <n> holds an integer, initially with value 1, which will increment for each further dynamic component constructed using the record. In practice you should not use this information to "go looking" for dynamic components, but instead should expect to observe their effects by some scheme such as injecting events down into them to which they register listeners, or broadcasting listeners down into them by use of distributeOptions or dynamic grades.

+

Future evolution of dynamic components

+

Although this facility is powerful, the reader will note the peculiar asymmetry in the construction process - the framework may be directed to construct these components in a declarative way, but they may only be destroyed procedurally through a call to the component's destroy() function. An improved and properly symmetric version of this facility will be delivered as part of work on the new Fluid Renderer as described by FLUID-5047 and related JIRAs, and the system described here will be withdrawn, as with previous "bridging technologies" such as the initFunction system.

+

Dynamic subcomponents with a source array

+

This scheme for declaring a dynamic component is announced by making use of the sources entry at top-level in the dynamic component's component record. The following defaults block defines a component which in practice will instantiate two subcomponents, one for each element in the array values that it declares in its own options:

+
fluid.defaults("examples.dynamicComponentRoot", {
+    gradeNames: ["fluid.component"],
+    values: [2, 3],
+    dynamicComponents: {
+        dynamic: {
+            sources: "{that}.options.values",
+            type: "fluid.component",
+            options: {
+                source: "{source}"
+            }
+        }
+    }
+});
+
+var that = examples.dynamicComponentRoot();
+var firstValue = that.dynamic.options.source; // 2
+var secondValue = that["dynamic-1"].options.source; // 3
+
+

The sources entry will be expanded in the context of the parent component, and must hold a reference to an array. +Within the configuration for the dynamic component, two special IoC context names are available. +One is named {source} and holds a reference to the particular array element which was used to expand the record into a component - in the above example, successively the values 2, and 3. +The other is named {sourcePath} and holds a reference to the array index which was used - in the above example, successively the values 0 and 1.

+

Dynamic subcomponents with a source event

+

The use of this scheme for dynamic components is announced by using the standard createOnEvent top-level member that we met earlier when writing standard components subcomponent blocks. +The syntax is the same, but the semantic is different. For a standard subcomponent, createOnEvent will destroy and then recreate a component at the same path on each firing of the specified event. +In contrast, for a dynamic subcomponent, createOnEvent will construct a fresh subcomponent at successive different paths on each firing of the event. The naming of these paths is described in the previous section but in practice should not be a concern for the user.

+
fluid.defaults("examples.dynamicEventRoot", {
+    gradeNames: ["fluid.eventComponent"],
+    events: {
+        creationEvent: null
+    },
+    dynamicComponents: {
+        dynamic: {
+            createOnEvent: "creationEvent",
+            type: "fluid.component",
+            options: {
+                argument: "{arguments}.0"
+            }
+        }
+    }
+});
+
+var that = examples.dynamicEventRoot();
+that.events.creationEvent.fire(2);
+var firstValue = that.dynamic.options.argument; // 2
+that.events.creationEvent.fire(3);
+var secondValue = that["dynamic-1"].options.argument; // 3
+
+

In this case, the configuration for the dynamic components block exposes just the extra context name {arguments} which we have seen used both with invokers and event listeners ( +the {source} and {sourcePath} contexts used with array-sourced dynamic components are not visible). In this case, the context name {arguments} is bound onto the argument list that was used to fire the event which triggered the creation of the particular dynamic subcomponent. +The example shows the argument list successively holding the value [2] and then the value [3].

+
Note: With this scheme, it is quite likely that the user will want to arrange for the destruction of the dynamic subcomponents at some time earlier than the natural destruction time of their parent and all its children. +Using this scheme, they must arrange to do so using procedural code which manually invokes the destroy() method of the dynamic subcomponent they want destroyed. +As we observe above, this awkwardness will be removed when the dynamicComponents facility is replaced in a future revision of the framework that makes more powerful use of the lensing capabilities of the Model Transformations system. +
+
+
+ + + +
+ +
+ + +
+ + + + + diff --git a/infusion/development/SwitchAPI.html b/infusion/development/SwitchAPI.html new file mode 100644 index 00000000..23da285b --- /dev/null +++ b/infusion/development/SwitchAPI.html @@ -0,0 +1,429 @@ + + + + + + Switch API | Fluid Infusion + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ +
+ + +
+ + + + +
+
+ + + + + +
+ + + +
+ +
+ + +
+
+ +
+ +

Switch API

+ + + + + +
+

The Switch component is a user interface widget for switching/toggling a setting, preference, option, etc.

+

Creating a Switch

+
var switchUI = fluid.switchUI(container);
+
+// or
+
+var switchUIWithOptions = fluid.switchUI(container, options);
+
+

Parameters

+

container

+

The container parameter is a CSS-based selector, single-element jQuery object, or DOM element specifying the containing element for the Switch.

+

options parameter

+

The options parameter is an optional collection of name-value pairs that configure the Switch, as described in the Options section below.

+

Options

+

General options

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionValuesDefault
selectors +

JavaScript object defining CSS-style selectors for important DOM elements. See Selectors for more information.

+
The object may contain the following keys: +
    +
  • on
  • +
  • off
  • +
  • control
  • +
+
+ +

+selectors: {
+    on: ".flc-switchUI-on",
+    off: ".flc-switchUI-off",
+    control: ".flc-switchUI-control"
+}
+                    
+ +
stringsAn object containing text to be used by the switch. These are displayed visually on the screen and/or provided as a label for an assistive technology.The object may contain the following keys: +
    +
  • label
  • +
  • on
  • +
  • off
  • +
+
+ +

+strings: {
+    // Specified by implementor
+    // text of label to apply the switch, must add to "aria-label" in the attrs block
+    label: "",
+    on: "on",
+    off: "off"
+}
+                    
+ +
attrsAn object containing any HTML attributes to be added to the switch control. + An object containing any key/value pairs representing valid HTML attributes and their respective values. In particular, an integrator should define a key/value pairing for "aria-label" or "aria-labelledby". +
Note: If the switch controls another element on the page, "aria-controls" should be added to indicate the relationship.
+
+ +

+attrs: {
+    role: "switch",
+    tabindex: 0
+}
+                    
+ +
modelThe state of the switch.true is "on", false is "off" + +

+model: {
+    enabled: false
+}
+                    
+ +
+

Selectors

+

The selectors option is an object containing CSS-based selectors for the various parts of the Switch. Supported selectors are:

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionDefault
onIdentifies the element for the "on" identifier + +

+selectors: {
+    on: ".flc-switchUI-on"
+}
+                    
+ +
offIdentifies the element for the "off" identifier + +

+selectors: {
+    off: ".flc-switchUI-off"
+}
+                    
+ +
selectablesIdentifies the DOM element that represents the actual UI switch control. + +

+selectors: {
+    control: ".flc-switchUI-control"
+}
+                    
+ +
+

Styling the Switch

+

The Switch includes default CSS styles that are applied to its elements. The application of styles is based on known class names. The default class names are described below, and can be used by including the Switch stylesheet:

+
<link href="components/switch/css/Switch.css" type="text/css" rel="stylesheet" media="all">;
+
+
Note: Switch.css is generated from the Switch.styl Stylus file. See the Developing with the Preferences Framework section of the Infusion README for how to build Stylus files.
+

These styling classes should be added to the markup used by the Switch. To modify the appearance, one can modify the markup and/or override the style declarations applied to the classes.

+

Default Classes

+
    +
  • fl-switchUI - Should be added to the switch container.
  • +
  • fl-switchUI-text - Should be applied to the "on" and "off" indicators.
  • +
  • fl-switchUI-control - Should be applied to the actual switch control.
  • +
  • fl-switchUI-controlKnob - Should be applied to the knob of the switch control.
  • +
+

Dependencies

+

The Switch dependencies can be met by including the infusion-all.js file in the header of the HTML file:

+
<script type="text/javascript" src="infusion-all.js"></script>
+
+

Alternatively, the individual file requirements are:

+
<script type="text/javascript" src="lib/jquery/core/js/jquery.js"></script>
+<script type="text/javascript" src="lib/jquery/ui/js/jquery-ui.js"></script>
+<script type="text/javascript" src="framework/core/js/Fluid.js"></script>
+<script type="text/javascript" src="framework/core/js/jquery.keyboard-a11y.js"></script>
+<script type="text/javascript" src="framework/core/js/FluidDocument.js"></script>
+<script type="text/javascript" src="framework/core/js/FluidIoC.js"></script>
+<script type="text/javascript" src="framework/core/js/DataBinding.js"></script>
+<script type="text/javascript" src="framework/core/js/FluidView.js"></script>
+<script type="text/javascript" src="components/switch/js/Switch.js"></script>
+
+

The Switch also requires the following stylesheet:

+
<link rel="stylesheet" type="text/css" href="components/switch/css/Switch.css" />
+
+ +
+
+ + + +
+ +
+ + +
+ + + + + diff --git a/infusion/development/TextToSpeechAPI.html b/infusion/development/TextToSpeechAPI.html new file mode 100644 index 00000000..b94d411b --- /dev/null +++ b/infusion/development/TextToSpeechAPI.html @@ -0,0 +1,758 @@ + + + + + + Text To Speech API | Fluid Infusion + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ +
+ + +
+ + + + +
+
+ + + + + +
+ + + +
+ +
+ + +
+
+ +
+ +

Text To Speech API

+ + + + + +
+

The Text To Speech component uses Web Speech Synthesis API to queue up and read texts.

+

Browser Support

+

The Text To Speech component can be used in browsers that support Web Speech Synthesis API. At the time of writing, July 26 2016, these browsers include:

+
    +
  • Chrome 31+
  • +
  • Chrome for Android 40+
  • +
  • Safari 7.1+
  • +
  • iOS Safari 7.1+
  • +
  • MS Edge 14 (in Preview Release)
  • +
  • Firefox 48+ (using the media.webspeech.synth.enabled about:config option)
  • +
+
Note: find the latest browser support data for Web Speech Synthesis API from +caniuse.com.
+

Creator

+

Use the following function to create a Text To Speech component:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Method + fluid.textToSpeech(options); +
Description + Instantiate the text to speech component. The methods of the instantiated component can be called to queue up and read texts. +
Parameters +
+
model.utteranceOpts
+
+ An optional data structure supplied to the component model that configures the Text To Speech component behaviour, as described below. As part of the component model, can be managed through the ChangeApplier API to assist in coordination with other components. +
+
+
ReturnsThe Text To Speech component
Examples + +

+var tts = fluid.textToSpeech({
+    model: {
+        utteranceOpts: {
+            volume: 1
+        }
+    },
+});
+
+ +
See also + model.utteranceOpts Options +
+

Supported Methods

+

queueSpeech

+ + + + + + + + + + + + + + + + + + + +
Method + textToSpeech.queueSpeech(text, interrupt, options); +
Description + The queueSpeech method allows you to append text to the end of the queue to begin speaking after the other texts in the queue have been spoken. Setting the interrupt argument to true will remove all texts from the queue before adding text to the queue. +
Parameters +
+
text
+
+ The string of text to be appended to the queue and spoken. +
+
interrupt
+
+ An optional boolean value. The default value is false. Setting it to true will remove all texts from the queue before adding the text. Setting it to false will not affect previously queued texts. +
+
options
+
+ An optional javascript object. Allows for the configuration of the specific SpeechSynthesisUtterance instance used for this particular text. The configuration passed in here takes the same form as model.utteranceOpts and will override them for this instance only. +
+
+
Example + +

+fluid.queueSpeech("Hello world", false, {
+    volume: 0.5
+});
+
+ +
+

cancel

+ + + + + + + + + + + + + + + +
Method + textToSpeech.cancel(); +
Description + The cancel method allows you to remove all texts from the queue. If a text is being spoken, speaking ceases immediately. +
Parametersnone
+

pause

+ + + + + + + + + + + + + + + +
Method + textToSpeech.pause(); +
Description + The pause method allows you to immediately pause any texts that are being spoken. +
Parametersnone
+

resume

+ + + + + + + + + + + + + + + +
Method + textToSpeech.resume(); +
Description + The resume method allows you to resume speaking a text that was previously paused. +
Parametersnone
+

getVoices

+ + + + + + + + + + + + + + + +
Method + textToSpeech.getVoices(); +
Description + The getVoices method allows you to get a list of all the voices that are supported by the browser. This list is an array of SpeechSynthesisVoice objects. Each of these SpeechSynthesisVoice objects has a number of attributes: +
    +
  • name: A human-readable name that describes the voice.
  • +
  • voiceURI: A URI specifying the location of the speech synthesis service for this voice.
  • +
  • lang: The language code for this voice.
  • +
  • default: Set to true if this is the default voice used by the browser.
  • +
  • localService: The API can use both local and remote services to handle speech synthesis. If this attribute is set to true the speech synthesis for this voice is handled by a local service. If it’s false a remote service is being used. This attribute can be useful if you’re building an app that needs to work offline. You could use a remote service when an internet connection is present, and fallback to a local service if a connection is not available.
  • +
+
Parametersnone
+

Supported Events

+
Note: if needed, please read the Infusion Event System document for a full description of infusion events.
+

The events fired by the Text To Speech component are described below.

+

onStart

+ + + + + + + + + + + + + + + +
Description + This event fires when texts in the queue have begun to be spoken. +
Typedefault
Parameters + none +
+

onStop

+ + + + + + + + + + + + + + + +
Description + This event fires when the speaking stops, which occurs when all the texts in the queue have been spoken or the speaking is manually stopped. +
Typedefault
Parameters + none +
+

onError

+ + + + + + + + + + + + + + + +
Description + This event fires when an error occurs that prevents the text from being spoken.

+
Typedefault
Parameters + none +
+

onSpeechQueued

+ + + + + + + + + + + + + + + +
Description + This event fires when a text has been queued up to be spoken. +
Typedefault
Parameters +
+
text
+
+ The text that has been added to the queue. +
+
+
+

Model Paths

+

The following model paths can be used with model listeners based on the current state of the speech:

+
    +
  • model.paused: true if a spoken text is currently paused, false otherwise
  • +
  • model.speaking: true if text is being spoken (including in a paused state), false otherwise
  • +
  • model.pending: true if there are text items remaining to be spoken, false otherwise
  • +
+

model.utteranceOpts Configuration

+
Note: if needed, please read the Component Configuration Options document for a full description of infusion component options.
+

Configuration of the Text To Speech component can be done through model.utteranceOpts. This model path is a Javascript object that contains attributes that users can use to define the behaviour of the SpeechSynthesisUtterance instance (a part of the web speech API that the Text To Speech component interacts with).

+
Note: not all speech synthesizers support all these attributes and some may take different ranges.
+

These attributes include:

+

text

+ + + + + + + + + + + + + + + +
Description + The text attribute allows you to set the text that you wish to be spoken. +
Note: be careful with this attribute as it will override any text that was previously passed.
+
Default + "" +
Example + +

+fluid.textToSpeech({
+    model: {
+        utteranceOpts: {
+            text: "Override other texts"
+        }
+    }
+});
+
+ +
+

lang

+ + + + + + + + + + + + + + + +
Description + The lang attribute gives you ability to specify a BCP 47 language tag indicating the language of the voice. +
Default + Default to the language of the HTML document. +
Example + +

+fluid.textToSpeech({
+    model: {
+        utteranceOpts: {
+            lang: "en-US"
+        }
+    }
+});
+
+ +
+

voice

+ + + + + + + + + + + + + + + + + + +

+
Description + The voice attribute must be a SpeechSynthesisVoice object that specifies the speech synthesis voice that the web application wishes to use. Calling the getVoices method returns an array of all available voices, from which you can select a valid SpeechSynthesisVoice, or you can call the SpeechSynthesis.getVoices() function of the browser directly. +
Note: in some browsers (such as Chrome), the voice list is populated after the page is loaded, and you may need to wait for the voiceschanged event to get a full list.
+
Default + Default to the user agent default speech service. It varies depending on the browser configuration. +
Example + +

+<p>var availableVoices = SpeechSynthesis.getVoices();
+var voiceToUse = availableVoices[0];</p>
+<p>fluid.textToSpeech({
+model: {
+utteranceOpts: {
+voice: voiceToUse
+}
+}
+});
+
+ +
See also +Method getVoices() +
+

volume

+ + + + + + + + + + + + + + + +
Description + The volume attribute allows you to adjust the volume of the speech. This is a float value between 0 and 1. +
Default + 1 +
Example + +

+fluid.textToSpeech({
+    model: {
+        utteranceOpts: {
+            volume: 0.5
+        }
+    }
+});
+
+ +
+

rate

+ + + + + + + + + + + + + + + +
Description + The rate attribute allows you to define the speed at which the text should be spoken. This is a float value between 0 and 10. +
Default + 1 +
Example + +

+fluid.textToSpeech({
+    model: {
+        utteranceOpts: {
+            rate: 2.5
+        }
+    }
+});
+
+ +
+

pitch

+ + + + + + + + + + + + + + + +
Description + The pitch attribute allows you to control how high or low the text is spoken. This is a float value between 0 and 2. +
Default + 1 +
Example + +

+fluid.textToSpeech({
+    model: {
+        utteranceOpts: {
+            pitch: 1.2
+        }
+    }
+});
+
+ +
+
+
+ + + +
+ +
+ + +
+ + + + + diff --git a/infusion/development/TextfieldAPI.html b/infusion/development/TextfieldAPI.html new file mode 100644 index 00000000..bf366b5d --- /dev/null +++ b/infusion/development/TextfieldAPI.html @@ -0,0 +1,388 @@ + + + + + + Textfield | Fluid Infusion + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ +
+ + +
+ + + + +
+
+ + + + + +
+ + + +
+ +
+ + +
+
+ +
+ +

Textfield

+ + + + + +
+

The Textfield is a small component for adding aria attributes and data binding to a HTML textfield. Typically this will be used in conjunction with a controller (e.g. Textfield Slider, Textfield Stepper) to restrict the values and pair with additional input methods.

+

Creator

+

Use the following function to create a Textfield component:

+ + + + + + + + + + + + + + + + + + + + + + + +
Method + fluid.textfield(container, options); +
Description +

Instantiates the textfield component. Provides data binding between the HTML <input> and the component's model. Also provides options for setting an "aria-label" and/or "aria-labelledby" attribute.

+
Parameters +
+
container
+
+

A CSS-based selectors, single-element jQuery object, or DOM element that identifies HTML <input> to bind the Textfield component to.

+
+
+
+
options
+
+ An optional data structure that configures the Textfield component, as described below. +
+
+
ReturnsThe Textfield component
Examples + +

+var textfield = fluid.textfield(".flc-textfield", {
+    model: {
+        value: "Hello World"
+    },
+    strings: {
+        "label": "Insert Demo Name"
+    }
+});
+
+ +
+

Methods

+

setModel

+ + + + + + + + + + + + + + + +
Method + textfield.setModel(event); +
Description + The setModel method allows for updating the model value based on an event. This is primarily used internally for binding to the input's change event. +
Parameters +
+
event
+
+ A jQuery event object including a change value. The setModel method will source the change value from event.target.value. +
+
+
+

Model Paths

+

The following model paths can be used with model listeners.

+
    +
  • model.value: undefined by default but can contain any value that is valid for the input.
  • +
+

Options

+

strings

+ + + + + + + + + + + + + + + +
Description + The strings option allows you to specify strings to be used by the component and is the main location for localization. In particular this is used to set an "aria-label" to the components container element, via the attrs option. +
DefaultNothing specified by default
Example + +

+var textfield = fluid.textfield(".flc-textfield", {
+    strings: {
+        "label": "Insert Demo Name"
+    }
+});
+
+ +
+

attrs

+ + + + + + + + + + + + + + + +
Description + The attrs option allows you to specify attributes to be added on creation to the components container element. In particular this is used to set aria attributes used by the component, such as "aria-labelledby". +
DefaultNothing specified by default
Example + +

+var textfield = fluid.textfield(".flc-textfield", {
+    attrs: {
+        "aria-labelledby": "elementID"
+    }
+});
+
+ +
+
+
+ + + +
+ +
+ + +
+ + + + + diff --git a/infusion/development/TextfieldSliderAPI.html b/infusion/development/TextfieldSliderAPI.html new file mode 100644 index 00000000..27b4e0f9 --- /dev/null +++ b/infusion/development/TextfieldSliderAPI.html @@ -0,0 +1,493 @@ + + + + + + Textfield Slider | Fluid Infusion + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ +
+ + +
+ + + + +
+
+ + + + + +
+ + + +
+ +
+ + +
+
+ +
+ +

Textfield Slider

+ + + + + +
+

The Textfield Slider is a user interface component for adjusting a number value using a range input. It is paired with a Textfield for direct entry of the value.

+

Creator

+

Use the following function to create a Textfield Slider component:

+ + + + + + + + + + + + + + + + + + + + + + + +
Method + fluid.textfieldSlider(container, options); +
Description + Instantiates the Textfield Slider component. Connects a slider (range input) and textfield, and keeps their values in sync with the model. Entries are restricted to numbers within a given range. +
Parameters +
+
container
+
+ A CSS-based selectors, single-element jQuery object, or DOM element that identifies the root DOM node where the Textfield Slider should be placed. +
+
+
+
options
+
+ An optional data structure that configures the Textfield Slider component, as described below. +
+
+
ReturnsThe Textfield Slider component
Examples + +

+var textfieldSlider = fluid.textfieldSlider(".flc-textfieldSlider", {
+    strings: {
+        "label": "Textfield Slider"
+    },
+    model: {
+        value: 7,
+        step: 1,
+        range: {
+            min: 0,
+            max: 10
+        }
+    },
+    scale: 0
+});
+
+ +
+

Model Paths

+

The following model paths can be used with model listeners.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Model PathDescriptionDefault
+ "value" + + May be any numerical value provided it is within the range (inclusive). + + null +
+ "step" + + The amount to increment/decrement the model value by. Primarily this is used by the slider. + + 1.0 +
+ "range.min" + + The minimum the model value can be. + + 0 +
+ "range.max" + + The maximum the model value can be. + + 100 +
+

Options

+

strings

+ + + + + + + + + + + + + + + +
Description + The strings option allows you to specify strings to be used by the component and is the main location for localization. Amongst other strings, this is used to set an "aria-label" to the textfield element and range input, via the attrs option. +
DefaultNothing specified by default
Example + +

+var textfieldSlider = fluid.textfieldSlider(".flc-textfieldSlider", {
+    strings: {
+        "label": "Text Size"
+    }
+});
+
+ +
+

attrs

+ + + + + + + + + + + + + + + +
Description + The attrs option allows you to specify attributes to be added on creation. In particular this is used to set aria attributes used by the component, such as "aria-labelledby". By default this option is passed along to and applied by both the textfield and Slider subcomponents. +
DefaultNothing specified by default
Example + +

+var textfieldSlider = fluid.textfieldSlider(".flc-textfieldSlider", {
+    attrs: {
+        "aria-labelledby": "elementID"
+    }
+});
+
+ +
+

styles

+ + + + + + + + + + + + + + + +
Description + The styles option allows you to specify classes to be added programmatically and used for styling with CSS to the component. +
Default + +

+{
+    container: "fl-textfieldSlider fl-focus"
+}
+
+ +
Example + +

+var textfieldSlider = fluid.textfieldSlider(".flc-textfieldSlider", {
+    styles: {
+        container: "fl-textfieldSlider fl-textfieldSlider-focus"
+    }
+});
+
+ +
+

selectors

+ + + + + + + + + + + + + + + +
Description + The selectors option allows you to identify the elements within the component's markup for programmatically interacting with. +
Default + +

+{
+    textfield: ".flc-textfieldSlider-field",
+    slider: ".flc-textfieldSlider-slider"
+}
+
+ +
Example + +

+var textfieldSlider = fluid.textfieldSlider(".flc-textfieldSlider", {
+    selectors: {
+        textfield: ".demo-textfieldSlider-field",
+        slider: ".demo-textfieldSlider-slider"
+    }
+});
+
+ +
+
+
+ + + +
+ +
+ + +
+ + + + + diff --git a/infusion/development/TextfieldStepperAPI.html b/infusion/development/TextfieldStepperAPI.html new file mode 100644 index 00000000..f740c73f --- /dev/null +++ b/infusion/development/TextfieldStepperAPI.html @@ -0,0 +1,599 @@ + + + + + + Textfield Stepper | Fluid Infusion + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ +
+ + +
+ + + + +
+
+ + + + + +
+ + + +
+ +
+ + +
+
+ +
+ +

Textfield Stepper

+ + + + + +
+

The Textfield Stepper is a user interface component for adjusting a number value using a Textfield for direct entry of the value, along buttons for incrementing and decrementing the value. A user can also increment/decrement the values using the up/down arrow keys.

+

Creator

+

Use the following function to create a Textfield Stepper component:

+ + + + + + + + + + + + + + + + + + + + + + + +
Method + fluid.textfieldStepper(container, options); +
Description + Instantiates the Textfield Stepper component. Connects a textfield and a pair of increment/decrement buttons to set a value. Entries are restricted to numbers within a given range. +
Parameters +
+
container
+
+ A CSS-based selectors, single-element jQuery object, or DOM element that identifies the root DOM node where the Textfield Stepper should be placed. +
+
+
+
options
+
+ An optional data structure that configures the Textfield Stepper component, as described below. +
+
+
ReturnsThe Textfield Stepper component
Examples + +

+var textfieldStepper = fluid.textfieldStepper(".flc-textfieldStepper", {
+    strings: {
+        "label": "Textfield Stepper"
+    },
+    model: {
+        value: 1,
+        step: 0.1,
+        range: {
+            min: 1,
+            max: 2
+        }
+    },
+    scale: 1
+});
+
+ +
+

Methods

+

increase

+ + + + + + + + + + + + + + + +
Method + textfieldStepper.increase(); +
Description + The increase method increases the model value by the model.step amount. +
Parameters + By default this method does not take any arguments. +
+

decrease

+ + + + + + + + + + + + + + + +
Method + textfieldStepper.decrease(); +
Description + The decrease method decreases the model value by the model.step amount. +
Parameters + By default this method does not take any arguments. +
+

addFocus

+ + + + + + + + + + + + + + + +
Method + textfieldStepper.addFocus(); +
Description + The addFocus method adds the focus style classes to the element specified by the focusContainer selector. +
Parametersnone
+

removeFocus

+ + + + + + + + + + + + + + + +
Method + textfieldStepper.removeFocus(); +
Description + The removeFocus method removes the focus style classes from the element specified by the focusContainer selector. +
Parametersnone
+

Model Paths

+

The following model paths can be used with model listeners.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Model PathDescriptionDefault
+ "value" + + May be any numerical value provided it is within the range (inclusive). + + null +
+ "step" + + The amount to increment/decrement the model value by. + + 1 +
+ "range.min" + + The minimum the model value can be. + + 0 +
+ "range.max" + + The maximum the model value can be. + + 100 +
+

Options

+

strings

+ + + + + + + + + + + + + + + +
Description + The strings option allows you to specify strings to be used by the component and is the main location for localization. Amongst other strings, this is used to set an "aria-label" to the textfield element, via the attrs option. +
Default + +

+{
+    increaseLabel: "increment",
+    decreaseLabel: "decrement"
+}
+
+ +
Example + +

+var textfieldStepper = fluid.textfieldStepper(".flc-textfieldStepper", {
+    strings: {
+        "label": "Text Size",
+        increaseLabel: "increase",
+        decreaseLabel: "decrease"
+    }
+});
+
+ +
+

attrs

+ + + + + + + + + + + + + + + +
Description + The attrs option allows you to specify attributes to be added on creation. In particular this is used to set aria attributes used by the component, such as "aria-labelledby". By default this option is passed along to and applied by the textfield subcomponent. +
DefaultNothing specified by default
Example + +

+var textfieldStepper = fluid.textfieldStepper(".flc-textfieldStepper", {
+    attrs: {
+        "aria-labelledby": "elementID"
+    }
+});
+
+ +
+

styles

+ + + + + + + + + + + + + + + +
Description + The styles option allows you to specify classes to be added programmatically and used for styling with CSS to the component. +
Default + +

+{
+    container: "fl-textfieldStepper",
+    focus: "fl-textfieldStepper-focus"
+}
+
+ +
Example + +

+var textfieldStepper = fluid.textfieldStepper(".flc-textfieldStepper", {
+    styles: {
+        container: "fl-textfieldStepper-container",
+        focus: "fl-focus"
+    }
+});
+
+ +
+

selectors

+ + + + + + + + + + + + + + + +
Description + The selectors option allows you to identify the elements within the component's markup for programmatically interacting with. +
Default + +

+{
+    textfield: ".flc-textfieldStepper-field",
+    focusContainer: ".flc-textfieldStepper-focusContainer",
+    increaseButton: ".flc-textfieldStepper-increase",
+    decreaseButton: ".flc-textfieldStepper-decrease"
+}
+
+ +
Example + +

+var textfieldStepper = fluid.textfieldStepper(".flc-textfieldStepper", {
+    selectors: {
+        textfield: ".demo-textfieldStepper-field",
+        focusContainer: ".demo-textfieldStepper-focusContainer",
+        increaseButton: ".demo-textfieldStepper-increase",
+        decreaseButton: ".demo-textfieldStepper-decrease"
+    }
+});
+
+ +
+
+
+ + + +
+ +
+ + +
+ + + + + diff --git a/infusion/development/UnderstandingInfusionComponents.html b/infusion/development/UnderstandingInfusionComponents.html new file mode 100644 index 00000000..9087fcd0 --- /dev/null +++ b/infusion/development/UnderstandingInfusionComponents.html @@ -0,0 +1,694 @@ + + + + + + Understanding Infusion Components | Fluid Infusion + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ +
+ + +
+ + + + +
+
+ + + + + +
+ + + +
+ +
+ + +
+
+ +
+ +

Understanding Infusion Components

+ + + + + +
+

Every Infusion application is structured as a set of components. An Infusion component can represent +a visible component on screen, a collection of related functionality such as an object as in object-orientation, +or simply a unit of work or relationship between other components. This page provides resources to help you understand components, how they're designed and how to work with them.

+

If you're creating an entire web application, your application would be implemented as a component that +coordinates interactions between other components that handle the different parts of your application.

+

Examples

+

To help understand how a widget or application might be designed using components, consider some of +the components in the Infusion Component Library:

+
Note: All of the example components presented here are view components which produce a visible UI in the browser. Other Infusion components expose no UI, and may run on the server in environments like node.js.
+

Progress

+

a horizontal progress bar

+

The Infusion Progress component is a single view component with no subcomponents. It has a number of UI elements +that work together and are updated programmatically to show the progress of some activity. It has a +pretty simple purpose and function, one that doesn't make much sense to try to chunk up into multiple components.

+

Inline Edit

+

The Inline Edit component with a hover tooltip showing

+

The Inline Edit component allows the user to edit text in place, without switching to a new screen, by +simply switching into an in-place edit mode. The view mode is implemented one way, with certain functionality (i.e. a tooltip, an affordance to edit), and the edit mode is implemented differently: it's an edit field. +Conceptually, these two modes are rather different, and so they're implemented as two separate subcomponents of the main Inline Edit component.

+

Uploader

+

The Uploader interface, showing a list of files queued for uploading.

+

The Uploader allows users to add several files to a queue and then upload them all at once. It is actually +made up of several subcomponents: It has the file queue view, which displays the files currently in the queue; it has a total progress bar at the bottom. In turn, the file queue view component has its own subcomponents.

+

What Does a Component Look Like?

+

A component is a regular JavaScript object that has certain characteristics. The simplest varieties of Infusion Components, derived from fluid.component, will have:

+
    +
  • a creator function +
      +
    • the function that users of the component invoke, which returns a fresh component object
    • +
    • this function is constructed automatically by the framework, given the options in the component's configuration
    • +
    +
  • +
  • configuration options +
      +
    • various values that control the operation of the component, which can be overridden by implementors to customize the component
    • +
    +
  • +
  • public functions +
      +
    • registered as invokers in the component's configuration, these can be invoked by users to trigger component functionality
    • +
    +
  • +
  • events +
      +
    • registered as events in the component's configuration, these can be fired and listened to by users and the implementation
    • +
    +
  • +
+

In addition, a component derived from fluid.modelComponent will support:

+
    +
  • a model +
      +
    • a free-form area where the component stores mutable state which is of interest to its end user
    • +
    • changes in this area are managed by an automatically generated implementation attached to the component, a ChangeApplier, which allows interested parties to register and deregister their interest in particular changes, as well as allowing changes to one component's model to be automatically coordinated with changes in another.
    • +
    +
  • +
+

Components which manage a view on behalf of their user, which is rooted at a particular node in the DOM, will derive from fluid.viewComponent which then supports:

+
    +
  • a container +
      +
    • a root element in the DOM to which the component's activity is scoped
    • +
    +
  • +
  • a DOM binder +
      +
    • associating names with scoped selectors and the DOM nodes that they match
    • +
    +
  • +
+

New kinds of components are created by passing configuration information to the fluid.defaults function. +This function will generate the creator function that will be used to instantiate the component. +The framework provides support for instantiating components of various types, or 'grades'; +as well, developers can create their own grades.

+

Simple example of defining and using a plain fluid.component

+

In this example, we will define a simple component which logs a message on startup, and create an instance of it:

+
// Define a new component by registering the JSON representing its options with fluid.defaults
+fluid.defaults("examples.tinyComponent", {
+    gradeNames: "fluid.component",
+    listeners: {
+        "onCreate.logMessage": {
+            func: "fluid.log",
+            args: "My tiny component has started up"
+        }
+    }
+});
+
+// Enable visible log messages in the console
+fluid.setLogging(true);
+// Create an instance of the component
+var myComponent = examples.tinyComponent();
+// Logs "My tiny component has started up" to the console
+
+

You can understand this example better by reading documentation for fluid.defaults, fluid.log and the Component Lifecycle.

+

Instantiating A View Component

+

In this section we instantiate a view component which is already defined in the framework, and configure it with some options of our own:

+

Example

+
var myInlineEdit = fluid.inlineEdit(".title-container", {
+    styles: {
+        edit: "demo-title-edit demo-edit"
+    },
+    strings: {
+        defaultViewText: "Edit this",
+        defaultFocussedViewText: "Edit this (click or press enter)"
+    }
+});
+
+ +
+
+ + + +
+ +
+ + +
+ + + + + diff --git a/infusion/development/UploaderAPI.html b/infusion/development/UploaderAPI.html new file mode 100644 index 00000000..a2c9134e --- /dev/null +++ b/infusion/development/UploaderAPI.html @@ -0,0 +1,1159 @@ + + + + + + Uploader API | Fluid Infusion + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ +
+ + +
+ + + + +
+
+ + + + + +
+ + + +
+ +
+ + +
+
+ +
+ +

Uploader API

+ + + + + +
+

The Infusion Uploader provides an easy way for users to upload many files at once, providing useful feedback about the status and progress of each file along the way.

+

Uploader implements a couple different ways to upload multiple files. With its built-in support for progressive enhancement, users will automatically receive a version of the Uploader best suited to the capabilities of their browsers. There are two different flavours of Uploader:

+
    +
  1. Single file: delivered to browsers that don't support JavaScript and HTML 5
  2. +
  3. HTML 5: the best and most widely-supported version of Uploader, suitable for modern browsers
  4. +
+

The HTML 5 version of the Uploader will be delivered to modern, standards-compliant browsers, including:

+
    +
  • Internet Explorer 10+
  • +
  • Firefox 3.6+
  • +
  • Safari 4+
  • +
  • Google Chrome
  • +
+
Note: As of Infusion 1.5, the Flash version of the Uploader has been removed due to a cross-site scripting vulnerability.
+

Progressive Enhancement

+

The Uploader utilizes the concept of progressive enhancement. The goal is to ensure that the page is usable by the widest possible audience, even with old browsers or when JavaScript is turned off. This is done by specifying a regular file input element in the markup. When the Uploader is initialized, the Upload code will replace that element with the Fluid Uploader. As of Infusion 1.3, progressive enhancement will occur automatically by default. It can be overridden by choosing a specific upload strategy instead of using the fluid.uploader.progressiveStrategy.

+

Upload Strategy

+

The Infusion Uploader, like many Fluid components, is really one interface to a collection of components that work together to provide a unified user experience.

+

The Uploader provides a facade object, called a strategy, which represents the entire subsystem for a particular implementation of Uploader. There are currently two different strategies available to choose from:

+
    +
  1. fluid.uploader.html5Strategy, which provides the modern HTML 5 implementation of Uploader
  2. +
  3. fluid.uploader.progressiveStrategy, which uses the Infusion IoC - Inversion of Control System to deliver the best possible version of Uploader based on the capabilities of the user's browser.
  4. +
+

The default strategy for Uploader is fluid.uploader.progressiveStrategy.

+

Upgrading

+

Upgrading from Infusion 1.2

+

The Uploader was substantially refactored for the Infusion 1.3 in order to support the new HTML 5 version. However, most users should be unaffected. All events, selectors, and classes remain compatible with previous versions. Since the Uploader's underlying structure has changed significantly, and support for Infusion's IoC System was introduced, several other configuration options have changed. +In order to ease the transition, we've provided a compatibility file that will automatically transform your options from the old format to the new when you invoke fluid.uploader(). This can be enabled by including the UploaderCompatibility-Infusion1.2.js file your page. If you're not using a custom build of Infusion, you will also need to include the framework's ModelTransformations.js file.

+

Creating an Uploader

+

To instantiate a new Uploader on your page using the recommended progressive enhancement feature:

+
var myUploader = fluid.uploader(container, options);
+
+

Returns: An Uploader component object. The resulting type may be either fluid.uploader.multiFileUploader or fluid.uploader.singleFileUploader depending on the capabilities of your user's browser. If you're programmatically calling methods on the Uploader, be sure to check its typeName or use duck typing first.

+

Parameters

+

container

+

The container is a CSS-based selector, single-element jQuery object, or DOM element that identifies the root DOM node of the Uploader markup.

+

options

+

The options object is an optional data structure that configures the Uploader, as described in the Options section below.

+

Supported Events

+

The Uploader fires the following events

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
EventTypeDescriptionParametersParameters Description
onFileDialogdefault + The event is fired when the OS File Open dialog is displayed. + none
onFilesSelecteddefault + The event is fired when files have been selected for addition to the file queue. + HTML5 only. + numFilesThe number of files selected.
afterFileQueueddefault + This event is fired for each file that is queued after the File Selection Dialog window is closed. + file +
+
file
+
+ the File object that has just been added to the queue. +
+
+
afterFileRemoveddefault + Event is fired for each file that is removed from the filequeue model + file +
+
file
+
+ the File object that was just removed from the queue. +
+
+
onQueueErrordefault + This event is fired for each file that was not queued after the File Selection Dialog window is closed. + file, errorCode +
+
file
+
+ the File object that failed to be added to the queue. +
+
errorCode
+
+ indication of the reason for the file not being added to the queue. +
+
+ + Note: A file may not be queued for several reasons such as, the file exceeds the file size, the file is empty or a file or queue limit has been exceeded. + +
afterFileDialogdefault + This event fires after the File Selection Dialog window has been closed and all the selected files have been processed. + none
onUploadStartdefault + This event at the beginning of the entire upload cycle. + fileList +
+
fileList
+
+ a list of the File objects that will be uploaded to the server. +
+
+
onFileStartdefault + This event is fired immediately before the file is uploaded. + file +
+
file
+
+ the File object that has started to be uploaded. +
+
+
onFileProgressdefault + This event is fired periodically by the upload manager during a file upload and is useful for providing UI updates on the page. Also keeps up-to-date the overall progress of the currently uploading batch. + file, fileBytesComplete, fileTotalBytes +
+
file
+
+ the File object for this progress event. +
+
fileBytesComplete
+
+ the number of bytes for the current file that have been uploaded to the server +
+
fileTotalBytes
+
the total size of the file in bytes.
+
+
onFileErrordefault + This event is fired any time an individual file upload is interrupted or does not complete successfully. + file, error, status, xhr +
+
file
+
+ the File object that errored. +
+
error
+
+ whether the file failed because the user cancelled the upload or because of another file specific error Use fluid.uploader.fileStatusConstants to interpret the value. +
+
status
+
+ xhr.status. 0 if the error occurs during the upload, otherwise, the HTTP status code. +
+
xhr
+
+ Defaults to the ActiveXObject when available (IE), the XMLHttpRequest otherwise. +
+
+
onFileSuccessdefault + This event is fired when an upload completes and the server returns a HTTP 200 status code. + file, responseText, xhr +
+
file
+
+ the File object that has completed. +
+
responseText
+
+ the response text returned from the server. +
+
xhr
+
+ Defaults to the ActiveXObject when available (IE), the XMLHttpRequest otherwise. +
+
+
afterFileCompletedefault + This event is fired for each file uploaded whether or not the file is uploaded successfully, onFileSuccess, or the file failed to upload, onFileError. At this point the upload process for the currently uploading file is complete and the upload for the next file in the queue is started. + file +
+
file
+
+ the File object that was successfully uploaded. +
+
+
afterUploadCompletedefault + This event is fired at the end of an upload cycle when all the files have either been uploaded, failed to upload, the user stopped the upload cycle, or there was an unrecoverable error in the upload process and the upload cycle was stopped. + fileList +
+
fileList
+
+ the File objects that "completed" (either succeeded or failed), in this upload. +
+
+
+

File Objects

+

Many of the Uploader's events pass a File object as a parameter to the event listener. These objects provide useful information about the file, including its name, size in bytes, and its current status in the queue.

+

File object: a representation of each file in the file queue, as provided from the upload strategy. At the moment, the properties of this object will be slightly different depending on the strategy you're using. This will be addressed in a future release.

+

Regardless of the strategy, the following properties will be available:

+
    +
  • id - (string) A unique id for each file in the queue
  • +
  • name - (string) The file name. The path is not provided.
  • +
  • size - (number) The file size in bytes
  • +
  • filestatus - (number) The file's current status. +
      +
    • Use fluid.uploader.fileStatusConstants to interpret the value.
    • +
    +
  • +
+

File Status Constants

+

The Uploader offers a set of constants used to denote the status of a particular file in the queue. These can be used when querying the filestatus property of a File object.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Upload Error ConstantsDescription
fluid.uploader.errorConstants.HTTP_ERROR + An HTTP error occurred while uploading a file. +
fluid.uploader.errorConstants.MISSING_UPLOAD_URL + The uploadURL was not correctly specified in the uploadManager options. +
fluid.uploader.errorConstants.IO_ERROR + An IO error occurred while transferring the file. +
fluid.uploader.errorConstants.SECURITY_ERROR + The upload caused a security error to occur. +
fluid.uploader.errorConstants.UPLOAD_LIMIT_EXCEEDED + The user attempted to upload more files than allowed by the fileUploadLimit option for the uploadManager. +
fluid.uploader.errorConstants.UPLOAD_FAILED + The Uploader was unable to start uploading the file to the server. +
fluid.uploader.errorConstants.SPECIFIED_FILE_ID_NOT_FOUND + This indicates an error in the Uploader and should be filed as a bug. +
fluid.uploader.errorConstants.FILE_VALIDATION_FAILED
fluid.uploader.errorConstants.FILE_CANCELLEDThe upload was canceled by the user.
fluid.uploader.errorConstants.UPLOAD_STOPPEDThe upload was stopped by the user.
File Status ConstantsDescription
fluid.uploader.fileStatusConstants.QUEUED + The file is currently queued up and ready to be sent to the server. +
fluid.uploader.fileStatusConstants.IN_PROGRESS + The file is currently being uploaded to the server. +
fluid.uploader.fileStatusConstants.ERROR + An error occurred while trying to upload the file. +
fluid.uploader.fileStatusConstants.COMPLETE + The file was successfully uploaded to the server. +
fluid.uploader.fileStatusConstants.CANCELLED + The file was canceled by the user while in the process of being uploaded. +
+

Options

+

The Uploader supports a "plug-and-play" architecture that allows for many of the sub-components of the Uploader to be swapped out for other components or your own custom components. The best example of this is the strategy component, which allows you to choose between the fluid.uploader.html5Strategy and the fluid.uploader.progressiveStrategy. However you can also replace the Progress subcomponent and the FileQueueView subcomponent, with a customized version you have implemented yourself.

+

The Uploader and its sub-components are also highly configurable; you can make many adjustments to the user experience through a combination of HTML, CSS and the built-in configuration options. To customize the component for your own needs, start with these out-of-the-box features. If you need more flexibility, feel free to to write your own sub-component.

+

In addition to the Uploader options, there are also options specifically for the FileQueueView, Progress, and strategy subcomponents.

+

Uploader Subcomponents

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionValuesDefault
strategy + The strategy for how files are uploaded to the server (e.g. HTML 5, etc.) + + "fluid.uploader.progressiveStrategy", + "fluid.uploader.html5Strategy" + + +

+strategy: {
+    type: "fluid.uploader.progressiveStrategy"
+}
+
+ +
fileQueueView + Specifies the type of fileQueueView subcomponent to use. +Currently there is only one fileQueueView sub-component. + + "fluid.fileQueueView" + + +

+fileQueueView: {
+    type: "fluid.fileQueueView"
+}
+
+ +
totalProgressBar + Specifies the type and options to use for the total progress bar. + + See the Progress API documentation for a full descriptions of the available options. + + +

+totalProgressBar: {
+    type: "fluid.progress",
+    options: {
+        selectors: {
+            progressBar: ".flc-uploader-queue-footer", (was ".flc-uploader-scroller-footer" in v1.0)
+            displayElement: ".flc-uploader-total-progress",
+            label: ".flc-uploader-total-progress-text",
+            indicator: ".flc-uploader-total-progress",
+            ariaElement: ".flc-uploader-total-progress"
+        }
+    }
+},
+
+ +
+

Uploader Options

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionValuesDefault
selectors + Javascript object containing selectors for various fragments of the uploader markup + see Selectors below
listeners + JavaScript object containing events and the listeners that are attached to them. + + Keys in the object are event names, values are functions or arrays of functions. + see Supported Events
focusWithEvent + Javascript object containing selectors for markup elements that should obtain focus after certain events. + + Keys in the object are supported event names. +

+ Note: only specific methods in the Uploader have been factored to use this values. +

+
+ +

+focusWithEvent: {
+    afterFileDialog: "uploadButton",
+    afterUploadStart: "pauseButton",
+    afterUploadStop: "uploadButton"
+},
+
+ +
styles + Specific class names used to achieve the look and feel of the different states of the Uploader + + +

+styles: {
+    disabled: "fl-uploader-disabled",
+    hidden: "fl-uploader-hidden",
+    dim: "fl-uploader-dim",
+    totalProgress: "fl-uploader-total-progress-okay",
+    totalProgressError: "fl-uploader-total-progress-errored"
+}
+
+ +
strings + Strings that are used in the Uploader. +Note: The strings that contain tokens (example: %curFileN) are passed through a string template parser. + + v1.5 + +

+strings: {
+    progress: {
+        fileUploadLimitLabel: "%fileUploadLimit %fileLabel maximum",
+        noFiles: "0 files",
+        toUploadLabel: "%uploadedCount out of %totalCount files uploaded (%uploadedSize of %totalSize)",
+        totalProgressLabel: "%uploadedCount out of %totalCount files uploaded (%uploadedSize of %totalSize)",
+        completedLabel: "%uploadedCount out of %totalCount files uploaded (%uploadedSize of %totalSize)%errorString",
+        numberOfErrors: ", %errorsN %errorLabel",
+        singleFile: "file",
+        pluralFiles: "files",
+        singleError: "error",
+        pluralErrors: "errors"
+    },
+    buttons: {
+        browse: "Browse Files",
+        addMore: "Add More",
+        stopUpload: "Stop Upload",
+        cancelRemaning: "Cancel remaining Uploads",
+        resumeUpload: "Resume Upload",
+        remove: "Remove"
+    }
+}
+
+ + v1.4 + +

+strings: {
+    progress: {
+        fileUploadLimitLabel: "%fileUploadLimit %fileLabel maximum",
+        toUploadLabel: "To upload: %fileCount %fileLabel (%totalBytes)",
+        totalProgressLabel: "Uploading: %curFileN of %totalFilesN %fileLabel (%currBytes of %totalBytes)",
+        completedLabel: "Uploaded: %curFileN of %totalFilesN %fileLabel (%totalCurrBytes)%errorString",
+        numberOfErrors: ", %errorsN %errorLabel",
+        singleFile: "file",
+        pluralFiles: "files",
+        singleError: "error",
+        pluralErrors: "errors"
+    },
+    buttons: {
+        browse: "Browse Files",
+        addMore: "Add More",
+        stopUpload: "Stop Upload",
+        cancelRemaning: "Cancel remaining Uploads",
+        resumeUpload: "Resume Upload"
+    },
+    queue: {
+        emptyQueue: "File list: No files waiting to be uploaded.",
+        queueSummary: "File list:  %totalUploaded files uploaded, %totalInUploadQueue file waiting to be uploaded."
+    }
+}
+
+ +
demo + Boolean indicating whether to run in "demo" mode. See Running locally: "demo" mode below. + falsedemo: false
+

queueSettings Options

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionValuesDefault
uploadURL + The URL to which files should be sent via POST requests. + String""
fileUploadLimit + The maximum number of files allowed to be uploaded. 0 is unlimited. + Integer0
fileQueueLimit + The number of files that can be queued at once before uploading them. 0 is unlimited + Integer0
postParams + Parameters to send along with the POST request to the server when uploading files. + Javascript Object{}
fileSizeLimit + The maximum size of a file to send to the server. Files larger than this will not be added to the queue. + Integer, specified in bytes"20480"
fileTypes + The type of files that are allowed to be uploaded. Each file type should be specified as *.[fluid:file extension], separated by semicolons. Example: "*.jpg;*.jpeg;*.gif;*.tiff" + String + v1.4 +

null

+
            <strong>v1.1</strong>
+            <p>"*"</p>
+
+            <strong>v1.0</strong>
+            <p>"*.*"</p>
+        </td>
+    </tr>
+</tbody>
+
+
+

htmlStrategy Options

+ + + + + + + + + + + + + + + + + +
NameDescriptionValuesDefault
legacyBrowserFileLimit + A special file size limit for older browsers (such as Firefox 3.6), which don't fully support HTML 5 file uploads. + any integer value, specified in megabytes100
+

Selectors

+

One of the options that can be provided to the Uploader is a set of CSS-based selectors identifying where in the DOM different elements can be found. The value for the option is itself a Javascript object containing name/value pairs:

+
{
+    selectors: {
+        selector1Name: "selector 1 string",
+        selector2Name: "selector 2 string"
+        // ...
+    }
+}
+
+

The different parts of the Uploader interface each have their own set of selectors (though all selectors must be provided together in a single object). Each also has a default, as defined below:

+

General

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Selector NameDescriptionDefault
fileQueueThe container element of the File Queue.".flc-uploader-queue"
browseButtonThe Browse Files button.".flc-uploader-button-browse"
uploadButtonThe Upload button.".flc-uploader-button-upload"
pauseButtonThe Pause button.".flc-uploader-button-pause"
totalFileProgressBarThe file container for the total progress bar.".flc-uploader-queue-footer"
totalFileStatusText + The element to write the total progress bar status text into. + ".flc-uploader-total-progress-text"
instructionsThe element containing the browse files instructions.".flc-uploader-browse-instructions"
+

File Queue

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Selector NameDescriptionDefault
fileRowsThe files rows in the queue.".flc-uploader-file"
fileName + The container for the file's name. Scoped within an individual file row. + ".flc-uploader-file-name"
fileSize + The container for the file's size. Scoped within an individual file row. + ".flc-uploader-file-size"
fileIconBtn + The container for the file row icons. Scoped within an individual file row. + ".flc-uploader-file-action"
errorText + The container for file specific error text. Scoped within an individual file row. + ".flc-uploader-file-error"
rowTemplate + A template element to clone when creating new rows in the file queue. + ".flc-uploader-file-tmplt"
errorInfoRowTemplate + A template element to close when displaying an error for an individual file. + ".flc-uploader-file-error-tmplt"
rowProgressorTemplate + A template element to clone when creating the progress bar for a file row. + ".flc-uploader-file-progressor-tmplt"
+

Scroller

+ + + + + + + + + + + + + + + +
Selector NameDescriptionDefault
wrapperA wrapper container around the scrollable element.".flc-scroller"
+

Progress

+
Note: Please see the Progress API document for a full description of Fluid Progress.
+

Uploader uses the following selector options for Progress:

+
{
+    selectors: {
+        progressBar: ".flc-uploader-queue-footer",
+        displayElement: ".flc-uploader-total-progress",
+        label: ".flc-uploader-total-progress-text",
+        indicator: ".flc-uploader-total-progress",
+        ariaElement: ".flc-uploader-total-progress"
+    }
+}
+
+

Any selectors not provided as an option will revert to the default. Implementers may choose to use the default class names in their markup, or customize the selectors, or a combination of these two approaches.

+

For example, if your markup uses all of the default selectors, except for the file queue selector and the remove button selector, you would provide the following selectors option:

+
{
+    selectors: {
+        fileQueue: "#my-file-queue",
+        removeButton: "#my-remove-button"
+    }
+}
+
+

Dependencies

+

Required

+

The Uploader dependencies can be met by including in the header of the HTML file

+
    +
  • the minified infusion-all.js file
  • +
  • the Fluid layout CSS file
  • +
  • the Uploader CSS file
  • +
+

as shown below:

+
<link rel="stylesheet" type="text/css" href="/framework/core/css/fluid.css" />
+<link rel="stylesheet" type="text/css" href="components/uploader/css/Uploader.css" />
+<script type="text/javascript" src="framework/core/js/infusion-all.js"></script>
+
+

Alternatively, the individual file requirements are:

+
<link rel="stylesheet" type="text/css" href="../../../framework/core/css/fluid.css" />
+<link rel="stylesheet" type="text/css" href="../css/Uploader.css" />
+
+<!-- Fluid and jQuery Dependencies -->
+<script type="text/javascript" src="../../../lib/jquery/core/js/jquery.js"></script>
+<script type="text/javascript" src="../../../lib/jquery/ui/js/jquery.ui.core.js"></script>
+<script type="text/javascript" src="../../../framework/core/js/jquery.keyboard-a11y.js"></script>
+<script type="text/javascript" src="../../../framework/core/js/Fluid.js"></script>
+<script type="text/javascript" src="../../../framework/core/js/FluidDocument.js"></script>
+<script type="text/javascript" src="../../../framework/core/js/FluidView.js"></script>
+<script type="text/javascript" src="../../../framework/core/js/DataBinding.js"></script>
+<script type="text/javascript" src="../../../framework/core/js/FluidIoC.js"></script>
+<script type="text/javascript" src="../../../framework/enhancement/js/ProgressiveEnhancement.js"></script>
+
+<!-- Uploader dependencies -->
+<script type="text/javascript" src="../js/Uploader.js"></script>
+<script type="text/javascript" src="../js/FileQueue.js"></script>
+<script type="text/javascript" src="../js/Scroller.js"></script>
+<script type="text/javascript" src="../../progress/js/Progress.js"></script>
+<script type="text/javascript" src="../js/FileQueueView.js"></script>
+<script type="text/javascript" src="../js/HTML5UploaderSupport.js"></script>
+<script type="text/javascript" src="../js/DemoUploadManager.js"></script>
+
+

Important Notes for Developers

+

Running locally: "demo" mode

+

The Upload component requires a server component to accept the uploaded files.

+

However there are times when you want to run the uploader with out a server: when working on integrating the component with your code, developing or testing the UI, or demonstrating the functionality of the code. For that reason the Uploader has a "demo" mode. In demo mode, the Uploader uses a special version of the uploadManager that pretends to be talking to a server. Most of the code is identical to the server mode because the same events are being fired and the model is exactly the same. Most of the code in the Uploader thinks that there is a server.

+

To run locally you must specify demo: true in your compontent configuration:

+
var myUploader = fluid.progressiveEnhanceableUploader(".flc-uploader", ".fl-ProgEnhance-basic", {
+    demo: true
+});
+
+ +
+
+ + + +
+ +
+ + +
+ + + + + diff --git a/infusion/development/UserInterfaceOptionsAPI.html b/infusion/development/UserInterfaceOptionsAPI.html new file mode 100644 index 00000000..f3ec391e --- /dev/null +++ b/infusion/development/UserInterfaceOptionsAPI.html @@ -0,0 +1,575 @@ + + + + + + User Interface Options API | Fluid Infusion + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ +
+ + +
+ + + + +
+
+ + + + + +
+ + + +
+ +
+ + +
+
+ +
+ +

User Interface Options API

+ + + + + +
+

The User Interface Options (UI Options) component allows users to transform the presentation of the user interface and content resources so that they are personalized to the individual user's needs.

+

UI Options does three things:

+
    +
  • places a preferences editor dialog with a set of six panels in a collapsible panel at the top of the page, accessible through a button in the upper right corner of the page;
  • +
  • instantiates a cookie-based Settings Store for storing the user's preferences; and
  • +
  • acts upon the user's preferences.
  • +
+

UI Options is a convenient way to add a simple separated-panel preferences editor to any page. The interface will automatically support the set of "starter" preferences provided by the Preferences Framework, in their default configuration.

+
Note: If you require any customization of UI Options, you should consider using the Builder tool of the Preferences Framework directly.
+

Screen shot of the UI Options Component

+

Creator

+

Use the following function to create a UI Options component:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Method + fluid.uiOptions.prefsEditor(container, options); +
Description + Instantiate a separated panel version of the UI Options component, which displays the controls in a sliding panel at the top of the page. +
Parameters +
+
container
+
+ A CSS-based selectors, single-element jQuery object, or DOM element that identifies the root DOM node where the UI Options interface should be placed. +
+
options
+
+ An optional data structure that configures the UI Options component, as described below. +
+
+
ReturnsThe UI Options component
Examples + +

+var myUIO = fluid.uiOptions.prefsEditor("#myContainer", {
+    tocTemplate: "../../components/tableOfContents/html/TableOfContents.html"
+});
+
+ +
Notes + The UI Options uses the page itself as a live "preview:" As users adjust controls, the page is modified accordingly. +
+

Supported Events

+

Listeners can be attached to any supported events through a component's listeners option. Values can be a function reference (not a string function name) or an anonymous function definition, as illustrated below:

+
var myComponent = component.name("#myContainerID", {
+    listeners: {
+        eventName1: functionName,
+        eventName2: function (params) {
+            // ...
+        }
+    }
+});
+
+

For information on the different types of events, see Infusion Event System.

+

onReady

+ + + + + + + + + + + + + + + +
Description + This event fires when the UI Options component is fully instantiated, rendered and ready to use. +
Typedefault
Parameters +
+
uio
+
The instantiated UI Options component.
+
+
+

onPrefsEditorReady

+ + + + +
Description + This event fires when the UI Options interface has been rendered into the iframe. +
            <p><em><strong>Note:</strong> use <code>onReady</code> if the listener needs UI Options to be both rendered and ready to use.</em></p>
+        </td>
+    </tr>
+    <tr>
+        <th>Type</th>
+        <td>default</td>
+    </tr>
+    <tr>
+        <th>Parameters</th>
+        <td>
+            <dl>
+                <dt>prefsEditorLoader</dt>
+                <dd>
+                    The instantiated preference editor loader component.
+                </dd>
+            </dl>
+        </td>
+    </tr>
+</tbody>
+
+
+

Options

+

The second argument to the creator function is the options argument. This is a JavaScript object containing name/value pairs: The name is the name of the option and the value is the desired setting. Components define their own default values for options, but integrators can override these defaults by providing new values using the options argument. For technical information about how options are merged with defaults, see Options Merging.

+
var uio = fluid.uiOptions.prefsEditor(".myContainer", {
+    option1Name: option1value,
+    option2Name: option2value
+    // ...
+});
+
+

The options supported by UI Options are described below.

+

tocTemplate

+ + + + + + + + + + + + + + + + + + + +
Description + The tocTemplate option allows you to specify a custom relative path to the templates used by generating table of contents. This template can be found in the source tree of the Infusion distribution. +
Default + "../../components/tableOfContents/html/TableOfContents.html" +
Example + +

+fluid.uiOptions.prefsEditor("#myContainer", {
+    tocTemplate: "html/myTocTemplate.html"
+});
+
+ +
See also + Table of Contents API +
+

terms

+ + + + + + + + + + + + + + + +
Description + The terms option allows you to specify custom relative paths to the templates and message bundles used by the UI Options interface. These templates can be found in the source tree of the Infusion distribution. +
Default + +

+{
+    templatePrefix: "../../framework/preferences/html",
+    messagePrefix: "../../framework/preferences/messages"
+}
+
+ +
Example + +

+fluid.uiOptions.prefsEditor("#myContainer", {
+    terms: {
+        templatePrefix: "../infusion/framework/preferences/html",
+        messagePrefix: "../infusion/framework/preferences/messages"
+    }
+});
+
+ +
+

prefsEditor

+ + + + + + + + + + + + + + + +
Description + The prefsEditor option allows you to specify a data structure to config the prefsEditor component. +
Defaultnull
Example + +

+fluid.uiOptions.prefsEditor("#myContainer", {
+    prefsEditor: {
+        listeners: {
+            onReady: function (internalEditor) {...}
+            onReset: function (internalEditor) {...}
+        }
+    }
+});
+
+ +
+

enhancerType

+ + + + + + + + + + + + + + + +
Description + The enhancerType option allows you to specify a custom enhancer grade component. +
Default"fluid.pageEnhancer"
Example + +

+fluid.uiOptions.prefsEditor("#myContainer", {
+    enhancerType: "myNamespace.myUIEnhancer"
+});
+
+ +
+

storeType

+ + + + + + + + + + + + + + + + + + + +
Description + The storeType option allows you to specify a custom store grade component. +
Default"fluid.prefs.globalSettingsStore"
Example + +

+fluid.uiOptions.prefsEditor("#myContainer", {
+    storeType: "myNamespace.mySettingsStore"
+});
+
+ +
See also + Cookie Settings Store +
+

lazyLoad

+ + + + + + + + + + + + +
Description +

The lazyLoad option allows you to specify if the +prefsEditor should be lazily loaded. When lazyLoad is enabled, +the contents of panel, including templates and message bundles +are not loaded until the panel is opened. This feature is useful +for improving initial page load times, but will cause a brief delay +the first time the panel is opened. +

Defaultfalse
Example

+ +

+fluid.uiOptions.prefsEditor("#myContainer", {
+    lazyLoad: true
+});
+
+ +
        </td>
+    </tr>
+</tbody>
+
+
+
+
+ + + +
+ +
+ + +
+ + + + + diff --git a/infusion/development/ViewAPI.html b/infusion/development/ViewAPI.html new file mode 100644 index 00000000..c67e8124 --- /dev/null +++ b/infusion/development/ViewAPI.html @@ -0,0 +1,801 @@ + + + + + + Infusion View API | Fluid Infusion + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ +
+ + +
+ + + + +
+
+ + + + + +
+ + + +
+ +
+ + +
+
+ +
+ +

Infusion View API

+ + + + + +
+

This file documents some low-level View APIs which are provided by Infusion at the JavaScript level, which are +dependent on running in a browser. See also the DOM Binder API.

+

Querying and Manipulating the DOM

+

fluid.allocateSimpleId(element)

+
    +
  • element {DomElement|jQuery} The DOM element or jQuery object for which a unique id is required
  • +
  • Returns: {String} The unique id for the element - at the point of return, agrees with the node's id attribute.
  • +
+

Allocate an id to the supplied element if it has none already, by a simple +scheme resulting in ids "fluid-id-nnnn" where nnnn is a string returned from fluid.allocateGuid. +If the element already has an id allocated in the DOM, this existing id is returned unchanged.

+

fluid.jById(id[, dokkument])

+
    +
  • id {String} The id of the node which is to be found
  • +
  • dokkument {DomDocument} [optional] The DOM Document in which the node is to be found. If omitted, defaults to the current global value of document.
  • +
  • Returns: {jQuery} A one or zero-element jQuery object holding the node to be found
  • +
+

Returns a jQuery object given the id of a DOM node. In the case the element is not found, will return an empty list.

+

fluid.byId(id[, dokkument])

+
    +
  • id {String} The id of the node which is to be found
  • +
  • dokkument {DomDocument} [optional] The DOM Document in which the node is to be found. If omitted, defaults to the current global value of document.
  • +
  • Returns: {DomElement|Null} The DOM element with the required id, or null if there is no such element
  • +
+

Returns an DOM element quickly, given an id. This forwards to document.getElementById as well as performing a safety check that the returned element +indeed has the required id.

+

fluid.getId(element)

+
    +
  • element {jQuery|DomElement} The element to return the id attribute for
  • +
  • Returns: {String|Undefined} The required id or undefined if the element has none
  • +
+

Returns the id attribute from a jQuery or pure DOM element.

+

fluid.wrap(obj[, userJQuery])

+
    +
  • obj {Any} The object to wrap in a jQuery. Falsey and existing jQuery objects are returned unchanged.
  • +
  • userJQuery {jQueryFramework} [optional] The jQuery framework object to use for the wrapping - use Infusion's value of $ if absent
  • +
  • Returns: {jQuery|Falsey} The wrapped object
  • +
+

Wraps an object in a jQuery if it isn't already one. This function is useful since +it ensures to wrap a null or otherwise falsey argument to itself, rather than the +often unhelpful jQuery default of returning the overall document node.

+

fluid.unwrap(obj)

+
    +
  • obj {jQuery|Any} The jQuery instance to unwrap into a pure DOM element
  • +
  • Returns: {DomElement|Any} The unwrapped element or the original argument
  • +
+

If obj is a jQuery, this function will return the first DOM element within it. Otherwise, the object will be returned unchanged.

+

fluid.getDocument(element)

+
    +
  • element {jQuery||DomElement} The element to return the document for
  • +
  • Returns: {Document} The document in which it is to be found
  • +
+

fluid.value(nodeIn[, newValue])

+
    +
  • nodeIn {jQuery|DomElement} The node whose value is to be read or written
  • +
  • newValue {String|Boolean|Array of String} [optional] The value to be written - if omitted, the value will be read
  • +
  • Returns: {String|Array of String} The value read from the DOM, if required
  • +
+

A generalisation of jQuery.val to correctly handle the case of acquiring and +setting the value of clustered radio button/checkbox sets, potentially, given a node corresponding to just one element. +If the supplied element is not an HTML radio button or checkbox, the +implementation will defer to jQuery.val. If the supplied element is an HTML radio button or checkbox, the function +will automatically acquire all other elements sharing the same HTML name within the same form element before performing +the read or write.

+

ARIA Labeller

+

A standalone utility and associated component for easily managing an ARIA live region and/or the aria-label +holding a label associated with a particular DOM node in the document.

+

fluid.updateAriaLabel(element, text[, options])

+
    +
  • element {jQueryable} A selector, DOM element or jQuery representing the DOM node on whose behalf a live region label is required
  • +
  • text {String} The string to be entered into the live region - this will be announced "soon" depending on the "politeness setting" attached to the aria-live attribute of the region (default: "polite")
  • +
  • options {AriaLabellerOptions} [optional] A set of options for configuring the behaviour of the labeller. These options are described in the table below.
  • +
  • Returns: {Component} An Infusion view component managing the interaction with the label. Note: disposing of this component is the responsibility of the caller. If you have destroyed the markup to which this component is attached, you must destroy the component using its destroy() method or it will leak. Successive calls to fluid.updateAriaLabel for the same DOM node will return the same component.
  • +
+

Structure of AriaLabellerOptions

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionDefault
dynamicLabelBooleanWhether or not an ARIA live region should be created and associated with the element, as well as the use of aria-labelfalse
liveRegionMarkupStringThe markup to use to create the live region (only used if dynamicLabel is true)."<div class=\"liveRegion fl-offScreen-hidden\" aria-live=\"polite\"></div>"
liveRegionIdStringThe ID to assign to the live region (only used if dynamicLabel is true)."fluid-ariaLabeller-liveRegion"
textStringThe text to place in the live region (only used if dynamicLabel is true).none
+

Note that as well as forming the 3rd argument to fluid.updateAriaLabel, these options also form the component options to the associated component, which is +an Infusion fluid.viewComponent of type fluid.ariaLabeller.

+

Managing Focus and Blur

+

Infusion includes two "major utilities" for managing focus interactions, fluid.globalDismissal and fluid.deadMansBlur, as well as a few minor utilities.

+

fluid.globalDismissal(nodes[, dismissFunc])

+
    +
  • nodes {Object: String → DomElement|jQuery} A free hash of names onto nodes that a click outside of will trigger dismissFunc
  • +
  • dismissFunc {Function: DomEvent → None}|Undefined A function which will be executed when a "dismissal click" is received in the document. If this argument is not supplied, any existing dismissal function will be disarmed.
  • +
+

Used in the stereotypical situation where a click event (morally, one which shifts focus outside a dialog or other region of interaction - but only actual click events +are supported by this function) should have the effect of "dismissing" the dialog or interaction region. This accepts a free hash of nodes designating the interaction +region and an optional "dismissal function". If dismissFunc is set, this "arms" the dismissal system, such that when a click +is received OUTSIDE any of the DOM node hierarchy covered by nodes, the dismissal function will be executed, and supplied with the DOM event +triggered by the click event. fluid.globalDismissal is a "one shot deal" - if the dismissFunc is executed, the system is disarmed and will need +to be armed again.

+

fluid.deadMansBlur(control, options)

+
    +
  • control {jQueryable} The control for which a blur interaction is to be managed.
  • +
  • options {DeadMansBlurOptions} A set of options managing the interaction, described in table below.
  • +
  • Returns: {Component} A component managing the interaction
  • +
+

This utility is designed to compensate for the fact that delivery of blur events in browsers has always been extremely unreliable. Sometimes blur events +are delivered simply because focus has moved to another control within the same interaction region, they are not delivered at all, or in some even more +perverse cases (especially on Internet Explorer) are delivered after the focus event which morally causes them.

+

This utility uses the following strategy: on receiving a standard blur event on the control, a timer is started which waits for a short period of +time (options.delay, defaults to 150ms) to discover whether the reason for the blur interaction is that either a focus or click is being serviced on a nominated +set of "exclusions" (options.exclusions, a free hash of elements or jQueries, as accepted by fluid.globalDismissal).

+

If no such event is received within the window, options.handler will be called with the argument control, to service whatever interaction is required of the +blur. If, further, a click is received outside the list of exclusions (as per fluid.globalDismissal), options.handler will be notified immediately.

+

Unlike fluid.globalDismissal, this interaction is permanent and will persist as long as the nominated DOM elements are in the DOM.

+
Note: The behaviour of this API has not been vetted for several years against the behaviour of our currently supported browsers, and it also has some deficits which +require reimplementation (e.g. that its handlers can't be removed from the target elements). It should be considered as an unstable API - however it is still being found +broadly useful.
+

Structure of DeadMansBlurOptions

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionDefault
exclusionsObject: String → DomElement|jQueryA free hash of names onto nodes that a click outside of will trigger handler, OR that a focus event received within the time window of delay from a blur event on control will cancel notification of handlernone
handlerFunction: (jQueryable) → NoneA function which will be invoked when the component has determined that a meaningful blur has been triggered on control. It will be invoked with control as the argument.none
delayNumberThe interval of time (in ms) that the component will wait after receiving a blur event on control in order to determine that the reason is that another element within exclusions is being focused.150
backDelayNumberThe interval of time before a blur event in which the component will be sensitive to an anomalous pre-focusing of an element within exclusions (primarily useful on Internet Explorer)100
cancelByDefaultBooleanIf true, the focus timer logic of deadMansBlur is disabled and it the user is expected to operate the component manually (unsupported API)false
+

fluid.getLastFocusedElement()

+
    +
  • Returns: {DomElement} Returns the last element which was focused in the DOM.
  • +
+

By means of registering a global listener to the synthetic jQuery focusin event, allows the user to retrieve the last DOM element which was focused.

+

fluid.focus(element)

+
    +
  • element {jQueryable} An element onto which focus should be transferred
  • +
+

This utility and fluid.blur should be used in test cases which are trying to test focus interactions, since the browser's fidelity in allowing focus to be moved programmatically is +often patchy. This utility will, in the following order, trigger the following:

+
    +
  • A synthetic jQuery event named fluid-focus
  • +
  • The jQuery event focus
  • +
  • The native DOM event focus
  • +
+

fluid.blur(element)

+
    +
  • element {jQueryable} An element which should lose focus as a result of receiving a blur event.
  • +
+

This utility and fluid.focus should be used in test cases which are trying to test focus interactions, since the browser's fidelity in allowing focus to be moved programmatically is +often patchy. This utility will, in the following order, trigger the following:

+
    +
  • A synthetic jQuery event named fluid-blur
  • +
  • The jQuery event blur
  • +
  • The native DOM event blur
  • +
+ +
+
+ + + +
+ +
+ + +
+ + + + + diff --git a/infusion/development/css/foundation.css b/infusion/development/css/foundation.css new file mode 100644 index 00000000..b2d8622e --- /dev/null +++ b/infusion/development/css/foundation.css @@ -0,0 +1,5263 @@ +meta.foundation-version { + font-family: "/5.2.2/"; } + +meta.foundation-mq-small { + font-family: "/only screen/"; + width: 0em; } + +meta.foundation-mq-medium { + font-family: "/only screen and (min-width:40.063em)/"; + width: 40.063em; } + +meta.foundation-mq-large { + font-family: "/only screen and (min-width:64.063em)/"; + width: 64.063em; } + +meta.foundation-mq-xlarge { + font-family: "/only screen and (min-width:90.063em)/"; + width: 90.063em; } + +meta.foundation-mq-xxlarge { + font-family: "/only screen and (min-width:120.063em)/"; + width: 120.063em; } + +meta.foundation-data-attribute-namespace { + font-family: false; } + +html, body { + height: 100%; } + +*, +*:before, +*:after { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; } + +html, +body { + font-size: 100%; } + +body { + background: white; + color: #222222; + padding: 0; + margin: 0; + font-family: "Helvetica Neue", "Helvetica", Helvetica, Arial, sans-serif; + font-weight: normal; + font-style: normal; + line-height: 1; + position: relative; + cursor: default; } + +a:hover { + cursor: pointer; } + +img { + max-width: 100%; + height: auto; } + +img { + -ms-interpolation-mode: bicubic; } + +#map_canvas img, +#map_canvas embed, +#map_canvas object, +.map_canvas img, +.map_canvas embed, +.map_canvas object { + max-width: none !important; } + +.left { + float: left !important; } + +.right { + float: right !important; } + +.clearfix { + *zoom: 1; } + .clearfix:before, .clearfix:after { + content: " "; + display: table; } + .clearfix:after { + clear: both; } + +.hide { + display: none; } + +.antialiased { + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; } + +img { + display: inline-block; + vertical-align: middle; } + +textarea { + height: auto; + min-height: 50px; } + +select { + width: 100%; } + +.row { + width: 100%; + margin-left: auto; + margin-right: auto; + margin-top: 0; + margin-bottom: 0; + max-width: 62.5rem; + *zoom: 1; } + .row:before, .row:after { + content: " "; + display: table; } + .row:after { + clear: both; } + .row.collapse > .column, + .row.collapse > .columns { + padding-left: 0; + padding-right: 0; } + .row.collapse .row { + margin-left: 0; + margin-right: 0; } + .row .row { + width: auto; + margin-left: -0.9375rem; + margin-right: -0.9375rem; + margin-top: 0; + margin-bottom: 0; + max-width: none; + *zoom: 1; } + .row .row:before, .row .row:after { + content: " "; + display: table; } + .row .row:after { + clear: both; } + .row .row.collapse { + width: auto; + margin: 0; + max-width: none; + *zoom: 1; } + .row .row.collapse:before, .row .row.collapse:after { + content: " "; + display: table; } + .row .row.collapse:after { + clear: both; } + +.column, +.columns { + padding-left: 0.9375rem; + padding-right: 0.9375rem; + width: 100%; + float: left; } + +@media only screen { + .small-push-0 { + position: relative; + left: 0%; + right: auto; } + + .small-pull-0 { + position: relative; + right: 0%; + left: auto; } + + .small-push-1 { + position: relative; + left: 8.33333%; + right: auto; } + + .small-pull-1 { + position: relative; + right: 8.33333%; + left: auto; } + + .small-push-2 { + position: relative; + left: 16.66667%; + right: auto; } + + .small-pull-2 { + position: relative; + right: 16.66667%; + left: auto; } + + .small-push-3 { + position: relative; + left: 25%; + right: auto; } + + .small-pull-3 { + position: relative; + right: 25%; + left: auto; } + + .small-push-4 { + position: relative; + left: 33.33333%; + right: auto; } + + .small-pull-4 { + position: relative; + right: 33.33333%; + left: auto; } + + .small-push-5 { + position: relative; + left: 41.66667%; + right: auto; } + + .small-pull-5 { + position: relative; + right: 41.66667%; + left: auto; } + + .small-push-6 { + position: relative; + left: 50%; + right: auto; } + + .small-pull-6 { + position: relative; + right: 50%; + left: auto; } + + .small-push-7 { + position: relative; + left: 58.33333%; + right: auto; } + + .small-pull-7 { + position: relative; + right: 58.33333%; + left: auto; } + + .small-push-8 { + position: relative; + left: 66.66667%; + right: auto; } + + .small-pull-8 { + position: relative; + right: 66.66667%; + left: auto; } + + .small-push-9 { + position: relative; + left: 75%; + right: auto; } + + .small-pull-9 { + position: relative; + right: 75%; + left: auto; } + + .small-push-10 { + position: relative; + left: 83.33333%; + right: auto; } + + .small-pull-10 { + position: relative; + right: 83.33333%; + left: auto; } + + .small-push-11 { + position: relative; + left: 91.66667%; + right: auto; } + + .small-pull-11 { + position: relative; + right: 91.66667%; + left: auto; } + + .column, + .columns { + position: relative; + padding-left: 0.9375rem; + padding-right: 0.9375rem; + float: left; } + + .small-1 { + width: 8.33333%; } + + .small-2 { + width: 16.66667%; } + + .small-3 { + width: 25%; } + + .small-4 { + width: 33.33333%; } + + .small-5 { + width: 41.66667%; } + + .small-6 { + width: 50%; } + + .small-7 { + width: 58.33333%; } + + .small-8 { + width: 66.66667%; } + + .small-9 { + width: 75%; } + + .small-10 { + width: 83.33333%; } + + .small-11 { + width: 91.66667%; } + + .small-12 { + width: 100%; } + + [class*="column"] + [class*="column"]:last-child { + float: right; } + + [class*="column"] + [class*="column"].end { + float: left; } + + .small-offset-0 { + margin-left: 0% !important; } + + .small-offset-1 { + margin-left: 8.33333% !important; } + + .small-offset-2 { + margin-left: 16.66667% !important; } + + .small-offset-3 { + margin-left: 25% !important; } + + .small-offset-4 { + margin-left: 33.33333% !important; } + + .small-offset-5 { + margin-left: 41.66667% !important; } + + .small-offset-6 { + margin-left: 50% !important; } + + .small-offset-7 { + margin-left: 58.33333% !important; } + + .small-offset-8 { + margin-left: 66.66667% !important; } + + .small-offset-9 { + margin-left: 75% !important; } + + .small-offset-10 { + margin-left: 83.33333% !important; } + + .small-offset-11 { + margin-left: 91.66667% !important; } + + .small-reset-order, + .small-reset-order { + margin-left: 0; + margin-right: 0; + left: auto; + right: auto; + float: left; } + + .column.small-centered, + .columns.small-centered { + margin-left: auto; + margin-right: auto; + float: none; } + + .column.small-uncentered, + .columns.small-uncentered { + margin-left: 0; + margin-right: 0; + float: left !important; } + + .column.small-uncentered.opposite, + .columns.small-uncentered.opposite { + float: right; } } +@media only screen and (min-width: 40.063em) { + .medium-push-0 { + position: relative; + left: 0%; + right: auto; } + + .medium-pull-0 { + position: relative; + right: 0%; + left: auto; } + + .medium-push-1 { + position: relative; + left: 8.33333%; + right: auto; } + + .medium-pull-1 { + position: relative; + right: 8.33333%; + left: auto; } + + .medium-push-2 { + position: relative; + left: 16.66667%; + right: auto; } + + .medium-pull-2 { + position: relative; + right: 16.66667%; + left: auto; } + + .medium-push-3 { + position: relative; + left: 25%; + right: auto; } + + .medium-pull-3 { + position: relative; + right: 25%; + left: auto; } + + .medium-push-4 { + position: relative; + left: 33.33333%; + right: auto; } + + .medium-pull-4 { + position: relative; + right: 33.33333%; + left: auto; } + + .medium-push-5 { + position: relative; + left: 41.66667%; + right: auto; } + + .medium-pull-5 { + position: relative; + right: 41.66667%; + left: auto; } + + .medium-push-6 { + position: relative; + left: 50%; + right: auto; } + + .medium-pull-6 { + position: relative; + right: 50%; + left: auto; } + + .medium-push-7 { + position: relative; + left: 58.33333%; + right: auto; } + + .medium-pull-7 { + position: relative; + right: 58.33333%; + left: auto; } + + .medium-push-8 { + position: relative; + left: 66.66667%; + right: auto; } + + .medium-pull-8 { + position: relative; + right: 66.66667%; + left: auto; } + + .medium-push-9 { + position: relative; + left: 75%; + right: auto; } + + .medium-pull-9 { + position: relative; + right: 75%; + left: auto; } + + .medium-push-10 { + position: relative; + left: 83.33333%; + right: auto; } + + .medium-pull-10 { + position: relative; + right: 83.33333%; + left: auto; } + + .medium-push-11 { + position: relative; + left: 91.66667%; + right: auto; } + + .medium-pull-11 { + position: relative; + right: 91.66667%; + left: auto; } + + .column, + .columns { + position: relative; + padding-left: 0.9375rem; + padding-right: 0.9375rem; + float: left; } + + .medium-1 { + width: 8.33333%; } + + .medium-2 { + width: 16.66667%; } + + .medium-3 { + width: 25%; } + + .medium-4 { + width: 33.33333%; } + + .medium-5 { + width: 41.66667%; } + + .medium-6 { + width: 50%; } + + .medium-7 { + width: 58.33333%; } + + .medium-8 { + width: 66.66667%; } + + .medium-9 { + width: 75%; } + + .medium-10 { + width: 83.33333%; } + + .medium-11 { + width: 91.66667%; } + + .medium-12 { + width: 100%; } + + [class*="column"] + [class*="column"]:last-child { + float: right; } + + [class*="column"] + [class*="column"].end { + float: left; } + + .medium-offset-0 { + margin-left: 0% !important; } + + .medium-offset-1 { + margin-left: 8.33333% !important; } + + .medium-offset-2 { + margin-left: 16.66667% !important; } + + .medium-offset-3 { + margin-left: 25% !important; } + + .medium-offset-4 { + margin-left: 33.33333% !important; } + + .medium-offset-5 { + margin-left: 41.66667% !important; } + + .medium-offset-6 { + margin-left: 50% !important; } + + .medium-offset-7 { + margin-left: 58.33333% !important; } + + .medium-offset-8 { + margin-left: 66.66667% !important; } + + .medium-offset-9 { + margin-left: 75% !important; } + + .medium-offset-10 { + margin-left: 83.33333% !important; } + + .medium-offset-11 { + margin-left: 91.66667% !important; } + + .medium-reset-order, + .medium-reset-order { + margin-left: 0; + margin-right: 0; + left: auto; + right: auto; + float: left; } + + .column.medium-centered, + .columns.medium-centered { + margin-left: auto; + margin-right: auto; + float: none; } + + .column.medium-uncentered, + .columns.medium-uncentered { + margin-left: 0; + margin-right: 0; + float: left !important; } + + .column.medium-uncentered.opposite, + .columns.medium-uncentered.opposite { + float: right; } + + .push-0 { + position: relative; + left: 0%; + right: auto; } + + .pull-0 { + position: relative; + right: 0%; + left: auto; } + + .push-1 { + position: relative; + left: 8.33333%; + right: auto; } + + .pull-1 { + position: relative; + right: 8.33333%; + left: auto; } + + .push-2 { + position: relative; + left: 16.66667%; + right: auto; } + + .pull-2 { + position: relative; + right: 16.66667%; + left: auto; } + + .push-3 { + position: relative; + left: 25%; + right: auto; } + + .pull-3 { + position: relative; + right: 25%; + left: auto; } + + .push-4 { + position: relative; + left: 33.33333%; + right: auto; } + + .pull-4 { + position: relative; + right: 33.33333%; + left: auto; } + + .push-5 { + position: relative; + left: 41.66667%; + right: auto; } + + .pull-5 { + position: relative; + right: 41.66667%; + left: auto; } + + .push-6 { + position: relative; + left: 50%; + right: auto; } + + .pull-6 { + position: relative; + right: 50%; + left: auto; } + + .push-7 { + position: relative; + left: 58.33333%; + right: auto; } + + .pull-7 { + position: relative; + right: 58.33333%; + left: auto; } + + .push-8 { + position: relative; + left: 66.66667%; + right: auto; } + + .pull-8 { + position: relative; + right: 66.66667%; + left: auto; } + + .push-9 { + position: relative; + left: 75%; + right: auto; } + + .pull-9 { + position: relative; + right: 75%; + left: auto; } + + .push-10 { + position: relative; + left: 83.33333%; + right: auto; } + + .pull-10 { + position: relative; + right: 83.33333%; + left: auto; } + + .push-11 { + position: relative; + left: 91.66667%; + right: auto; } + + .pull-11 { + position: relative; + right: 91.66667%; + left: auto; } } +@media only screen and (min-width: 64.063em) { + .large-push-0 { + position: relative; + left: 0%; + right: auto; } + + .large-pull-0 { + position: relative; + right: 0%; + left: auto; } + + .large-push-1 { + position: relative; + left: 8.33333%; + right: auto; } + + .large-pull-1 { + position: relative; + right: 8.33333%; + left: auto; } + + .large-push-2 { + position: relative; + left: 16.66667%; + right: auto; } + + .large-pull-2 { + position: relative; + right: 16.66667%; + left: auto; } + + .large-push-3 { + position: relative; + left: 25%; + right: auto; } + + .large-pull-3 { + position: relative; + right: 25%; + left: auto; } + + .large-push-4 { + position: relative; + left: 33.33333%; + right: auto; } + + .large-pull-4 { + position: relative; + right: 33.33333%; + left: auto; } + + .large-push-5 { + position: relative; + left: 41.66667%; + right: auto; } + + .large-pull-5 { + position: relative; + right: 41.66667%; + left: auto; } + + .large-push-6 { + position: relative; + left: 50%; + right: auto; } + + .large-pull-6 { + position: relative; + right: 50%; + left: auto; } + + .large-push-7 { + position: relative; + left: 58.33333%; + right: auto; } + + .large-pull-7 { + position: relative; + right: 58.33333%; + left: auto; } + + .large-push-8 { + position: relative; + left: 66.66667%; + right: auto; } + + .large-pull-8 { + position: relative; + right: 66.66667%; + left: auto; } + + .large-push-9 { + position: relative; + left: 75%; + right: auto; } + + .large-pull-9 { + position: relative; + right: 75%; + left: auto; } + + .large-push-10 { + position: relative; + left: 83.33333%; + right: auto; } + + .large-pull-10 { + position: relative; + right: 83.33333%; + left: auto; } + + .large-push-11 { + position: relative; + left: 91.66667%; + right: auto; } + + .large-pull-11 { + position: relative; + right: 91.66667%; + left: auto; } + + .column, + .columns { + position: relative; + padding-left: 0.9375rem; + padding-right: 0.9375rem; + float: left; } + + .large-1 { + width: 8.33333%; } + + .large-2 { + width: 16.66667%; } + + .large-3 { + width: 25%; } + + .large-4 { + width: 33.33333%; } + + .large-5 { + width: 41.66667%; } + + .large-6 { + width: 50%; } + + .large-7 { + width: 58.33333%; } + + .large-8 { + width: 66.66667%; } + + .large-9 { + width: 75%; } + + .large-10 { + width: 83.33333%; } + + .large-11 { + width: 91.66667%; } + + .large-12 { + width: 100%; } + + [class*="column"] + [class*="column"]:last-child { + float: right; } + + [class*="column"] + [class*="column"].end { + float: left; } + + .large-offset-0 { + margin-left: 0% !important; } + + .large-offset-1 { + margin-left: 8.33333% !important; } + + .large-offset-2 { + margin-left: 16.66667% !important; } + + .large-offset-3 { + margin-left: 25% !important; } + + .large-offset-4 { + margin-left: 33.33333% !important; } + + .large-offset-5 { + margin-left: 41.66667% !important; } + + .large-offset-6 { + margin-left: 50% !important; } + + .large-offset-7 { + margin-left: 58.33333% !important; } + + .large-offset-8 { + margin-left: 66.66667% !important; } + + .large-offset-9 { + margin-left: 75% !important; } + + .large-offset-10 { + margin-left: 83.33333% !important; } + + .large-offset-11 { + margin-left: 91.66667% !important; } + + .large-reset-order, + .large-reset-order { + margin-left: 0; + margin-right: 0; + left: auto; + right: auto; + float: left; } + + .column.large-centered, + .columns.large-centered { + margin-left: auto; + margin-right: auto; + float: none; } + + .column.large-uncentered, + .columns.large-uncentered { + margin-left: 0; + margin-right: 0; + float: left !important; } + + .column.large-uncentered.opposite, + .columns.large-uncentered.opposite { + float: right; } + + .push-0 { + position: relative; + left: 0%; + right: auto; } + + .pull-0 { + position: relative; + right: 0%; + left: auto; } + + .push-1 { + position: relative; + left: 8.33333%; + right: auto; } + + .pull-1 { + position: relative; + right: 8.33333%; + left: auto; } + + .push-2 { + position: relative; + left: 16.66667%; + right: auto; } + + .pull-2 { + position: relative; + right: 16.66667%; + left: auto; } + + .push-3 { + position: relative; + left: 25%; + right: auto; } + + .pull-3 { + position: relative; + right: 25%; + left: auto; } + + .push-4 { + position: relative; + left: 33.33333%; + right: auto; } + + .pull-4 { + position: relative; + right: 33.33333%; + left: auto; } + + .push-5 { + position: relative; + left: 41.66667%; + right: auto; } + + .pull-5 { + position: relative; + right: 41.66667%; + left: auto; } + + .push-6 { + position: relative; + left: 50%; + right: auto; } + + .pull-6 { + position: relative; + right: 50%; + left: auto; } + + .push-7 { + position: relative; + left: 58.33333%; + right: auto; } + + .pull-7 { + position: relative; + right: 58.33333%; + left: auto; } + + .push-8 { + position: relative; + left: 66.66667%; + right: auto; } + + .pull-8 { + position: relative; + right: 66.66667%; + left: auto; } + + .push-9 { + position: relative; + left: 75%; + right: auto; } + + .pull-9 { + position: relative; + right: 75%; + left: auto; } + + .push-10 { + position: relative; + left: 83.33333%; + right: auto; } + + .pull-10 { + position: relative; + right: 83.33333%; + left: auto; } + + .push-11 { + position: relative; + left: 91.66667%; + right: auto; } + + .pull-11 { + position: relative; + right: 91.66667%; + left: auto; } } +button, .button { + border-style: solid; + border-width: 0px; + cursor: pointer; + font-family: "Helvetica Neue", "Helvetica", Helvetica, Arial, sans-serif; + font-weight: normal; + line-height: normal; + margin: 0 0 1.25rem; + position: relative; + text-decoration: none; + text-align: center; + -webkit-appearance: none; + -webkit-border-radius: 0; + display: inline-block; + padding-top: 1rem; + padding-right: 2rem; + padding-bottom: 1.0625rem; + padding-left: 2rem; + font-size: 1rem; + background-color: #008cba; + border-color: #007095; + color: white; + transition: background-color 300ms ease-out; } + button:hover, button:focus, .button:hover, .button:focus { + background-color: #007095; } + button:hover, button:focus, .button:hover, .button:focus { + color: white; } + button.secondary, .button.secondary { + background-color: #e7e7e7; + border-color: #b9b9b9; + color: #333333; } + button.secondary:hover, button.secondary:focus, .button.secondary:hover, .button.secondary:focus { + background-color: #b9b9b9; } + button.secondary:hover, button.secondary:focus, .button.secondary:hover, .button.secondary:focus { + color: #333333; } + button.success, .button.success { + background-color: #43ac6a; + border-color: #368a55; + color: white; } + button.success:hover, button.success:focus, .button.success:hover, .button.success:focus { + background-color: #368a55; } + button.success:hover, button.success:focus, .button.success:hover, .button.success:focus { + color: white; } + button.alert, .button.alert { + background-color: #f04124; + border-color: #cf2a0e; + color: white; } + button.alert:hover, button.alert:focus, .button.alert:hover, .button.alert:focus { + background-color: #cf2a0e; } + button.alert:hover, button.alert:focus, .button.alert:hover, .button.alert:focus { + color: white; } + button.large, .button.large { + padding-top: 1.125rem; + padding-right: 2.25rem; + padding-bottom: 1.1875rem; + padding-left: 2.25rem; + font-size: 1.25rem; } + button.small, .button.small { + padding-top: 0.875rem; + padding-right: 1.75rem; + padding-bottom: 0.9375rem; + padding-left: 1.75rem; + font-size: 0.8125rem; } + button.tiny, .button.tiny { + padding-top: 0.625rem; + padding-right: 1.25rem; + padding-bottom: 0.6875rem; + padding-left: 1.25rem; + font-size: 0.6875rem; } + button.expand, .button.expand { + padding-right: 0; + padding-left: 0; + width: 100%; } + button.left-align, .button.left-align { + text-align: left; + text-indent: 0.75rem; } + button.right-align, .button.right-align { + text-align: right; + padding-right: 0.75rem; } + button.radius, .button.radius { + border-radius: 3px; } + button.round, .button.round { + border-radius: 1000px; } + button.disabled, button[disabled], .button.disabled, .button[disabled] { + background-color: #008cba; + border-color: #007095; + color: white; + cursor: default; + opacity: 0.7; + box-shadow: none; } + button.disabled:hover, button.disabled:focus, button[disabled]:hover, button[disabled]:focus, .button.disabled:hover, .button.disabled:focus, .button[disabled]:hover, .button[disabled]:focus { + background-color: #007095; } + button.disabled:hover, button.disabled:focus, button[disabled]:hover, button[disabled]:focus, .button.disabled:hover, .button.disabled:focus, .button[disabled]:hover, .button[disabled]:focus { + color: white; } + button.disabled:hover, button.disabled:focus, button[disabled]:hover, button[disabled]:focus, .button.disabled:hover, .button.disabled:focus, .button[disabled]:hover, .button[disabled]:focus { + background-color: #008cba; } + button.disabled.secondary, button[disabled].secondary, .button.disabled.secondary, .button[disabled].secondary { + background-color: #e7e7e7; + border-color: #b9b9b9; + color: #333333; + cursor: default; + opacity: 0.7; + box-shadow: none; } + button.disabled.secondary:hover, button.disabled.secondary:focus, button[disabled].secondary:hover, button[disabled].secondary:focus, .button.disabled.secondary:hover, .button.disabled.secondary:focus, .button[disabled].secondary:hover, .button[disabled].secondary:focus { + background-color: #b9b9b9; } + button.disabled.secondary:hover, button.disabled.secondary:focus, button[disabled].secondary:hover, button[disabled].secondary:focus, .button.disabled.secondary:hover, .button.disabled.secondary:focus, .button[disabled].secondary:hover, .button[disabled].secondary:focus { + color: #333333; } + button.disabled.secondary:hover, button.disabled.secondary:focus, button[disabled].secondary:hover, button[disabled].secondary:focus, .button.disabled.secondary:hover, .button.disabled.secondary:focus, .button[disabled].secondary:hover, .button[disabled].secondary:focus { + background-color: #e7e7e7; } + button.disabled.success, button[disabled].success, .button.disabled.success, .button[disabled].success { + background-color: #43ac6a; + border-color: #368a55; + color: white; + cursor: default; + opacity: 0.7; + box-shadow: none; } + button.disabled.success:hover, button.disabled.success:focus, button[disabled].success:hover, button[disabled].success:focus, .button.disabled.success:hover, .button.disabled.success:focus, .button[disabled].success:hover, .button[disabled].success:focus { + background-color: #368a55; } + button.disabled.success:hover, button.disabled.success:focus, button[disabled].success:hover, button[disabled].success:focus, .button.disabled.success:hover, .button.disabled.success:focus, .button[disabled].success:hover, .button[disabled].success:focus { + color: white; } + button.disabled.success:hover, button.disabled.success:focus, button[disabled].success:hover, button[disabled].success:focus, .button.disabled.success:hover, .button.disabled.success:focus, .button[disabled].success:hover, .button[disabled].success:focus { + background-color: #43ac6a; } + button.disabled.alert, button[disabled].alert, .button.disabled.alert, .button[disabled].alert { + background-color: #f04124; + border-color: #cf2a0e; + color: white; + cursor: default; + opacity: 0.7; + box-shadow: none; } + button.disabled.alert:hover, button.disabled.alert:focus, button[disabled].alert:hover, button[disabled].alert:focus, .button.disabled.alert:hover, .button.disabled.alert:focus, .button[disabled].alert:hover, .button[disabled].alert:focus { + background-color: #cf2a0e; } + button.disabled.alert:hover, button.disabled.alert:focus, button[disabled].alert:hover, button[disabled].alert:focus, .button.disabled.alert:hover, .button.disabled.alert:focus, .button[disabled].alert:hover, .button[disabled].alert:focus { + color: white; } + button.disabled.alert:hover, button.disabled.alert:focus, button[disabled].alert:hover, button[disabled].alert:focus, .button.disabled.alert:hover, .button.disabled.alert:focus, .button[disabled].alert:hover, .button[disabled].alert:focus { + background-color: #f04124; } + +@media only screen and (min-width: 40.063em) { + button, .button { + display: inline-block; } } +meta.foundation-mq-topbar { + font-family: "/only screen and (min-width:40.063em)/"; + width: 40.063em; } + +/* Wrapped around .top-bar to contain to grid width */ +.contain-to-grid { + width: 100%; + background: #333333; } + .contain-to-grid .top-bar { + margin-bottom: 0; } + +.fixed { + width: 100%; + left: 0; + position: fixed; + top: 0; + z-index: 99; } + .fixed.expanded:not(.top-bar) { + overflow-y: auto; + height: auto; + width: 100%; + max-height: 100%; } + .fixed.expanded:not(.top-bar) .title-area { + position: fixed; + width: 100%; + z-index: 99; } + .fixed.expanded:not(.top-bar) .top-bar-section { + z-index: 98; + margin-top: 45px; } + +.top-bar { + overflow: hidden; + height: 45px; + line-height: 45px; + position: relative; + background: #333333; + margin-bottom: 0; } + .top-bar ul { + margin-bottom: 0; + list-style: none; } + .top-bar .row { + max-width: none; } + .top-bar form, + .top-bar input { + margin-bottom: 0; } + .top-bar input { + height: auto; + padding-top: .35rem; + padding-bottom: .35rem; + font-size: 0.75rem; } + .top-bar .button, .top-bar button { + padding-top: .45rem; + padding-bottom: .35rem; + margin-bottom: 0; + font-size: 0.75rem; } + .top-bar .title-area { + position: relative; + margin: 0; } + .top-bar .name { + height: 45px; + margin: 0; + font-size: 16px; } + .top-bar .name h1 { + line-height: 45px; + font-size: 1.0625rem; + margin: 0; } + .top-bar .name h1 a { + font-weight: normal; + color: white; + width: 75%; + display: block; + padding: 0 15px; } + .top-bar .toggle-topbar { + position: absolute; + right: 0; + top: 0; } + .top-bar .toggle-topbar a { + color: white; + text-transform: uppercase; + font-size: 0.8125rem; + font-weight: bold; + position: relative; + display: block; + padding: 0 15px; + height: 45px; + line-height: 45px; } + .top-bar .toggle-topbar.menu-icon { + right: 15px; + top: 50%; + margin-top: -16px; + padding-left: 40px; } + .top-bar .toggle-topbar.menu-icon a { + height: 34px; + line-height: 33px; + padding: 0; + padding-right: 25px; + color: white; + position: relative; } + .top-bar .toggle-topbar.menu-icon a::after { + content: ""; + position: absolute; + right: 0; + display: block; + width: 16px; + top: 0; + height: 0; + box-shadow: 0 10px 0 1px white, 0 16px 0 1px white, 0 22px 0 1px white; } + .top-bar.expanded { + height: auto; + background: transparent; } + .top-bar.expanded .title-area { + background: #333333; } + .top-bar.expanded .toggle-topbar a { + color: #888888; } + .top-bar.expanded .toggle-topbar a::after { + box-shadow: 0 10px 0 1px #888888, 0 16px 0 1px #888888, 0 22px 0 1px #888888; } + +.top-bar-section { + left: 0; + position: relative; + width: auto; + transition: left 300ms ease-out; } + .top-bar-section ul { + width: 100%; + height: auto; + display: block; + background: #333333; + font-size: 16px; + margin: 0; } + .top-bar-section .divider, + .top-bar-section [role="separator"] { + border-top: solid 1px #1a1a1a; + clear: both; + height: 1px; + width: 100%; } + .top-bar-section ul li > a { + display: block; + width: 100%; + color: white; + padding: 12px 0 12px 0; + padding-left: 15px; + font-family: "Helvetica Neue", "Helvetica", Helvetica, Arial, sans-serif; + font-size: 0.8125rem; + font-weight: normal; + text-transform: none; + background: #333333; } + .top-bar-section ul li > a.button { + font-size: 0.8125rem; + padding-right: 15px; + padding-left: 15px; + background-color: #008cba; + border-color: #007095; + color: white; } + .top-bar-section ul li > a.button:hover, .top-bar-section ul li > a.button:focus { + background-color: #007095; } + .top-bar-section ul li > a.button:hover, .top-bar-section ul li > a.button:focus { + color: white; } + .top-bar-section ul li > a.button.secondary { + background-color: #e7e7e7; + border-color: #b9b9b9; + color: #333333; } + .top-bar-section ul li > a.button.secondary:hover, .top-bar-section ul li > a.button.secondary:focus { + background-color: #b9b9b9; } + .top-bar-section ul li > a.button.secondary:hover, .top-bar-section ul li > a.button.secondary:focus { + color: #333333; } + .top-bar-section ul li > a.button.success { + background-color: #43ac6a; + border-color: #368a55; + color: white; } + .top-bar-section ul li > a.button.success:hover, .top-bar-section ul li > a.button.success:focus { + background-color: #368a55; } + .top-bar-section ul li > a.button.success:hover, .top-bar-section ul li > a.button.success:focus { + color: white; } + .top-bar-section ul li > a.button.alert { + background-color: #f04124; + border-color: #cf2a0e; + color: white; } + .top-bar-section ul li > a.button.alert:hover, .top-bar-section ul li > a.button.alert:focus { + background-color: #cf2a0e; } + .top-bar-section ul li > a.button.alert:hover, .top-bar-section ul li > a.button.alert:focus { + color: white; } + .top-bar-section ul li > button { + font-size: 0.8125rem; + padding-right: 15px; + padding-left: 15px; + background-color: #008cba; + border-color: #007095; + color: white; } + .top-bar-section ul li > button:hover, .top-bar-section ul li > button:focus { + background-color: #007095; } + .top-bar-section ul li > button:hover, .top-bar-section ul li > button:focus { + color: white; } + .top-bar-section ul li > button.secondary { + background-color: #e7e7e7; + border-color: #b9b9b9; + color: #333333; } + .top-bar-section ul li > button.secondary:hover, .top-bar-section ul li > button.secondary:focus { + background-color: #b9b9b9; } + .top-bar-section ul li > button.secondary:hover, .top-bar-section ul li > button.secondary:focus { + color: #333333; } + .top-bar-section ul li > button.success { + background-color: #43ac6a; + border-color: #368a55; + color: white; } + .top-bar-section ul li > button.success:hover, .top-bar-section ul li > button.success:focus { + background-color: #368a55; } + .top-bar-section ul li > button.success:hover, .top-bar-section ul li > button.success:focus { + color: white; } + .top-bar-section ul li > button.alert { + background-color: #f04124; + border-color: #cf2a0e; + color: white; } + .top-bar-section ul li > button.alert:hover, .top-bar-section ul li > button.alert:focus { + background-color: #cf2a0e; } + .top-bar-section ul li > button.alert:hover, .top-bar-section ul li > button.alert:focus { + color: white; } + .top-bar-section ul li:hover:not(.has-form) > a { + background: #272727; + color: white; } + .top-bar-section ul li.active > a { + background: #008cba; + color: white; } + .top-bar-section ul li.active > a:hover { + background: #0078a0; + color: white; } + .top-bar-section .has-form { + padding: 15px; } + .top-bar-section .has-dropdown { + position: relative; } + .top-bar-section .has-dropdown > a:after { + content: ""; + display: block; + width: 0; + height: 0; + border: inset 5px; + border-color: transparent transparent transparent rgba(255, 255, 255, 0.4); + border-left-style: solid; + margin-right: 15px; + margin-top: -4.5px; + position: absolute; + top: 50%; + right: 0; } + .top-bar-section .has-dropdown.moved { + position: static; } + .top-bar-section .has-dropdown.moved > .dropdown { + display: block; + position: static !important; + height: auto; + width: auto; + overflow: visible; + clip: auto; + position: absolute !important; + width: 100%; } + .top-bar-section .has-dropdown.moved > a:after { + display: none; } + .top-bar-section .dropdown { + position: absolute; + left: 100%; + top: 0; + z-index: 99; + display: block; + position: absolute !important; + height: 1px; + width: 1px; + overflow: hidden; + clip: rect(1px, 1px, 1px, 1px); } + .top-bar-section .dropdown li { + width: 100%; + height: auto; } + .top-bar-section .dropdown li a { + font-weight: normal; + padding: 8px 15px; } + .top-bar-section .dropdown li a.parent-link { + font-weight: normal; } + .top-bar-section .dropdown li.title h5 { + margin-bottom: 0; } + .top-bar-section .dropdown li.title h5 a { + color: white; + line-height: 22.5px; + display: block; } + .top-bar-section .dropdown li.has-form { + padding: 8px 15px; } + .top-bar-section .dropdown li .button, .top-bar-section .dropdown li button { + top: auto; } + .top-bar-section .dropdown label { + padding: 8px 15px 2px; + margin-bottom: 0; + text-transform: uppercase; + color: #777777; + font-weight: bold; + font-size: 0.625rem; } + +.js-generated { + display: block; } + +@media only screen and (min-width: 40.063em) { + .top-bar { + background: #333333; + *zoom: 1; + overflow: visible; } + .top-bar:before, .top-bar:after { + content: " "; + display: table; } + .top-bar:after { + clear: both; } + .top-bar .toggle-topbar { + display: none; } + .top-bar .title-area { + float: left; } + .top-bar .name h1 a { + width: auto; } + .top-bar input, + .top-bar .button, + .top-bar button { + font-size: 0.875rem; + position: relative; + top: 7px; } + .top-bar.expanded { + background: #333333; } + + .contain-to-grid .top-bar { + max-width: 62.5rem; + margin: 0 auto; + margin-bottom: 0; } + + .top-bar-section { + transition: none 0 0; + left: 0 !important; } + .top-bar-section ul { + width: auto; + height: auto !important; + display: inline; } + .top-bar-section ul li { + float: left; } + .top-bar-section ul li .js-generated { + display: none; } + .top-bar-section li.hover > a:not(.button) { + background: #272727; + color: white; } + .top-bar-section li:not(.has-form) a:not(.button) { + padding: 0 15px; + line-height: 45px; + background: #333333; } + .top-bar-section li:not(.has-form) a:not(.button):hover { + background: #272727; } + .top-bar-section li.active:not(.has-form) a:not(.button) { + padding: 0 15px; + line-height: 45px; + color: white; + background: #008cba; } + .top-bar-section li.active:not(.has-form) a:not(.button):hover { + background: #0078a0; } + .top-bar-section .has-dropdown > a { + padding-right: 35px !important; } + .top-bar-section .has-dropdown > a:after { + content: ""; + display: block; + width: 0; + height: 0; + border: inset 5px; + border-color: rgba(255, 255, 255, 0.4) transparent transparent transparent; + border-top-style: solid; + margin-top: -2.5px; + top: 22.5px; } + .top-bar-section .has-dropdown.moved { + position: relative; } + .top-bar-section .has-dropdown.moved > .dropdown { + display: block; + position: absolute !important; + height: 1px; + width: 1px; + overflow: hidden; + clip: rect(1px, 1px, 1px, 1px); } + .top-bar-section .has-dropdown.hover > .dropdown, .top-bar-section .has-dropdown.not-click:hover > .dropdown { + display: block; + position: static !important; + height: auto; + width: auto; + overflow: visible; + clip: auto; + position: absolute !important; } + .top-bar-section .has-dropdown .dropdown li.has-dropdown > a:after { + border: none; + content: "\00bb"; + top: 1rem; + margin-top: -1px; + right: 5px; + line-height: 1.2; } + .top-bar-section .dropdown { + left: 0; + top: auto; + background: transparent; + min-width: 100%; } + .top-bar-section .dropdown li a { + color: white; + line-height: 1; + white-space: nowrap; + padding: 12px 15px; + background: #333333; } + .top-bar-section .dropdown li:not(.has-form) a:not(.button) { + color: white; + background: #333333; } + .top-bar-section .dropdown li:not(.has-form):hover > a:not(.button) { + color: white; + background: #272727; } + .top-bar-section .dropdown li label { + white-space: nowrap; + background: #333333; } + .top-bar-section .dropdown li .dropdown { + left: 100%; + top: 0; } + .top-bar-section > ul > .divider, .top-bar-section > ul > [role="separator"] { + border-bottom: none; + border-top: none; + border-right: solid 1px #4e4e4e; + clear: none; + height: 45px; + width: 0; } + .top-bar-section .has-form { + background: #333333; + padding: 0 15px; + height: 45px; } + .top-bar-section .right li .dropdown { + left: auto; + right: 0; } + .top-bar-section .right li .dropdown li .dropdown { + right: 100%; } + .top-bar-section .left li .dropdown { + right: auto; + left: 0; } + .top-bar-section .left li .dropdown li .dropdown { + left: 100%; } + + .no-js .top-bar-section ul li:hover > a { + background: #272727; + color: white; } + .no-js .top-bar-section ul li:active > a { + background: #008cba; + color: white; } + .no-js .top-bar-section .has-dropdown:hover > .dropdown { + display: block; + position: static !important; + height: auto; + width: auto; + overflow: visible; + clip: auto; + position: absolute !important; } } +.breadcrumbs { + display: block; + padding: 0.5625rem 0.875rem 0.5625rem; + overflow: hidden; + margin-left: 0; + list-style: none; + border-style: solid; + border-width: 1px; + background-color: #f4f4f4; + border-color: gainsboro; + border-radius: 3px; } + .breadcrumbs > * { + margin: 0; + float: left; + font-size: 0.6875rem; + line-height: 0.6875rem; + text-transform: uppercase; + color: #008cba; } + .breadcrumbs > *:hover a, .breadcrumbs > *:focus a { + text-decoration: underline; } + .breadcrumbs > * a { + color: #008cba; } + .breadcrumbs > *.current { + cursor: default; + color: #333333; } + .breadcrumbs > *.current a { + cursor: default; + color: #333333; } + .breadcrumbs > *.current:hover, .breadcrumbs > *.current:hover a, .breadcrumbs > *.current:focus, .breadcrumbs > *.current:focus a { + text-decoration: none; } + .breadcrumbs > *.unavailable { + color: #999999; } + .breadcrumbs > *.unavailable a { + color: #999999; } + .breadcrumbs > *.unavailable:hover, .breadcrumbs > *.unavailable:hover a, .breadcrumbs > *.unavailable:focus, + .breadcrumbs > *.unavailable a:focus { + text-decoration: none; + color: #999999; + cursor: default; } + .breadcrumbs > *:before { + content: "/"; + color: #aaaaaa; + margin: 0 0.75rem; + position: relative; + top: 1px; } + .breadcrumbs > *:first-child:before { + content: " "; + margin: 0; } + +.alert-box { + border-style: solid; + border-width: 1px; + display: block; + font-weight: normal; + margin-bottom: 1.25rem; + position: relative; + padding: 0.875rem 1.5rem 0.875rem 0.875rem; + font-size: 0.8125rem; + transition: opacity 300ms ease-out; + background-color: #008cba; + border-color: #0078a0; + color: white; } + .alert-box .close { + font-size: 1.375rem; + padding: 9px 6px 4px; + line-height: 0; + position: absolute; + top: 50%; + margin-top: -0.6875rem; + right: 0.25rem; + color: #333333; + opacity: 0.3; } + .alert-box .close:hover, .alert-box .close:focus { + opacity: 0.5; } + .alert-box.radius { + border-radius: 3px; } + .alert-box.round { + border-radius: 1000px; } + .alert-box.success { + background-color: #43ac6a; + border-color: #3a945b; + color: white; } + .alert-box.alert { + background-color: #f04124; + border-color: #de2d0f; + color: white; } + .alert-box.secondary { + background-color: #e7e7e7; + border-color: #c7c7c7; + color: #4f4f4f; } + .alert-box.warning { + background-color: #f08a24; + border-color: #de770f; + color: white; } + .alert-box.info { + background-color: #a0d3e8; + border-color: #74bfdd; + color: #4f4f4f; } + .alert-box.alert-close { + opacity: 0; } + +.inline-list { + margin: 0 auto 1.0625rem auto; + margin-left: -1.375rem; + margin-right: 0; + padding: 0; + list-style: none; + overflow: hidden; } + .inline-list > li { + list-style: none; + float: left; + margin-left: 1.375rem; + display: block; } + .inline-list > li > * { + display: block; } + +.button-group { + list-style: none; + margin: 0; + left: 0; + *zoom: 1; } + .button-group:before, .button-group:after { + content: " "; + display: table; } + .button-group:after { + clear: both; } + .button-group li { + margin: 0; + float: left; } + .button-group li > button, .button-group li .button { + border-left: 1px solid; + border-color: rgba(255, 255, 255, 0.5); } + .button-group li:first-child button, .button-group li:first-child .button { + border-left: 0; } + .button-group li:first-child { + margin-left: 0; } + .button-group.radius > * > button, .button-group.radius > * .button { + border-left: 1px solid; + border-color: rgba(255, 255, 255, 0.5); } + .button-group.radius > *:first-child button, .button-group.radius > *:first-child .button { + border-left: 0; } + .button-group.radius > *:first-child, .button-group.radius > *:first-child > a, .button-group.radius > *:first-child > button, .button-group.radius > *:first-child > .button { + border-bottom-left-radius: 3px; + border-top-left-radius: 3px; } + .button-group.radius > *:last-child, .button-group.radius > *:last-child > a, .button-group.radius > *:last-child > button, .button-group.radius > *:last-child > .button { + border-bottom-right-radius: 3px; + border-top-right-radius: 3px; } + .button-group.round > * > button, .button-group.round > * .button { + border-left: 1px solid; + border-color: rgba(255, 255, 255, 0.5); } + .button-group.round > *:first-child button, .button-group.round > *:first-child .button { + border-left: 0; } + .button-group.round > *:first-child, .button-group.round > *:first-child > a, .button-group.round > *:first-child > button, .button-group.round > *:first-child > .button { + border-bottom-left-radius: 1000px; + border-top-left-radius: 1000px; } + .button-group.round > *:last-child, .button-group.round > *:last-child > a, .button-group.round > *:last-child > button, .button-group.round > *:last-child > .button { + border-bottom-right-radius: 1000px; + border-top-right-radius: 1000px; } + .button-group.even-2 li { + width: 50%; } + .button-group.even-2 li > button, .button-group.even-2 li .button { + border-left: 1px solid; + border-color: rgba(255, 255, 255, 0.5); } + .button-group.even-2 li:first-child button, .button-group.even-2 li:first-child .button { + border-left: 0; } + .button-group.even-2 li button, .button-group.even-2 li .button { + width: 100%; } + .button-group.even-3 li { + width: 33.33333%; } + .button-group.even-3 li > button, .button-group.even-3 li .button { + border-left: 1px solid; + border-color: rgba(255, 255, 255, 0.5); } + .button-group.even-3 li:first-child button, .button-group.even-3 li:first-child .button { + border-left: 0; } + .button-group.even-3 li button, .button-group.even-3 li .button { + width: 100%; } + .button-group.even-4 li { + width: 25%; } + .button-group.even-4 li > button, .button-group.even-4 li .button { + border-left: 1px solid; + border-color: rgba(255, 255, 255, 0.5); } + .button-group.even-4 li:first-child button, .button-group.even-4 li:first-child .button { + border-left: 0; } + .button-group.even-4 li button, .button-group.even-4 li .button { + width: 100%; } + .button-group.even-5 li { + width: 20%; } + .button-group.even-5 li > button, .button-group.even-5 li .button { + border-left: 1px solid; + border-color: rgba(255, 255, 255, 0.5); } + .button-group.even-5 li:first-child button, .button-group.even-5 li:first-child .button { + border-left: 0; } + .button-group.even-5 li button, .button-group.even-5 li .button { + width: 100%; } + .button-group.even-6 li { + width: 16.66667%; } + .button-group.even-6 li > button, .button-group.even-6 li .button { + border-left: 1px solid; + border-color: rgba(255, 255, 255, 0.5); } + .button-group.even-6 li:first-child button, .button-group.even-6 li:first-child .button { + border-left: 0; } + .button-group.even-6 li button, .button-group.even-6 li .button { + width: 100%; } + .button-group.even-7 li { + width: 14.28571%; } + .button-group.even-7 li > button, .button-group.even-7 li .button { + border-left: 1px solid; + border-color: rgba(255, 255, 255, 0.5); } + .button-group.even-7 li:first-child button, .button-group.even-7 li:first-child .button { + border-left: 0; } + .button-group.even-7 li button, .button-group.even-7 li .button { + width: 100%; } + .button-group.even-8 li { + width: 12.5%; } + .button-group.even-8 li > button, .button-group.even-8 li .button { + border-left: 1px solid; + border-color: rgba(255, 255, 255, 0.5); } + .button-group.even-8 li:first-child button, .button-group.even-8 li:first-child .button { + border-left: 0; } + .button-group.even-8 li button, .button-group.even-8 li .button { + width: 100%; } + +.button-bar { + *zoom: 1; } + .button-bar:before, .button-bar:after { + content: " "; + display: table; } + .button-bar:after { + clear: both; } + .button-bar .button-group { + float: left; + margin-right: 0.625rem; } + .button-bar .button-group div { + overflow: hidden; } + +/* Panels */ +.panel { + border-style: solid; + border-width: 1px; + border-color: #d8d8d8; + margin-bottom: 1.25rem; + padding: 1.25rem; + background: #f2f2f2; } + .panel > :first-child { + margin-top: 0; } + .panel > :last-child { + margin-bottom: 0; } + .panel h1, .panel h2, .panel h3, .panel h4, .panel h5, .panel h6, .panel p { + color: #333333; } + .panel h1, .panel h2, .panel h3, .panel h4, .panel h5, .panel h6 { + line-height: 1; + margin-bottom: 0.625rem; } + .panel h1.subheader, .panel h2.subheader, .panel h3.subheader, .panel h4.subheader, .panel h5.subheader, .panel h6.subheader { + line-height: 1.4; } + .panel.callout { + border-style: solid; + border-width: 1px; + border-color: #b6edff; + margin-bottom: 1.25rem; + padding: 1.25rem; + background: #ecfaff; } + .panel.callout > :first-child { + margin-top: 0; } + .panel.callout > :last-child { + margin-bottom: 0; } + .panel.callout h1, .panel.callout h2, .panel.callout h3, .panel.callout h4, .panel.callout h5, .panel.callout h6, .panel.callout p { + color: #333333; } + .panel.callout h1, .panel.callout h2, .panel.callout h3, .panel.callout h4, .panel.callout h5, .panel.callout h6 { + line-height: 1; + margin-bottom: 0.625rem; } + .panel.callout h1.subheader, .panel.callout h2.subheader, .panel.callout h3.subheader, .panel.callout h4.subheader, .panel.callout h5.subheader, .panel.callout h6.subheader { + line-height: 1.4; } + .panel.callout a:not(.button) { + color: #008cba; } + .panel.radius { + border-radius: 3px; } + +.dropdown.button, button.dropdown { + position: relative; + padding-right: 3.5625rem; } + .dropdown.button:before, button.dropdown:before { + position: absolute; + content: ""; + width: 0; + height: 0; + display: block; + border-style: solid; + border-color: white transparent transparent transparent; + top: 50%; } + .dropdown.button:before, button.dropdown:before { + border-width: 0.375rem; + right: 1.40625rem; + margin-top: -0.15625rem; } + .dropdown.button:before, button.dropdown:before { + border-color: white transparent transparent transparent; } + .dropdown.button.tiny, button.dropdown.tiny { + padding-right: 2.625rem; } + .dropdown.button.tiny:before, button.dropdown.tiny:before { + border-width: 0.375rem; + right: 1.125rem; + margin-top: -0.125rem; } + .dropdown.button.tiny:before, button.dropdown.tiny:before { + border-color: white transparent transparent transparent; } + .dropdown.button.small, button.dropdown.small { + padding-right: 3.0625rem; } + .dropdown.button.small:before, button.dropdown.small:before { + border-width: 0.4375rem; + right: 1.3125rem; + margin-top: -0.15625rem; } + .dropdown.button.small:before, button.dropdown.small:before { + border-color: white transparent transparent transparent; } + .dropdown.button.large, button.dropdown.large { + padding-right: 3.625rem; } + .dropdown.button.large:before, button.dropdown.large:before { + border-width: 0.3125rem; + right: 1.71875rem; + margin-top: -0.15625rem; } + .dropdown.button.large:before, button.dropdown.large:before { + border-color: white transparent transparent transparent; } + .dropdown.button.secondary:before, button.dropdown.secondary:before { + border-color: #333333 transparent transparent transparent; } + +div.switch { + position: relative; + padding: 0; + display: block; + overflow: hidden; + border-style: solid; + border-width: 1px; + margin-bottom: 1.25rem; + height: 2.25rem; + background: white; + border-color: #cccccc; } + div.switch label { + position: relative; + left: 0; + z-index: 2; + float: left; + width: 50%; + height: 100%; + margin: 0; + font-weight: bold; + text-align: left; + transition: all 0.1s ease-out; } + div.switch input { + position: absolute; + z-index: 3; + opacity: 0; + width: 100%; + height: 100%; + -moz-appearance: none; } + div.switch input:hover, div.switch input:focus { + cursor: pointer; } + div.switch span:last-child { + position: absolute; + top: -1px; + left: -1px; + z-index: 1; + display: block; + padding: 0; + border-width: 1px; + border-style: solid; + transition: all 0.1s ease-out; } + div.switch input:not(:checked) + label { + opacity: 0; } + div.switch input:checked { + display: none !important; } + div.switch input { + left: 0; + display: block !important; } + div.switch input:first-of-type + label, + div.switch input:first-of-type + span + label { + left: -50%; } + div.switch input:first-of-type:checked + label, + div.switch input:first-of-type:checked + span + label { + left: 0%; } + div.switch input:last-of-type + label, + div.switch input:last-of-type + span + label { + right: -50%; + left: auto; + text-align: right; } + div.switch input:last-of-type:checked + label, + div.switch input:last-of-type:checked + span + label { + right: 0%; + left: auto; } + div.switch span.custom { + display: none !important; } + form.custom div.switch .hidden-field { + margin-left: auto; + position: absolute; + visibility: visible; } + div.switch label { + padding: 0; + line-height: 2.3rem; + font-size: 0.875rem; } + div.switch input:first-of-type:checked ~ span:last-child { + left: 100%; + margin-left: -2.1875rem; } + div.switch span:last-child { + width: 2.25rem; + height: 2.25rem; } + div.switch span:last-child { + border-color: #b3b3b3; + background: white; + background: linear-gradient(to bottom, white 0%, #f2f2f2 100%); + box-shadow: 2px 0 10px 0 rgba(0, 0, 0, 0.07), 1000px 0 0 980px #f3faf6, -2px 0 10px 0 rgba(0, 0, 0, 0.07), -1000px 0 0 1000px whitesmoke; } + div.switch:hover span:last-child, div.switch:focus span:last-child { + background: white; + background: linear-gradient(to bottom, white 0%, #e6e6e6 100%); } + div.switch:active { + background: transparent; } + div.switch.large { + height: 2.75rem; } + div.switch.large label { + padding: 0; + line-height: 2.3rem; + font-size: 1.0625rem; } + div.switch.large input:first-of-type:checked ~ span:last-child { + left: 100%; + margin-left: -2.6875rem; } + div.switch.large span:last-child { + width: 2.75rem; + height: 2.75rem; } + div.switch.small { + height: 1.75rem; } + div.switch.small label { + padding: 0; + line-height: 2.1rem; + font-size: 0.75rem; } + div.switch.small input:first-of-type:checked ~ span:last-child { + left: 100%; + margin-left: -1.6875rem; } + div.switch.small span:last-child { + width: 1.75rem; + height: 1.75rem; } + div.switch.tiny { + height: 1.375rem; } + div.switch.tiny label { + padding: 0; + line-height: 1.9rem; + font-size: 0.6875rem; } + div.switch.tiny input:first-of-type:checked ~ span:last-child { + left: 100%; + margin-left: -1.3125rem; } + div.switch.tiny span:last-child { + width: 1.375rem; + height: 1.375rem; } + div.switch.radius { + border-radius: 4px; } + div.switch.radius span:last-child { + border-radius: 3px; } + div.switch.round { + border-radius: 1000px; } + div.switch.round span:last-child { + border-radius: 999px; } + div.switch.round label { + padding: 0 0.5625rem; } + +/* Image Thumbnails */ +.th { + line-height: 0; + display: inline-block; + border: solid 4px white; + max-width: 100%; + box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.2); + transition: all 200ms ease-out; } + .th:hover, .th:focus { + box-shadow: 0 0 6px 1px rgba(0, 140, 186, 0.5); } + .th.radius { + border-radius: 3px; } + +/* Pricing Tables */ +.pricing-table { + border: solid 1px #dddddd; + margin-left: 0; + margin-bottom: 1.25rem; } + .pricing-table * { + list-style: none; + line-height: 1; } + .pricing-table .title { + background-color: #333333; + padding: 0.9375rem 1.25rem; + text-align: center; + color: #eeeeee; + font-weight: normal; + font-size: 1rem; + font-family: "Helvetica Neue", "Helvetica", Helvetica, Arial, sans-serif; } + .pricing-table .price { + background-color: #f6f6f6; + padding: 0.9375rem 1.25rem; + text-align: center; + color: #333333; + font-weight: normal; + font-size: 2rem; + font-family: "Helvetica Neue", "Helvetica", Helvetica, Arial, sans-serif; } + .pricing-table .description { + background-color: white; + padding: 0.9375rem; + text-align: center; + color: #777777; + font-size: 0.75rem; + font-weight: normal; + line-height: 1.4; + border-bottom: dotted 1px #dddddd; } + .pricing-table .bullet-item { + background-color: white; + padding: 0.9375rem; + text-align: center; + color: #333333; + font-size: 0.875rem; + font-weight: normal; + border-bottom: dotted 1px #dddddd; } + .pricing-table .cta-button { + background-color: white; + text-align: center; + padding: 1.25rem 1.25rem 0; } + +@keyframes rotate { + from { + -webkit-transform: rotate(0deg); + -moz-transform: rotate(0deg); + -ms-transform: rotate(0deg); + -o-transform: rotate(0deg); + transform: rotate(0deg); } + + to { + -webkit-transform: rotate(360deg); + -moz-transform: rotate(360deg); + -ms-transform: rotate(360deg); + -o-transform: rotate(360deg); + transform: rotate(360deg); } } + +/* Orbit Graceful Loading */ +.slideshow-wrapper { + position: relative; } + .slideshow-wrapper ul { + list-style-type: none; + margin: 0; } + .slideshow-wrapper ul li, + .slideshow-wrapper ul li .orbit-caption { + display: none; } + .slideshow-wrapper ul li:first-child { + display: block; } + .slideshow-wrapper .orbit-container { + background-color: transparent; } + .slideshow-wrapper .orbit-container li { + display: block; } + .slideshow-wrapper .orbit-container li .orbit-caption { + display: block; } + .slideshow-wrapper .preloader { + display: block; + width: 40px; + height: 40px; + position: absolute; + top: 50%; + left: 50%; + margin-top: -20px; + margin-left: -20px; + border: solid 3px; + border-color: #555555 white; + border-radius: 1000px; + animation-name: rotate; + animation-duration: 1.5s; + animation-iteration-count: infinite; + animation-timing-function: linear; } + +.orbit-container { + overflow: hidden; + width: 100%; + position: relative; + background: none; } + .orbit-container .orbit-slides-container { + list-style: none; + margin: 0; + padding: 0; + position: relative; + -webkit-transform: translateZ(0); } + .orbit-container .orbit-slides-container img { + display: block; + max-width: 100%; } + .orbit-container .orbit-slides-container.fade li { + opacity: 0; + transition: opacity 500ms ease-in-out; + -ms-transform: translate(0, 0); + -webkit-transform: translate3d(0, 0, 0); + -moz-transform: translate3d(0, 0, 0); + -o-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } + .orbit-container .orbit-slides-container.fade li.animate-in { + opacity: 1; + z-index: 20; + transition: opacity 500ms ease-in-out; } + .orbit-container .orbit-slides-container.fade li.animate-out { + z-index: 10; + transition: opacity 500ms ease-in-out; } + .orbit-container .orbit-slides-container.swipe-next li { + -ms-transform: translate(100%, 0); + -webkit-transform: translate3d(100%, 0, 0); + -moz-transform: translate3d(100%, 0, 0); + -o-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); } + .orbit-container .orbit-slides-container.swipe-next li.animate-in { + -ms-transform: translate(0, 0); + -webkit-transform: translate3d(0, 0, 0); + -moz-transform: translate3d(0, 0, 0); + -o-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + transition-duration: 500ms; } + .orbit-container .orbit-slides-container.swipe-next li.animate-out { + -ms-transform: translate(-100%, 0); + -webkit-transform: translate3d(-100%, 0, 0); + -moz-transform: translate3d(-100%, 0, 0); + -o-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + transition-duration: 500ms; } + .orbit-container .orbit-slides-container.swipe-prev li { + -ms-transform: translate(-100%, 0); + -webkit-transform: translate3d(-100%, 0, 0); + -moz-transform: translate3d(-100%, 0, 0); + -o-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); } + .orbit-container .orbit-slides-container.swipe-prev li.animate-in { + -ms-transform: translate(0, 0); + -webkit-transform: translate3d(0, 0, 0); + -moz-transform: translate3d(0, 0, 0); + -o-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + transition-duration: 500ms; } + .orbit-container .orbit-slides-container.swipe-prev li.animate-out { + -ms-transform: translate(100%, 0); + -webkit-transform: translate3d(100%, 0, 0); + -moz-transform: translate3d(100%, 0, 0); + -o-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + transition-duration: 500ms; } + .orbit-container .orbit-slides-container li { + position: absolute; + top: 0; + left: 0; + width: 100%; + -ms-transform: translate(100%, 0); + -webkit-transform: translate3d(100%, 0, 0); + -moz-transform: translate3d(100%, 0, 0); + -o-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); } + .orbit-container .orbit-slides-container li.active { + opacity: 1; + top: 0; + left: 0; + -ms-transform: translate(0, 0); + -webkit-transform: translate3d(0, 0, 0); + -moz-transform: translate3d(0, 0, 0); + -o-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } + .orbit-container .orbit-slides-container li .orbit-caption { + position: absolute; + bottom: 0; + background-color: rgba(51, 51, 51, 0.8); + color: white; + width: 100%; + padding: 0.625rem 0.875rem; + font-size: 0.875rem; } + .orbit-container .orbit-slide-number { + position: absolute; + top: 10px; + left: 10px; + font-size: 12px; + color: white; + background: rgba(0, 0, 0, 0); + z-index: 10; } + .orbit-container .orbit-slide-number span { + font-weight: 700; + padding: 0.3125rem; } + .orbit-container .orbit-timer { + position: absolute; + top: 12px; + right: 10px; + height: 6px; + width: 100px; + z-index: 10; } + .orbit-container .orbit-timer .orbit-progress { + height: 3px; + background-color: rgba(255, 255, 255, 0.3); + display: block; + width: 0%; + position: relative; + right: 20px; + top: 5px; } + .orbit-container .orbit-timer > span { + display: none; + position: absolute; + top: 0px; + right: 0; + width: 11px; + height: 14px; + border: solid 4px white; + border-top: none; + border-bottom: none; } + .orbit-container .orbit-timer.paused > span { + right: -4px; + top: 0px; + width: 11px; + height: 14px; + border: inset 8px; + border-left-style: solid; + -webkit-transform: rotate(180deg); + -moz-transform: rotate(180deg); + -ms-transform: rotate(180deg); + -o-transform: rotate(180deg); + transform: rotate(180deg); + border-color: transparent white transparent transparent; } + .orbit-container .orbit-timer.paused > span.dark { + border-color: transparent #333333 transparent transparent; } + .orbit-container:hover .orbit-timer > span { + display: block; } + .orbit-container .orbit-prev, + .orbit-container .orbit-next { + position: absolute; + top: 45%; + margin-top: -25px; + width: 36px; + height: 60px; + line-height: 50px; + color: white; + background-color: transparent; + text-indent: -9999px !important; + z-index: 10; } + .orbit-container .orbit-prev:hover, + .orbit-container .orbit-next:hover { + background-color: rgba(0, 0, 0, 0.3); } + .orbit-container .orbit-prev > span, + .orbit-container .orbit-next > span { + position: absolute; + top: 50%; + margin-top: -10px; + display: block; + width: 0; + height: 0; + border: inset 10px; } + .orbit-container .orbit-prev { + left: 0; } + .orbit-container .orbit-prev > span { + border-right-style: solid; + border-color: transparent; + border-right-color: white; } + .orbit-container .orbit-prev:hover > span { + border-right-color: white; } + .orbit-container .orbit-next { + right: 0; } + .orbit-container .orbit-next > span { + border-color: transparent; + border-left-style: solid; + border-left-color: white; + left: 50%; + margin-left: -4px; } + .orbit-container .orbit-next:hover > span { + border-left-color: white; } + .orbit-container .orbit-bullets-container { + text-align: center; } + .orbit-container .orbit-bullets { + margin: 0 auto 30px auto; + overflow: hidden; + position: relative; + top: 10px; + float: none; + text-align: center; + display: block; } + .orbit-container .orbit-bullets li { + display: inline-block; + width: 0.5625rem; + height: 0.5625rem; + background: #cccccc; + float: none; + margin-right: 6px; + border-radius: 1000px; } + .orbit-container .orbit-bullets li.active { + background: #999999; } + .orbit-container .orbit-bullets li:last-child { + margin-right: 0; } + +.touch .orbit-container .orbit-prev, +.touch .orbit-container .orbit-next { + display: none; } +.touch .orbit-bullets { + display: none; } + +@media only screen and (min-width: 40.063em) { + .touch .orbit-container .orbit-prev, + .touch .orbit-container .orbit-next { + display: inherit; } + .touch .orbit-bullets { + display: block; } } +@media only screen and (max-width: 40em) { + .orbit-stack-on-small .orbit-slides-container { + height: auto !important; } + .orbit-stack-on-small .orbit-slides-container > * { + position: relative; + margin-left: 0% !important; + opacity: 1 !important; + -webkit-transform: none !important; + -moz-transform: none !important; + -ms-transform: none !important; + -o-transform: none !important; + transform: none !important; + transition: none !important; } + .orbit-stack-on-small .orbit-timer { + display: none; } + .orbit-stack-on-small .orbit-next, .orbit-stack-on-small .orbit-prev { + display: none; } + .orbit-stack-on-small .orbit-bullets { + display: none; } } +[data-magellan-expedition], [data-magellan-expedition-clone] { + background: white; + z-index: 50; + min-width: 100%; + padding: 10px; } + [data-magellan-expedition] .sub-nav, [data-magellan-expedition-clone] .sub-nav { + margin-bottom: 0; } + [data-magellan-expedition] .sub-nav dd, [data-magellan-expedition-clone] .sub-nav dd { + margin-bottom: 0; } + [data-magellan-expedition] .sub-nav a, [data-magellan-expedition-clone] .sub-nav a { + line-height: 1.8em; } + +.tabs { + *zoom: 1; + margin-bottom: 0 !important; } + .tabs:before, .tabs:after { + content: " "; + display: table; } + .tabs:after { + clear: both; } + .tabs dd { + position: relative; + margin-bottom: 0 !important; + float: left; } + .tabs dd > a { + display: block; + background: #efefef; + color: #222222; + padding: 1rem 2rem; + font-family: "Helvetica Neue", "Helvetica", Helvetica, Arial, sans-serif; + font-size: 1rem; } + .tabs dd > a:hover { + background: #e1e1e1; } + .tabs dd.active a { + background: white; } + .tabs.radius dd:first-child a { + border-bottom-left-radius: 3px; + border-top-left-radius: 3px; } + .tabs.radius dd:last-child a { + border-bottom-right-radius: 3px; + border-top-right-radius: 3px; } + .tabs.vertical dd { + position: inherit; + float: none; + display: block; + top: auto; } + +.tabs-content { + *zoom: 1; + margin-bottom: 1.5rem; + width: 100%; } + .tabs-content:before, .tabs-content:after { + content: " "; + display: table; } + .tabs-content:after { + clear: both; } + .tabs-content > .content { + display: none; + float: left; + padding: 0.9375rem 0; + width: 100%; } + .tabs-content > .content.active { + display: block; + float: none; } + .tabs-content > .content.contained { + padding: 0.9375rem; } + .tabs-content.vertical { + display: block; } + .tabs-content.vertical > .content { + padding: 0 0.9375rem; } + +@media only screen and (min-width: 40.063em) { + .tabs.vertical { + width: 20%; + float: left; + margin-bottom: 1.25rem; } + + .tabs-content.vertical { + width: 80%; + float: left; + margin-left: -1px; } } +.no-js .tabs-content > .content { + display: block; + float: none; } + +ul.pagination { + display: block; + height: 1.5rem; + margin-left: -0.3125rem; } + ul.pagination li { + height: 1.5rem; + color: #222222; + font-size: 0.875rem; + margin-left: 0.3125rem; } + ul.pagination li a { + display: block; + padding: 0.0625rem 0.625rem 0.0625rem; + color: #999999; + border-radius: 3px; } + ul.pagination li:hover a, + ul.pagination li a:focus { + background: #e6e6e6; } + ul.pagination li.unavailable a { + cursor: default; + color: #999999; } + ul.pagination li.unavailable:hover a, ul.pagination li.unavailable a:focus { + background: transparent; } + ul.pagination li.current a { + background: #008cba; + color: white; + font-weight: bold; + cursor: default; } + ul.pagination li.current a:hover, ul.pagination li.current a:focus { + background: #008cba; } + ul.pagination li { + float: left; + display: block; } + +/* Pagination centred wrapper */ +.pagination-centered { + text-align: center; } + .pagination-centered ul.pagination li { + float: none; + display: inline-block; } + +.side-nav { + display: block; + margin: 0; + padding: 0.875rem 0; + list-style-type: none; + list-style-position: inside; + font-family: "Helvetica Neue", "Helvetica", Helvetica, Arial, sans-serif; } + .side-nav li { + margin: 0 0 0.4375rem 0; + font-size: 0.875rem; } + .side-nav li a:not(.button) { + display: block; + color: #008cba; } + .side-nav li a:not(.button):hover, .side-nav li a:not(.button):focus { + color: #1cc7ff; } + .side-nav li.active > a:first-child:not(.button) { + color: #1cc7ff; + font-weight: normal; + font-family: "Helvetica Neue", "Helvetica", Helvetica, Arial, sans-serif; } + .side-nav li.divider { + border-top: 1px solid; + height: 0; + padding: 0; + list-style: none; + border-top-color: white; } + +.accordion { + *zoom: 1; + margin-bottom: 0; } + .accordion:before, .accordion:after { + content: " "; + display: table; } + .accordion:after { + clear: both; } + .accordion dd { + display: block; + margin-bottom: 0 !important; } + .accordion dd.active > a { + background: #e8e8e8; } + .accordion dd > a { + background: #efefef; + color: #222222; + padding: 1rem; + display: block; + font-family: "Helvetica Neue", "Helvetica", Helvetica, Arial, sans-serif; + font-size: 1rem; } + .accordion dd > a:hover { + background: #e3e3e3; } + .accordion .content { + display: none; + padding: 0.9375rem; } + .accordion .content.active { + display: block; + background: white; } + +.text-left { + text-align: left !important; } + +.text-right { + text-align: right !important; } + +.text-center { + text-align: center !important; } + +.text-justify { + text-align: justify !important; } + +@media only screen and (max-width: 40em) { + .small-only-text-left { + text-align: left !important; } + + .small-only-text-right { + text-align: right !important; } + + .small-only-text-center { + text-align: center !important; } + + .small-only-text-justify { + text-align: justify !important; } } +@media only screen { + .small-text-left { + text-align: left !important; } + + .small-text-right { + text-align: right !important; } + + .small-text-center { + text-align: center !important; } + + .small-text-justify { + text-align: justify !important; } } +@media only screen and (min-width: 40.063em) and (max-width: 64em) { + .medium-only-text-left { + text-align: left !important; } + + .medium-only-text-right { + text-align: right !important; } + + .medium-only-text-center { + text-align: center !important; } + + .medium-only-text-justify { + text-align: justify !important; } } +@media only screen and (min-width: 40.063em) { + .medium-text-left { + text-align: left !important; } + + .medium-text-right { + text-align: right !important; } + + .medium-text-center { + text-align: center !important; } + + .medium-text-justify { + text-align: justify !important; } } +@media only screen and (min-width: 64.063em) and (max-width: 90em) { + .large-only-text-left { + text-align: left !important; } + + .large-only-text-right { + text-align: right !important; } + + .large-only-text-center { + text-align: center !important; } + + .large-only-text-justify { + text-align: justify !important; } } +@media only screen and (min-width: 64.063em) { + .large-text-left { + text-align: left !important; } + + .large-text-right { + text-align: right !important; } + + .large-text-center { + text-align: center !important; } + + .large-text-justify { + text-align: justify !important; } } +@media only screen and (min-width: 90.063em) and (max-width: 120em) { + .xlarge-only-text-left { + text-align: left !important; } + + .xlarge-only-text-right { + text-align: right !important; } + + .xlarge-only-text-center { + text-align: center !important; } + + .xlarge-only-text-justify { + text-align: justify !important; } } +@media only screen and (min-width: 90.063em) { + .xlarge-text-left { + text-align: left !important; } + + .xlarge-text-right { + text-align: right !important; } + + .xlarge-text-center { + text-align: center !important; } + + .xlarge-text-justify { + text-align: justify !important; } } +@media only screen and (min-width: 120.063em) and (max-width: 99999999em) { + .xxlarge-only-text-left { + text-align: left !important; } + + .xxlarge-only-text-right { + text-align: right !important; } + + .xxlarge-only-text-center { + text-align: center !important; } + + .xxlarge-only-text-justify { + text-align: justify !important; } } +@media only screen and (min-width: 120.063em) { + .xxlarge-text-left { + text-align: left !important; } + + .xxlarge-text-right { + text-align: right !important; } + + .xxlarge-text-center { + text-align: center !important; } + + .xxlarge-text-justify { + text-align: justify !important; } } +/* Typography resets */ +div, +dl, +dt, +dd, +ul, +ol, +li, +h1, +h2, +h3, +h4, +h5, +h6, +pre, +form, +p, +blockquote, +th, +td { + margin: 0; + padding: 0; } + +/* Default Link Styles */ +a { + color: #008cba; + text-decoration: none; + line-height: inherit; } + a:hover, a:focus { + color: #0078a0; } + a img { + border: none; } + +/* Default paragraph styles */ +p { + font-family: inherit; + font-weight: normal; + font-size: 1rem; + line-height: 1.6; + margin-bottom: 1.25rem; + text-rendering: optimizeLegibility; } + p.lead { + font-size: 1.21875rem; + line-height: 1.6; } + p aside { + font-size: 0.875rem; + line-height: 1.35; + font-style: italic; } + +/* Default header styles */ +h1, h2, h3, h4, h5, h6 { + font-family: "Helvetica Neue", "Helvetica", Helvetica, Arial, sans-serif; + font-weight: normal; + font-style: normal; + color: #222222; + text-rendering: optimizeLegibility; + margin-top: 0.2rem; + margin-bottom: 0.5rem; + line-height: 1.4; } + h1 small, h2 small, h3 small, h4 small, h5 small, h6 small { + font-size: 60%; + color: #6f6f6f; + line-height: 0; } + +h1 { + font-size: 2.125rem; } + +h2 { + font-size: 1.6875rem; } + +h3 { + font-size: 1.375rem; } + +h4 { + font-size: 1.125rem; } + +h5 { + font-size: 1.125rem; } + +h6 { + font-size: 1rem; } + +.subheader { + line-height: 1.4; + color: #6f6f6f; + font-weight: normal; + margin-top: 0.2rem; + margin-bottom: 0.5rem; } + +hr { + border: solid #dddddd; + border-width: 1px 0 0; + clear: both; + margin: 1.25rem 0 1.1875rem; + height: 0; } + +/* Helpful Typography Defaults */ +em, +i { + font-style: italic; + line-height: inherit; } + +strong, +b { + font-weight: bold; + line-height: inherit; } + +small { + font-size: 60%; + line-height: inherit; } + +code { + font-family: Consolas, "Liberation Mono", Courier, monospace; + font-weight: bold; + color: #bd260d; } + +/* Lists */ +ul, +ol, +dl { + font-size: 1rem; + line-height: 1.6; + margin-bottom: 1.25rem; + list-style-position: outside; + font-family: inherit; } + +ul { + margin-left: 1.1rem; } + ul.no-bullet { + margin-left: 0; } + ul.no-bullet li ul, + ul.no-bullet li ol { + margin-left: 1.25rem; + margin-bottom: 0; + list-style: none; } + +/* Unordered Lists */ +ul li ul, +ul li ol { + margin-left: 1.25rem; + margin-bottom: 0; } +ul.square li ul, ul.circle li ul, ul.disc li ul { + list-style: inherit; } +ul.square { + list-style-type: square; + margin-left: 1.1rem; } +ul.circle { + list-style-type: circle; + margin-left: 1.1rem; } +ul.disc { + list-style-type: disc; + margin-left: 1.1rem; } +ul.no-bullet { + list-style: none; } + +/* Ordered Lists */ +ol { + margin-left: 1.4rem; } + ol li ul, + ol li ol { + margin-left: 1.25rem; + margin-bottom: 0; } + +/* Definition Lists */ +dl dt { + margin-bottom: 0.3rem; + font-weight: bold; } +dl dd { + margin-bottom: 0.75rem; } + +/* Abbreviations */ +abbr, +acronym { + text-transform: uppercase; + font-size: 90%; + color: #222222; + border-bottom: 1px dotted #dddddd; + cursor: help; } + +abbr { + text-transform: none; } + +/* Blockquotes */ +blockquote { + margin: 0 0 1.25rem; + padding: 0.5625rem 1.25rem 0 1.1875rem; + border-left: 1px solid #dddddd; } + blockquote cite { + display: block; + font-size: 0.8125rem; + color: #555555; } + blockquote cite:before { + content: "\2014 \0020"; } + blockquote cite a, + blockquote cite a:visited { + color: #555555; } + +blockquote, +blockquote p { + line-height: 1.6; + color: #6f6f6f; } + +/* Microformats */ +.vcard { + display: inline-block; + margin: 0 0 1.25rem 0; + border: 1px solid #dddddd; + padding: 0.625rem 0.75rem; } + .vcard li { + margin: 0; + display: block; } + .vcard .fn { + font-weight: bold; + font-size: 0.9375rem; } + +.vevent .summary { + font-weight: bold; } +.vevent abbr { + cursor: default; + text-decoration: none; + font-weight: bold; + border: none; + padding: 0 0.0625rem; } + +@media only screen and (min-width: 40.063em) { + h1, h2, h3, h4, h5, h6 { + line-height: 1.4; } + + h1 { + font-size: 2.75rem; } + + h2 { + font-size: 2.3125rem; } + + h3 { + font-size: 1.6875rem; } + + h4 { + font-size: 1.4375rem; } } +/* + * Print styles. + * + * Inlined to avoid required HTTP connection: www.phpied.com/delay-loading-your-print-css/ + * Credit to Paul Irish and HTML5 Boilerplate (html5boilerplate.com) +*/ +.print-only { + display: none !important; } + +@media print { + * { + background: transparent !important; + color: black !important; + /* Black prints faster: h5bp.com/s */ + box-shadow: none !important; + text-shadow: none !important; } + + a, + a:visited { + text-decoration: underline; } + + a[href]:after { + content: " (" attr(href) ")"; } + + abbr[title]:after { + content: " (" attr(title) ")"; } + + .ir a:after, + a[href^="javascript:"]:after, + a[href^="#"]:after { + content: ""; } + + pre, + blockquote { + border: 1px solid #999999; + page-break-inside: avoid; } + + thead { + display: table-header-group; + /* h5bp.com/t */ } + + tr, + img { + page-break-inside: avoid; } + + img { + max-width: 100% !important; } + + @page { + margin: 0.5cm; } + + p, + h2, + h3 { + orphans: 3; + widows: 3; } + + h2, + h3 { + page-break-after: avoid; } + + .hide-on-print { + display: none !important; } + + .print-only { + display: block !important; } + + .hide-for-print { + display: none !important; } + + .show-for-print { + display: inherit !important; } } +.split.button { + position: relative; + padding-right: 5.0625rem; } + .split.button span { + display: block; + height: 100%; + position: absolute; + right: 0; + top: 0; + border-left: solid 1px; } + .split.button span:before { + position: absolute; + content: ""; + width: 0; + height: 0; + display: block; + border-style: inset; + top: 50%; + left: 50%; } + .split.button span:active { + background-color: rgba(0, 0, 0, 0.1); } + .split.button span { + border-left-color: rgba(255, 255, 255, 0.5); } + .split.button span { + width: 3.09375rem; } + .split.button span:before { + border-top-style: solid; + border-width: 0.375rem; + top: 48%; + margin-left: -0.375rem; } + .split.button span:before { + border-color: white transparent transparent transparent; } + .split.button.secondary span { + border-left-color: rgba(255, 255, 255, 0.5); } + .split.button.secondary span:before { + border-color: white transparent transparent transparent; } + .split.button.alert span { + border-left-color: rgba(255, 255, 255, 0.5); } + .split.button.success span { + border-left-color: rgba(255, 255, 255, 0.5); } + .split.button.tiny { + padding-right: 3.75rem; } + .split.button.tiny span { + width: 2.25rem; } + .split.button.tiny span:before { + border-top-style: solid; + border-width: 0.375rem; + top: 48%; + margin-left: -0.375rem; } + .split.button.small { + padding-right: 4.375rem; } + .split.button.small span { + width: 2.625rem; } + .split.button.small span:before { + border-top-style: solid; + border-width: 0.4375rem; + top: 48%; + margin-left: -0.375rem; } + .split.button.large { + padding-right: 5.5rem; } + .split.button.large span { + width: 3.4375rem; } + .split.button.large span:before { + border-top-style: solid; + border-width: 0.3125rem; + top: 48%; + margin-left: -0.375rem; } + .split.button.expand { + padding-left: 2rem; } + .split.button.secondary span:before { + border-color: #333333 transparent transparent transparent; } + .split.button.radius span { + border-bottom-right-radius: 3px; + border-top-right-radius: 3px; } + .split.button.round span { + border-bottom-right-radius: 1000px; + border-top-right-radius: 1000px; } + +.reveal-modal-bg { + position: fixed; + height: 100%; + width: 100%; + background: black; + background: rgba(0, 0, 0, 0.45); + z-index: 99; + display: none; + top: 0; + left: 0; } + +dialog, .reveal-modal { + visibility: hidden; + display: none; + position: absolute; + z-index: 100; + width: 100vw; + top: 0; + left: 0; + background-color: white; + padding: 1.25rem; + border: solid 1px #666666; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.4); } + @media only screen and (max-width: 40em) { + dialog, .reveal-modal { + min-height: 100vh; } } + @media only screen and (min-width: 40.063em) { + dialog, .reveal-modal { + left: 50%; } } + dialog .column, + dialog .columns, .reveal-modal .column, + .reveal-modal .columns { + min-width: 0; } + dialog > :first-child, .reveal-modal > :first-child { + margin-top: 0; } + dialog > :last-child, .reveal-modal > :last-child { + margin-bottom: 0; } + @media only screen and (min-width: 40.063em) { + dialog, .reveal-modal { + margin-left: -40%; + width: 80%; } } + @media only screen and (min-width: 40.063em) { + dialog, .reveal-modal { + top: 6.25rem; } } + dialog .close-reveal-modal, .reveal-modal .close-reveal-modal { + font-size: 2.5rem; + line-height: 1; + position: absolute; + top: 0.5rem; + right: 0.6875rem; + color: #aaaaaa; + font-weight: bold; + cursor: pointer; } + +dialog[open] { + display: block; + visibility: visible; } + +@media only screen and (min-width: 40.063em) { + dialog, .reveal-modal { + padding: 1.875rem; } + dialog.radius, .reveal-modal.radius { + border-radius: 3px; } + dialog.round, .reveal-modal.round { + border-radius: 1000px; } + dialog.collapse, .reveal-modal.collapse { + padding: 0; } + dialog.full, .reveal-modal.full { + top: 0; + left: 0; + height: 100vh; + min-height: 100vh; + margin-left: 0 !important; } } + @media only screen and (min-width: 40.063em) and (min-width: 40.063em) { + dialog.tiny, .reveal-modal.tiny { + margin-left: -15%; + width: 30%; } } + @media only screen and (min-width: 40.063em) and (min-width: 40.063em) { + dialog.small, .reveal-modal.small { + margin-left: -20%; + width: 40%; } } + @media only screen and (min-width: 40.063em) and (min-width: 40.063em) { + dialog.medium, .reveal-modal.medium { + margin-left: -30%; + width: 60%; } } + @media only screen and (min-width: 40.063em) and (min-width: 40.063em) { + dialog.large, .reveal-modal.large { + margin-left: -35%; + width: 70%; } } + @media only screen and (min-width: 40.063em) and (min-width: 40.063em) { + dialog.xlarge, .reveal-modal.xlarge { + margin-left: -47.5%; + width: 95%; } } + + @media only screen and (min-width: 40.063em) and (min-width: 40.063em) { + dialog.full, .reveal-modal.full { + margin-left: -50vw; + width: 100vw; } } + +@media print { + dialog, .reveal-modal { + background: white !important; } } +/* Tooltips */ +.has-tip { + border-bottom: dotted 1px #cccccc; + cursor: help; + font-weight: bold; + color: #333333; } + .has-tip:hover, .has-tip:focus { + border-bottom: dotted 1px #003f54; + color: #008cba; } + .has-tip.tip-left, .has-tip.tip-right { + float: none !important; } + +.tooltip { + display: none; + position: absolute; + z-index: 999; + font-weight: normal; + font-size: 0.875rem; + line-height: 1.3; + padding: 0.75rem; + max-width: 85%; + left: 50%; + width: 100%; + color: white; + background: #333333; } + .tooltip > .nub { + display: block; + left: 5px; + position: absolute; + width: 0; + height: 0; + border: solid 5px; + border-color: transparent transparent #333333 transparent; + top: -10px; } + .tooltip > .nub.rtl { + left: auto; + right: 5px; } + .tooltip.radius { + border-radius: 3px; } + .tooltip.round { + border-radius: 1000px; } + .tooltip.round > .nub { + left: 2rem; } + .tooltip.opened { + color: #008cba !important; + border-bottom: dotted 1px #003f54 !important; } + +.tap-to-close { + display: block; + font-size: 0.625rem; + color: #777777; + font-weight: normal; } + +@media only screen and (min-width: 40.063em) { + .tooltip > .nub { + border-color: transparent transparent #333333 transparent; + top: -10px; } + .tooltip.tip-top > .nub { + border-color: #333333 transparent transparent transparent; + top: auto; + bottom: -10px; } + .tooltip.tip-left, .tooltip.tip-right { + float: none !important; } + .tooltip.tip-left > .nub { + border-color: transparent transparent transparent #333333; + right: -10px; + left: auto; + top: 50%; + margin-top: -5px; } + .tooltip.tip-right > .nub { + border-color: transparent #333333 transparent transparent; + right: auto; + left: -10px; + top: 50%; + margin-top: -5px; } } +/* Clearing Styles */ +.clearing-thumbs, [data-clearing] { + *zoom: 1; + margin-bottom: 0; + margin-left: 0; + list-style: none; } + .clearing-thumbs:before, .clearing-thumbs:after, [data-clearing]:before, [data-clearing]:after { + content: " "; + display: table; } + .clearing-thumbs:after, [data-clearing]:after { + clear: both; } + .clearing-thumbs li, [data-clearing] li { + float: left; + margin-right: 10px; } + .clearing-thumbs[class*="block-grid-"] li, [data-clearing][class*="block-grid-"] li { + margin-right: 0; } + +.clearing-blackout { + background: #333333; + position: fixed; + width: 100%; + height: 100%; + top: 0; + left: 0; + z-index: 998; } + .clearing-blackout .clearing-close { + display: block; } + +.clearing-container { + position: relative; + z-index: 998; + height: 100%; + overflow: hidden; + margin: 0; } + +.clearing-touch-label { + position: absolute; + top: 50%; + left: 50%; + color: #aaa; + font-size: 0.6em; } + +.visible-img { + height: 95%; + position: relative; } + .visible-img img { + position: absolute; + left: 50%; + top: 50%; + margin-left: -50%; + max-height: 100%; + max-width: 100%; } + +.clearing-caption { + color: #cccccc; + font-size: 0.875em; + line-height: 1.3; + margin-bottom: 0; + text-align: center; + bottom: 0; + background: #333333; + width: 100%; + padding: 10px 30px 20px; + position: absolute; + left: 0; } + +.clearing-close { + z-index: 999; + padding-left: 20px; + padding-top: 10px; + font-size: 30px; + line-height: 1; + color: #cccccc; + display: none; } + .clearing-close:hover, .clearing-close:focus { + color: #ccc; } + +.clearing-assembled .clearing-container { + height: 100%; } + .clearing-assembled .clearing-container .carousel > ul { + display: none; } + +.clearing-feature li { + display: none; } + .clearing-feature li.clearing-featured-img { + display: block; } + +@media only screen and (min-width: 40.063em) { + .clearing-main-prev, + .clearing-main-next { + position: absolute; + height: 100%; + width: 40px; + top: 0; } + .clearing-main-prev > span, + .clearing-main-next > span { + position: absolute; + top: 50%; + display: block; + width: 0; + height: 0; + border: solid 12px; } + .clearing-main-prev > span:hover, + .clearing-main-next > span:hover { + opacity: 0.8; } + + .clearing-main-prev { + left: 0; } + .clearing-main-prev > span { + left: 5px; + border-color: transparent; + border-right-color: #cccccc; } + + .clearing-main-next { + right: 0; } + .clearing-main-next > span { + border-color: transparent; + border-left-color: #cccccc; } + + .clearing-main-prev.disabled, + .clearing-main-next.disabled { + opacity: 0.3; } + + .clearing-assembled .clearing-container .carousel { + background: rgba(51, 51, 51, 0.8); + height: 120px; + margin-top: 10px; + text-align: center; } + .clearing-assembled .clearing-container .carousel > ul { + display: inline-block; + z-index: 999; + height: 100%; + position: relative; + float: none; } + .clearing-assembled .clearing-container .carousel > ul li { + display: block; + width: 120px; + min-height: inherit; + float: left; + overflow: hidden; + margin-right: 0; + padding: 0; + position: relative; + cursor: pointer; + opacity: 0.4; + clear: none; } + .clearing-assembled .clearing-container .carousel > ul li.fix-height img { + height: 100%; + max-width: none; } + .clearing-assembled .clearing-container .carousel > ul li a.th { + border: none; + box-shadow: none; + display: block; } + .clearing-assembled .clearing-container .carousel > ul li img { + cursor: pointer !important; + width: 100% !important; } + .clearing-assembled .clearing-container .carousel > ul li.visible { + opacity: 1; } + .clearing-assembled .clearing-container .carousel > ul li:hover { + opacity: 0.8; } + .clearing-assembled .clearing-container .visible-img { + background: #333333; + overflow: hidden; + height: 85%; } + + .clearing-close { + position: absolute; + top: 10px; + right: 20px; + padding-left: 0; + padding-top: 0; } } +/* Progress Bar */ +.progress { + background-color: #f6f6f6; + height: 1.5625rem; + border: 1px solid white; + padding: 0.125rem; + margin-bottom: 0.625rem; } + .progress .meter { + background: #008cba; + height: 100%; + display: block; } + .progress.secondary .meter { + background: #e7e7e7; + height: 100%; + display: block; } + .progress.success .meter { + background: #43ac6a; + height: 100%; + display: block; } + .progress.alert .meter { + background: #f04124; + height: 100%; + display: block; } + .progress.radius { + border-radius: 3px; } + .progress.radius .meter { + border-radius: 2px; } + .progress.round { + border-radius: 1000px; } + .progress.round .meter { + border-radius: 999px; } + +.sub-nav { + display: block; + width: auto; + overflow: hidden; + margin: -0.25rem 0 1.125rem; + padding-top: 0.25rem; + margin-right: 0; + margin-left: -0.75rem; } + .sub-nav dt { + text-transform: uppercase; } + .sub-nav dt, + .sub-nav dd, + .sub-nav li { + float: left; + display: inline; + margin-left: 1rem; + margin-bottom: 0.625rem; + font-family: "Helvetica Neue", "Helvetica", Helvetica, Arial, sans-serif; + font-weight: normal; + font-size: 0.875rem; + color: #999999; } + .sub-nav dt a, + .sub-nav dd a, + .sub-nav li a { + text-decoration: none; + color: #999999; + padding: 0.1875rem 1rem; } + .sub-nav dt a:hover, + .sub-nav dd a:hover, + .sub-nav li a:hover { + color: #737373; } + .sub-nav dt.active a, + .sub-nav dd.active a, + .sub-nav li.active a { + border-radius: 3px; + font-weight: normal; + background: #008cba; + padding: 0.1875rem 1rem; + cursor: default; + color: white; } + .sub-nav dt.active a:hover, + .sub-nav dd.active a:hover, + .sub-nav li.active a:hover { + background: #0078a0; } + +/* Foundation Joyride */ +.joyride-list { + display: none; } + +/* Default styles for the container */ +.joyride-tip-guide { + display: none; + position: absolute; + background: #333333; + color: white; + z-index: 101; + top: 0; + left: 2.5%; + font-family: inherit; + font-weight: normal; + width: 95%; } + +.lt-ie9 .joyride-tip-guide { + max-width: 800px; + left: 50%; + margin-left: -400px; } + +.joyride-content-wrapper { + width: 100%; + padding: 1.125rem 1.25rem 1.5rem; } + .joyride-content-wrapper .button { + margin-bottom: 0 !important; } + +/* Add a little css triangle pip, older browser just miss out on the fanciness of it */ +.joyride-tip-guide .joyride-nub { + display: block; + position: absolute; + left: 22px; + width: 0; + height: 0; + border: 10px solid #333333; } + .joyride-tip-guide .joyride-nub.top { + border-top-style: solid; + border-color: #333333; + border-top-color: transparent !important; + border-left-color: transparent !important; + border-right-color: transparent !important; + top: -20px; } + .joyride-tip-guide .joyride-nub.bottom { + border-bottom-style: solid; + border-color: #333333 !important; + border-bottom-color: transparent !important; + border-left-color: transparent !important; + border-right-color: transparent !important; + bottom: -20px; } + .joyride-tip-guide .joyride-nub.right { + right: -20px; } + .joyride-tip-guide .joyride-nub.left { + left: -20px; } + +/* Typography */ +.joyride-tip-guide h1, +.joyride-tip-guide h2, +.joyride-tip-guide h3, +.joyride-tip-guide h4, +.joyride-tip-guide h5, +.joyride-tip-guide h6 { + line-height: 1.25; + margin: 0; + font-weight: bold; + color: white; } + +.joyride-tip-guide p { + margin: 0 0 1.125rem 0; + font-size: 0.875rem; + line-height: 1.3; } + +.joyride-timer-indicator-wrap { + width: 50px; + height: 3px; + border: solid 1px #555555; + position: absolute; + right: 1.0625rem; + bottom: 1rem; } + +.joyride-timer-indicator { + display: block; + width: 0; + height: inherit; + background: #666666; } + +.joyride-close-tip { + position: absolute; + right: 12px; + top: 10px; + color: #777777 !important; + text-decoration: none; + font-size: 24px; + font-weight: normal; + line-height: 0.5 !important; } + .joyride-close-tip:hover, .joyride-close-tip:focus { + color: #eeeeee !important; } + +.joyride-modal-bg { + position: fixed; + height: 100%; + width: 100%; + background: transparent; + background: rgba(0, 0, 0, 0.5); + z-index: 100; + display: none; + top: 0; + left: 0; + cursor: pointer; } + +.joyride-expose-wrapper { + background-color: #ffffff; + position: absolute; + border-radius: 3px; + z-index: 102; + box-shadow: 0 0 15px white; } + +.joyride-expose-cover { + background: transparent; + border-radius: 3px; + position: absolute; + z-index: 9999; + top: 0; + left: 0; } + +/* Styles for screens that are at least 768px; */ +@media only screen and (min-width: 40.063em) { + .joyride-tip-guide { + width: 300px; + left: inherit; } + .joyride-tip-guide .joyride-nub.bottom { + border-color: #333333 !important; + border-bottom-color: transparent !important; + border-left-color: transparent !important; + border-right-color: transparent !important; + bottom: -20px; } + .joyride-tip-guide .joyride-nub.right { + border-color: #333333 !important; + border-top-color: transparent !important; + border-right-color: transparent !important; + border-bottom-color: transparent !important; + top: 22px; + left: auto; + right: -20px; } + .joyride-tip-guide .joyride-nub.left { + border-color: #333333 !important; + border-top-color: transparent !important; + border-left-color: transparent !important; + border-bottom-color: transparent !important; + top: 22px; + left: -20px; + right: auto; } } +.label { + font-weight: normal; + font-family: "Helvetica Neue", "Helvetica", Helvetica, Arial, sans-serif; + text-align: center; + text-decoration: none; + line-height: 1; + white-space: nowrap; + display: inline-block; + position: relative; + margin-bottom: inherit; + padding: 0.25rem 0.5rem 0.375rem; + font-size: 0.6875rem; + background-color: #008cba; + color: white; } + .label.radius { + border-radius: 3px; } + .label.round { + border-radius: 1000px; } + .label.alert { + background-color: #f04124; + color: white; } + .label.success { + background-color: #43ac6a; + color: white; } + .label.secondary { + background-color: #e7e7e7; + color: #333333; } + +.off-canvas-wrap { + -webkit-backface-visibility: hidden; + position: relative; + width: 100%; + overflow: hidden; } + .off-canvas-wrap.move-right, .off-canvas-wrap.move-left { + min-height: 100%; + -webkit-overflow-scrolling: touch; } + +.inner-wrap { + -webkit-backface-visibility: hidden; + position: relative; + width: 100%; + *zoom: 1; + -webkit-transition: -webkit-transform 500ms ease; + -moz-transition: -moz-transform 500ms ease; + -ms-transition: -ms-transform 500ms ease; + -o-transition: -o-transform 500ms ease; + transition: transform 500ms ease; } + .inner-wrap:before, .inner-wrap:after { + content: " "; + display: table; } + .inner-wrap:after { + clear: both; } + +.tab-bar { + -webkit-backface-visibility: hidden; + background: #333333; + color: white; + height: 2.8125rem; + line-height: 2.8125rem; + position: relative; } + .tab-bar h1, .tab-bar h2, .tab-bar h3, .tab-bar h4, .tab-bar h5, .tab-bar h6 { + color: white; + font-weight: bold; + line-height: 2.8125rem; + margin: 0; } + .tab-bar h1, .tab-bar h2, .tab-bar h3, .tab-bar h4 { + font-size: 1.125rem; } + +.left-small { + width: 2.8125rem; + height: 2.8125rem; + position: absolute; + top: 0; + border-right: solid 1px #1a1a1a; + left: 0; } + +.right-small { + width: 2.8125rem; + height: 2.8125rem; + position: absolute; + top: 0; + border-left: solid 1px #1a1a1a; + right: 0; } + +.tab-bar-section { + padding: 0 0.625rem; + position: absolute; + text-align: center; + height: 2.8125rem; + top: 0; } + @media only screen and (min-width: 40.063em) { + .tab-bar-section { + text-align: left; } } + .tab-bar-section.left { + left: 0; + right: 2.8125rem; } + .tab-bar-section.right { + left: 2.8125rem; + right: 0; } + .tab-bar-section.middle { + left: 2.8125rem; + right: 2.8125rem; } + +.tab-bar .menu-icon { + text-indent: 2.1875rem; + width: 2.8125rem; + height: 2.8125rem; + display: block; + line-height: 2.0625rem; + padding: 0; + color: white; + position: relative; + -ms-transform: translate(0, 0); + -webkit-transform: translate3d(0, 0, 0); + -moz-transform: translate3d(0, 0, 0); + -ms-transform: translate3d(0, 0, 0); + -o-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } + .tab-bar .menu-icon span { + position: absolute; + display: block; + height: 0; + width: 1rem; + line-height: 1; + top: 0.9375rem; + left: 0.90625rem; + box-shadow: 0 0px 0 1px white, 0 7px 0 1px white, 0 14px 0 1px white; } + .tab-bar .menu-icon:hover span { + box-shadow: 0 0px 0 1px #b3b3b3, 0 7px 0 1px #b3b3b3, 0 14px 0 1px #b3b3b3; } + +.left-off-canvas-menu { + -webkit-backface-visibility: hidden; + width: 15.625rem; + top: 0; + bottom: 0; + position: absolute; + overflow-y: auto; + background: #333333; + z-index: 1001; + box-sizing: content-box; + -webkit-overflow-scrolling: touch; + -ms-transform: translate(-100%, 0); + -webkit-transform: translate3d(-100%, 0, 0); + -moz-transform: translate3d(-100%, 0, 0); + -ms-transform: translate3d(-100%, 0, 0); + -o-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + left: 0; } + .left-off-canvas-menu * { + -webkit-backface-visibility: hidden; } + +.right-off-canvas-menu { + -webkit-backface-visibility: hidden; + width: 15.625rem; + top: 0; + bottom: 0; + position: absolute; + overflow-y: auto; + background: #333333; + z-index: 1001; + box-sizing: content-box; + -webkit-overflow-scrolling: touch; + -ms-transform: translate(100%, 0); + -webkit-transform: translate3d(100%, 0, 0); + -moz-transform: translate3d(100%, 0, 0); + -ms-transform: translate3d(100%, 0, 0); + -o-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + right: 0; } + .right-off-canvas-menu * { + -webkit-backface-visibility: hidden; } + +ul.off-canvas-list { + list-style-type: none; + padding: 0; + margin: 0; } + ul.off-canvas-list li label { + padding: 0.3rem 0.9375rem; + color: #999999; + text-transform: uppercase; + font-weight: bold; + background: #444444; + border-top: 1px solid #5e5e5e; + border-bottom: none; + margin: 0; } + ul.off-canvas-list li a { + display: block; + padding: 0.66667rem; + color: rgba(255, 255, 255, 0.7); + border-bottom: 1px solid #262626; + transition: background 300ms ease; } + ul.off-canvas-list li a:hover { + background: #242424; } + +.move-right > .inner-wrap { + -ms-transform: translate(15.625rem, 0); + -webkit-transform: translate3d(15.625rem, 0, 0); + -moz-transform: translate3d(15.625rem, 0, 0); + -ms-transform: translate3d(15.625rem, 0, 0); + -o-transform: translate3d(15.625rem, 0, 0); + transform: translate3d(15.625rem, 0, 0); } +.move-right .exit-off-canvas { + -webkit-backface-visibility: hidden; + transition: background 300ms ease; + cursor: pointer; + box-shadow: -4px 0 4px rgba(0, 0, 0, 0.5), 4px 0 4px rgba(0, 0, 0, 0.5); + display: block; + position: absolute; + background: rgba(255, 255, 255, 0.2); + top: 0; + bottom: 0; + left: 0; + right: 0; + z-index: 1002; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } + @media only screen and (min-width: 40.063em) { + .move-right .exit-off-canvas:hover { + background: rgba(255, 255, 255, 0.05); } } + +.move-left > .inner-wrap { + -ms-transform: translate(-15.625rem, 0); + -webkit-transform: translate3d(-15.625rem, 0, 0); + -moz-transform: translate3d(-15.625rem, 0, 0); + -ms-transform: translate3d(-15.625rem, 0, 0); + -o-transform: translate3d(-15.625rem, 0, 0); + transform: translate3d(-15.625rem, 0, 0); } +.move-left .exit-off-canvas { + -webkit-backface-visibility: hidden; + transition: background 300ms ease; + cursor: pointer; + box-shadow: -4px 0 4px rgba(0, 0, 0, 0.5), 4px 0 4px rgba(0, 0, 0, 0.5); + display: block; + position: absolute; + background: rgba(255, 255, 255, 0.2); + top: 0; + bottom: 0; + left: 0; + right: 0; + z-index: 1002; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } + @media only screen and (min-width: 40.063em) { + .move-left .exit-off-canvas:hover { + background: rgba(255, 255, 255, 0.05); } } + +.no-csstransforms .left-off-canvas-menu { + left: -15.625rem; } +.no-csstransforms .right-off-canvas-menu { + right: -15.625rem; } +.no-csstransforms .move-left > .inner-wrap { + right: 15.625rem; } +.no-csstransforms .move-right > .inner-wrap { + left: 15.625rem; } + +/* Foundation Dropdowns */ +.f-dropdown { + position: absolute; + left: -9999px; + list-style: none; + margin-left: 0; + width: 100%; + max-height: none; + height: auto; + background: white; + border: solid 1px #cccccc; + font-size: 0.875rem; + z-index: 99; + margin-top: 2px; + max-width: 200px; } + .f-dropdown > *:first-child { + margin-top: 0; } + .f-dropdown > *:last-child { + margin-bottom: 0; } + .f-dropdown:before { + content: ""; + display: block; + width: 0; + height: 0; + border: inset 6px; + border-color: transparent transparent white transparent; + border-bottom-style: solid; + position: absolute; + top: -12px; + left: 10px; + z-index: 99; } + .f-dropdown:after { + content: ""; + display: block; + width: 0; + height: 0; + border: inset 7px; + border-color: transparent transparent #cccccc transparent; + border-bottom-style: solid; + position: absolute; + top: -14px; + left: 9px; + z-index: 98; } + .f-dropdown.right:before { + left: auto; + right: 10px; } + .f-dropdown.right:after { + left: auto; + right: 9px; } + .f-dropdown.drop-right { + position: absolute; + left: -9999px; + list-style: none; + margin-left: 0; + width: 100%; + max-height: none; + height: auto; + background: white; + border: solid 1px #cccccc; + font-size: 0.875rem; + z-index: 99; + margin-top: 0; + margin-left: 2px; + max-width: 200px; } + .f-dropdown.drop-right > *:first-child { + margin-top: 0; } + .f-dropdown.drop-right > *:last-child { + margin-bottom: 0; } + .f-dropdown.drop-right:before { + content: ""; + display: block; + width: 0; + height: 0; + border: inset 6px; + border-color: transparent white transparent transparent; + border-right-style: solid; + position: absolute; + top: 10px; + left: -12px; + z-index: 99; } + .f-dropdown.drop-right:after { + content: ""; + display: block; + width: 0; + height: 0; + border: inset 7px; + border-color: transparent #cccccc transparent transparent; + border-right-style: solid; + position: absolute; + top: 9px; + left: -14px; + z-index: 98; } + .f-dropdown.drop-left { + position: absolute; + left: -9999px; + list-style: none; + margin-left: 0; + width: 100%; + max-height: none; + height: auto; + background: white; + border: solid 1px #cccccc; + font-size: 0.875rem; + z-index: 99; + margin-top: 0; + margin-left: -2px; + max-width: 200px; } + .f-dropdown.drop-left > *:first-child { + margin-top: 0; } + .f-dropdown.drop-left > *:last-child { + margin-bottom: 0; } + .f-dropdown.drop-left:before { + content: ""; + display: block; + width: 0; + height: 0; + border: inset 6px; + border-color: transparent transparent transparent white; + border-left-style: solid; + position: absolute; + top: 10px; + right: -12px; + left: auto; + z-index: 99; } + .f-dropdown.drop-left:after { + content: ""; + display: block; + width: 0; + height: 0; + border: inset 7px; + border-color: transparent transparent transparent #cccccc; + border-left-style: solid; + position: absolute; + top: 9px; + right: -14px; + left: auto; + z-index: 98; } + .f-dropdown.drop-top { + position: absolute; + left: -9999px; + list-style: none; + margin-left: 0; + width: 100%; + max-height: none; + height: auto; + background: white; + border: solid 1px #cccccc; + font-size: 0.875rem; + z-index: 99; + margin-top: -2px; + margin-left: 0; + max-width: 200px; } + .f-dropdown.drop-top > *:first-child { + margin-top: 0; } + .f-dropdown.drop-top > *:last-child { + margin-bottom: 0; } + .f-dropdown.drop-top:before { + content: ""; + display: block; + width: 0; + height: 0; + border: inset 6px; + border-color: white transparent transparent transparent; + border-top-style: solid; + position: absolute; + top: auto; + bottom: -12px; + left: 10px; + right: auto; + z-index: 99; } + .f-dropdown.drop-top:after { + content: ""; + display: block; + width: 0; + height: 0; + border: inset 7px; + border-color: #cccccc transparent transparent transparent; + border-top-style: solid; + position: absolute; + top: auto; + bottom: -14px; + left: 9px; + right: auto; + z-index: 98; } + .f-dropdown li { + font-size: 0.875rem; + cursor: pointer; + line-height: 1.125rem; + margin: 0; } + .f-dropdown li:hover, .f-dropdown li:focus { + background: #eeeeee; } + .f-dropdown li a { + display: block; + padding: 0.5rem; + color: #555555; } + .f-dropdown.content { + position: absolute; + left: -9999px; + list-style: none; + margin-left: 0; + padding: 1.25rem; + width: 100%; + height: auto; + max-height: none; + background: white; + border: solid 1px #cccccc; + font-size: 0.875rem; + z-index: 99; + max-width: 200px; } + .f-dropdown.content > *:first-child { + margin-top: 0; } + .f-dropdown.content > *:last-child { + margin-bottom: 0; } + .f-dropdown.tiny { + max-width: 200px; } + .f-dropdown.small { + max-width: 300px; } + .f-dropdown.medium { + max-width: 500px; } + .f-dropdown.large { + max-width: 800px; } + +table { + background: white; + margin-bottom: 1.25rem; + border: solid 1px #dddddd; } + table thead, + table tfoot { + background: whitesmoke; } + table thead tr th, + table thead tr td, + table tfoot tr th, + table tfoot tr td { + padding: 0.5rem 0.625rem 0.625rem; + font-size: 0.875rem; + font-weight: bold; + color: #222222; + text-align: left; } + table tr th, + table tr td { + padding: 0.5625rem 0.625rem; + font-size: 0.875rem; + color: #222222; } + table tr.even, table tr.alt, table tr:nth-of-type(even) { + background: #f9f9f9; } + table thead tr th, + table tfoot tr th, + table tbody tr td, + table tr td, + table tfoot tr td { + display: table-cell; + line-height: 1.125rem; } + +/* Standard Forms */ +form { + margin: 0 0 1rem; } + +/* Using forms within rows, we need to set some defaults */ +form .row .row { + margin: 0 -0.5rem; } + form .row .row .column, + form .row .row .columns { + padding: 0 0.5rem; } + form .row .row.collapse { + margin: 0; } + form .row .row.collapse .column, + form .row .row.collapse .columns { + padding: 0; } + form .row .row.collapse input { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } +form .row input.column, +form .row input.columns, +form .row textarea.column, +form .row textarea.columns { + padding-left: 0.5rem; } + +/* Label Styles */ +label { + font-size: 0.875rem; + color: #4d4d4d; + cursor: pointer; + display: block; + font-weight: normal; + line-height: 1.5; + margin-bottom: 0; + /* Styles for required inputs */ } + label.right { + float: none; + text-align: right; } + label.inline { + margin: 0 0 1rem 0; + padding: 0.5625rem 0; } + label small { + text-transform: capitalize; + color: #676767; } + +select::-ms-expand { + display: none; } + +@-moz-document url-prefix() { + select { + background: #fafafa; } + + select:hover { + background: #f3f3f3; } } + +/* Attach elements to the beginning or end of an input */ +.prefix, +.postfix { + display: block; + position: relative; + z-index: 2; + text-align: center; + width: 100%; + padding-top: 0; + padding-bottom: 0; + border-style: solid; + border-width: 1px; + overflow: hidden; + font-size: 0.875rem; + height: 2.3125rem; + line-height: 2.3125rem; } + +/* Adjust padding, alignment and radius if pre/post element is a button */ +.postfix.button { + padding-left: 0; + padding-right: 0; + padding-top: 0; + padding-bottom: 0; + text-align: center; + line-height: 2.125rem; + border: none; } + +.prefix.button { + padding-left: 0; + padding-right: 0; + padding-top: 0; + padding-bottom: 0; + text-align: center; + line-height: 2.125rem; + border: none; } + +.prefix.button.radius { + border-radius: 0; + border-bottom-left-radius: 3px; + border-top-left-radius: 3px; } + +.postfix.button.radius { + border-radius: 0; + border-bottom-right-radius: 3px; + border-top-right-radius: 3px; } + +.prefix.button.round { + border-radius: 0; + border-bottom-left-radius: 1000px; + border-top-left-radius: 1000px; } + +.postfix.button.round { + border-radius: 0; + border-bottom-right-radius: 1000px; + border-top-right-radius: 1000px; } + +/* Separate prefix and postfix styles when on span or label so buttons keep their own */ +span.prefix, label.prefix { + background: #f2f2f2; + border-right: none; + color: #333333; + border-color: #cccccc; } + span.prefix.radius, label.prefix.radius { + border-radius: 0; + border-bottom-left-radius: 3px; + border-top-left-radius: 3px; } + +span.postfix, label.postfix { + background: #f2f2f2; + border-left: none; + color: #333333; + border-color: #cccccc; } + span.postfix.radius, label.postfix.radius { + border-radius: 0; + border-bottom-right-radius: 3px; + border-top-right-radius: 3px; } + +/* We use this to get basic styling on all basic form elements */ +input[type="text"], +input[type="password"], +input[type="date"], +input[type="datetime"], +input[type="datetime-local"], +input[type="month"], +input[type="week"], +input[type="email"], +input[type="number"], +input[type="search"], +input[type="tel"], +input[type="time"], +input[type="url"], +textarea { + -webkit-appearance: none; + background-color: white; + font-family: inherit; + border: 1px solid #cccccc; + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + color: rgba(0, 0, 0, 0.75); + display: block; + font-size: 0.875rem; + margin: 0 0 1rem 0; + padding: 0.5rem; + height: 2.3125rem; + width: 100%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + transition: box-shadow 0.45s, border-color 0.45s ease-in-out; } + input[type="text"]:focus, + input[type="password"]:focus, + input[type="date"]:focus, + input[type="datetime"]:focus, + input[type="datetime-local"]:focus, + input[type="month"]:focus, + input[type="week"]:focus, + input[type="email"]:focus, + input[type="number"]:focus, + input[type="search"]:focus, + input[type="tel"]:focus, + input[type="time"]:focus, + input[type="url"]:focus, + textarea:focus { + box-shadow: 0 0 5px #999999; + border-color: #999999; } + input[type="text"]:focus, + input[type="password"]:focus, + input[type="date"]:focus, + input[type="datetime"]:focus, + input[type="datetime-local"]:focus, + input[type="month"]:focus, + input[type="week"]:focus, + input[type="email"]:focus, + input[type="number"]:focus, + input[type="search"]:focus, + input[type="tel"]:focus, + input[type="time"]:focus, + input[type="url"]:focus, + textarea:focus { + background: #fafafa; + border-color: #999999; + outline: none; } + input[type="text"][disabled], fieldset[disabled] input[type="text"], + input[type="password"][disabled], fieldset[disabled] + input[type="password"], + input[type="date"][disabled], fieldset[disabled] + input[type="date"], + input[type="datetime"][disabled], fieldset[disabled] + input[type="datetime"], + input[type="datetime-local"][disabled], fieldset[disabled] + input[type="datetime-local"], + input[type="month"][disabled], fieldset[disabled] + input[type="month"], + input[type="week"][disabled], fieldset[disabled] + input[type="week"], + input[type="email"][disabled], fieldset[disabled] + input[type="email"], + input[type="number"][disabled], fieldset[disabled] + input[type="number"], + input[type="search"][disabled], fieldset[disabled] + input[type="search"], + input[type="tel"][disabled], fieldset[disabled] + input[type="tel"], + input[type="time"][disabled], fieldset[disabled] + input[type="time"], + input[type="url"][disabled], fieldset[disabled] + input[type="url"], + textarea[disabled], fieldset[disabled] + textarea { + background-color: #dddddd; } + input[type="text"].radius, + input[type="password"].radius, + input[type="date"].radius, + input[type="datetime"].radius, + input[type="datetime-local"].radius, + input[type="month"].radius, + input[type="week"].radius, + input[type="email"].radius, + input[type="number"].radius, + input[type="search"].radius, + input[type="tel"].radius, + input[type="time"].radius, + input[type="url"].radius, + textarea.radius { + border-radius: 3px; } + +input[type="submit"] { + -webkit-appearance: none; } + +/* Respect enforced amount of rows for textarea */ +textarea[rows] { + height: auto; } + +/* Add height value for select elements to match text input height */ +select { + -webkit-appearance: none !important; + background-color: #fafafa; + background-image: url("data:image/svg+xml;base64, PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSI2cHgiIGhlaWdodD0iM3B4IiB2aWV3Qm94PSIwIDAgNiAzIiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA2IDMiIHhtbDpzcGFjZT0icHJlc2VydmUiPjxwb2x5Z29uIHBvaW50cz0iNS45OTIsMCAyLjk5MiwzIC0wLjAwOCwwICIvPjwvc3ZnPg=="); + background-repeat: no-repeat; + background-position: 97% center; + border: 1px solid #cccccc; + padding: 0.5rem; + font-size: 0.875rem; + border-radius: 0; + height: 2.3125rem; } + select.radius { + border-radius: 3px; } + select:hover { + background-color: #f3f3f3; + border-color: #999999; } + +/* Adjust margin for form elements below */ +input[type="file"], +input[type="checkbox"], +input[type="radio"], +select { + margin: 0 0 1rem 0; } + +input[type="checkbox"] + label, +input[type="radio"] + label { + display: inline-block; + margin-left: 0.5rem; + margin-right: 1rem; + margin-bottom: 0; + vertical-align: baseline; } + +/* Normalize file input width */ +input[type="file"] { + width: 100%; } + +/* We add basic fieldset styling */ +fieldset { + border: 1px solid #dddddd; + padding: 1.25rem; + margin: 1.125rem 0; } + fieldset legend { + font-weight: bold; + background: white; + padding: 0 0.1875rem; + margin: 0; + margin-left: -0.1875rem; } + +/* Error Handling */ +[data-abide] .error small.error, [data-abide] span.error, [data-abide] small.error { + display: block; + padding: 0.375rem 0.5625rem 0.5625rem; + margin-top: -1px; + margin-bottom: 1rem; + font-size: 0.75rem; + font-weight: normal; + font-style: italic; + background: #f04124; + color: white; } +[data-abide] span.error, [data-abide] small.error { + display: none; } + +span.error, small.error { + display: block; + padding: 0.375rem 0.5625rem 0.5625rem; + margin-top: -1px; + margin-bottom: 1rem; + font-size: 0.75rem; + font-weight: normal; + font-style: italic; + background: #f04124; + color: white; } + +.error input, +.error textarea, +.error select { + margin-bottom: 0; } +.error input[type="checkbox"], +.error input[type="radio"] { + margin-bottom: 1rem; } +.error label, +.error label.error { + color: #f04124; } +.error small.error { + display: block; + padding: 0.375rem 0.5625rem 0.5625rem; + margin-top: -1px; + margin-bottom: 1rem; + font-size: 0.75rem; + font-weight: normal; + font-style: italic; + background: #f04124; + color: white; } +.error > label > small { + color: #676767; + background: transparent; + padding: 0; + text-transform: capitalize; + font-style: normal; + font-size: 60%; + margin: 0; + display: inline; } +.error span.error-message { + display: block; } + +input.error, +textarea.error { + margin-bottom: 0; } + +label.error { + color: #f04124; } + +.range-slider { + display: block; + position: relative; + width: 100%; + height: 1rem; + border: 1px solid #dddddd; + margin: 1.25rem 0; + -ms-touch-action: none; + touch-action: none; + background: #fafafa; } + .range-slider.vertical-range { + display: block; + position: relative; + width: 100%; + height: 1rem; + border: 1px solid #dddddd; + margin: 1.25rem 0; + -ms-touch-action: none; + touch-action: none; + display: inline-block; + width: 1rem; + height: 12.5rem; } + .range-slider.vertical-range .range-slider-handle { + margin-top: 0; + margin-left: -0.5rem; + position: absolute; + bottom: -10.5rem; } + .range-slider.vertical-range .range-slider-active-segment { + width: 0.875rem; + height: auto; + bottom: 0; } + .range-slider.radius { + background: #fafafa; + border-radius: 3px; } + .range-slider.radius .range-slider-handle { + background: #008cba; + border-radius: 3px; } + .range-slider.radius .range-slider-handle:hover { + background: #007ba4; } + .range-slider.round { + background: #fafafa; + border-radius: 1000px; } + .range-slider.round .range-slider-handle { + background: #008cba; + border-radius: 1000px; } + .range-slider.round .range-slider-handle:hover { + background: #007ba4; } + +.range-slider-active-segment { + display: inline-block; + position: absolute; + height: 0.875rem; + background: #e5e5e5; } + +.range-slider-handle { + display: inline-block; + position: absolute; + z-index: 1; + top: -0.3125rem; + width: 2rem; + height: 1.375rem; + border: 1px solid none; + cursor: pointer; + background: #008cba; } + .range-slider-handle:hover { + background: #007ba4; } + +[class*="block-grid-"] { + display: block; + padding: 0; + margin: 0 -0.625rem; + *zoom: 1; } + [class*="block-grid-"]:before, [class*="block-grid-"]:after { + content: " "; + display: table; } + [class*="block-grid-"]:after { + clear: both; } + [class*="block-grid-"] > li { + display: block; + height: auto; + float: left; + padding: 0 0.625rem 1.25rem; } + +@media only screen { + .small-block-grid-1 > li { + width: 100%; + list-style: none; } + .small-block-grid-1 > li:nth-of-type(n) { + clear: none; } + .small-block-grid-1 > li:nth-of-type(1n+1) { + clear: both; } + + .small-block-grid-2 > li { + width: 50%; + list-style: none; } + .small-block-grid-2 > li:nth-of-type(n) { + clear: none; } + .small-block-grid-2 > li:nth-of-type(2n+1) { + clear: both; } + + .small-block-grid-3 > li { + width: 33.33333%; + list-style: none; } + .small-block-grid-3 > li:nth-of-type(n) { + clear: none; } + .small-block-grid-3 > li:nth-of-type(3n+1) { + clear: both; } + + .small-block-grid-4 > li { + width: 25%; + list-style: none; } + .small-block-grid-4 > li:nth-of-type(n) { + clear: none; } + .small-block-grid-4 > li:nth-of-type(4n+1) { + clear: both; } + + .small-block-grid-5 > li { + width: 20%; + list-style: none; } + .small-block-grid-5 > li:nth-of-type(n) { + clear: none; } + .small-block-grid-5 > li:nth-of-type(5n+1) { + clear: both; } + + .small-block-grid-6 > li { + width: 16.66667%; + list-style: none; } + .small-block-grid-6 > li:nth-of-type(n) { + clear: none; } + .small-block-grid-6 > li:nth-of-type(6n+1) { + clear: both; } + + .small-block-grid-7 > li { + width: 14.28571%; + list-style: none; } + .small-block-grid-7 > li:nth-of-type(n) { + clear: none; } + .small-block-grid-7 > li:nth-of-type(7n+1) { + clear: both; } + + .small-block-grid-8 > li { + width: 12.5%; + list-style: none; } + .small-block-grid-8 > li:nth-of-type(n) { + clear: none; } + .small-block-grid-8 > li:nth-of-type(8n+1) { + clear: both; } + + .small-block-grid-9 > li { + width: 11.11111%; + list-style: none; } + .small-block-grid-9 > li:nth-of-type(n) { + clear: none; } + .small-block-grid-9 > li:nth-of-type(9n+1) { + clear: both; } + + .small-block-grid-10 > li { + width: 10%; + list-style: none; } + .small-block-grid-10 > li:nth-of-type(n) { + clear: none; } + .small-block-grid-10 > li:nth-of-type(10n+1) { + clear: both; } + + .small-block-grid-11 > li { + width: 9.09091%; + list-style: none; } + .small-block-grid-11 > li:nth-of-type(n) { + clear: none; } + .small-block-grid-11 > li:nth-of-type(11n+1) { + clear: both; } + + .small-block-grid-12 > li { + width: 8.33333%; + list-style: none; } + .small-block-grid-12 > li:nth-of-type(n) { + clear: none; } + .small-block-grid-12 > li:nth-of-type(12n+1) { + clear: both; } } +@media only screen and (min-width: 40.063em) { + .medium-block-grid-1 > li { + width: 100%; + list-style: none; } + .medium-block-grid-1 > li:nth-of-type(n) { + clear: none; } + .medium-block-grid-1 > li:nth-of-type(1n+1) { + clear: both; } + + .medium-block-grid-2 > li { + width: 50%; + list-style: none; } + .medium-block-grid-2 > li:nth-of-type(n) { + clear: none; } + .medium-block-grid-2 > li:nth-of-type(2n+1) { + clear: both; } + + .medium-block-grid-3 > li { + width: 33.33333%; + list-style: none; } + .medium-block-grid-3 > li:nth-of-type(n) { + clear: none; } + .medium-block-grid-3 > li:nth-of-type(3n+1) { + clear: both; } + + .medium-block-grid-4 > li { + width: 25%; + list-style: none; } + .medium-block-grid-4 > li:nth-of-type(n) { + clear: none; } + .medium-block-grid-4 > li:nth-of-type(4n+1) { + clear: both; } + + .medium-block-grid-5 > li { + width: 20%; + list-style: none; } + .medium-block-grid-5 > li:nth-of-type(n) { + clear: none; } + .medium-block-grid-5 > li:nth-of-type(5n+1) { + clear: both; } + + .medium-block-grid-6 > li { + width: 16.66667%; + list-style: none; } + .medium-block-grid-6 > li:nth-of-type(n) { + clear: none; } + .medium-block-grid-6 > li:nth-of-type(6n+1) { + clear: both; } + + .medium-block-grid-7 > li { + width: 14.28571%; + list-style: none; } + .medium-block-grid-7 > li:nth-of-type(n) { + clear: none; } + .medium-block-grid-7 > li:nth-of-type(7n+1) { + clear: both; } + + .medium-block-grid-8 > li { + width: 12.5%; + list-style: none; } + .medium-block-grid-8 > li:nth-of-type(n) { + clear: none; } + .medium-block-grid-8 > li:nth-of-type(8n+1) { + clear: both; } + + .medium-block-grid-9 > li { + width: 11.11111%; + list-style: none; } + .medium-block-grid-9 > li:nth-of-type(n) { + clear: none; } + .medium-block-grid-9 > li:nth-of-type(9n+1) { + clear: both; } + + .medium-block-grid-10 > li { + width: 10%; + list-style: none; } + .medium-block-grid-10 > li:nth-of-type(n) { + clear: none; } + .medium-block-grid-10 > li:nth-of-type(10n+1) { + clear: both; } + + .medium-block-grid-11 > li { + width: 9.09091%; + list-style: none; } + .medium-block-grid-11 > li:nth-of-type(n) { + clear: none; } + .medium-block-grid-11 > li:nth-of-type(11n+1) { + clear: both; } + + .medium-block-grid-12 > li { + width: 8.33333%; + list-style: none; } + .medium-block-grid-12 > li:nth-of-type(n) { + clear: none; } + .medium-block-grid-12 > li:nth-of-type(12n+1) { + clear: both; } } +@media only screen and (min-width: 64.063em) { + .large-block-grid-1 > li { + width: 100%; + list-style: none; } + .large-block-grid-1 > li:nth-of-type(n) { + clear: none; } + .large-block-grid-1 > li:nth-of-type(1n+1) { + clear: both; } + + .large-block-grid-2 > li { + width: 50%; + list-style: none; } + .large-block-grid-2 > li:nth-of-type(n) { + clear: none; } + .large-block-grid-2 > li:nth-of-type(2n+1) { + clear: both; } + + .large-block-grid-3 > li { + width: 33.33333%; + list-style: none; } + .large-block-grid-3 > li:nth-of-type(n) { + clear: none; } + .large-block-grid-3 > li:nth-of-type(3n+1) { + clear: both; } + + .large-block-grid-4 > li { + width: 25%; + list-style: none; } + .large-block-grid-4 > li:nth-of-type(n) { + clear: none; } + .large-block-grid-4 > li:nth-of-type(4n+1) { + clear: both; } + + .large-block-grid-5 > li { + width: 20%; + list-style: none; } + .large-block-grid-5 > li:nth-of-type(n) { + clear: none; } + .large-block-grid-5 > li:nth-of-type(5n+1) { + clear: both; } + + .large-block-grid-6 > li { + width: 16.66667%; + list-style: none; } + .large-block-grid-6 > li:nth-of-type(n) { + clear: none; } + .large-block-grid-6 > li:nth-of-type(6n+1) { + clear: both; } + + .large-block-grid-7 > li { + width: 14.28571%; + list-style: none; } + .large-block-grid-7 > li:nth-of-type(n) { + clear: none; } + .large-block-grid-7 > li:nth-of-type(7n+1) { + clear: both; } + + .large-block-grid-8 > li { + width: 12.5%; + list-style: none; } + .large-block-grid-8 > li:nth-of-type(n) { + clear: none; } + .large-block-grid-8 > li:nth-of-type(8n+1) { + clear: both; } + + .large-block-grid-9 > li { + width: 11.11111%; + list-style: none; } + .large-block-grid-9 > li:nth-of-type(n) { + clear: none; } + .large-block-grid-9 > li:nth-of-type(9n+1) { + clear: both; } + + .large-block-grid-10 > li { + width: 10%; + list-style: none; } + .large-block-grid-10 > li:nth-of-type(n) { + clear: none; } + .large-block-grid-10 > li:nth-of-type(10n+1) { + clear: both; } + + .large-block-grid-11 > li { + width: 9.09091%; + list-style: none; } + .large-block-grid-11 > li:nth-of-type(n) { + clear: none; } + .large-block-grid-11 > li:nth-of-type(11n+1) { + clear: both; } + + .large-block-grid-12 > li { + width: 8.33333%; + list-style: none; } + .large-block-grid-12 > li:nth-of-type(n) { + clear: none; } + .large-block-grid-12 > li:nth-of-type(12n+1) { + clear: both; } } +.flex-video { + position: relative; + padding-top: 1.5625rem; + padding-bottom: 67.5%; + height: 0; + margin-bottom: 1rem; + overflow: hidden; } + .flex-video.widescreen { + padding-bottom: 56.34%; } + .flex-video.vimeo { + padding-top: 0; } + .flex-video iframe, + .flex-video object, + .flex-video embed, + .flex-video video { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; } + +.keystroke, +kbd { + background-color: #ededed; + border-color: #dddddd; + color: #222222; + border-style: solid; + border-width: 1px; + margin: 0; + font-family: "Consolas", "Menlo", "Courier", monospace; + font-size: inherit; + padding: 0.125rem 0.25rem 0; + border-radius: 3px; } + +/* small displays */ +@media only screen { + .show-for-small-only, .show-for-small-up, .show-for-small, .show-for-small-down, .hide-for-medium-only, .hide-for-medium-up, .hide-for-medium, .show-for-medium-down, .hide-for-large-only, .hide-for-large-up, .hide-for-large, .show-for-large-down, .hide-for-xlarge-only, .hide-for-xlarge-up, .hide-for-xxlarge-only, .hide-for-xxlarge-up { + display: inherit !important; } + + .hide-for-small-only, .hide-for-small-up, .hide-for-small, .hide-for-small-down, .show-for-medium-only, .show-for-medium-up, .show-for-medium, .hide-for-medium-down, .show-for-large-only, .show-for-large-up, .show-for-large, .hide-for-large-down, .show-for-xlarge-only, .show-for-xlarge-up, .show-for-xxlarge-only, .show-for-xxlarge-up { + display: none !important; } + + table.show-for-small-only, table.show-for-small-up, table.show-for-small, table.show-for-small-down, table.hide-for-medium-only, table.hide-for-medium-up, table.hide-for-medium, table.show-for-medium-down, table.hide-for-large-only, table.hide-for-large-up, table.hide-for-large, table.show-for-large-down, table.hide-for-xlarge-only, table.hide-for-xlarge-up, table.hide-for-xxlarge-only, table.hide-for-xxlarge-up { + display: table; } + + thead.show-for-small-only, thead.show-for-small-up, thead.show-for-small, thead.show-for-small-down, thead.hide-for-medium-only, thead.hide-for-medium-up, thead.hide-for-medium, thead.show-for-medium-down, thead.hide-for-large-only, thead.hide-for-large-up, thead.hide-for-large, thead.show-for-large-down, thead.hide-for-xlarge-only, thead.hide-for-xlarge-up, thead.hide-for-xxlarge-only, thead.hide-for-xxlarge-up { + display: table-header-group !important; } + + tbody.show-for-small-only, tbody.show-for-small-up, tbody.show-for-small, tbody.show-for-small-down, tbody.hide-for-medium-only, tbody.hide-for-medium-up, tbody.hide-for-medium, tbody.show-for-medium-down, tbody.hide-for-large-only, tbody.hide-for-large-up, tbody.hide-for-large, tbody.show-for-large-down, tbody.hide-for-xlarge-only, tbody.hide-for-xlarge-up, tbody.hide-for-xxlarge-only, tbody.hide-for-xxlarge-up { + display: table-row-group !important; } + + tr.show-for-small-only, tr.show-for-small-up, tr.show-for-small, tr.show-for-small-down, tr.hide-for-medium-only, tr.hide-for-medium-up, tr.hide-for-medium, tr.show-for-medium-down, tr.hide-for-large-only, tr.hide-for-large-up, tr.hide-for-large, tr.show-for-large-down, tr.hide-for-xlarge-only, tr.hide-for-xlarge-up, tr.hide-for-xxlarge-only, tr.hide-for-xxlarge-up { + display: table-row !important; } + + th.show-for-small-only, td.show-for-small-only, th.show-for-small-up, td.show-for-small-up, th.show-for-small, td.show-for-small, th.show-for-small-down, td.show-for-small-down, th.hide-for-medium-only, td.hide-for-medium-only, th.hide-for-medium-up, td.hide-for-medium-up, th.hide-for-medium, td.hide-for-medium, th.show-for-medium-down, td.show-for-medium-down, th.hide-for-large-only, td.hide-for-large-only, th.hide-for-large-up, td.hide-for-large-up, th.hide-for-large, td.hide-for-large, th.show-for-large-down, td.show-for-large-down, th.hide-for-xlarge-only, td.hide-for-xlarge-only, th.hide-for-xlarge-up, td.hide-for-xlarge-up, th.hide-for-xxlarge-only, td.hide-for-xxlarge-only, th.hide-for-xxlarge-up, td.hide-for-xxlarge-up { + display: table-cell !important; } } +/* medium displays */ +@media only screen and (min-width: 40.063em) { + .hide-for-small-only, .show-for-small-up, .hide-for-small, .hide-for-small-down, .show-for-medium-only, .show-for-medium-up, .show-for-medium, .show-for-medium-down, .hide-for-large-only, .hide-for-large-up, .hide-for-large, .show-for-large-down, .hide-for-xlarge-only, .hide-for-xlarge-up, .hide-for-xxlarge-only, .hide-for-xxlarge-up { + display: inherit !important; } + + .show-for-small-only, .hide-for-small-up, .show-for-small, .show-for-small-down, .hide-for-medium-only, .hide-for-medium-up, .hide-for-medium, .hide-for-medium-down, .show-for-large-only, .show-for-large-up, .show-for-large, .hide-for-large-down, .show-for-xlarge-only, .show-for-xlarge-up, .show-for-xxlarge-only, .show-for-xxlarge-up { + display: none !important; } + + table.hide-for-small-only, table.show-for-small-up, table.hide-for-small, table.hide-for-small-down, table.show-for-medium-only, table.show-for-medium-up, table.show-for-medium, table.show-for-medium-down, table.hide-for-large-only, table.hide-for-large-up, table.hide-for-large, table.show-for-large-down, table.hide-for-xlarge-only, table.hide-for-xlarge-up, table.hide-for-xxlarge-only, table.hide-for-xxlarge-up { + display: table; } + + thead.hide-for-small-only, thead.show-for-small-up, thead.hide-for-small, thead.hide-for-small-down, thead.show-for-medium-only, thead.show-for-medium-up, thead.show-for-medium, thead.show-for-medium-down, thead.hide-for-large-only, thead.hide-for-large-up, thead.hide-for-large, thead.show-for-large-down, thead.hide-for-xlarge-only, thead.hide-for-xlarge-up, thead.hide-for-xxlarge-only, thead.hide-for-xxlarge-up { + display: table-header-group !important; } + + tbody.hide-for-small-only, tbody.show-for-small-up, tbody.hide-for-small, tbody.hide-for-small-down, tbody.show-for-medium-only, tbody.show-for-medium-up, tbody.show-for-medium, tbody.show-for-medium-down, tbody.hide-for-large-only, tbody.hide-for-large-up, tbody.hide-for-large, tbody.show-for-large-down, tbody.hide-for-xlarge-only, tbody.hide-for-xlarge-up, tbody.hide-for-xxlarge-only, tbody.hide-for-xxlarge-up { + display: table-row-group !important; } + + tr.hide-for-small-only, tr.show-for-small-up, tr.hide-for-small, tr.hide-for-small-down, tr.show-for-medium-only, tr.show-for-medium-up, tr.show-for-medium, tr.show-for-medium-down, tr.hide-for-large-only, tr.hide-for-large-up, tr.hide-for-large, tr.show-for-large-down, tr.hide-for-xlarge-only, tr.hide-for-xlarge-up, tr.hide-for-xxlarge-only, tr.hide-for-xxlarge-up { + display: table-row !important; } + + th.hide-for-small-only, td.hide-for-small-only, th.show-for-small-up, td.show-for-small-up, th.hide-for-small, td.hide-for-small, th.hide-for-small-down, td.hide-for-small-down, th.show-for-medium-only, td.show-for-medium-only, th.show-for-medium-up, td.show-for-medium-up, th.show-for-medium, td.show-for-medium, th.show-for-medium-down, td.show-for-medium-down, th.hide-for-large-only, td.hide-for-large-only, th.hide-for-large-up, td.hide-for-large-up, th.hide-for-large, td.hide-for-large, th.show-for-large-down, td.show-for-large-down, th.hide-for-xlarge-only, td.hide-for-xlarge-only, th.hide-for-xlarge-up, td.hide-for-xlarge-up, th.hide-for-xxlarge-only, td.hide-for-xxlarge-only, th.hide-for-xxlarge-up, td.hide-for-xxlarge-up { + display: table-cell !important; } } +/* large displays */ +@media only screen and (min-width: 64.063em) { + .hide-for-small-only, .show-for-small-up, .hide-for-small, .hide-for-small-down, .hide-for-medium-only, .show-for-medium-up, .hide-for-medium, .hide-for-medium-down, .show-for-large-only, .show-for-large-up, .show-for-large, .show-for-large-down, .hide-for-xlarge-only, .hide-for-xlarge-up, .hide-for-xxlarge-only, .hide-for-xxlarge-up { + display: inherit !important; } + + .show-for-small-only, .hide-for-small-up, .show-for-small, .show-for-small-down, .show-for-medium-only, .hide-for-medium-up, .show-for-medium, .show-for-medium-down, .hide-for-large-only, .hide-for-large-up, .hide-for-large, .hide-for-large-down, .show-for-xlarge-only, .show-for-xlarge-up, .show-for-xxlarge-only, .show-for-xxlarge-up { + display: none !important; } + + table.hide-for-small-only, table.show-for-small-up, table.hide-for-small, table.hide-for-small-down, table.hide-for-medium-only, table.show-for-medium-up, table.hide-for-medium, table.hide-for-medium-down, table.show-for-large-only, table.show-for-large-up, table.show-for-large, table.show-for-large-down, table.hide-for-xlarge-only, table.hide-for-xlarge-up, table.hide-for-xxlarge-only, table.hide-for-xxlarge-up { + display: table; } + + thead.hide-for-small-only, thead.show-for-small-up, thead.hide-for-small, thead.hide-for-small-down, thead.hide-for-medium-only, thead.show-for-medium-up, thead.hide-for-medium, thead.hide-for-medium-down, thead.show-for-large-only, thead.show-for-large-up, thead.show-for-large, thead.show-for-large-down, thead.hide-for-xlarge-only, thead.hide-for-xlarge-up, thead.hide-for-xxlarge-only, thead.hide-for-xxlarge-up { + display: table-header-group !important; } + + tbody.hide-for-small-only, tbody.show-for-small-up, tbody.hide-for-small, tbody.hide-for-small-down, tbody.hide-for-medium-only, tbody.show-for-medium-up, tbody.hide-for-medium, tbody.hide-for-medium-down, tbody.show-for-large-only, tbody.show-for-large-up, tbody.show-for-large, tbody.show-for-large-down, tbody.hide-for-xlarge-only, tbody.hide-for-xlarge-up, tbody.hide-for-xxlarge-only, tbody.hide-for-xxlarge-up { + display: table-row-group !important; } + + tr.hide-for-small-only, tr.show-for-small-up, tr.hide-for-small, tr.hide-for-small-down, tr.hide-for-medium-only, tr.show-for-medium-up, tr.hide-for-medium, tr.hide-for-medium-down, tr.show-for-large-only, tr.show-for-large-up, tr.show-for-large, tr.show-for-large-down, tr.hide-for-xlarge-only, tr.hide-for-xlarge-up, tr.hide-for-xxlarge-only, tr.hide-for-xxlarge-up { + display: table-row !important; } + + th.hide-for-small-only, td.hide-for-small-only, th.show-for-small-up, td.show-for-small-up, th.hide-for-small, td.hide-for-small, th.hide-for-small-down, td.hide-for-small-down, th.hide-for-medium-only, td.hide-for-medium-only, th.show-for-medium-up, td.show-for-medium-up, th.hide-for-medium, td.hide-for-medium, th.hide-for-medium-down, td.hide-for-medium-down, th.show-for-large-only, td.show-for-large-only, th.show-for-large-up, td.show-for-large-up, th.show-for-large, td.show-for-large, th.show-for-large-down, td.show-for-large-down, th.hide-for-xlarge-only, td.hide-for-xlarge-only, th.hide-for-xlarge-up, td.hide-for-xlarge-up, th.hide-for-xxlarge-only, td.hide-for-xxlarge-only, th.hide-for-xxlarge-up, td.hide-for-xxlarge-up { + display: table-cell !important; } } +/* xlarge displays */ +@media only screen and (min-width: 90.063em) { + .hide-for-small-only, .show-for-small-up, .hide-for-small, .hide-for-small-down, .hide-for-medium-only, .show-for-medium-up, .hide-for-medium, .hide-for-medium-down, .hide-for-large-only, .show-for-large-up, .hide-for-large, .hide-for-large-down, .show-for-xlarge-only, .show-for-xlarge-up, .hide-for-xxlarge-only, .hide-for-xxlarge-up { + display: inherit !important; } + + .show-for-small-only, .hide-for-small-up, .show-for-small, .show-for-small-down, .show-for-medium-only, .hide-for-medium-up, .show-for-medium, .show-for-medium-down, .show-for-large-only, .hide-for-large-up, .show-for-large, .show-for-large-down, .hide-for-xlarge-only, .hide-for-xlarge-up, .show-for-xxlarge-only, .show-for-xxlarge-up { + display: none !important; } + + table.hide-for-small-only, table.show-for-small-up, table.hide-for-small, table.hide-for-small-down, table.hide-for-medium-only, table.show-for-medium-up, table.hide-for-medium, table.hide-for-medium-down, table.hide-for-large-only, table.show-for-large-up, table.hide-for-large, table.hide-for-large-down, table.show-for-xlarge-only, table.show-for-xlarge-up, table.hide-for-xxlarge-only, table.hide-for-xxlarge-up { + display: table; } + + thead.hide-for-small-only, thead.show-for-small-up, thead.hide-for-small, thead.hide-for-small-down, thead.hide-for-medium-only, thead.show-for-medium-up, thead.hide-for-medium, thead.hide-for-medium-down, thead.hide-for-large-only, thead.show-for-large-up, thead.hide-for-large, thead.hide-for-large-down, thead.show-for-xlarge-only, thead.show-for-xlarge-up, thead.hide-for-xxlarge-only, thead.hide-for-xxlarge-up { + display: table-header-group !important; } + + tbody.hide-for-small-only, tbody.show-for-small-up, tbody.hide-for-small, tbody.hide-for-small-down, tbody.hide-for-medium-only, tbody.show-for-medium-up, tbody.hide-for-medium, tbody.hide-for-medium-down, tbody.hide-for-large-only, tbody.show-for-large-up, tbody.hide-for-large, tbody.hide-for-large-down, tbody.show-for-xlarge-only, tbody.show-for-xlarge-up, tbody.hide-for-xxlarge-only, tbody.hide-for-xxlarge-up { + display: table-row-group !important; } + + tr.hide-for-small-only, tr.show-for-small-up, tr.hide-for-small, tr.hide-for-small-down, tr.hide-for-medium-only, tr.show-for-medium-up, tr.hide-for-medium, tr.hide-for-medium-down, tr.hide-for-large-only, tr.show-for-large-up, tr.hide-for-large, tr.hide-for-large-down, tr.show-for-xlarge-only, tr.show-for-xlarge-up, tr.hide-for-xxlarge-only, tr.hide-for-xxlarge-up { + display: table-row !important; } + + th.hide-for-small-only, td.hide-for-small-only, th.show-for-small-up, td.show-for-small-up, th.hide-for-small, td.hide-for-small, th.hide-for-small-down, td.hide-for-small-down, th.hide-for-medium-only, td.hide-for-medium-only, th.show-for-medium-up, td.show-for-medium-up, th.hide-for-medium, td.hide-for-medium, th.hide-for-medium-down, td.hide-for-medium-down, th.hide-for-large-only, td.hide-for-large-only, th.show-for-large-up, td.show-for-large-up, th.hide-for-large, td.hide-for-large, th.hide-for-large-down, td.hide-for-large-down, th.show-for-xlarge-only, td.show-for-xlarge-only, th.show-for-xlarge-up, td.show-for-xlarge-up, th.hide-for-xxlarge-only, td.hide-for-xxlarge-only, th.hide-for-xxlarge-up, td.hide-for-xxlarge-up { + display: table-cell !important; } } +/* xxlarge displays */ +@media only screen and (min-width: 120.063em) { + .hide-for-small-only, .show-for-small-up, .hide-for-small, .hide-for-small-down, .hide-for-medium-only, .show-for-medium-up, .hide-for-medium, .hide-for-medium-down, .hide-for-large-only, .show-for-large-up, .hide-for-large, .hide-for-large-down, .hide-for-xlarge-only, .show-for-xlarge-up, .show-for-xxlarge-only, .show-for-xxlarge-up { + display: inherit !important; } + + .show-for-small-only, .hide-for-small-up, .show-for-small, .show-for-small-down, .show-for-medium-only, .hide-for-medium-up, .show-for-medium, .show-for-medium-down, .show-for-large-only, .hide-for-large-up, .show-for-large, .show-for-large-down, .show-for-xlarge-only, .hide-for-xlarge-up, .hide-for-xxlarge-only, .hide-for-xxlarge-up { + display: none !important; } + + table.hide-for-small-only, table.show-for-small-up, table.hide-for-small, table.hide-for-small-down, table.hide-for-medium-only, table.show-for-medium-up, table.hide-for-medium, table.hide-for-medium-down, table.hide-for-large-only, table.show-for-large-up, table.hide-for-large, table.hide-for-large-down, table.hide-for-xlarge-only, table.show-for-xlarge-up, table.show-for-xxlarge-only, table.show-for-xxlarge-up { + display: table; } + + thead.hide-for-small-only, thead.show-for-small-up, thead.hide-for-small, thead.hide-for-small-down, thead.hide-for-medium-only, thead.show-for-medium-up, thead.hide-for-medium, thead.hide-for-medium-down, thead.hide-for-large-only, thead.show-for-large-up, thead.hide-for-large, thead.hide-for-large-down, thead.hide-for-xlarge-only, thead.show-for-xlarge-up, thead.show-for-xxlarge-only, thead.show-for-xxlarge-up { + display: table-header-group !important; } + + tbody.hide-for-small-only, tbody.show-for-small-up, tbody.hide-for-small, tbody.hide-for-small-down, tbody.hide-for-medium-only, tbody.show-for-medium-up, tbody.hide-for-medium, tbody.hide-for-medium-down, tbody.hide-for-large-only, tbody.show-for-large-up, tbody.hide-for-large, tbody.hide-for-large-down, tbody.hide-for-xlarge-only, tbody.show-for-xlarge-up, tbody.show-for-xxlarge-only, tbody.show-for-xxlarge-up { + display: table-row-group !important; } + + tr.hide-for-small-only, tr.show-for-small-up, tr.hide-for-small, tr.hide-for-small-down, tr.hide-for-medium-only, tr.show-for-medium-up, tr.hide-for-medium, tr.hide-for-medium-down, tr.hide-for-large-only, tr.show-for-large-up, tr.hide-for-large, tr.hide-for-large-down, tr.hide-for-xlarge-only, tr.show-for-xlarge-up, tr.show-for-xxlarge-only, tr.show-for-xxlarge-up { + display: table-row !important; } + + th.hide-for-small-only, td.hide-for-small-only, th.show-for-small-up, td.show-for-small-up, th.hide-for-small, td.hide-for-small, th.hide-for-small-down, td.hide-for-small-down, th.hide-for-medium-only, td.hide-for-medium-only, th.show-for-medium-up, td.show-for-medium-up, th.hide-for-medium, td.hide-for-medium, th.hide-for-medium-down, td.hide-for-medium-down, th.hide-for-large-only, td.hide-for-large-only, th.show-for-large-up, td.show-for-large-up, th.hide-for-large, td.hide-for-large, th.hide-for-large-down, td.hide-for-large-down, th.hide-for-xlarge-only, td.hide-for-xlarge-only, th.show-for-xlarge-up, td.show-for-xlarge-up, th.show-for-xxlarge-only, td.show-for-xxlarge-only, th.show-for-xxlarge-up, td.show-for-xxlarge-up { + display: table-cell !important; } } +/* Orientation targeting */ +.show-for-landscape, +.hide-for-portrait { + display: inherit !important; } + +.hide-for-landscape, +.show-for-portrait { + display: none !important; } + +/* Specific visibility for tables */ +table.hide-for-landscape, table.show-for-portrait { + display: table; } + +thead.hide-for-landscape, thead.show-for-portrait { + display: table-header-group !important; } + +tbody.hide-for-landscape, tbody.show-for-portrait { + display: table-row-group !important; } + +tr.hide-for-landscape, tr.show-for-portrait { + display: table-row !important; } + +td.hide-for-landscape, td.show-for-portrait, +th.hide-for-landscape, +th.show-for-portrait { + display: table-cell !important; } + +@media only screen and (orientation: landscape) { + .show-for-landscape, + .hide-for-portrait { + display: inherit !important; } + + .hide-for-landscape, + .show-for-portrait { + display: none !important; } + + /* Specific visibility for tables */ + table.show-for-landscape, table.hide-for-portrait { + display: table; } + + thead.show-for-landscape, thead.hide-for-portrait { + display: table-header-group !important; } + + tbody.show-for-landscape, tbody.hide-for-portrait { + display: table-row-group !important; } + + tr.show-for-landscape, tr.hide-for-portrait { + display: table-row !important; } + + td.show-for-landscape, td.hide-for-portrait, + th.show-for-landscape, + th.hide-for-portrait { + display: table-cell !important; } } +@media only screen and (orientation: portrait) { + .show-for-portrait, + .hide-for-landscape { + display: inherit !important; } + + .hide-for-portrait, + .show-for-landscape { + display: none !important; } + + /* Specific visibility for tables */ + table.show-for-portrait, table.hide-for-landscape { + display: table; } + + thead.show-for-portrait, thead.hide-for-landscape { + display: table-header-group !important; } + + tbody.show-for-portrait, tbody.hide-for-landscape { + display: table-row-group !important; } + + tr.show-for-portrait, tr.hide-for-landscape { + display: table-row !important; } + + td.show-for-portrait, td.hide-for-landscape, + th.show-for-portrait, + th.hide-for-landscape { + display: table-cell !important; } } +/* Touch-enabled device targeting */ +.show-for-touch { + display: none !important; } + +.hide-for-touch { + display: inherit !important; } + +.touch .show-for-touch { + display: inherit !important; } + +.touch .hide-for-touch { + display: none !important; } + +/* Specific visibility for tables */ +table.hide-for-touch { + display: table; } + +.touch table.show-for-touch { + display: table; } + +thead.hide-for-touch { + display: table-header-group !important; } + +.touch thead.show-for-touch { + display: table-header-group !important; } + +tbody.hide-for-touch { + display: table-row-group !important; } + +.touch tbody.show-for-touch { + display: table-row-group !important; } + +tr.hide-for-touch { + display: table-row !important; } + +.touch tr.show-for-touch { + display: table-row !important; } + +td.hide-for-touch { + display: table-cell !important; } + +.touch td.show-for-touch { + display: table-cell !important; } + +th.hide-for-touch { + display: table-cell !important; } + +.touch th.show-for-touch { + display: table-cell !important; } diff --git a/infusion/development/css/foundation.min.css b/infusion/development/css/foundation.min.css new file mode 100644 index 00000000..c471b7e9 --- /dev/null +++ b/infusion/development/css/foundation.min.css @@ -0,0 +1 @@ +meta.foundation-version{font-family:"/5.2.2/"}meta.foundation-mq-small{font-family:"/only screen/";width:0em}meta.foundation-mq-medium{font-family:"/only screen and (min-width:40.063em)/";width:40.063em}meta.foundation-mq-large{font-family:"/only screen and (min-width:64.063em)/";width:64.063em}meta.foundation-mq-xlarge{font-family:"/only screen and (min-width:90.063em)/";width:90.063em}meta.foundation-mq-xxlarge{font-family:"/only screen and (min-width:120.063em)/";width:120.063em}meta.foundation-data-attribute-namespace{font-family:false}html,body{height:100%}*,*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html,body{font-size:100%}body{background:#fff;color:#222;padding:0;margin:0;font-family:"Helvetica Neue","Helvetica",Helvetica,Arial,sans-serif;font-weight:normal;font-style:normal;line-height:1;position:relative;cursor:default}a:hover{cursor:pointer}img{max-width:100%;height:auto}img{-ms-interpolation-mode:bicubic}#map_canvas img,#map_canvas embed,#map_canvas object,.map_canvas img,.map_canvas embed,.map_canvas object{max-width:none !important}.left{float:left !important}.right{float:right !important}.clearfix{*zoom:1}.clearfix:before,.clearfix:after{content:" ";display:table}.clearfix:after{clear:both}.hide{display:none}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img{display:inline-block;vertical-align:middle}textarea{height:auto;min-height:50px}select{width:100%}.row{width:100%;margin-left:auto;margin-right:auto;margin-top:0;margin-bottom:0;max-width:62.5rem;*zoom:1}.row:before,.row:after{content:" ";display:table}.row:after{clear:both}.row.collapse>.column,.row.collapse>.columns{padding-left:0;padding-right:0}.row.collapse .row{margin-left:0;margin-right:0}.row .row{width:auto;margin-left:-0.9375rem;margin-right:-0.9375rem;margin-top:0;margin-bottom:0;max-width:none;*zoom:1}.row .row:before,.row .row:after{content:" ";display:table}.row .row:after{clear:both}.row .row.collapse{width:auto;margin:0;max-width:none;*zoom:1}.row .row.collapse:before,.row .row.collapse:after{content:" ";display:table}.row .row.collapse:after{clear:both}.column,.columns{padding-left:0.9375rem;padding-right:0.9375rem;width:100%;float:left}@media only screen{.small-push-0{position:relative;left:0%;right:auto}.small-pull-0{position:relative;right:0%;left:auto}.small-push-1{position:relative;left:8.33333%;right:auto}.small-pull-1{position:relative;right:8.33333%;left:auto}.small-push-2{position:relative;left:16.66667%;right:auto}.small-pull-2{position:relative;right:16.66667%;left:auto}.small-push-3{position:relative;left:25%;right:auto}.small-pull-3{position:relative;right:25%;left:auto}.small-push-4{position:relative;left:33.33333%;right:auto}.small-pull-4{position:relative;right:33.33333%;left:auto}.small-push-5{position:relative;left:41.66667%;right:auto}.small-pull-5{position:relative;right:41.66667%;left:auto}.small-push-6{position:relative;left:50%;right:auto}.small-pull-6{position:relative;right:50%;left:auto}.small-push-7{position:relative;left:58.33333%;right:auto}.small-pull-7{position:relative;right:58.33333%;left:auto}.small-push-8{position:relative;left:66.66667%;right:auto}.small-pull-8{position:relative;right:66.66667%;left:auto}.small-push-9{position:relative;left:75%;right:auto}.small-pull-9{position:relative;right:75%;left:auto}.small-push-10{position:relative;left:83.33333%;right:auto}.small-pull-10{position:relative;right:83.33333%;left:auto}.small-push-11{position:relative;left:91.66667%;right:auto}.small-pull-11{position:relative;right:91.66667%;left:auto}.column,.columns{position:relative;padding-left:0.9375rem;padding-right:0.9375rem;float:left}.small-1{width:8.33333%}.small-2{width:16.66667%}.small-3{width:25%}.small-4{width:33.33333%}.small-5{width:41.66667%}.small-6{width:50%}.small-7{width:58.33333%}.small-8{width:66.66667%}.small-9{width:75%}.small-10{width:83.33333%}.small-11{width:91.66667%}.small-12{width:100%}[class*="column"]+[class*="column"]:last-child{float:right}[class*="column"]+[class*="column"].end{float:left}.small-offset-0{margin-left:0% !important}.small-offset-1{margin-left:8.33333% !important}.small-offset-2{margin-left:16.66667% !important}.small-offset-3{margin-left:25% !important}.small-offset-4{margin-left:33.33333% !important}.small-offset-5{margin-left:41.66667% !important}.small-offset-6{margin-left:50% !important}.small-offset-7{margin-left:58.33333% !important}.small-offset-8{margin-left:66.66667% !important}.small-offset-9{margin-left:75% !important}.small-offset-10{margin-left:83.33333% !important}.small-offset-11{margin-left:91.66667% !important}.small-reset-order,.small-reset-order{margin-left:0;margin-right:0;left:auto;right:auto;float:left}.column.small-centered,.columns.small-centered{margin-left:auto;margin-right:auto;float:none}.column.small-uncentered,.columns.small-uncentered{margin-left:0;margin-right:0;float:left !important}.column.small-uncentered.opposite,.columns.small-uncentered.opposite{float:right}}@media only screen and (min-width: 40.063em){.medium-push-0{position:relative;left:0%;right:auto}.medium-pull-0{position:relative;right:0%;left:auto}.medium-push-1{position:relative;left:8.33333%;right:auto}.medium-pull-1{position:relative;right:8.33333%;left:auto}.medium-push-2{position:relative;left:16.66667%;right:auto}.medium-pull-2{position:relative;right:16.66667%;left:auto}.medium-push-3{position:relative;left:25%;right:auto}.medium-pull-3{position:relative;right:25%;left:auto}.medium-push-4{position:relative;left:33.33333%;right:auto}.medium-pull-4{position:relative;right:33.33333%;left:auto}.medium-push-5{position:relative;left:41.66667%;right:auto}.medium-pull-5{position:relative;right:41.66667%;left:auto}.medium-push-6{position:relative;left:50%;right:auto}.medium-pull-6{position:relative;right:50%;left:auto}.medium-push-7{position:relative;left:58.33333%;right:auto}.medium-pull-7{position:relative;right:58.33333%;left:auto}.medium-push-8{position:relative;left:66.66667%;right:auto}.medium-pull-8{position:relative;right:66.66667%;left:auto}.medium-push-9{position:relative;left:75%;right:auto}.medium-pull-9{position:relative;right:75%;left:auto}.medium-push-10{position:relative;left:83.33333%;right:auto}.medium-pull-10{position:relative;right:83.33333%;left:auto}.medium-push-11{position:relative;left:91.66667%;right:auto}.medium-pull-11{position:relative;right:91.66667%;left:auto}.column,.columns{position:relative;padding-left:0.9375rem;padding-right:0.9375rem;float:left}.medium-1{width:8.33333%}.medium-2{width:16.66667%}.medium-3{width:25%}.medium-4{width:33.33333%}.medium-5{width:41.66667%}.medium-6{width:50%}.medium-7{width:58.33333%}.medium-8{width:66.66667%}.medium-9{width:75%}.medium-10{width:83.33333%}.medium-11{width:91.66667%}.medium-12{width:100%}[class*="column"]+[class*="column"]:last-child{float:right}[class*="column"]+[class*="column"].end{float:left}.medium-offset-0{margin-left:0% !important}.medium-offset-1{margin-left:8.33333% !important}.medium-offset-2{margin-left:16.66667% !important}.medium-offset-3{margin-left:25% !important}.medium-offset-4{margin-left:33.33333% !important}.medium-offset-5{margin-left:41.66667% !important}.medium-offset-6{margin-left:50% !important}.medium-offset-7{margin-left:58.33333% !important}.medium-offset-8{margin-left:66.66667% !important}.medium-offset-9{margin-left:75% !important}.medium-offset-10{margin-left:83.33333% !important}.medium-offset-11{margin-left:91.66667% !important}.medium-reset-order,.medium-reset-order{margin-left:0;margin-right:0;left:auto;right:auto;float:left}.column.medium-centered,.columns.medium-centered{margin-left:auto;margin-right:auto;float:none}.column.medium-uncentered,.columns.medium-uncentered{margin-left:0;margin-right:0;float:left !important}.column.medium-uncentered.opposite,.columns.medium-uncentered.opposite{float:right}.push-0{position:relative;left:0%;right:auto}.pull-0{position:relative;right:0%;left:auto}.push-1{position:relative;left:8.33333%;right:auto}.pull-1{position:relative;right:8.33333%;left:auto}.push-2{position:relative;left:16.66667%;right:auto}.pull-2{position:relative;right:16.66667%;left:auto}.push-3{position:relative;left:25%;right:auto}.pull-3{position:relative;right:25%;left:auto}.push-4{position:relative;left:33.33333%;right:auto}.pull-4{position:relative;right:33.33333%;left:auto}.push-5{position:relative;left:41.66667%;right:auto}.pull-5{position:relative;right:41.66667%;left:auto}.push-6{position:relative;left:50%;right:auto}.pull-6{position:relative;right:50%;left:auto}.push-7{position:relative;left:58.33333%;right:auto}.pull-7{position:relative;right:58.33333%;left:auto}.push-8{position:relative;left:66.66667%;right:auto}.pull-8{position:relative;right:66.66667%;left:auto}.push-9{position:relative;left:75%;right:auto}.pull-9{position:relative;right:75%;left:auto}.push-10{position:relative;left:83.33333%;right:auto}.pull-10{position:relative;right:83.33333%;left:auto}.push-11{position:relative;left:91.66667%;right:auto}.pull-11{position:relative;right:91.66667%;left:auto}}@media only screen and (min-width: 64.063em){.large-push-0{position:relative;left:0%;right:auto}.large-pull-0{position:relative;right:0%;left:auto}.large-push-1{position:relative;left:8.33333%;right:auto}.large-pull-1{position:relative;right:8.33333%;left:auto}.large-push-2{position:relative;left:16.66667%;right:auto}.large-pull-2{position:relative;right:16.66667%;left:auto}.large-push-3{position:relative;left:25%;right:auto}.large-pull-3{position:relative;right:25%;left:auto}.large-push-4{position:relative;left:33.33333%;right:auto}.large-pull-4{position:relative;right:33.33333%;left:auto}.large-push-5{position:relative;left:41.66667%;right:auto}.large-pull-5{position:relative;right:41.66667%;left:auto}.large-push-6{position:relative;left:50%;right:auto}.large-pull-6{position:relative;right:50%;left:auto}.large-push-7{position:relative;left:58.33333%;right:auto}.large-pull-7{position:relative;right:58.33333%;left:auto}.large-push-8{position:relative;left:66.66667%;right:auto}.large-pull-8{position:relative;right:66.66667%;left:auto}.large-push-9{position:relative;left:75%;right:auto}.large-pull-9{position:relative;right:75%;left:auto}.large-push-10{position:relative;left:83.33333%;right:auto}.large-pull-10{position:relative;right:83.33333%;left:auto}.large-push-11{position:relative;left:91.66667%;right:auto}.large-pull-11{position:relative;right:91.66667%;left:auto}.column,.columns{position:relative;padding-left:0.9375rem;padding-right:0.9375rem;float:left}.large-1{width:8.33333%}.large-2{width:16.66667%}.large-3{width:25%}.large-4{width:33.33333%}.large-5{width:41.66667%}.large-6{width:50%}.large-7{width:58.33333%}.large-8{width:66.66667%}.large-9{width:75%}.large-10{width:83.33333%}.large-11{width:91.66667%}.large-12{width:100%}[class*="column"]+[class*="column"]:last-child{float:right}[class*="column"]+[class*="column"].end{float:left}.large-offset-0{margin-left:0% !important}.large-offset-1{margin-left:8.33333% !important}.large-offset-2{margin-left:16.66667% !important}.large-offset-3{margin-left:25% !important}.large-offset-4{margin-left:33.33333% !important}.large-offset-5{margin-left:41.66667% !important}.large-offset-6{margin-left:50% !important}.large-offset-7{margin-left:58.33333% !important}.large-offset-8{margin-left:66.66667% !important}.large-offset-9{margin-left:75% !important}.large-offset-10{margin-left:83.33333% !important}.large-offset-11{margin-left:91.66667% !important}.large-reset-order,.large-reset-order{margin-left:0;margin-right:0;left:auto;right:auto;float:left}.column.large-centered,.columns.large-centered{margin-left:auto;margin-right:auto;float:none}.column.large-uncentered,.columns.large-uncentered{margin-left:0;margin-right:0;float:left !important}.column.large-uncentered.opposite,.columns.large-uncentered.opposite{float:right}.push-0{position:relative;left:0%;right:auto}.pull-0{position:relative;right:0%;left:auto}.push-1{position:relative;left:8.33333%;right:auto}.pull-1{position:relative;right:8.33333%;left:auto}.push-2{position:relative;left:16.66667%;right:auto}.pull-2{position:relative;right:16.66667%;left:auto}.push-3{position:relative;left:25%;right:auto}.pull-3{position:relative;right:25%;left:auto}.push-4{position:relative;left:33.33333%;right:auto}.pull-4{position:relative;right:33.33333%;left:auto}.push-5{position:relative;left:41.66667%;right:auto}.pull-5{position:relative;right:41.66667%;left:auto}.push-6{position:relative;left:50%;right:auto}.pull-6{position:relative;right:50%;left:auto}.push-7{position:relative;left:58.33333%;right:auto}.pull-7{position:relative;right:58.33333%;left:auto}.push-8{position:relative;left:66.66667%;right:auto}.pull-8{position:relative;right:66.66667%;left:auto}.push-9{position:relative;left:75%;right:auto}.pull-9{position:relative;right:75%;left:auto}.push-10{position:relative;left:83.33333%;right:auto}.pull-10{position:relative;right:83.33333%;left:auto}.push-11{position:relative;left:91.66667%;right:auto}.pull-11{position:relative;right:91.66667%;left:auto}}button,.button{border-style:solid;border-width:0px;cursor:pointer;font-family:"Helvetica Neue","Helvetica",Helvetica,Arial,sans-serif;font-weight:normal;line-height:normal;margin:0 0 1.25rem;position:relative;text-decoration:none;text-align:center;-webkit-appearance:none;-webkit-border-radius:0;display:inline-block;padding-top:1rem;padding-right:2rem;padding-bottom:1.0625rem;padding-left:2rem;font-size:1rem;background-color:#008cba;border-color:#007095;color:#fff;transition:background-color 300ms ease-out}button:hover,button:focus,.button:hover,.button:focus{background-color:#007095}button:hover,button:focus,.button:hover,.button:focus{color:#fff}button.secondary,.button.secondary{background-color:#e7e7e7;border-color:#b9b9b9;color:#333}button.secondary:hover,button.secondary:focus,.button.secondary:hover,.button.secondary:focus{background-color:#b9b9b9}button.secondary:hover,button.secondary:focus,.button.secondary:hover,.button.secondary:focus{color:#333}button.success,.button.success{background-color:#43ac6a;border-color:#368a55;color:#fff}button.success:hover,button.success:focus,.button.success:hover,.button.success:focus{background-color:#368a55}button.success:hover,button.success:focus,.button.success:hover,.button.success:focus{color:#fff}button.alert,.button.alert{background-color:#f04124;border-color:#cf2a0e;color:#fff}button.alert:hover,button.alert:focus,.button.alert:hover,.button.alert:focus{background-color:#cf2a0e}button.alert:hover,button.alert:focus,.button.alert:hover,.button.alert:focus{color:#fff}button.large,.button.large{padding-top:1.125rem;padding-right:2.25rem;padding-bottom:1.1875rem;padding-left:2.25rem;font-size:1.25rem}button.small,.button.small{padding-top:0.875rem;padding-right:1.75rem;padding-bottom:0.9375rem;padding-left:1.75rem;font-size:0.8125rem}button.tiny,.button.tiny{padding-top:0.625rem;padding-right:1.25rem;padding-bottom:0.6875rem;padding-left:1.25rem;font-size:0.6875rem}button.expand,.button.expand{padding-right:0;padding-left:0;width:100%}button.left-align,.button.left-align{text-align:left;text-indent:0.75rem}button.right-align,.button.right-align{text-align:right;padding-right:0.75rem}button.radius,.button.radius{border-radius:3px}button.round,.button.round{border-radius:1000px}button.disabled,button[disabled],.button.disabled,.button[disabled]{background-color:#008cba;border-color:#007095;color:#fff;cursor:default;opacity:0.7;box-shadow:none}button.disabled:hover,button.disabled:focus,button[disabled]:hover,button[disabled]:focus,.button.disabled:hover,.button.disabled:focus,.button[disabled]:hover,.button[disabled]:focus{background-color:#007095}button.disabled:hover,button.disabled:focus,button[disabled]:hover,button[disabled]:focus,.button.disabled:hover,.button.disabled:focus,.button[disabled]:hover,.button[disabled]:focus{color:#fff}button.disabled:hover,button.disabled:focus,button[disabled]:hover,button[disabled]:focus,.button.disabled:hover,.button.disabled:focus,.button[disabled]:hover,.button[disabled]:focus{background-color:#008cba}button.disabled.secondary,button[disabled].secondary,.button.disabled.secondary,.button[disabled].secondary{background-color:#e7e7e7;border-color:#b9b9b9;color:#333;cursor:default;opacity:0.7;box-shadow:none}button.disabled.secondary:hover,button.disabled.secondary:focus,button[disabled].secondary:hover,button[disabled].secondary:focus,.button.disabled.secondary:hover,.button.disabled.secondary:focus,.button[disabled].secondary:hover,.button[disabled].secondary:focus{background-color:#b9b9b9}button.disabled.secondary:hover,button.disabled.secondary:focus,button[disabled].secondary:hover,button[disabled].secondary:focus,.button.disabled.secondary:hover,.button.disabled.secondary:focus,.button[disabled].secondary:hover,.button[disabled].secondary:focus{color:#333}button.disabled.secondary:hover,button.disabled.secondary:focus,button[disabled].secondary:hover,button[disabled].secondary:focus,.button.disabled.secondary:hover,.button.disabled.secondary:focus,.button[disabled].secondary:hover,.button[disabled].secondary:focus{background-color:#e7e7e7}button.disabled.success,button[disabled].success,.button.disabled.success,.button[disabled].success{background-color:#43ac6a;border-color:#368a55;color:#fff;cursor:default;opacity:0.7;box-shadow:none}button.disabled.success:hover,button.disabled.success:focus,button[disabled].success:hover,button[disabled].success:focus,.button.disabled.success:hover,.button.disabled.success:focus,.button[disabled].success:hover,.button[disabled].success:focus{background-color:#368a55}button.disabled.success:hover,button.disabled.success:focus,button[disabled].success:hover,button[disabled].success:focus,.button.disabled.success:hover,.button.disabled.success:focus,.button[disabled].success:hover,.button[disabled].success:focus{color:#fff}button.disabled.success:hover,button.disabled.success:focus,button[disabled].success:hover,button[disabled].success:focus,.button.disabled.success:hover,.button.disabled.success:focus,.button[disabled].success:hover,.button[disabled].success:focus{background-color:#43ac6a}button.disabled.alert,button[disabled].alert,.button.disabled.alert,.button[disabled].alert{background-color:#f04124;border-color:#cf2a0e;color:#fff;cursor:default;opacity:0.7;box-shadow:none}button.disabled.alert:hover,button.disabled.alert:focus,button[disabled].alert:hover,button[disabled].alert:focus,.button.disabled.alert:hover,.button.disabled.alert:focus,.button[disabled].alert:hover,.button[disabled].alert:focus{background-color:#cf2a0e}button.disabled.alert:hover,button.disabled.alert:focus,button[disabled].alert:hover,button[disabled].alert:focus,.button.disabled.alert:hover,.button.disabled.alert:focus,.button[disabled].alert:hover,.button[disabled].alert:focus{color:#fff}button.disabled.alert:hover,button.disabled.alert:focus,button[disabled].alert:hover,button[disabled].alert:focus,.button.disabled.alert:hover,.button.disabled.alert:focus,.button[disabled].alert:hover,.button[disabled].alert:focus{background-color:#f04124}@media only screen and (min-width: 40.063em){button,.button{display:inline-block}}meta.foundation-mq-topbar{font-family:"/only screen and (min-width:40.063em)/";width:40.063em}.contain-to-grid{width:100%;background:#333}.contain-to-grid .top-bar{margin-bottom:0}.fixed{width:100%;left:0;position:fixed;top:0;z-index:99}.fixed.expanded:not(.top-bar){overflow-y:auto;height:auto;width:100%;max-height:100%}.fixed.expanded:not(.top-bar) .title-area{position:fixed;width:100%;z-index:99}.fixed.expanded:not(.top-bar) .top-bar-section{z-index:98;margin-top:45px}.top-bar{overflow:hidden;height:45px;line-height:45px;position:relative;background:#333;margin-bottom:0}.top-bar ul{margin-bottom:0;list-style:none}.top-bar .row{max-width:none}.top-bar form,.top-bar input{margin-bottom:0}.top-bar input{height:auto;padding-top:.35rem;padding-bottom:.35rem;font-size:0.75rem}.top-bar .button,.top-bar button{padding-top:.45rem;padding-bottom:.35rem;margin-bottom:0;font-size:0.75rem}.top-bar .title-area{position:relative;margin:0}.top-bar .name{height:45px;margin:0;font-size:16px}.top-bar .name h1{line-height:45px;font-size:1.0625rem;margin:0}.top-bar .name h1 a{font-weight:normal;color:#fff;width:75%;display:block;padding:0 15px}.top-bar .toggle-topbar{position:absolute;right:0;top:0}.top-bar .toggle-topbar a{color:#fff;text-transform:uppercase;font-size:0.8125rem;font-weight:bold;position:relative;display:block;padding:0 15px;height:45px;line-height:45px}.top-bar .toggle-topbar.menu-icon{right:15px;top:50%;margin-top:-16px;padding-left:40px}.top-bar .toggle-topbar.menu-icon a{height:34px;line-height:33px;padding:0;padding-right:25px;color:#fff;position:relative}.top-bar .toggle-topbar.menu-icon a::after{content:"";position:absolute;right:0;display:block;width:16px;top:0;height:0;box-shadow:0 10px 0 1px #fff,0 16px 0 1px #fff,0 22px 0 1px #fff}.top-bar.expanded{height:auto;background:transparent}.top-bar.expanded .title-area{background:#333}.top-bar.expanded .toggle-topbar a{color:#888}.top-bar.expanded .toggle-topbar a::after{box-shadow:0 10px 0 1px #888,0 16px 0 1px #888,0 22px 0 1px #888}.top-bar-section{left:0;position:relative;width:auto;transition:left 300ms ease-out}.top-bar-section ul{width:100%;height:auto;display:block;background:#333;font-size:16px;margin:0}.top-bar-section .divider,.top-bar-section [role="separator"]{border-top:solid 1px #1a1a1a;clear:both;height:1px;width:100%}.top-bar-section ul li>a{display:block;width:100%;color:#fff;padding:12px 0 12px 0;padding-left:15px;font-family:"Helvetica Neue","Helvetica",Helvetica,Arial,sans-serif;font-size:0.8125rem;font-weight:normal;text-transform:none;background:#333}.top-bar-section ul li>a.button{font-size:0.8125rem;padding-right:15px;padding-left:15px;background-color:#008cba;border-color:#007095;color:#fff}.top-bar-section ul li>a.button:hover,.top-bar-section ul li>a.button:focus{background-color:#007095}.top-bar-section ul li>a.button:hover,.top-bar-section ul li>a.button:focus{color:#fff}.top-bar-section ul li>a.button.secondary{background-color:#e7e7e7;border-color:#b9b9b9;color:#333}.top-bar-section ul li>a.button.secondary:hover,.top-bar-section ul li>a.button.secondary:focus{background-color:#b9b9b9}.top-bar-section ul li>a.button.secondary:hover,.top-bar-section ul li>a.button.secondary:focus{color:#333}.top-bar-section ul li>a.button.success{background-color:#43ac6a;border-color:#368a55;color:#fff}.top-bar-section ul li>a.button.success:hover,.top-bar-section ul li>a.button.success:focus{background-color:#368a55}.top-bar-section ul li>a.button.success:hover,.top-bar-section ul li>a.button.success:focus{color:#fff}.top-bar-section ul li>a.button.alert{background-color:#f04124;border-color:#cf2a0e;color:#fff}.top-bar-section ul li>a.button.alert:hover,.top-bar-section ul li>a.button.alert:focus{background-color:#cf2a0e}.top-bar-section ul li>a.button.alert:hover,.top-bar-section ul li>a.button.alert:focus{color:#fff}.top-bar-section ul li>button{font-size:0.8125rem;padding-right:15px;padding-left:15px;background-color:#008cba;border-color:#007095;color:#fff}.top-bar-section ul li>button:hover,.top-bar-section ul li>button:focus{background-color:#007095}.top-bar-section ul li>button:hover,.top-bar-section ul li>button:focus{color:#fff}.top-bar-section ul li>button.secondary{background-color:#e7e7e7;border-color:#b9b9b9;color:#333}.top-bar-section ul li>button.secondary:hover,.top-bar-section ul li>button.secondary:focus{background-color:#b9b9b9}.top-bar-section ul li>button.secondary:hover,.top-bar-section ul li>button.secondary:focus{color:#333}.top-bar-section ul li>button.success{background-color:#43ac6a;border-color:#368a55;color:#fff}.top-bar-section ul li>button.success:hover,.top-bar-section ul li>button.success:focus{background-color:#368a55}.top-bar-section ul li>button.success:hover,.top-bar-section ul li>button.success:focus{color:#fff}.top-bar-section ul li>button.alert{background-color:#f04124;border-color:#cf2a0e;color:#fff}.top-bar-section ul li>button.alert:hover,.top-bar-section ul li>button.alert:focus{background-color:#cf2a0e}.top-bar-section ul li>button.alert:hover,.top-bar-section ul li>button.alert:focus{color:#fff}.top-bar-section ul li:hover:not(.has-form)>a{background:#272727;color:#fff}.top-bar-section ul li.active>a{background:#008cba;color:#fff}.top-bar-section ul li.active>a:hover{background:#0078a0;color:#fff}.top-bar-section .has-form{padding:15px}.top-bar-section .has-dropdown{position:relative}.top-bar-section .has-dropdown>a:after{content:"";display:block;width:0;height:0;border:inset 5px;border-color:transparent transparent transparent rgba(255,255,255,0.4);border-left-style:solid;margin-right:15px;margin-top:-4.5px;position:absolute;top:50%;right:0}.top-bar-section .has-dropdown.moved{position:static}.top-bar-section .has-dropdown.moved>.dropdown{display:block;position:static !important;height:auto;width:auto;overflow:visible;clip:auto;position:absolute !important;width:100%}.top-bar-section .has-dropdown.moved>a:after{display:none}.top-bar-section .dropdown{position:absolute;left:100%;top:0;z-index:99;display:block;position:absolute !important;height:1px;width:1px;overflow:hidden;clip:rect(1px, 1px, 1px, 1px)}.top-bar-section .dropdown li{width:100%;height:auto}.top-bar-section .dropdown li a{font-weight:normal;padding:8px 15px}.top-bar-section .dropdown li a.parent-link{font-weight:normal}.top-bar-section .dropdown li.title h5{margin-bottom:0}.top-bar-section .dropdown li.title h5 a{color:#fff;line-height:22.5px;display:block}.top-bar-section .dropdown li.has-form{padding:8px 15px}.top-bar-section .dropdown li .button,.top-bar-section .dropdown li button{top:auto}.top-bar-section .dropdown label{padding:8px 15px 2px;margin-bottom:0;text-transform:uppercase;color:#777;font-weight:bold;font-size:0.625rem}.js-generated{display:block}@media only screen and (min-width: 40.063em){.top-bar{background:#333;*zoom:1;overflow:visible}.top-bar:before,.top-bar:after{content:" ";display:table}.top-bar:after{clear:both}.top-bar .toggle-topbar{display:none}.top-bar .title-area{float:left}.top-bar .name h1 a{width:auto}.top-bar input,.top-bar .button,.top-bar button{font-size:0.875rem;position:relative;top:7px}.top-bar.expanded{background:#333}.contain-to-grid .top-bar{max-width:62.5rem;margin:0 auto;margin-bottom:0}.top-bar-section{transition:none 0 0;left:0 !important}.top-bar-section ul{width:auto;height:auto !important;display:inline}.top-bar-section ul li{float:left}.top-bar-section ul li .js-generated{display:none}.top-bar-section li.hover>a:not(.button){background:#272727;color:#fff}.top-bar-section li:not(.has-form) a:not(.button){padding:0 15px;line-height:45px;background:#333}.top-bar-section li:not(.has-form) a:not(.button):hover{background:#272727}.top-bar-section li.active:not(.has-form) a:not(.button){padding:0 15px;line-height:45px;color:#fff;background:#008cba}.top-bar-section li.active:not(.has-form) a:not(.button):hover{background:#0078a0}.top-bar-section .has-dropdown>a{padding-right:35px !important}.top-bar-section .has-dropdown>a:after{content:"";display:block;width:0;height:0;border:inset 5px;border-color:rgba(255,255,255,0.4) transparent transparent transparent;border-top-style:solid;margin-top:-2.5px;top:22.5px}.top-bar-section .has-dropdown.moved{position:relative}.top-bar-section .has-dropdown.moved>.dropdown{display:block;position:absolute !important;height:1px;width:1px;overflow:hidden;clip:rect(1px, 1px, 1px, 1px)}.top-bar-section .has-dropdown.hover>.dropdown,.top-bar-section .has-dropdown.not-click:hover>.dropdown{display:block;position:static !important;height:auto;width:auto;overflow:visible;clip:auto;position:absolute !important}.top-bar-section .has-dropdown .dropdown li.has-dropdown>a:after{border:none;content:"\00bb";top:1rem;margin-top:-1px;right:5px;line-height:1.2}.top-bar-section .dropdown{left:0;top:auto;background:transparent;min-width:100%}.top-bar-section .dropdown li a{color:#fff;line-height:1;white-space:nowrap;padding:12px 15px;background:#333}.top-bar-section .dropdown li:not(.has-form) a:not(.button){color:#fff;background:#333}.top-bar-section .dropdown li:not(.has-form):hover>a:not(.button){color:#fff;background:#272727}.top-bar-section .dropdown li label{white-space:nowrap;background:#333}.top-bar-section .dropdown li .dropdown{left:100%;top:0}.top-bar-section>ul>.divider,.top-bar-section>ul>[role="separator"]{border-bottom:none;border-top:none;border-right:solid 1px #4e4e4e;clear:none;height:45px;width:0}.top-bar-section .has-form{background:#333;padding:0 15px;height:45px}.top-bar-section .right li .dropdown{left:auto;right:0}.top-bar-section .right li .dropdown li .dropdown{right:100%}.top-bar-section .left li .dropdown{right:auto;left:0}.top-bar-section .left li .dropdown li .dropdown{left:100%}.no-js .top-bar-section ul li:hover>a{background:#272727;color:#fff}.no-js .top-bar-section ul li:active>a{background:#008cba;color:#fff}.no-js .top-bar-section .has-dropdown:hover>.dropdown{display:block;position:static !important;height:auto;width:auto;overflow:visible;clip:auto;position:absolute !important}}.breadcrumbs{display:block;padding:0.5625rem 0.875rem 0.5625rem;overflow:hidden;margin-left:0;list-style:none;border-style:solid;border-width:1px;background-color:#f4f4f4;border-color:#dcdcdc;border-radius:3px}.breadcrumbs>*{margin:0;float:left;font-size:0.6875rem;line-height:0.6875rem;text-transform:uppercase;color:#008cba}.breadcrumbs>*:hover a,.breadcrumbs>*:focus a{text-decoration:underline}.breadcrumbs>* a{color:#008cba}.breadcrumbs>*.current{cursor:default;color:#333}.breadcrumbs>*.current a{cursor:default;color:#333}.breadcrumbs>*.current:hover,.breadcrumbs>*.current:hover a,.breadcrumbs>*.current:focus,.breadcrumbs>*.current:focus a{text-decoration:none}.breadcrumbs>*.unavailable{color:#999}.breadcrumbs>*.unavailable a{color:#999}.breadcrumbs>*.unavailable:hover,.breadcrumbs>*.unavailable:hover a,.breadcrumbs>*.unavailable:focus,.breadcrumbs>*.unavailable a:focus{text-decoration:none;color:#999;cursor:default}.breadcrumbs>*:before{content:"/";color:#aaa;margin:0 0.75rem;position:relative;top:1px}.breadcrumbs>*:first-child:before{content:" ";margin:0}.alert-box{border-style:solid;border-width:1px;display:block;font-weight:normal;margin-bottom:1.25rem;position:relative;padding:0.875rem 1.5rem 0.875rem 0.875rem;font-size:0.8125rem;transition:opacity 300ms ease-out;background-color:#008cba;border-color:#0078a0;color:#fff}.alert-box .close{font-size:1.375rem;padding:9px 6px 4px;line-height:0;position:absolute;top:50%;margin-top:-0.6875rem;right:0.25rem;color:#333;opacity:0.3}.alert-box .close:hover,.alert-box .close:focus{opacity:0.5}.alert-box.radius{border-radius:3px}.alert-box.round{border-radius:1000px}.alert-box.success{background-color:#43ac6a;border-color:#3a945b;color:#fff}.alert-box.alert{background-color:#f04124;border-color:#de2d0f;color:#fff}.alert-box.secondary{background-color:#e7e7e7;border-color:#c7c7c7;color:#4f4f4f}.alert-box.warning{background-color:#f08a24;border-color:#de770f;color:#fff}.alert-box.info{background-color:#a0d3e8;border-color:#74bfdd;color:#4f4f4f}.alert-box.alert-close{opacity:0}.inline-list{margin:0 auto 1.0625rem auto;margin-left:-1.375rem;margin-right:0;padding:0;list-style:none;overflow:hidden}.inline-list>li{list-style:none;float:left;margin-left:1.375rem;display:block}.inline-list>li>*{display:block}.button-group{list-style:none;margin:0;left:0;*zoom:1}.button-group:before,.button-group:after{content:" ";display:table}.button-group:after{clear:both}.button-group li{margin:0;float:left}.button-group li>button,.button-group li .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group li:first-child button,.button-group li:first-child .button{border-left:0}.button-group li:first-child{margin-left:0}.button-group.radius>*>button,.button-group.radius>* .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.radius>*:first-child button,.button-group.radius>*:first-child .button{border-left:0}.button-group.radius>*:first-child,.button-group.radius>*:first-child>a,.button-group.radius>*:first-child>button,.button-group.radius>*:first-child>.button{border-bottom-left-radius:3px;border-top-left-radius:3px}.button-group.radius>*:last-child,.button-group.radius>*:last-child>a,.button-group.radius>*:last-child>button,.button-group.radius>*:last-child>.button{border-bottom-right-radius:3px;border-top-right-radius:3px}.button-group.round>*>button,.button-group.round>* .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.round>*:first-child button,.button-group.round>*:first-child .button{border-left:0}.button-group.round>*:first-child,.button-group.round>*:first-child>a,.button-group.round>*:first-child>button,.button-group.round>*:first-child>.button{border-bottom-left-radius:1000px;border-top-left-radius:1000px}.button-group.round>*:last-child,.button-group.round>*:last-child>a,.button-group.round>*:last-child>button,.button-group.round>*:last-child>.button{border-bottom-right-radius:1000px;border-top-right-radius:1000px}.button-group.even-2 li{width:50%}.button-group.even-2 li>button,.button-group.even-2 li .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.even-2 li:first-child button,.button-group.even-2 li:first-child .button{border-left:0}.button-group.even-2 li button,.button-group.even-2 li .button{width:100%}.button-group.even-3 li{width:33.33333%}.button-group.even-3 li>button,.button-group.even-3 li .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.even-3 li:first-child button,.button-group.even-3 li:first-child .button{border-left:0}.button-group.even-3 li button,.button-group.even-3 li .button{width:100%}.button-group.even-4 li{width:25%}.button-group.even-4 li>button,.button-group.even-4 li .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.even-4 li:first-child button,.button-group.even-4 li:first-child .button{border-left:0}.button-group.even-4 li button,.button-group.even-4 li .button{width:100%}.button-group.even-5 li{width:20%}.button-group.even-5 li>button,.button-group.even-5 li .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.even-5 li:first-child button,.button-group.even-5 li:first-child .button{border-left:0}.button-group.even-5 li button,.button-group.even-5 li .button{width:100%}.button-group.even-6 li{width:16.66667%}.button-group.even-6 li>button,.button-group.even-6 li .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.even-6 li:first-child button,.button-group.even-6 li:first-child .button{border-left:0}.button-group.even-6 li button,.button-group.even-6 li .button{width:100%}.button-group.even-7 li{width:14.28571%}.button-group.even-7 li>button,.button-group.even-7 li .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.even-7 li:first-child button,.button-group.even-7 li:first-child .button{border-left:0}.button-group.even-7 li button,.button-group.even-7 li .button{width:100%}.button-group.even-8 li{width:12.5%}.button-group.even-8 li>button,.button-group.even-8 li .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.even-8 li:first-child button,.button-group.even-8 li:first-child .button{border-left:0}.button-group.even-8 li button,.button-group.even-8 li .button{width:100%}.button-bar{*zoom:1}.button-bar:before,.button-bar:after{content:" ";display:table}.button-bar:after{clear:both}.button-bar .button-group{float:left;margin-right:0.625rem}.button-bar .button-group div{overflow:hidden}.panel{border-style:solid;border-width:1px;border-color:#d8d8d8;margin-bottom:1.25rem;padding:1.25rem;background:#f2f2f2}.panel>:first-child{margin-top:0}.panel>:last-child{margin-bottom:0}.panel h1,.panel h2,.panel h3,.panel h4,.panel h5,.panel h6,.panel p{color:#333}.panel h1,.panel h2,.panel h3,.panel h4,.panel h5,.panel h6{line-height:1;margin-bottom:0.625rem}.panel h1.subheader,.panel h2.subheader,.panel h3.subheader,.panel h4.subheader,.panel h5.subheader,.panel h6.subheader{line-height:1.4}.panel.callout{border-style:solid;border-width:1px;border-color:#b6edff;margin-bottom:1.25rem;padding:1.25rem;background:#ecfaff}.panel.callout>:first-child{margin-top:0}.panel.callout>:last-child{margin-bottom:0}.panel.callout h1,.panel.callout h2,.panel.callout h3,.panel.callout h4,.panel.callout h5,.panel.callout h6,.panel.callout p{color:#333}.panel.callout h1,.panel.callout h2,.panel.callout h3,.panel.callout h4,.panel.callout h5,.panel.callout h6{line-height:1;margin-bottom:0.625rem}.panel.callout h1.subheader,.panel.callout h2.subheader,.panel.callout h3.subheader,.panel.callout h4.subheader,.panel.callout h5.subheader,.panel.callout h6.subheader{line-height:1.4}.panel.callout a:not(.button){color:#008cba}.panel.radius{border-radius:3px}.dropdown.button,button.dropdown{position:relative;padding-right:3.5625rem}.dropdown.button:before,button.dropdown:before{position:absolute;content:"";width:0;height:0;display:block;border-style:solid;border-color:#fff transparent transparent transparent;top:50%}.dropdown.button:before,button.dropdown:before{border-width:0.375rem;right:1.40625rem;margin-top:-0.15625rem}.dropdown.button:before,button.dropdown:before{border-color:#fff transparent transparent transparent}.dropdown.button.tiny,button.dropdown.tiny{padding-right:2.625rem}.dropdown.button.tiny:before,button.dropdown.tiny:before{border-width:0.375rem;right:1.125rem;margin-top:-0.125rem}.dropdown.button.tiny:before,button.dropdown.tiny:before{border-color:#fff transparent transparent transparent}.dropdown.button.small,button.dropdown.small{padding-right:3.0625rem}.dropdown.button.small:before,button.dropdown.small:before{border-width:0.4375rem;right:1.3125rem;margin-top:-0.15625rem}.dropdown.button.small:before,button.dropdown.small:before{border-color:#fff transparent transparent transparent}.dropdown.button.large,button.dropdown.large{padding-right:3.625rem}.dropdown.button.large:before,button.dropdown.large:before{border-width:0.3125rem;right:1.71875rem;margin-top:-0.15625rem}.dropdown.button.large:before,button.dropdown.large:before{border-color:#fff transparent transparent transparent}.dropdown.button.secondary:before,button.dropdown.secondary:before{border-color:#333 transparent transparent transparent}div.switch{position:relative;padding:0;display:block;overflow:hidden;border-style:solid;border-width:1px;margin-bottom:1.25rem;height:2.25rem;background:#fff;border-color:#ccc}div.switch label{position:relative;left:0;z-index:2;float:left;width:50%;height:100%;margin:0;font-weight:bold;text-align:left;transition:all 0.1s ease-out}div.switch input{position:absolute;z-index:3;opacity:0;width:100%;height:100%;-moz-appearance:none}div.switch input:hover,div.switch input:focus{cursor:pointer}div.switch span:last-child{position:absolute;top:-1px;left:-1px;z-index:1;display:block;padding:0;border-width:1px;border-style:solid;transition:all 0.1s ease-out}div.switch input:not(:checked)+label{opacity:0}div.switch input:checked{display:none !important}div.switch input{left:0;display:block !important}div.switch input:first-of-type+label,div.switch input:first-of-type+span+label{left:-50%}div.switch input:first-of-type:checked+label,div.switch input:first-of-type:checked+span+label{left:0%}div.switch input:last-of-type+label,div.switch input:last-of-type+span+label{right:-50%;left:auto;text-align:right}div.switch input:last-of-type:checked+label,div.switch input:last-of-type:checked+span+label{right:0%;left:auto}div.switch span.custom{display:none !important}form.custom div.switch .hidden-field{margin-left:auto;position:absolute;visibility:visible}div.switch label{padding:0;line-height:2.3rem;font-size:0.875rem}div.switch input:first-of-type:checked ~ span:last-child{left:100%;margin-left:-2.1875rem}div.switch span:last-child{width:2.25rem;height:2.25rem}div.switch span:last-child{border-color:#b3b3b3;background:#fff;background:linear-gradient(to bottom, #fff 0%, #f2f2f2 100%);box-shadow:2px 0 10px 0 rgba(0,0,0,0.07),1000px 0 0 980px #f3faf6,-2px 0 10px 0 rgba(0,0,0,0.07),-1000px 0 0 1000px #f5f5f5}div.switch:hover span:last-child,div.switch:focus span:last-child{background:#fff;background:linear-gradient(to bottom, #fff 0%, #e6e6e6 100%)}div.switch:active{background:transparent}div.switch.large{height:2.75rem}div.switch.large label{padding:0;line-height:2.3rem;font-size:1.0625rem}div.switch.large input:first-of-type:checked ~ span:last-child{left:100%;margin-left:-2.6875rem}div.switch.large span:last-child{width:2.75rem;height:2.75rem}div.switch.small{height:1.75rem}div.switch.small label{padding:0;line-height:2.1rem;font-size:0.75rem}div.switch.small input:first-of-type:checked ~ span:last-child{left:100%;margin-left:-1.6875rem}div.switch.small span:last-child{width:1.75rem;height:1.75rem}div.switch.tiny{height:1.375rem}div.switch.tiny label{padding:0;line-height:1.9rem;font-size:0.6875rem}div.switch.tiny input:first-of-type:checked ~ span:last-child{left:100%;margin-left:-1.3125rem}div.switch.tiny span:last-child{width:1.375rem;height:1.375rem}div.switch.radius{border-radius:4px}div.switch.radius span:last-child{border-radius:3px}div.switch.round{border-radius:1000px}div.switch.round span:last-child{border-radius:999px}div.switch.round label{padding:0 0.5625rem}.th{line-height:0;display:inline-block;border:solid 4px #fff;max-width:100%;box-shadow:0 0 0 1px rgba(0,0,0,0.2);transition:all 200ms ease-out}.th:hover,.th:focus{box-shadow:0 0 6px 1px rgba(0,140,186,0.5)}.th.radius{border-radius:3px}.pricing-table{border:solid 1px #ddd;margin-left:0;margin-bottom:1.25rem}.pricing-table *{list-style:none;line-height:1}.pricing-table .title{background-color:#333;padding:0.9375rem 1.25rem;text-align:center;color:#eee;font-weight:normal;font-size:1rem;font-family:"Helvetica Neue","Helvetica",Helvetica,Arial,sans-serif}.pricing-table .price{background-color:#f6f6f6;padding:0.9375rem 1.25rem;text-align:center;color:#333;font-weight:normal;font-size:2rem;font-family:"Helvetica Neue","Helvetica",Helvetica,Arial,sans-serif}.pricing-table .description{background-color:#fff;padding:0.9375rem;text-align:center;color:#777;font-size:0.75rem;font-weight:normal;line-height:1.4;border-bottom:dotted 1px #ddd}.pricing-table .bullet-item{background-color:#fff;padding:0.9375rem;text-align:center;color:#333;font-size:0.875rem;font-weight:normal;border-bottom:dotted 1px #ddd}.pricing-table .cta-button{background-color:#fff;text-align:center;padding:1.25rem 1.25rem 0}@keyframes rotate{from{-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);-ms-transform:rotate(0deg);-o-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(360deg);-moz-transform:rotate(360deg);-ms-transform:rotate(360deg);-o-transform:rotate(360deg);transform:rotate(360deg)}}.slideshow-wrapper{position:relative}.slideshow-wrapper ul{list-style-type:none;margin:0}.slideshow-wrapper ul li,.slideshow-wrapper ul li .orbit-caption{display:none}.slideshow-wrapper ul li:first-child{display:block}.slideshow-wrapper .orbit-container{background-color:transparent}.slideshow-wrapper .orbit-container li{display:block}.slideshow-wrapper .orbit-container li .orbit-caption{display:block}.slideshow-wrapper .preloader{display:block;width:40px;height:40px;position:absolute;top:50%;left:50%;margin-top:-20px;margin-left:-20px;border:solid 3px;border-color:#555 #fff;border-radius:1000px;animation-name:rotate;animation-duration:1.5s;animation-iteration-count:infinite;animation-timing-function:linear}.orbit-container{overflow:hidden;width:100%;position:relative;background:none}.orbit-container .orbit-slides-container{list-style:none;margin:0;padding:0;position:relative;-webkit-transform:translateZ(0)}.orbit-container .orbit-slides-container img{display:block;max-width:100%}.orbit-container .orbit-slides-container.fade li{opacity:0;transition:opacity 500ms ease-in-out;-ms-transform:translate(0, 0);-webkit-transform:translate3d(0, 0, 0);-moz-transform:translate3d(0, 0, 0);-o-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}.orbit-container .orbit-slides-container.fade li.animate-in{opacity:1;z-index:20;transition:opacity 500ms ease-in-out}.orbit-container .orbit-slides-container.fade li.animate-out{z-index:10;transition:opacity 500ms ease-in-out}.orbit-container .orbit-slides-container.swipe-next li{-ms-transform:translate(100%, 0);-webkit-transform:translate3d(100%, 0, 0);-moz-transform:translate3d(100%, 0, 0);-o-transform:translate3d(100%, 0, 0);transform:translate3d(100%, 0, 0)}.orbit-container .orbit-slides-container.swipe-next li.animate-in{-ms-transform:translate(0, 0);-webkit-transform:translate3d(0, 0, 0);-moz-transform:translate3d(0, 0, 0);-o-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);transition-duration:500ms}.orbit-container .orbit-slides-container.swipe-next li.animate-out{-ms-transform:translate(-100%, 0);-webkit-transform:translate3d(-100%, 0, 0);-moz-transform:translate3d(-100%, 0, 0);-o-transform:translate3d(-100%, 0, 0);transform:translate3d(-100%, 0, 0);transition-duration:500ms}.orbit-container .orbit-slides-container.swipe-prev li{-ms-transform:translate(-100%, 0);-webkit-transform:translate3d(-100%, 0, 0);-moz-transform:translate3d(-100%, 0, 0);-o-transform:translate3d(-100%, 0, 0);transform:translate3d(-100%, 0, 0)}.orbit-container .orbit-slides-container.swipe-prev li.animate-in{-ms-transform:translate(0, 0);-webkit-transform:translate3d(0, 0, 0);-moz-transform:translate3d(0, 0, 0);-o-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);transition-duration:500ms}.orbit-container .orbit-slides-container.swipe-prev li.animate-out{-ms-transform:translate(100%, 0);-webkit-transform:translate3d(100%, 0, 0);-moz-transform:translate3d(100%, 0, 0);-o-transform:translate3d(100%, 0, 0);transform:translate3d(100%, 0, 0);transition-duration:500ms}.orbit-container .orbit-slides-container li{position:absolute;top:0;left:0;width:100%;-ms-transform:translate(100%, 0);-webkit-transform:translate3d(100%, 0, 0);-moz-transform:translate3d(100%, 0, 0);-o-transform:translate3d(100%, 0, 0);transform:translate3d(100%, 0, 0)}.orbit-container .orbit-slides-container li.active{opacity:1;top:0;left:0;-ms-transform:translate(0, 0);-webkit-transform:translate3d(0, 0, 0);-moz-transform:translate3d(0, 0, 0);-o-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}.orbit-container .orbit-slides-container li .orbit-caption{position:absolute;bottom:0;background-color:rgba(51,51,51,0.8);color:#fff;width:100%;padding:0.625rem 0.875rem;font-size:0.875rem}.orbit-container .orbit-slide-number{position:absolute;top:10px;left:10px;font-size:12px;color:#fff;background:rgba(0,0,0,0);z-index:10}.orbit-container .orbit-slide-number span{font-weight:700;padding:0.3125rem}.orbit-container .orbit-timer{position:absolute;top:12px;right:10px;height:6px;width:100px;z-index:10}.orbit-container .orbit-timer .orbit-progress{height:3px;background-color:rgba(255,255,255,0.3);display:block;width:0%;position:relative;right:20px;top:5px}.orbit-container .orbit-timer>span{display:none;position:absolute;top:0px;right:0;width:11px;height:14px;border:solid 4px #fff;border-top:none;border-bottom:none}.orbit-container .orbit-timer.paused>span{right:-4px;top:0px;width:11px;height:14px;border:inset 8px;border-left-style:solid;-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg);border-color:transparent #fff transparent transparent}.orbit-container .orbit-timer.paused>span.dark{border-color:transparent #333 transparent transparent}.orbit-container:hover .orbit-timer>span{display:block}.orbit-container .orbit-prev,.orbit-container .orbit-next{position:absolute;top:45%;margin-top:-25px;width:36px;height:60px;line-height:50px;color:white;background-color:transparent;text-indent:-9999px !important;z-index:10}.orbit-container .orbit-prev:hover,.orbit-container .orbit-next:hover{background-color:rgba(0,0,0,0.3)}.orbit-container .orbit-prev>span,.orbit-container .orbit-next>span{position:absolute;top:50%;margin-top:-10px;display:block;width:0;height:0;border:inset 10px}.orbit-container .orbit-prev{left:0}.orbit-container .orbit-prev>span{border-right-style:solid;border-color:transparent;border-right-color:#fff}.orbit-container .orbit-prev:hover>span{border-right-color:#fff}.orbit-container .orbit-next{right:0}.orbit-container .orbit-next>span{border-color:transparent;border-left-style:solid;border-left-color:#fff;left:50%;margin-left:-4px}.orbit-container .orbit-next:hover>span{border-left-color:#fff}.orbit-container .orbit-bullets-container{text-align:center}.orbit-container .orbit-bullets{margin:0 auto 30px auto;overflow:hidden;position:relative;top:10px;float:none;text-align:center;display:block}.orbit-container .orbit-bullets li{display:inline-block;width:0.5625rem;height:0.5625rem;background:#ccc;float:none;margin-right:6px;border-radius:1000px}.orbit-container .orbit-bullets li.active{background:#999}.orbit-container .orbit-bullets li:last-child{margin-right:0}.touch .orbit-container .orbit-prev,.touch .orbit-container .orbit-next{display:none}.touch .orbit-bullets{display:none}@media only screen and (min-width: 40.063em){.touch .orbit-container .orbit-prev,.touch .orbit-container .orbit-next{display:inherit}.touch .orbit-bullets{display:block}}@media only screen and (max-width: 40em){.orbit-stack-on-small .orbit-slides-container{height:auto !important}.orbit-stack-on-small .orbit-slides-container>*{position:relative;margin-left:0% !important;opacity:1 !important;-webkit-transform:none !important;-moz-transform:none !important;-ms-transform:none !important;-o-transform:none !important;transform:none !important;transition:none !important}.orbit-stack-on-small .orbit-timer{display:none}.orbit-stack-on-small .orbit-next,.orbit-stack-on-small .orbit-prev{display:none}.orbit-stack-on-small .orbit-bullets{display:none}}[data-magellan-expedition],[data-magellan-expedition-clone]{background:#fff;z-index:50;min-width:100%;padding:10px}[data-magellan-expedition] .sub-nav,[data-magellan-expedition-clone] .sub-nav{margin-bottom:0}[data-magellan-expedition] .sub-nav dd,[data-magellan-expedition-clone] .sub-nav dd{margin-bottom:0}[data-magellan-expedition] .sub-nav a,[data-magellan-expedition-clone] .sub-nav a{line-height:1.8em}.tabs{*zoom:1;margin-bottom:0 !important}.tabs:before,.tabs:after{content:" ";display:table}.tabs:after{clear:both}.tabs dd{position:relative;margin-bottom:0 !important;float:left}.tabs dd>a{display:block;background:#efefef;color:#222;padding:1rem 2rem;font-family:"Helvetica Neue","Helvetica",Helvetica,Arial,sans-serif;font-size:1rem}.tabs dd>a:hover{background:#e1e1e1}.tabs dd.active a{background:#fff}.tabs.radius dd:first-child a{border-bottom-left-radius:3px;border-top-left-radius:3px}.tabs.radius dd:last-child a{border-bottom-right-radius:3px;border-top-right-radius:3px}.tabs.vertical dd{position:inherit;float:none;display:block;top:auto}.tabs-content{*zoom:1;margin-bottom:1.5rem;width:100%}.tabs-content:before,.tabs-content:after{content:" ";display:table}.tabs-content:after{clear:both}.tabs-content>.content{display:none;float:left;padding:0.9375rem 0;width:100%}.tabs-content>.content.active{display:block;float:none}.tabs-content>.content.contained{padding:0.9375rem}.tabs-content.vertical{display:block}.tabs-content.vertical>.content{padding:0 0.9375rem}@media only screen and (min-width: 40.063em){.tabs.vertical{width:20%;float:left;margin-bottom:1.25rem}.tabs-content.vertical{width:80%;float:left;margin-left:-1px}}.no-js .tabs-content>.content{display:block;float:none}ul.pagination{display:block;height:1.5rem;margin-left:-0.3125rem}ul.pagination li{height:1.5rem;color:#222;font-size:0.875rem;margin-left:0.3125rem}ul.pagination li a{display:block;padding:0.0625rem 0.625rem 0.0625rem;color:#999;border-radius:3px}ul.pagination li:hover a,ul.pagination li a:focus{background:#e6e6e6}ul.pagination li.unavailable a{cursor:default;color:#999}ul.pagination li.unavailable:hover a,ul.pagination li.unavailable a:focus{background:transparent}ul.pagination li.current a{background:#008cba;color:#fff;font-weight:bold;cursor:default}ul.pagination li.current a:hover,ul.pagination li.current a:focus{background:#008cba}ul.pagination li{float:left;display:block}.pagination-centered{text-align:center}.pagination-centered ul.pagination li{float:none;display:inline-block}.side-nav{display:block;margin:0;padding:0.875rem 0;list-style-type:none;list-style-position:inside;font-family:"Helvetica Neue","Helvetica",Helvetica,Arial,sans-serif}.side-nav li{margin:0 0 0.4375rem 0;font-size:0.875rem}.side-nav li a:not(.button){display:block;color:#008cba}.side-nav li a:not(.button):hover,.side-nav li a:not(.button):focus{color:#1cc7ff}.side-nav li.active>a:first-child:not(.button){color:#1cc7ff;font-weight:normal;font-family:"Helvetica Neue","Helvetica",Helvetica,Arial,sans-serif}.side-nav li.divider{border-top:1px solid;height:0;padding:0;list-style:none;border-top-color:#fff}.accordion{*zoom:1;margin-bottom:0}.accordion:before,.accordion:after{content:" ";display:table}.accordion:after{clear:both}.accordion dd{display:block;margin-bottom:0 !important}.accordion dd.active>a{background:#e8e8e8}.accordion dd>a{background:#efefef;color:#222;padding:1rem;display:block;font-family:"Helvetica Neue","Helvetica",Helvetica,Arial,sans-serif;font-size:1rem}.accordion dd>a:hover{background:#e3e3e3}.accordion .content{display:none;padding:0.9375rem}.accordion .content.active{display:block;background:#fff}.text-left{text-align:left !important}.text-right{text-align:right !important}.text-center{text-align:center !important}.text-justify{text-align:justify !important}@media only screen and (max-width: 40em){.small-only-text-left{text-align:left !important}.small-only-text-right{text-align:right !important}.small-only-text-center{text-align:center !important}.small-only-text-justify{text-align:justify !important}}@media only screen{.small-text-left{text-align:left !important}.small-text-right{text-align:right !important}.small-text-center{text-align:center !important}.small-text-justify{text-align:justify !important}}@media only screen and (min-width: 40.063em) and (max-width: 64em){.medium-only-text-left{text-align:left !important}.medium-only-text-right{text-align:right !important}.medium-only-text-center{text-align:center !important}.medium-only-text-justify{text-align:justify !important}}@media only screen and (min-width: 40.063em){.medium-text-left{text-align:left !important}.medium-text-right{text-align:right !important}.medium-text-center{text-align:center !important}.medium-text-justify{text-align:justify !important}}@media only screen and (min-width: 64.063em) and (max-width: 90em){.large-only-text-left{text-align:left !important}.large-only-text-right{text-align:right !important}.large-only-text-center{text-align:center !important}.large-only-text-justify{text-align:justify !important}}@media only screen and (min-width: 64.063em){.large-text-left{text-align:left !important}.large-text-right{text-align:right !important}.large-text-center{text-align:center !important}.large-text-justify{text-align:justify !important}}@media only screen and (min-width: 90.063em) and (max-width: 120em){.xlarge-only-text-left{text-align:left !important}.xlarge-only-text-right{text-align:right !important}.xlarge-only-text-center{text-align:center !important}.xlarge-only-text-justify{text-align:justify !important}}@media only screen and (min-width: 90.063em){.xlarge-text-left{text-align:left !important}.xlarge-text-right{text-align:right !important}.xlarge-text-center{text-align:center !important}.xlarge-text-justify{text-align:justify !important}}@media only screen and (min-width: 120.063em) and (max-width: 99999999em){.xxlarge-only-text-left{text-align:left !important}.xxlarge-only-text-right{text-align:right !important}.xxlarge-only-text-center{text-align:center !important}.xxlarge-only-text-justify{text-align:justify !important}}@media only screen and (min-width: 120.063em){.xxlarge-text-left{text-align:left !important}.xxlarge-text-right{text-align:right !important}.xxlarge-text-center{text-align:center !important}.xxlarge-text-justify{text-align:justify !important}}div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,p,blockquote,th,td{margin:0;padding:0}a{color:#008cba;text-decoration:none;line-height:inherit}a:hover,a:focus{color:#0078a0}a img{border:none}p{font-family:inherit;font-weight:normal;font-size:1rem;line-height:1.6;margin-bottom:1.25rem;text-rendering:optimizeLegibility}p.lead{font-size:1.21875rem;line-height:1.6}p aside{font-size:0.875rem;line-height:1.35;font-style:italic}h1,h2,h3,h4,h5,h6{font-family:"Helvetica Neue","Helvetica",Helvetica,Arial,sans-serif;font-weight:normal;font-style:normal;color:#222;text-rendering:optimizeLegibility;margin-top:0.2rem;margin-bottom:0.5rem;line-height:1.4}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-size:60%;color:#6f6f6f;line-height:0}h1{font-size:2.125rem}h2{font-size:1.6875rem}h3{font-size:1.375rem}h4{font-size:1.125rem}h5{font-size:1.125rem}h6{font-size:1rem}.subheader{line-height:1.4;color:#6f6f6f;font-weight:normal;margin-top:0.2rem;margin-bottom:0.5rem}hr{border:solid #ddd;border-width:1px 0 0;clear:both;margin:1.25rem 0 1.1875rem;height:0}em,i{font-style:italic;line-height:inherit}strong,b{font-weight:bold;line-height:inherit}small{font-size:60%;line-height:inherit}code{font-family:Consolas,"Liberation Mono",Courier,monospace;font-weight:bold;color:#bd260d}ul,ol,dl{font-size:1rem;line-height:1.6;margin-bottom:1.25rem;list-style-position:outside;font-family:inherit}ul{margin-left:1.1rem}ul.no-bullet{margin-left:0}ul.no-bullet li ul,ul.no-bullet li ol{margin-left:1.25rem;margin-bottom:0;list-style:none}ul li ul,ul li ol{margin-left:1.25rem;margin-bottom:0}ul.square li ul,ul.circle li ul,ul.disc li ul{list-style:inherit}ul.square{list-style-type:square;margin-left:1.1rem}ul.circle{list-style-type:circle;margin-left:1.1rem}ul.disc{list-style-type:disc;margin-left:1.1rem}ul.no-bullet{list-style:none}ol{margin-left:1.4rem}ol li ul,ol li ol{margin-left:1.25rem;margin-bottom:0}dl dt{margin-bottom:0.3rem;font-weight:bold}dl dd{margin-bottom:0.75rem}abbr,acronym{text-transform:uppercase;font-size:90%;color:#222;border-bottom:1px dotted #ddd;cursor:help}abbr{text-transform:none}blockquote{margin:0 0 1.25rem;padding:0.5625rem 1.25rem 0 1.1875rem;border-left:1px solid #ddd}blockquote cite{display:block;font-size:0.8125rem;color:#555}blockquote cite:before{content:"\2014 \0020"}blockquote cite a,blockquote cite a:visited{color:#555}blockquote,blockquote p{line-height:1.6;color:#6f6f6f}.vcard{display:inline-block;margin:0 0 1.25rem 0;border:1px solid #ddd;padding:0.625rem 0.75rem}.vcard li{margin:0;display:block}.vcard .fn{font-weight:bold;font-size:0.9375rem}.vevent .summary{font-weight:bold}.vevent abbr{cursor:default;text-decoration:none;font-weight:bold;border:none;padding:0 0.0625rem}@media only screen and (min-width: 40.063em){h1,h2,h3,h4,h5,h6{line-height:1.4}h1{font-size:2.75rem}h2{font-size:2.3125rem}h3{font-size:1.6875rem}h4{font-size:1.4375rem}}.print-only{display:none !important}@media print{*{background:transparent !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:0.5cm}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}.hide-on-print{display:none !important}.print-only{display:block !important}.hide-for-print{display:none !important}.show-for-print{display:inherit !important}}.split.button{position:relative;padding-right:5.0625rem}.split.button span{display:block;height:100%;position:absolute;right:0;top:0;border-left:solid 1px}.split.button span:before{position:absolute;content:"";width:0;height:0;display:block;border-style:inset;top:50%;left:50%}.split.button span:active{background-color:rgba(0,0,0,0.1)}.split.button span{border-left-color:rgba(255,255,255,0.5)}.split.button span{width:3.09375rem}.split.button span:before{border-top-style:solid;border-width:0.375rem;top:48%;margin-left:-0.375rem}.split.button span:before{border-color:#fff transparent transparent transparent}.split.button.secondary span{border-left-color:rgba(255,255,255,0.5)}.split.button.secondary span:before{border-color:#fff transparent transparent transparent}.split.button.alert span{border-left-color:rgba(255,255,255,0.5)}.split.button.success span{border-left-color:rgba(255,255,255,0.5)}.split.button.tiny{padding-right:3.75rem}.split.button.tiny span{width:2.25rem}.split.button.tiny span:before{border-top-style:solid;border-width:0.375rem;top:48%;margin-left:-0.375rem}.split.button.small{padding-right:4.375rem}.split.button.small span{width:2.625rem}.split.button.small span:before{border-top-style:solid;border-width:0.4375rem;top:48%;margin-left:-0.375rem}.split.button.large{padding-right:5.5rem}.split.button.large span{width:3.4375rem}.split.button.large span:before{border-top-style:solid;border-width:0.3125rem;top:48%;margin-left:-0.375rem}.split.button.expand{padding-left:2rem}.split.button.secondary span:before{border-color:#333 transparent transparent transparent}.split.button.radius span{border-bottom-right-radius:3px;border-top-right-radius:3px}.split.button.round span{border-bottom-right-radius:1000px;border-top-right-radius:1000px}.reveal-modal-bg{position:fixed;height:100%;width:100%;background:#000;background:rgba(0,0,0,0.45);z-index:99;display:none;top:0;left:0}dialog,.reveal-modal{visibility:hidden;display:none;position:absolute;z-index:100;width:100vw;top:0;left:0;background-color:#fff;padding:1.25rem;border:solid 1px #666;box-shadow:0 0 10px rgba(0,0,0,0.4)}@media only screen and (max-width: 40em){dialog,.reveal-modal{min-height:100vh}}@media only screen and (min-width: 40.063em){dialog,.reveal-modal{left:50%}}dialog .column,dialog .columns,.reveal-modal .column,.reveal-modal .columns{min-width:0}dialog>:first-child,.reveal-modal>:first-child{margin-top:0}dialog>:last-child,.reveal-modal>:last-child{margin-bottom:0}@media only screen and (min-width: 40.063em){dialog,.reveal-modal{margin-left:-40%;width:80%}}@media only screen and (min-width: 40.063em){dialog,.reveal-modal{top:6.25rem}}dialog .close-reveal-modal,.reveal-modal .close-reveal-modal{font-size:2.5rem;line-height:1;position:absolute;top:0.5rem;right:0.6875rem;color:#aaa;font-weight:bold;cursor:pointer}dialog[open]{display:block;visibility:visible}@media only screen and (min-width: 40.063em){dialog,.reveal-modal{padding:1.875rem}dialog.radius,.reveal-modal.radius{border-radius:3px}dialog.round,.reveal-modal.round{border-radius:1000px}dialog.collapse,.reveal-modal.collapse{padding:0}dialog.full,.reveal-modal.full{top:0;left:0;height:100vh;min-height:100vh;margin-left:0 !important}}@media only screen and (min-width: 40.063em) and (min-width: 40.063em){dialog.tiny,.reveal-modal.tiny{margin-left:-15%;width:30%}}@media only screen and (min-width: 40.063em) and (min-width: 40.063em){dialog.small,.reveal-modal.small{margin-left:-20%;width:40%}}@media only screen and (min-width: 40.063em) and (min-width: 40.063em){dialog.medium,.reveal-modal.medium{margin-left:-30%;width:60%}}@media only screen and (min-width: 40.063em) and (min-width: 40.063em){dialog.large,.reveal-modal.large{margin-left:-35%;width:70%}}@media only screen and (min-width: 40.063em) and (min-width: 40.063em){dialog.xlarge,.reveal-modal.xlarge{margin-left:-47.5%;width:95%}}@media only screen and (min-width: 40.063em) and (min-width: 40.063em){dialog.full,.reveal-modal.full{margin-left:-50vw;width:100vw}}@media print{dialog,.reveal-modal{background:#fff !important}}.has-tip{border-bottom:dotted 1px #ccc;cursor:help;font-weight:bold;color:#333}.has-tip:hover,.has-tip:focus{border-bottom:dotted 1px #003f54;color:#008cba}.has-tip.tip-left,.has-tip.tip-right{float:none !important}.tooltip{display:none;position:absolute;z-index:999;font-weight:normal;font-size:0.875rem;line-height:1.3;padding:0.75rem;max-width:85%;left:50%;width:100%;color:#fff;background:#333}.tooltip>.nub{display:block;left:5px;position:absolute;width:0;height:0;border:solid 5px;border-color:transparent transparent #333 transparent;top:-10px}.tooltip>.nub.rtl{left:auto;right:5px}.tooltip.radius{border-radius:3px}.tooltip.round{border-radius:1000px}.tooltip.round>.nub{left:2rem}.tooltip.opened{color:#008cba !important;border-bottom:dotted 1px #003f54 !important}.tap-to-close{display:block;font-size:0.625rem;color:#777;font-weight:normal}@media only screen and (min-width: 40.063em){.tooltip>.nub{border-color:transparent transparent #333 transparent;top:-10px}.tooltip.tip-top>.nub{border-color:#333 transparent transparent transparent;top:auto;bottom:-10px}.tooltip.tip-left,.tooltip.tip-right{float:none !important}.tooltip.tip-left>.nub{border-color:transparent transparent transparent #333;right:-10px;left:auto;top:50%;margin-top:-5px}.tooltip.tip-right>.nub{border-color:transparent #333 transparent transparent;right:auto;left:-10px;top:50%;margin-top:-5px}}.clearing-thumbs,[data-clearing]{*zoom:1;margin-bottom:0;margin-left:0;list-style:none}.clearing-thumbs:before,.clearing-thumbs:after,[data-clearing]:before,[data-clearing]:after{content:" ";display:table}.clearing-thumbs:after,[data-clearing]:after{clear:both}.clearing-thumbs li,[data-clearing] li{float:left;margin-right:10px}.clearing-thumbs[class*="block-grid-"] li,[data-clearing][class*="block-grid-"] li{margin-right:0}.clearing-blackout{background:#333;position:fixed;width:100%;height:100%;top:0;left:0;z-index:998}.clearing-blackout .clearing-close{display:block}.clearing-container{position:relative;z-index:998;height:100%;overflow:hidden;margin:0}.clearing-touch-label{position:absolute;top:50%;left:50%;color:#aaa;font-size:0.6em}.visible-img{height:95%;position:relative}.visible-img img{position:absolute;left:50%;top:50%;margin-left:-50%;max-height:100%;max-width:100%}.clearing-caption{color:#ccc;font-size:0.875em;line-height:1.3;margin-bottom:0;text-align:center;bottom:0;background:#333;width:100%;padding:10px 30px 20px;position:absolute;left:0}.clearing-close{z-index:999;padding-left:20px;padding-top:10px;font-size:30px;line-height:1;color:#ccc;display:none}.clearing-close:hover,.clearing-close:focus{color:#ccc}.clearing-assembled .clearing-container{height:100%}.clearing-assembled .clearing-container .carousel>ul{display:none}.clearing-feature li{display:none}.clearing-feature li.clearing-featured-img{display:block}@media only screen and (min-width: 40.063em){.clearing-main-prev,.clearing-main-next{position:absolute;height:100%;width:40px;top:0}.clearing-main-prev>span,.clearing-main-next>span{position:absolute;top:50%;display:block;width:0;height:0;border:solid 12px}.clearing-main-prev>span:hover,.clearing-main-next>span:hover{opacity:0.8}.clearing-main-prev{left:0}.clearing-main-prev>span{left:5px;border-color:transparent;border-right-color:#ccc}.clearing-main-next{right:0}.clearing-main-next>span{border-color:transparent;border-left-color:#ccc}.clearing-main-prev.disabled,.clearing-main-next.disabled{opacity:0.3}.clearing-assembled .clearing-container .carousel{background:rgba(51,51,51,0.8);height:120px;margin-top:10px;text-align:center}.clearing-assembled .clearing-container .carousel>ul{display:inline-block;z-index:999;height:100%;position:relative;float:none}.clearing-assembled .clearing-container .carousel>ul li{display:block;width:120px;min-height:inherit;float:left;overflow:hidden;margin-right:0;padding:0;position:relative;cursor:pointer;opacity:0.4;clear:none}.clearing-assembled .clearing-container .carousel>ul li.fix-height img{height:100%;max-width:none}.clearing-assembled .clearing-container .carousel>ul li a.th{border:none;box-shadow:none;display:block}.clearing-assembled .clearing-container .carousel>ul li img{cursor:pointer !important;width:100% !important}.clearing-assembled .clearing-container .carousel>ul li.visible{opacity:1}.clearing-assembled .clearing-container .carousel>ul li:hover{opacity:0.8}.clearing-assembled .clearing-container .visible-img{background:#333;overflow:hidden;height:85%}.clearing-close{position:absolute;top:10px;right:20px;padding-left:0;padding-top:0}}.progress{background-color:#f6f6f6;height:1.5625rem;border:1px solid #fff;padding:0.125rem;margin-bottom:0.625rem}.progress .meter{background:#008cba;height:100%;display:block}.progress.secondary .meter{background:#e7e7e7;height:100%;display:block}.progress.success .meter{background:#43ac6a;height:100%;display:block}.progress.alert .meter{background:#f04124;height:100%;display:block}.progress.radius{border-radius:3px}.progress.radius .meter{border-radius:2px}.progress.round{border-radius:1000px}.progress.round .meter{border-radius:999px}.sub-nav{display:block;width:auto;overflow:hidden;margin:-0.25rem 0 1.125rem;padding-top:0.25rem;margin-right:0;margin-left:-0.75rem}.sub-nav dt{text-transform:uppercase}.sub-nav dt,.sub-nav dd,.sub-nav li{float:left;display:inline;margin-left:1rem;margin-bottom:0.625rem;font-family:"Helvetica Neue","Helvetica",Helvetica,Arial,sans-serif;font-weight:normal;font-size:0.875rem;color:#999}.sub-nav dt a,.sub-nav dd a,.sub-nav li a{text-decoration:none;color:#999;padding:0.1875rem 1rem}.sub-nav dt a:hover,.sub-nav dd a:hover,.sub-nav li a:hover{color:#737373}.sub-nav dt.active a,.sub-nav dd.active a,.sub-nav li.active a{border-radius:3px;font-weight:normal;background:#008cba;padding:0.1875rem 1rem;cursor:default;color:#fff}.sub-nav dt.active a:hover,.sub-nav dd.active a:hover,.sub-nav li.active a:hover{background:#0078a0}.joyride-list{display:none}.joyride-tip-guide{display:none;position:absolute;background:#333;color:#fff;z-index:101;top:0;left:2.5%;font-family:inherit;font-weight:normal;width:95%}.lt-ie9 .joyride-tip-guide{max-width:800px;left:50%;margin-left:-400px}.joyride-content-wrapper{width:100%;padding:1.125rem 1.25rem 1.5rem}.joyride-content-wrapper .button{margin-bottom:0 !important}.joyride-tip-guide .joyride-nub{display:block;position:absolute;left:22px;width:0;height:0;border:10px solid #333}.joyride-tip-guide .joyride-nub.top{border-top-style:solid;border-color:#333;border-top-color:transparent !important;border-left-color:transparent !important;border-right-color:transparent !important;top:-20px}.joyride-tip-guide .joyride-nub.bottom{border-bottom-style:solid;border-color:#333 !important;border-bottom-color:transparent !important;border-left-color:transparent !important;border-right-color:transparent !important;bottom:-20px}.joyride-tip-guide .joyride-nub.right{right:-20px}.joyride-tip-guide .joyride-nub.left{left:-20px}.joyride-tip-guide h1,.joyride-tip-guide h2,.joyride-tip-guide h3,.joyride-tip-guide h4,.joyride-tip-guide h5,.joyride-tip-guide h6{line-height:1.25;margin:0;font-weight:bold;color:#fff}.joyride-tip-guide p{margin:0 0 1.125rem 0;font-size:0.875rem;line-height:1.3}.joyride-timer-indicator-wrap{width:50px;height:3px;border:solid 1px #555;position:absolute;right:1.0625rem;bottom:1rem}.joyride-timer-indicator{display:block;width:0;height:inherit;background:#666}.joyride-close-tip{position:absolute;right:12px;top:10px;color:#777 !important;text-decoration:none;font-size:24px;font-weight:normal;line-height:0.5 !important}.joyride-close-tip:hover,.joyride-close-tip:focus{color:#eee !important}.joyride-modal-bg{position:fixed;height:100%;width:100%;background:transparent;background:rgba(0,0,0,0.5);z-index:100;display:none;top:0;left:0;cursor:pointer}.joyride-expose-wrapper{background-color:#ffffff;position:absolute;border-radius:3px;z-index:102;box-shadow:0 0 15px #fff}.joyride-expose-cover{background:transparent;border-radius:3px;position:absolute;z-index:9999;top:0;left:0}@media only screen and (min-width: 40.063em){.joyride-tip-guide{width:300px;left:inherit}.joyride-tip-guide .joyride-nub.bottom{border-color:#333 !important;border-bottom-color:transparent !important;border-left-color:transparent !important;border-right-color:transparent !important;bottom:-20px}.joyride-tip-guide .joyride-nub.right{border-color:#333 !important;border-top-color:transparent !important;border-right-color:transparent !important;border-bottom-color:transparent !important;top:22px;left:auto;right:-20px}.joyride-tip-guide .joyride-nub.left{border-color:#333 !important;border-top-color:transparent !important;border-left-color:transparent !important;border-bottom-color:transparent !important;top:22px;left:-20px;right:auto}}.label{font-weight:normal;font-family:"Helvetica Neue","Helvetica",Helvetica,Arial,sans-serif;text-align:center;text-decoration:none;line-height:1;white-space:nowrap;display:inline-block;position:relative;margin-bottom:inherit;padding:0.25rem 0.5rem 0.375rem;font-size:0.6875rem;background-color:#008cba;color:#fff}.label.radius{border-radius:3px}.label.round{border-radius:1000px}.label.alert{background-color:#f04124;color:#fff}.label.success{background-color:#43ac6a;color:#fff}.label.secondary{background-color:#e7e7e7;color:#333}.off-canvas-wrap{-webkit-backface-visibility:hidden;position:relative;width:100%;overflow:hidden}.off-canvas-wrap.move-right,.off-canvas-wrap.move-left{min-height:100%;-webkit-overflow-scrolling:touch}.inner-wrap{-webkit-backface-visibility:hidden;position:relative;width:100%;*zoom:1;-webkit-transition:-webkit-transform 500ms ease;-moz-transition:-moz-transform 500ms ease;-ms-transition:-ms-transform 500ms ease;-o-transition:-o-transform 500ms ease;transition:transform 500ms ease}.inner-wrap:before,.inner-wrap:after{content:" ";display:table}.inner-wrap:after{clear:both}.tab-bar{-webkit-backface-visibility:hidden;background:#333;color:#fff;height:2.8125rem;line-height:2.8125rem;position:relative}.tab-bar h1,.tab-bar h2,.tab-bar h3,.tab-bar h4,.tab-bar h5,.tab-bar h6{color:#fff;font-weight:bold;line-height:2.8125rem;margin:0}.tab-bar h1,.tab-bar h2,.tab-bar h3,.tab-bar h4{font-size:1.125rem}.left-small{width:2.8125rem;height:2.8125rem;position:absolute;top:0;border-right:solid 1px #1a1a1a;left:0}.right-small{width:2.8125rem;height:2.8125rem;position:absolute;top:0;border-left:solid 1px #1a1a1a;right:0}.tab-bar-section{padding:0 0.625rem;position:absolute;text-align:center;height:2.8125rem;top:0}@media only screen and (min-width: 40.063em){.tab-bar-section{text-align:left}}.tab-bar-section.left{left:0;right:2.8125rem}.tab-bar-section.right{left:2.8125rem;right:0}.tab-bar-section.middle{left:2.8125rem;right:2.8125rem}.tab-bar .menu-icon{text-indent:2.1875rem;width:2.8125rem;height:2.8125rem;display:block;line-height:2.0625rem;padding:0;color:#fff;position:relative;-ms-transform:translate(0, 0);-webkit-transform:translate3d(0, 0, 0);-moz-transform:translate3d(0, 0, 0);-ms-transform:translate3d(0, 0, 0);-o-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}.tab-bar .menu-icon span{position:absolute;display:block;height:0;width:1rem;line-height:1;top:0.9375rem;left:0.90625rem;box-shadow:0 0px 0 1px #fff,0 7px 0 1px #fff,0 14px 0 1px #fff}.tab-bar .menu-icon:hover span{box-shadow:0 0px 0 1px #b3b3b3,0 7px 0 1px #b3b3b3,0 14px 0 1px #b3b3b3}.left-off-canvas-menu{-webkit-backface-visibility:hidden;width:15.625rem;top:0;bottom:0;position:absolute;overflow-y:auto;background:#333;z-index:1001;box-sizing:content-box;-webkit-overflow-scrolling:touch;-ms-transform:translate(-100%, 0);-webkit-transform:translate3d(-100%, 0, 0);-moz-transform:translate3d(-100%, 0, 0);-ms-transform:translate3d(-100%, 0, 0);-o-transform:translate3d(-100%, 0, 0);transform:translate3d(-100%, 0, 0);left:0}.left-off-canvas-menu *{-webkit-backface-visibility:hidden}.right-off-canvas-menu{-webkit-backface-visibility:hidden;width:15.625rem;top:0;bottom:0;position:absolute;overflow-y:auto;background:#333;z-index:1001;box-sizing:content-box;-webkit-overflow-scrolling:touch;-ms-transform:translate(100%, 0);-webkit-transform:translate3d(100%, 0, 0);-moz-transform:translate3d(100%, 0, 0);-ms-transform:translate3d(100%, 0, 0);-o-transform:translate3d(100%, 0, 0);transform:translate3d(100%, 0, 0);right:0}.right-off-canvas-menu *{-webkit-backface-visibility:hidden}ul.off-canvas-list{list-style-type:none;padding:0;margin:0}ul.off-canvas-list li label{padding:0.3rem 0.9375rem;color:#999;text-transform:uppercase;font-weight:bold;background:#444;border-top:1px solid #5e5e5e;border-bottom:none;margin:0}ul.off-canvas-list li a{display:block;padding:0.66667rem;color:rgba(255,255,255,0.7);border-bottom:1px solid #262626;transition:background 300ms ease}ul.off-canvas-list li a:hover{background:#242424}.move-right>.inner-wrap{-ms-transform:translate(15.625rem, 0);-webkit-transform:translate3d(15.625rem, 0, 0);-moz-transform:translate3d(15.625rem, 0, 0);-ms-transform:translate3d(15.625rem, 0, 0);-o-transform:translate3d(15.625rem, 0, 0);transform:translate3d(15.625rem, 0, 0)}.move-right .exit-off-canvas{-webkit-backface-visibility:hidden;transition:background 300ms ease;cursor:pointer;box-shadow:-4px 0 4px rgba(0,0,0,0.5),4px 0 4px rgba(0,0,0,0.5);display:block;position:absolute;background:rgba(255,255,255,0.2);top:0;bottom:0;left:0;right:0;z-index:1002;-webkit-tap-highlight-color:rgba(0,0,0,0)}@media only screen and (min-width: 40.063em){.move-right .exit-off-canvas:hover{background:rgba(255,255,255,0.05)}}.move-left>.inner-wrap{-ms-transform:translate(-15.625rem, 0);-webkit-transform:translate3d(-15.625rem, 0, 0);-moz-transform:translate3d(-15.625rem, 0, 0);-ms-transform:translate3d(-15.625rem, 0, 0);-o-transform:translate3d(-15.625rem, 0, 0);transform:translate3d(-15.625rem, 0, 0)}.move-left .exit-off-canvas{-webkit-backface-visibility:hidden;transition:background 300ms ease;cursor:pointer;box-shadow:-4px 0 4px rgba(0,0,0,0.5),4px 0 4px rgba(0,0,0,0.5);display:block;position:absolute;background:rgba(255,255,255,0.2);top:0;bottom:0;left:0;right:0;z-index:1002;-webkit-tap-highlight-color:rgba(0,0,0,0)}@media only screen and (min-width: 40.063em){.move-left .exit-off-canvas:hover{background:rgba(255,255,255,0.05)}}.no-csstransforms .left-off-canvas-menu{left:-15.625rem}.no-csstransforms .right-off-canvas-menu{right:-15.625rem}.no-csstransforms .move-left>.inner-wrap{right:15.625rem}.no-csstransforms .move-right>.inner-wrap{left:15.625rem}.f-dropdown{position:absolute;left:-9999px;list-style:none;margin-left:0;width:100%;max-height:none;height:auto;background:#fff;border:solid 1px #ccc;font-size:0.875rem;z-index:99;margin-top:2px;max-width:200px}.f-dropdown>*:first-child{margin-top:0}.f-dropdown>*:last-child{margin-bottom:0}.f-dropdown:before{content:"";display:block;width:0;height:0;border:inset 6px;border-color:transparent transparent #fff transparent;border-bottom-style:solid;position:absolute;top:-12px;left:10px;z-index:99}.f-dropdown:after{content:"";display:block;width:0;height:0;border:inset 7px;border-color:transparent transparent #ccc transparent;border-bottom-style:solid;position:absolute;top:-14px;left:9px;z-index:98}.f-dropdown.right:before{left:auto;right:10px}.f-dropdown.right:after{left:auto;right:9px}.f-dropdown.drop-right{position:absolute;left:-9999px;list-style:none;margin-left:0;width:100%;max-height:none;height:auto;background:#fff;border:solid 1px #ccc;font-size:0.875rem;z-index:99;margin-top:0;margin-left:2px;max-width:200px}.f-dropdown.drop-right>*:first-child{margin-top:0}.f-dropdown.drop-right>*:last-child{margin-bottom:0}.f-dropdown.drop-right:before{content:"";display:block;width:0;height:0;border:inset 6px;border-color:transparent #fff transparent transparent;border-right-style:solid;position:absolute;top:10px;left:-12px;z-index:99}.f-dropdown.drop-right:after{content:"";display:block;width:0;height:0;border:inset 7px;border-color:transparent #ccc transparent transparent;border-right-style:solid;position:absolute;top:9px;left:-14px;z-index:98}.f-dropdown.drop-left{position:absolute;left:-9999px;list-style:none;margin-left:0;width:100%;max-height:none;height:auto;background:#fff;border:solid 1px #ccc;font-size:0.875rem;z-index:99;margin-top:0;margin-left:-2px;max-width:200px}.f-dropdown.drop-left>*:first-child{margin-top:0}.f-dropdown.drop-left>*:last-child{margin-bottom:0}.f-dropdown.drop-left:before{content:"";display:block;width:0;height:0;border:inset 6px;border-color:transparent transparent transparent #fff;border-left-style:solid;position:absolute;top:10px;right:-12px;left:auto;z-index:99}.f-dropdown.drop-left:after{content:"";display:block;width:0;height:0;border:inset 7px;border-color:transparent transparent transparent #ccc;border-left-style:solid;position:absolute;top:9px;right:-14px;left:auto;z-index:98}.f-dropdown.drop-top{position:absolute;left:-9999px;list-style:none;margin-left:0;width:100%;max-height:none;height:auto;background:#fff;border:solid 1px #ccc;font-size:0.875rem;z-index:99;margin-top:-2px;margin-left:0;max-width:200px}.f-dropdown.drop-top>*:first-child{margin-top:0}.f-dropdown.drop-top>*:last-child{margin-bottom:0}.f-dropdown.drop-top:before{content:"";display:block;width:0;height:0;border:inset 6px;border-color:#fff transparent transparent transparent;border-top-style:solid;position:absolute;top:auto;bottom:-12px;left:10px;right:auto;z-index:99}.f-dropdown.drop-top:after{content:"";display:block;width:0;height:0;border:inset 7px;border-color:#ccc transparent transparent transparent;border-top-style:solid;position:absolute;top:auto;bottom:-14px;left:9px;right:auto;z-index:98}.f-dropdown li{font-size:0.875rem;cursor:pointer;line-height:1.125rem;margin:0}.f-dropdown li:hover,.f-dropdown li:focus{background:#eee}.f-dropdown li a{display:block;padding:0.5rem;color:#555}.f-dropdown.content{position:absolute;left:-9999px;list-style:none;margin-left:0;padding:1.25rem;width:100%;height:auto;max-height:none;background:#fff;border:solid 1px #ccc;font-size:0.875rem;z-index:99;max-width:200px}.f-dropdown.content>*:first-child{margin-top:0}.f-dropdown.content>*:last-child{margin-bottom:0}.f-dropdown.tiny{max-width:200px}.f-dropdown.small{max-width:300px}.f-dropdown.medium{max-width:500px}.f-dropdown.large{max-width:800px}table{background:#fff;margin-bottom:1.25rem;border:solid 1px #ddd}table thead,table tfoot{background:#f5f5f5}table thead tr th,table thead tr td,table tfoot tr th,table tfoot tr td{padding:0.5rem 0.625rem 0.625rem;font-size:0.875rem;font-weight:bold;color:#222;text-align:left}table tr th,table tr td{padding:0.5625rem 0.625rem;font-size:0.875rem;color:#222}table tr.even,table tr.alt,table tr:nth-of-type(even){background:#f9f9f9}table thead tr th,table tfoot tr th,table tbody tr td,table tr td,table tfoot tr td{display:table-cell;line-height:1.125rem}form{margin:0 0 1rem}form .row .row{margin:0 -0.5rem}form .row .row .column,form .row .row .columns{padding:0 0.5rem}form .row .row.collapse{margin:0}form .row .row.collapse .column,form .row .row.collapse .columns{padding:0}form .row .row.collapse input{border-bottom-right-radius:0;border-top-right-radius:0}form .row input.column,form .row input.columns,form .row textarea.column,form .row textarea.columns{padding-left:0.5rem}label{font-size:0.875rem;color:#4d4d4d;cursor:pointer;display:block;font-weight:normal;line-height:1.5;margin-bottom:0}label.right{float:none;text-align:right}label.inline{margin:0 0 1rem 0;padding:0.5625rem 0}label small{text-transform:capitalize;color:#676767}select::-ms-expand{display:none}@-moz-document url-prefix(){select{background:#fafafa}select:hover{background:#f3f3f3}}.prefix,.postfix{display:block;position:relative;z-index:2;text-align:center;width:100%;padding-top:0;padding-bottom:0;border-style:solid;border-width:1px;overflow:hidden;font-size:0.875rem;height:2.3125rem;line-height:2.3125rem}.postfix.button{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;text-align:center;line-height:2.125rem;border:none}.prefix.button{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;text-align:center;line-height:2.125rem;border:none}.prefix.button.radius{border-radius:0;border-bottom-left-radius:3px;border-top-left-radius:3px}.postfix.button.radius{border-radius:0;border-bottom-right-radius:3px;border-top-right-radius:3px}.prefix.button.round{border-radius:0;border-bottom-left-radius:1000px;border-top-left-radius:1000px}.postfix.button.round{border-radius:0;border-bottom-right-radius:1000px;border-top-right-radius:1000px}span.prefix,label.prefix{background:#f2f2f2;border-right:none;color:#333;border-color:#ccc}span.prefix.radius,label.prefix.radius{border-radius:0;border-bottom-left-radius:3px;border-top-left-radius:3px}span.postfix,label.postfix{background:#f2f2f2;border-left:none;color:#333;border-color:#ccc}span.postfix.radius,label.postfix.radius{border-radius:0;border-bottom-right-radius:3px;border-top-right-radius:3px}input[type="text"],input[type="password"],input[type="date"],input[type="datetime"],input[type="datetime-local"],input[type="month"],input[type="week"],input[type="email"],input[type="number"],input[type="search"],input[type="tel"],input[type="time"],input[type="url"],textarea{-webkit-appearance:none;background-color:#fff;font-family:inherit;border:1px solid #ccc;box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);color:rgba(0,0,0,0.75);display:block;font-size:0.875rem;margin:0 0 1rem 0;padding:0.5rem;height:2.3125rem;width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;transition:box-shadow 0.45s,border-color 0.45s ease-in-out}input[type="text"]:focus,input[type="password"]:focus,input[type="date"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="month"]:focus,input[type="week"]:focus,input[type="email"]:focus,input[type="number"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="time"]:focus,input[type="url"]:focus,textarea:focus{box-shadow:0 0 5px #999;border-color:#999}input[type="text"]:focus,input[type="password"]:focus,input[type="date"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="month"]:focus,input[type="week"]:focus,input[type="email"]:focus,input[type="number"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="time"]:focus,input[type="url"]:focus,textarea:focus{background:#fafafa;border-color:#999;outline:none}input[type="text"][disabled],fieldset[disabled] input[type="text"],input[type="password"][disabled],fieldset[disabled] input[type="password"],input[type="date"][disabled],fieldset[disabled] input[type="date"],input[type="datetime"][disabled],fieldset[disabled] input[type="datetime"],input[type="datetime-local"][disabled],fieldset[disabled] input[type="datetime-local"],input[type="month"][disabled],fieldset[disabled] input[type="month"],input[type="week"][disabled],fieldset[disabled] input[type="week"],input[type="email"][disabled],fieldset[disabled] input[type="email"],input[type="number"][disabled],fieldset[disabled] input[type="number"],input[type="search"][disabled],fieldset[disabled] input[type="search"],input[type="tel"][disabled],fieldset[disabled] input[type="tel"],input[type="time"][disabled],fieldset[disabled] input[type="time"],input[type="url"][disabled],fieldset[disabled] input[type="url"],textarea[disabled],fieldset[disabled] textarea{background-color:#ddd}input[type="text"].radius,input[type="password"].radius,input[type="date"].radius,input[type="datetime"].radius,input[type="datetime-local"].radius,input[type="month"].radius,input[type="week"].radius,input[type="email"].radius,input[type="number"].radius,input[type="search"].radius,input[type="tel"].radius,input[type="time"].radius,input[type="url"].radius,textarea.radius{border-radius:3px}input[type="submit"]{-webkit-appearance:none}textarea[rows]{height:auto}select{-webkit-appearance:none !important;background-color:#fafafa;background-image:url("data:image/svg+xml;base64, PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSI2cHgiIGhlaWdodD0iM3B4IiB2aWV3Qm94PSIwIDAgNiAzIiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA2IDMiIHhtbDpzcGFjZT0icHJlc2VydmUiPjxwb2x5Z29uIHBvaW50cz0iNS45OTIsMCAyLjk5MiwzIC0wLjAwOCwwICIvPjwvc3ZnPg==");background-repeat:no-repeat;background-position:97% center;border:1px solid #ccc;padding:0.5rem;font-size:0.875rem;border-radius:0;height:2.3125rem}select.radius{border-radius:3px}select:hover{background-color:#f3f3f3;border-color:#999}input[type="file"],input[type="checkbox"],input[type="radio"],select{margin:0 0 1rem 0}input[type="checkbox"]+label,input[type="radio"]+label{display:inline-block;margin-left:0.5rem;margin-right:1rem;margin-bottom:0;vertical-align:baseline}input[type="file"]{width:100%}fieldset{border:1px solid #ddd;padding:1.25rem;margin:1.125rem 0}fieldset legend{font-weight:bold;background:#fff;padding:0 0.1875rem;margin:0;margin-left:-0.1875rem}[data-abide] .error small.error,[data-abide] span.error,[data-abide] small.error{display:block;padding:0.375rem 0.5625rem 0.5625rem;margin-top:-1px;margin-bottom:1rem;font-size:0.75rem;font-weight:normal;font-style:italic;background:#f04124;color:#fff}[data-abide] span.error,[data-abide] small.error{display:none}span.error,small.error{display:block;padding:0.375rem 0.5625rem 0.5625rem;margin-top:-1px;margin-bottom:1rem;font-size:0.75rem;font-weight:normal;font-style:italic;background:#f04124;color:#fff}.error input,.error textarea,.error select{margin-bottom:0}.error input[type="checkbox"],.error input[type="radio"]{margin-bottom:1rem}.error label,.error label.error{color:#f04124}.error small.error{display:block;padding:0.375rem 0.5625rem 0.5625rem;margin-top:-1px;margin-bottom:1rem;font-size:0.75rem;font-weight:normal;font-style:italic;background:#f04124;color:#fff}.error>label>small{color:#676767;background:transparent;padding:0;text-transform:capitalize;font-style:normal;font-size:60%;margin:0;display:inline}.error span.error-message{display:block}input.error,textarea.error{margin-bottom:0}label.error{color:#f04124}.range-slider{display:block;position:relative;width:100%;height:1rem;border:1px solid #ddd;margin:1.25rem 0;-ms-touch-action:none;touch-action:none;background:#fafafa}.range-slider.vertical-range{display:block;position:relative;width:100%;height:1rem;border:1px solid #ddd;margin:1.25rem 0;-ms-touch-action:none;touch-action:none;display:inline-block;width:1rem;height:12.5rem}.range-slider.vertical-range .range-slider-handle{margin-top:0;margin-left:-0.5rem;position:absolute;bottom:-10.5rem}.range-slider.vertical-range .range-slider-active-segment{width:0.875rem;height:auto;bottom:0}.range-slider.radius{background:#fafafa;border-radius:3px}.range-slider.radius .range-slider-handle{background:#008cba;border-radius:3px}.range-slider.radius .range-slider-handle:hover{background:#007ba4}.range-slider.round{background:#fafafa;border-radius:1000px}.range-slider.round .range-slider-handle{background:#008cba;border-radius:1000px}.range-slider.round .range-slider-handle:hover{background:#007ba4}.range-slider-active-segment{display:inline-block;position:absolute;height:0.875rem;background:#e5e5e5}.range-slider-handle{display:inline-block;position:absolute;z-index:1;top:-0.3125rem;width:2rem;height:1.375rem;border:1px solid none;cursor:pointer;background:#008cba}.range-slider-handle:hover{background:#007ba4}[class*="block-grid-"]{display:block;padding:0;margin:0 -0.625rem;*zoom:1}[class*="block-grid-"]:before,[class*="block-grid-"]:after{content:" ";display:table}[class*="block-grid-"]:after{clear:both}[class*="block-grid-"]>li{display:block;height:auto;float:left;padding:0 0.625rem 1.25rem}@media only screen{.small-block-grid-1>li{width:100%;list-style:none}.small-block-grid-1>li:nth-of-type(n){clear:none}.small-block-grid-1>li:nth-of-type(1n+1){clear:both}.small-block-grid-2>li{width:50%;list-style:none}.small-block-grid-2>li:nth-of-type(n){clear:none}.small-block-grid-2>li:nth-of-type(2n+1){clear:both}.small-block-grid-3>li{width:33.33333%;list-style:none}.small-block-grid-3>li:nth-of-type(n){clear:none}.small-block-grid-3>li:nth-of-type(3n+1){clear:both}.small-block-grid-4>li{width:25%;list-style:none}.small-block-grid-4>li:nth-of-type(n){clear:none}.small-block-grid-4>li:nth-of-type(4n+1){clear:both}.small-block-grid-5>li{width:20%;list-style:none}.small-block-grid-5>li:nth-of-type(n){clear:none}.small-block-grid-5>li:nth-of-type(5n+1){clear:both}.small-block-grid-6>li{width:16.66667%;list-style:none}.small-block-grid-6>li:nth-of-type(n){clear:none}.small-block-grid-6>li:nth-of-type(6n+1){clear:both}.small-block-grid-7>li{width:14.28571%;list-style:none}.small-block-grid-7>li:nth-of-type(n){clear:none}.small-block-grid-7>li:nth-of-type(7n+1){clear:both}.small-block-grid-8>li{width:12.5%;list-style:none}.small-block-grid-8>li:nth-of-type(n){clear:none}.small-block-grid-8>li:nth-of-type(8n+1){clear:both}.small-block-grid-9>li{width:11.11111%;list-style:none}.small-block-grid-9>li:nth-of-type(n){clear:none}.small-block-grid-9>li:nth-of-type(9n+1){clear:both}.small-block-grid-10>li{width:10%;list-style:none}.small-block-grid-10>li:nth-of-type(n){clear:none}.small-block-grid-10>li:nth-of-type(10n+1){clear:both}.small-block-grid-11>li{width:9.09091%;list-style:none}.small-block-grid-11>li:nth-of-type(n){clear:none}.small-block-grid-11>li:nth-of-type(11n+1){clear:both}.small-block-grid-12>li{width:8.33333%;list-style:none}.small-block-grid-12>li:nth-of-type(n){clear:none}.small-block-grid-12>li:nth-of-type(12n+1){clear:both}}@media only screen and (min-width: 40.063em){.medium-block-grid-1>li{width:100%;list-style:none}.medium-block-grid-1>li:nth-of-type(n){clear:none}.medium-block-grid-1>li:nth-of-type(1n+1){clear:both}.medium-block-grid-2>li{width:50%;list-style:none}.medium-block-grid-2>li:nth-of-type(n){clear:none}.medium-block-grid-2>li:nth-of-type(2n+1){clear:both}.medium-block-grid-3>li{width:33.33333%;list-style:none}.medium-block-grid-3>li:nth-of-type(n){clear:none}.medium-block-grid-3>li:nth-of-type(3n+1){clear:both}.medium-block-grid-4>li{width:25%;list-style:none}.medium-block-grid-4>li:nth-of-type(n){clear:none}.medium-block-grid-4>li:nth-of-type(4n+1){clear:both}.medium-block-grid-5>li{width:20%;list-style:none}.medium-block-grid-5>li:nth-of-type(n){clear:none}.medium-block-grid-5>li:nth-of-type(5n+1){clear:both}.medium-block-grid-6>li{width:16.66667%;list-style:none}.medium-block-grid-6>li:nth-of-type(n){clear:none}.medium-block-grid-6>li:nth-of-type(6n+1){clear:both}.medium-block-grid-7>li{width:14.28571%;list-style:none}.medium-block-grid-7>li:nth-of-type(n){clear:none}.medium-block-grid-7>li:nth-of-type(7n+1){clear:both}.medium-block-grid-8>li{width:12.5%;list-style:none}.medium-block-grid-8>li:nth-of-type(n){clear:none}.medium-block-grid-8>li:nth-of-type(8n+1){clear:both}.medium-block-grid-9>li{width:11.11111%;list-style:none}.medium-block-grid-9>li:nth-of-type(n){clear:none}.medium-block-grid-9>li:nth-of-type(9n+1){clear:both}.medium-block-grid-10>li{width:10%;list-style:none}.medium-block-grid-10>li:nth-of-type(n){clear:none}.medium-block-grid-10>li:nth-of-type(10n+1){clear:both}.medium-block-grid-11>li{width:9.09091%;list-style:none}.medium-block-grid-11>li:nth-of-type(n){clear:none}.medium-block-grid-11>li:nth-of-type(11n+1){clear:both}.medium-block-grid-12>li{width:8.33333%;list-style:none}.medium-block-grid-12>li:nth-of-type(n){clear:none}.medium-block-grid-12>li:nth-of-type(12n+1){clear:both}}@media only screen and (min-width: 64.063em){.large-block-grid-1>li{width:100%;list-style:none}.large-block-grid-1>li:nth-of-type(n){clear:none}.large-block-grid-1>li:nth-of-type(1n+1){clear:both}.large-block-grid-2>li{width:50%;list-style:none}.large-block-grid-2>li:nth-of-type(n){clear:none}.large-block-grid-2>li:nth-of-type(2n+1){clear:both}.large-block-grid-3>li{width:33.33333%;list-style:none}.large-block-grid-3>li:nth-of-type(n){clear:none}.large-block-grid-3>li:nth-of-type(3n+1){clear:both}.large-block-grid-4>li{width:25%;list-style:none}.large-block-grid-4>li:nth-of-type(n){clear:none}.large-block-grid-4>li:nth-of-type(4n+1){clear:both}.large-block-grid-5>li{width:20%;list-style:none}.large-block-grid-5>li:nth-of-type(n){clear:none}.large-block-grid-5>li:nth-of-type(5n+1){clear:both}.large-block-grid-6>li{width:16.66667%;list-style:none}.large-block-grid-6>li:nth-of-type(n){clear:none}.large-block-grid-6>li:nth-of-type(6n+1){clear:both}.large-block-grid-7>li{width:14.28571%;list-style:none}.large-block-grid-7>li:nth-of-type(n){clear:none}.large-block-grid-7>li:nth-of-type(7n+1){clear:both}.large-block-grid-8>li{width:12.5%;list-style:none}.large-block-grid-8>li:nth-of-type(n){clear:none}.large-block-grid-8>li:nth-of-type(8n+1){clear:both}.large-block-grid-9>li{width:11.11111%;list-style:none}.large-block-grid-9>li:nth-of-type(n){clear:none}.large-block-grid-9>li:nth-of-type(9n+1){clear:both}.large-block-grid-10>li{width:10%;list-style:none}.large-block-grid-10>li:nth-of-type(n){clear:none}.large-block-grid-10>li:nth-of-type(10n+1){clear:both}.large-block-grid-11>li{width:9.09091%;list-style:none}.large-block-grid-11>li:nth-of-type(n){clear:none}.large-block-grid-11>li:nth-of-type(11n+1){clear:both}.large-block-grid-12>li{width:8.33333%;list-style:none}.large-block-grid-12>li:nth-of-type(n){clear:none}.large-block-grid-12>li:nth-of-type(12n+1){clear:both}}.flex-video{position:relative;padding-top:1.5625rem;padding-bottom:67.5%;height:0;margin-bottom:1rem;overflow:hidden}.flex-video.widescreen{padding-bottom:56.34%}.flex-video.vimeo{padding-top:0}.flex-video iframe,.flex-video object,.flex-video embed,.flex-video video{position:absolute;top:0;left:0;width:100%;height:100%}.keystroke,kbd{background-color:#ededed;border-color:#ddd;color:#222;border-style:solid;border-width:1px;margin:0;font-family:"Consolas","Menlo","Courier",monospace;font-size:inherit;padding:0.125rem 0.25rem 0;border-radius:3px}@media only screen{.show-for-small-only,.show-for-small-up,.show-for-small,.show-for-small-down,.hide-for-medium-only,.hide-for-medium-up,.hide-for-medium,.show-for-medium-down,.hide-for-large-only,.hide-for-large-up,.hide-for-large,.show-for-large-down,.hide-for-xlarge-only,.hide-for-xlarge-up,.hide-for-xxlarge-only,.hide-for-xxlarge-up{display:inherit !important}.hide-for-small-only,.hide-for-small-up,.hide-for-small,.hide-for-small-down,.show-for-medium-only,.show-for-medium-up,.show-for-medium,.hide-for-medium-down,.show-for-large-only,.show-for-large-up,.show-for-large,.hide-for-large-down,.show-for-xlarge-only,.show-for-xlarge-up,.show-for-xxlarge-only,.show-for-xxlarge-up{display:none !important}table.show-for-small-only,table.show-for-small-up,table.show-for-small,table.show-for-small-down,table.hide-for-medium-only,table.hide-for-medium-up,table.hide-for-medium,table.show-for-medium-down,table.hide-for-large-only,table.hide-for-large-up,table.hide-for-large,table.show-for-large-down,table.hide-for-xlarge-only,table.hide-for-xlarge-up,table.hide-for-xxlarge-only,table.hide-for-xxlarge-up{display:table}thead.show-for-small-only,thead.show-for-small-up,thead.show-for-small,thead.show-for-small-down,thead.hide-for-medium-only,thead.hide-for-medium-up,thead.hide-for-medium,thead.show-for-medium-down,thead.hide-for-large-only,thead.hide-for-large-up,thead.hide-for-large,thead.show-for-large-down,thead.hide-for-xlarge-only,thead.hide-for-xlarge-up,thead.hide-for-xxlarge-only,thead.hide-for-xxlarge-up{display:table-header-group !important}tbody.show-for-small-only,tbody.show-for-small-up,tbody.show-for-small,tbody.show-for-small-down,tbody.hide-for-medium-only,tbody.hide-for-medium-up,tbody.hide-for-medium,tbody.show-for-medium-down,tbody.hide-for-large-only,tbody.hide-for-large-up,tbody.hide-for-large,tbody.show-for-large-down,tbody.hide-for-xlarge-only,tbody.hide-for-xlarge-up,tbody.hide-for-xxlarge-only,tbody.hide-for-xxlarge-up{display:table-row-group !important}tr.show-for-small-only,tr.show-for-small-up,tr.show-for-small,tr.show-for-small-down,tr.hide-for-medium-only,tr.hide-for-medium-up,tr.hide-for-medium,tr.show-for-medium-down,tr.hide-for-large-only,tr.hide-for-large-up,tr.hide-for-large,tr.show-for-large-down,tr.hide-for-xlarge-only,tr.hide-for-xlarge-up,tr.hide-for-xxlarge-only,tr.hide-for-xxlarge-up{display:table-row !important}th.show-for-small-only,td.show-for-small-only,th.show-for-small-up,td.show-for-small-up,th.show-for-small,td.show-for-small,th.show-for-small-down,td.show-for-small-down,th.hide-for-medium-only,td.hide-for-medium-only,th.hide-for-medium-up,td.hide-for-medium-up,th.hide-for-medium,td.hide-for-medium,th.show-for-medium-down,td.show-for-medium-down,th.hide-for-large-only,td.hide-for-large-only,th.hide-for-large-up,td.hide-for-large-up,th.hide-for-large,td.hide-for-large,th.show-for-large-down,td.show-for-large-down,th.hide-for-xlarge-only,td.hide-for-xlarge-only,th.hide-for-xlarge-up,td.hide-for-xlarge-up,th.hide-for-xxlarge-only,td.hide-for-xxlarge-only,th.hide-for-xxlarge-up,td.hide-for-xxlarge-up{display:table-cell !important}}@media only screen and (min-width: 40.063em){.hide-for-small-only,.show-for-small-up,.hide-for-small,.hide-for-small-down,.show-for-medium-only,.show-for-medium-up,.show-for-medium,.show-for-medium-down,.hide-for-large-only,.hide-for-large-up,.hide-for-large,.show-for-large-down,.hide-for-xlarge-only,.hide-for-xlarge-up,.hide-for-xxlarge-only,.hide-for-xxlarge-up{display:inherit !important}.show-for-small-only,.hide-for-small-up,.show-for-small,.show-for-small-down,.hide-for-medium-only,.hide-for-medium-up,.hide-for-medium,.hide-for-medium-down,.show-for-large-only,.show-for-large-up,.show-for-large,.hide-for-large-down,.show-for-xlarge-only,.show-for-xlarge-up,.show-for-xxlarge-only,.show-for-xxlarge-up{display:none !important}table.hide-for-small-only,table.show-for-small-up,table.hide-for-small,table.hide-for-small-down,table.show-for-medium-only,table.show-for-medium-up,table.show-for-medium,table.show-for-medium-down,table.hide-for-large-only,table.hide-for-large-up,table.hide-for-large,table.show-for-large-down,table.hide-for-xlarge-only,table.hide-for-xlarge-up,table.hide-for-xxlarge-only,table.hide-for-xxlarge-up{display:table}thead.hide-for-small-only,thead.show-for-small-up,thead.hide-for-small,thead.hide-for-small-down,thead.show-for-medium-only,thead.show-for-medium-up,thead.show-for-medium,thead.show-for-medium-down,thead.hide-for-large-only,thead.hide-for-large-up,thead.hide-for-large,thead.show-for-large-down,thead.hide-for-xlarge-only,thead.hide-for-xlarge-up,thead.hide-for-xxlarge-only,thead.hide-for-xxlarge-up{display:table-header-group !important}tbody.hide-for-small-only,tbody.show-for-small-up,tbody.hide-for-small,tbody.hide-for-small-down,tbody.show-for-medium-only,tbody.show-for-medium-up,tbody.show-for-medium,tbody.show-for-medium-down,tbody.hide-for-large-only,tbody.hide-for-large-up,tbody.hide-for-large,tbody.show-for-large-down,tbody.hide-for-xlarge-only,tbody.hide-for-xlarge-up,tbody.hide-for-xxlarge-only,tbody.hide-for-xxlarge-up{display:table-row-group !important}tr.hide-for-small-only,tr.show-for-small-up,tr.hide-for-small,tr.hide-for-small-down,tr.show-for-medium-only,tr.show-for-medium-up,tr.show-for-medium,tr.show-for-medium-down,tr.hide-for-large-only,tr.hide-for-large-up,tr.hide-for-large,tr.show-for-large-down,tr.hide-for-xlarge-only,tr.hide-for-xlarge-up,tr.hide-for-xxlarge-only,tr.hide-for-xxlarge-up{display:table-row !important}th.hide-for-small-only,td.hide-for-small-only,th.show-for-small-up,td.show-for-small-up,th.hide-for-small,td.hide-for-small,th.hide-for-small-down,td.hide-for-small-down,th.show-for-medium-only,td.show-for-medium-only,th.show-for-medium-up,td.show-for-medium-up,th.show-for-medium,td.show-for-medium,th.show-for-medium-down,td.show-for-medium-down,th.hide-for-large-only,td.hide-for-large-only,th.hide-for-large-up,td.hide-for-large-up,th.hide-for-large,td.hide-for-large,th.show-for-large-down,td.show-for-large-down,th.hide-for-xlarge-only,td.hide-for-xlarge-only,th.hide-for-xlarge-up,td.hide-for-xlarge-up,th.hide-for-xxlarge-only,td.hide-for-xxlarge-only,th.hide-for-xxlarge-up,td.hide-for-xxlarge-up{display:table-cell !important}}@media only screen and (min-width: 64.063em){.hide-for-small-only,.show-for-small-up,.hide-for-small,.hide-for-small-down,.hide-for-medium-only,.show-for-medium-up,.hide-for-medium,.hide-for-medium-down,.show-for-large-only,.show-for-large-up,.show-for-large,.show-for-large-down,.hide-for-xlarge-only,.hide-for-xlarge-up,.hide-for-xxlarge-only,.hide-for-xxlarge-up{display:inherit !important}.show-for-small-only,.hide-for-small-up,.show-for-small,.show-for-small-down,.show-for-medium-only,.hide-for-medium-up,.show-for-medium,.show-for-medium-down,.hide-for-large-only,.hide-for-large-up,.hide-for-large,.hide-for-large-down,.show-for-xlarge-only,.show-for-xlarge-up,.show-for-xxlarge-only,.show-for-xxlarge-up{display:none !important}table.hide-for-small-only,table.show-for-small-up,table.hide-for-small,table.hide-for-small-down,table.hide-for-medium-only,table.show-for-medium-up,table.hide-for-medium,table.hide-for-medium-down,table.show-for-large-only,table.show-for-large-up,table.show-for-large,table.show-for-large-down,table.hide-for-xlarge-only,table.hide-for-xlarge-up,table.hide-for-xxlarge-only,table.hide-for-xxlarge-up{display:table}thead.hide-for-small-only,thead.show-for-small-up,thead.hide-for-small,thead.hide-for-small-down,thead.hide-for-medium-only,thead.show-for-medium-up,thead.hide-for-medium,thead.hide-for-medium-down,thead.show-for-large-only,thead.show-for-large-up,thead.show-for-large,thead.show-for-large-down,thead.hide-for-xlarge-only,thead.hide-for-xlarge-up,thead.hide-for-xxlarge-only,thead.hide-for-xxlarge-up{display:table-header-group !important}tbody.hide-for-small-only,tbody.show-for-small-up,tbody.hide-for-small,tbody.hide-for-small-down,tbody.hide-for-medium-only,tbody.show-for-medium-up,tbody.hide-for-medium,tbody.hide-for-medium-down,tbody.show-for-large-only,tbody.show-for-large-up,tbody.show-for-large,tbody.show-for-large-down,tbody.hide-for-xlarge-only,tbody.hide-for-xlarge-up,tbody.hide-for-xxlarge-only,tbody.hide-for-xxlarge-up{display:table-row-group !important}tr.hide-for-small-only,tr.show-for-small-up,tr.hide-for-small,tr.hide-for-small-down,tr.hide-for-medium-only,tr.show-for-medium-up,tr.hide-for-medium,tr.hide-for-medium-down,tr.show-for-large-only,tr.show-for-large-up,tr.show-for-large,tr.show-for-large-down,tr.hide-for-xlarge-only,tr.hide-for-xlarge-up,tr.hide-for-xxlarge-only,tr.hide-for-xxlarge-up{display:table-row !important}th.hide-for-small-only,td.hide-for-small-only,th.show-for-small-up,td.show-for-small-up,th.hide-for-small,td.hide-for-small,th.hide-for-small-down,td.hide-for-small-down,th.hide-for-medium-only,td.hide-for-medium-only,th.show-for-medium-up,td.show-for-medium-up,th.hide-for-medium,td.hide-for-medium,th.hide-for-medium-down,td.hide-for-medium-down,th.show-for-large-only,td.show-for-large-only,th.show-for-large-up,td.show-for-large-up,th.show-for-large,td.show-for-large,th.show-for-large-down,td.show-for-large-down,th.hide-for-xlarge-only,td.hide-for-xlarge-only,th.hide-for-xlarge-up,td.hide-for-xlarge-up,th.hide-for-xxlarge-only,td.hide-for-xxlarge-only,th.hide-for-xxlarge-up,td.hide-for-xxlarge-up{display:table-cell !important}}@media only screen and (min-width: 90.063em){.hide-for-small-only,.show-for-small-up,.hide-for-small,.hide-for-small-down,.hide-for-medium-only,.show-for-medium-up,.hide-for-medium,.hide-for-medium-down,.hide-for-large-only,.show-for-large-up,.hide-for-large,.hide-for-large-down,.show-for-xlarge-only,.show-for-xlarge-up,.hide-for-xxlarge-only,.hide-for-xxlarge-up{display:inherit !important}.show-for-small-only,.hide-for-small-up,.show-for-small,.show-for-small-down,.show-for-medium-only,.hide-for-medium-up,.show-for-medium,.show-for-medium-down,.show-for-large-only,.hide-for-large-up,.show-for-large,.show-for-large-down,.hide-for-xlarge-only,.hide-for-xlarge-up,.show-for-xxlarge-only,.show-for-xxlarge-up{display:none !important}table.hide-for-small-only,table.show-for-small-up,table.hide-for-small,table.hide-for-small-down,table.hide-for-medium-only,table.show-for-medium-up,table.hide-for-medium,table.hide-for-medium-down,table.hide-for-large-only,table.show-for-large-up,table.hide-for-large,table.hide-for-large-down,table.show-for-xlarge-only,table.show-for-xlarge-up,table.hide-for-xxlarge-only,table.hide-for-xxlarge-up{display:table}thead.hide-for-small-only,thead.show-for-small-up,thead.hide-for-small,thead.hide-for-small-down,thead.hide-for-medium-only,thead.show-for-medium-up,thead.hide-for-medium,thead.hide-for-medium-down,thead.hide-for-large-only,thead.show-for-large-up,thead.hide-for-large,thead.hide-for-large-down,thead.show-for-xlarge-only,thead.show-for-xlarge-up,thead.hide-for-xxlarge-only,thead.hide-for-xxlarge-up{display:table-header-group !important}tbody.hide-for-small-only,tbody.show-for-small-up,tbody.hide-for-small,tbody.hide-for-small-down,tbody.hide-for-medium-only,tbody.show-for-medium-up,tbody.hide-for-medium,tbody.hide-for-medium-down,tbody.hide-for-large-only,tbody.show-for-large-up,tbody.hide-for-large,tbody.hide-for-large-down,tbody.show-for-xlarge-only,tbody.show-for-xlarge-up,tbody.hide-for-xxlarge-only,tbody.hide-for-xxlarge-up{display:table-row-group !important}tr.hide-for-small-only,tr.show-for-small-up,tr.hide-for-small,tr.hide-for-small-down,tr.hide-for-medium-only,tr.show-for-medium-up,tr.hide-for-medium,tr.hide-for-medium-down,tr.hide-for-large-only,tr.show-for-large-up,tr.hide-for-large,tr.hide-for-large-down,tr.show-for-xlarge-only,tr.show-for-xlarge-up,tr.hide-for-xxlarge-only,tr.hide-for-xxlarge-up{display:table-row !important}th.hide-for-small-only,td.hide-for-small-only,th.show-for-small-up,td.show-for-small-up,th.hide-for-small,td.hide-for-small,th.hide-for-small-down,td.hide-for-small-down,th.hide-for-medium-only,td.hide-for-medium-only,th.show-for-medium-up,td.show-for-medium-up,th.hide-for-medium,td.hide-for-medium,th.hide-for-medium-down,td.hide-for-medium-down,th.hide-for-large-only,td.hide-for-large-only,th.show-for-large-up,td.show-for-large-up,th.hide-for-large,td.hide-for-large,th.hide-for-large-down,td.hide-for-large-down,th.show-for-xlarge-only,td.show-for-xlarge-only,th.show-for-xlarge-up,td.show-for-xlarge-up,th.hide-for-xxlarge-only,td.hide-for-xxlarge-only,th.hide-for-xxlarge-up,td.hide-for-xxlarge-up{display:table-cell !important}}@media only screen and (min-width: 120.063em){.hide-for-small-only,.show-for-small-up,.hide-for-small,.hide-for-small-down,.hide-for-medium-only,.show-for-medium-up,.hide-for-medium,.hide-for-medium-down,.hide-for-large-only,.show-for-large-up,.hide-for-large,.hide-for-large-down,.hide-for-xlarge-only,.show-for-xlarge-up,.show-for-xxlarge-only,.show-for-xxlarge-up{display:inherit !important}.show-for-small-only,.hide-for-small-up,.show-for-small,.show-for-small-down,.show-for-medium-only,.hide-for-medium-up,.show-for-medium,.show-for-medium-down,.show-for-large-only,.hide-for-large-up,.show-for-large,.show-for-large-down,.show-for-xlarge-only,.hide-for-xlarge-up,.hide-for-xxlarge-only,.hide-for-xxlarge-up{display:none !important}table.hide-for-small-only,table.show-for-small-up,table.hide-for-small,table.hide-for-small-down,table.hide-for-medium-only,table.show-for-medium-up,table.hide-for-medium,table.hide-for-medium-down,table.hide-for-large-only,table.show-for-large-up,table.hide-for-large,table.hide-for-large-down,table.hide-for-xlarge-only,table.show-for-xlarge-up,table.show-for-xxlarge-only,table.show-for-xxlarge-up{display:table}thead.hide-for-small-only,thead.show-for-small-up,thead.hide-for-small,thead.hide-for-small-down,thead.hide-for-medium-only,thead.show-for-medium-up,thead.hide-for-medium,thead.hide-for-medium-down,thead.hide-for-large-only,thead.show-for-large-up,thead.hide-for-large,thead.hide-for-large-down,thead.hide-for-xlarge-only,thead.show-for-xlarge-up,thead.show-for-xxlarge-only,thead.show-for-xxlarge-up{display:table-header-group !important}tbody.hide-for-small-only,tbody.show-for-small-up,tbody.hide-for-small,tbody.hide-for-small-down,tbody.hide-for-medium-only,tbody.show-for-medium-up,tbody.hide-for-medium,tbody.hide-for-medium-down,tbody.hide-for-large-only,tbody.show-for-large-up,tbody.hide-for-large,tbody.hide-for-large-down,tbody.hide-for-xlarge-only,tbody.show-for-xlarge-up,tbody.show-for-xxlarge-only,tbody.show-for-xxlarge-up{display:table-row-group !important}tr.hide-for-small-only,tr.show-for-small-up,tr.hide-for-small,tr.hide-for-small-down,tr.hide-for-medium-only,tr.show-for-medium-up,tr.hide-for-medium,tr.hide-for-medium-down,tr.hide-for-large-only,tr.show-for-large-up,tr.hide-for-large,tr.hide-for-large-down,tr.hide-for-xlarge-only,tr.show-for-xlarge-up,tr.show-for-xxlarge-only,tr.show-for-xxlarge-up{display:table-row !important}th.hide-for-small-only,td.hide-for-small-only,th.show-for-small-up,td.show-for-small-up,th.hide-for-small,td.hide-for-small,th.hide-for-small-down,td.hide-for-small-down,th.hide-for-medium-only,td.hide-for-medium-only,th.show-for-medium-up,td.show-for-medium-up,th.hide-for-medium,td.hide-for-medium,th.hide-for-medium-down,td.hide-for-medium-down,th.hide-for-large-only,td.hide-for-large-only,th.show-for-large-up,td.show-for-large-up,th.hide-for-large,td.hide-for-large,th.hide-for-large-down,td.hide-for-large-down,th.hide-for-xlarge-only,td.hide-for-xlarge-only,th.show-for-xlarge-up,td.show-for-xlarge-up,th.show-for-xxlarge-only,td.show-for-xxlarge-only,th.show-for-xxlarge-up,td.show-for-xxlarge-up{display:table-cell !important}}.show-for-landscape,.hide-for-portrait{display:inherit !important}.hide-for-landscape,.show-for-portrait{display:none !important}table.hide-for-landscape,table.show-for-portrait{display:table}thead.hide-for-landscape,thead.show-for-portrait{display:table-header-group !important}tbody.hide-for-landscape,tbody.show-for-portrait{display:table-row-group !important}tr.hide-for-landscape,tr.show-for-portrait{display:table-row !important}td.hide-for-landscape,td.show-for-portrait,th.hide-for-landscape,th.show-for-portrait{display:table-cell !important}@media only screen and (orientation: landscape){.show-for-landscape,.hide-for-portrait{display:inherit !important}.hide-for-landscape,.show-for-portrait{display:none !important}table.show-for-landscape,table.hide-for-portrait{display:table}thead.show-for-landscape,thead.hide-for-portrait{display:table-header-group !important}tbody.show-for-landscape,tbody.hide-for-portrait{display:table-row-group !important}tr.show-for-landscape,tr.hide-for-portrait{display:table-row !important}td.show-for-landscape,td.hide-for-portrait,th.show-for-landscape,th.hide-for-portrait{display:table-cell !important}}@media only screen and (orientation: portrait){.show-for-portrait,.hide-for-landscape{display:inherit !important}.hide-for-portrait,.show-for-landscape{display:none !important}table.show-for-portrait,table.hide-for-landscape{display:table}thead.show-for-portrait,thead.hide-for-landscape{display:table-header-group !important}tbody.show-for-portrait,tbody.hide-for-landscape{display:table-row-group !important}tr.show-for-portrait,tr.hide-for-landscape{display:table-row !important}td.show-for-portrait,td.hide-for-landscape,th.show-for-portrait,th.hide-for-landscape{display:table-cell !important}}.show-for-touch{display:none !important}.hide-for-touch{display:inherit !important}.touch .show-for-touch{display:inherit !important}.touch .hide-for-touch{display:none !important}table.hide-for-touch{display:table}.touch table.show-for-touch{display:table}thead.hide-for-touch{display:table-header-group !important}.touch thead.show-for-touch{display:table-header-group !important}tbody.hide-for-touch{display:table-row-group !important}.touch tbody.show-for-touch{display:table-row-group !important}tr.hide-for-touch{display:table-row !important}.touch tr.show-for-touch{display:table-row !important}td.hide-for-touch{display:table-cell !important}.touch td.show-for-touch{display:table-cell !important}th.hide-for-touch{display:table-cell !important}.touch th.show-for-touch{display:table-cell !important} diff --git a/infusion/development/css/highlightjs-custom.css b/infusion/development/css/highlightjs-custom.css new file mode 100644 index 00000000..f2433491 --- /dev/null +++ b/infusion/development/css/highlightjs-custom.css @@ -0,0 +1,151 @@ +/* + +Modifications made to Original style from softwaremaniacs.org (c) Ivan Sagalaev + +*/ + +.hljs { + display: inline-block; + padding: 0.5em; + background: #f0f0f0; +} + +.hljs, +.hljs-subst, +.hljs-tag .hljs-title, +.lisp .hljs-title, +.clojure .hljs-built_in, +.nginx .hljs-title { + color: black; +} + +.hljs-string, +.hljs-title, +.hljs-constant, +.hljs-parent, +.hljs-tag .hljs-value, +.hljs-rules .hljs-value, +.hljs-preprocessor, +.hljs-pragma, +.haml .hljs-symbol, +.ruby .hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.hljs-template_tag, +.django .hljs-variable, +.smalltalk .hljs-class, +.hljs-addition, +.hljs-flow, +.hljs-stream, +.bash .hljs-variable, +.apache .hljs-tag, +.apache .hljs-cbracket, +.tex .hljs-command, +.tex .hljs-special, +.erlang_repl .hljs-function_or_atom, +.asciidoc .hljs-header, +.markdown .hljs-header, +.coffeescript .hljs-attribute { + color: #393; +} + +.smartquote, +.hljs-comment, +.hljs-annotation, +.hljs-template_comment, +.diff .hljs-header, +.hljs-chunk, +.asciidoc .hljs-blockquote, +.markdown .hljs-blockquote { + color: #888; +} + +.hljs-number, +.hljs-date, +.hljs-regexp, +.hljs-literal, +.hljs-hexcolor, +.smalltalk .hljs-symbol, +.smalltalk .hljs-char, +.go .hljs-constant, +.hljs-change, +.lasso .hljs-variable, +.makefile .hljs-variable, +.asciidoc .hljs-bullet, +.markdown .hljs-bullet, +.asciidoc .hljs-link_url, +.markdown .hljs-link_url { + color: #080; +} + +.hljs-label, +.hljs-javadoc, +.ruby .hljs-string, +.hljs-decorator, +.hljs-filter .hljs-argument, +.hljs-localvars, +.hljs-array, +.hljs-attr_selector, +.hljs-important, +.hljs-pseudo, +.hljs-pi, +.haml .hljs-bullet, +.hljs-doctype, +.hljs-deletion, +.hljs-envvar, +.hljs-shebang, +.apache .hljs-sqbracket, +.nginx .hljs-built_in, +.tex .hljs-formula, +.erlang_repl .hljs-reserved, +.hljs-prompt, +.asciidoc .hljs-link_label, +.markdown .hljs-link_label, +.vhdl .hljs-attribute, +.clojure .hljs-attribute, +.asciidoc .hljs-attribute, +.lasso .hljs-attribute, +.coffeescript .hljs-property, +.hljs-phony { + color: #88f; +} + +.hljs-keyword, +.hljs-id, +.hljs-title, +.hljs-built_in, +.css .hljs-tag, +.hljs-javadoctag, +.hljs-phpdoc, +.hljs-yardoctag, +.smalltalk .hljs-class, +.hljs-winutils, +.bash .hljs-variable, +.apache .hljs-tag, +.go .hljs-typename, +.tex .hljs-command, +.asciidoc .hljs-strong, +.markdown .hljs-strong, +.hljs-request, +.hljs-status { + font-weight: bold; +} + +.asciidoc .hljs-emphasis, +.markdown .hljs-emphasis { + font-style: italic; +} + +.nginx .hljs-built_in { + font-weight: normal; +} + +.coffeescript .javascript, +.javascript .xml, +.lasso .markup, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/infusion/development/css/highlightjs/default.css b/infusion/development/css/highlightjs/default.css new file mode 100644 index 00000000..7a43519f --- /dev/null +++ b/infusion/development/css/highlightjs/default.css @@ -0,0 +1,151 @@ +/* + +Original style from softwaremaniacs.org (c) Ivan Sagalaev + +*/ + +.hljs { + display: inline-block; + padding: 0.5em; + background: #f0f0f0; +} + +.hljs, +.hljs-subst, +.hljs-tag .hljs-title, +.lisp .hljs-title, +.clojure .hljs-built_in, +.nginx .hljs-title { + color: black; +} + +.hljs-string, +.hljs-title, +.hljs-constant, +.hljs-parent, +.hljs-tag .hljs-value, +.hljs-rules .hljs-value, +.hljs-preprocessor, +.hljs-pragma, +.haml .hljs-symbol, +.ruby .hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.hljs-template_tag, +.django .hljs-variable, +.smalltalk .hljs-class, +.hljs-addition, +.hljs-flow, +.hljs-stream, +.bash .hljs-variable, +.apache .hljs-tag, +.apache .hljs-cbracket, +.tex .hljs-command, +.tex .hljs-special, +.erlang_repl .hljs-function_or_atom, +.asciidoc .hljs-header, +.markdown .hljs-header, +.coffeescript .hljs-attribute { + color: #800; +} + +.smartquote, +.hljs-comment, +.hljs-annotation, +.hljs-template_comment, +.diff .hljs-header, +.hljs-chunk, +.asciidoc .hljs-blockquote, +.markdown .hljs-blockquote { + color: #888; +} + +.hljs-number, +.hljs-date, +.hljs-regexp, +.hljs-literal, +.hljs-hexcolor, +.smalltalk .hljs-symbol, +.smalltalk .hljs-char, +.go .hljs-constant, +.hljs-change, +.lasso .hljs-variable, +.makefile .hljs-variable, +.asciidoc .hljs-bullet, +.markdown .hljs-bullet, +.asciidoc .hljs-link_url, +.markdown .hljs-link_url { + color: #080; +} + +.hljs-label, +.hljs-javadoc, +.ruby .hljs-string, +.hljs-decorator, +.hljs-filter .hljs-argument, +.hljs-localvars, +.hljs-array, +.hljs-attr_selector, +.hljs-important, +.hljs-pseudo, +.hljs-pi, +.haml .hljs-bullet, +.hljs-doctype, +.hljs-deletion, +.hljs-envvar, +.hljs-shebang, +.apache .hljs-sqbracket, +.nginx .hljs-built_in, +.tex .hljs-formula, +.erlang_repl .hljs-reserved, +.hljs-prompt, +.asciidoc .hljs-link_label, +.markdown .hljs-link_label, +.vhdl .hljs-attribute, +.clojure .hljs-attribute, +.asciidoc .hljs-attribute, +.lasso .hljs-attribute, +.coffeescript .hljs-property, +.hljs-phony { + color: #88f; +} + +.hljs-keyword, +.hljs-id, +.hljs-title, +.hljs-built_in, +.css .hljs-tag, +.hljs-javadoctag, +.hljs-phpdoc, +.hljs-yardoctag, +.smalltalk .hljs-class, +.hljs-winutils, +.bash .hljs-variable, +.apache .hljs-tag, +.go .hljs-typename, +.tex .hljs-command, +.asciidoc .hljs-strong, +.markdown .hljs-strong, +.hljs-request, +.hljs-status { + font-weight: bold; +} + +.asciidoc .hljs-emphasis, +.markdown .hljs-emphasis { + font-style: italic; +} + +.nginx .hljs-built_in { + font-weight: normal; +} + +.coffeescript .javascript, +.javascript .xml, +.lasso .markup, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/infusion/development/css/infusion-docs.css b/infusion/development/css/infusion-docs.css new file mode 100644 index 00000000..5ecfa964 --- /dev/null +++ b/infusion/development/css/infusion-docs.css @@ -0,0 +1,616 @@ +@font-face { + font-family: "OpenSans", Arial, Helvetica; + src: url("../fonts/OpenSans-Regular.ttf") format('truetype'); +} + +@font-face { + font-family: "OpenSans-Bold"; + src: url("../fonts/OpenSans-Bold.ttf") format('truetype'); +} + +@font-face { + font-family: "OpenSans-Semibold"; + src: url("../fonts/OpenSans-Semibold.ttf") format('truetype'); +} + +@font-face { + font-family: "OpenSans-Light"; + src: url("../fonts/OpenSans-Light.ttf") format('truetype'); +} + +@font-face { + font-family: "RobotoSlab"; + src: url("../fonts/RobotoSlab-Regular.ttf") format('truetype'); +} + +@font-face { + font-family: "RobotoSlab-Bold"; + src: url("../fonts/RobotoSlab-Bold.ttf") format('truetype'); +} + +@font-face { + font-family: "infusion-docs"; + src: url("../fonts/infusion-docs.eot#iefix") format("embedded-opentype"), /*IE8 fix */ + url("../fonts/infusion-docs.ttf"), + url("../fonts/infusion-docs.eot"); +} + +@font-face { + font-family: "infusion_logo"; + src: url("../fonts/infusion_logo.eot#iefix") format("embedded-opentype"), /*IE8 fix */ + url("../fonts/infusion_logo.ttf"), + url("../fonts/infusion_logo.eot"); +} + +@font-face { + font-family: "github"; + src: url("../fonts/github-1.eot#iefix") format("embedded-opentype"), /*IE8 fix */ + url("../fonts/github-1.ttf"), + url("../fonts/github-1.eot"); +} + +html body { + font-size: 12px; + font-size: 1.2rem; + line-height: 1.6; +} + +pre { + white-space: pre-wrap; +} + +td { + vertical-align: top; +} + +.fl-prefsEditor-buttons button:focus, +.infusion-docs-TOC li a:focus .infusion-docs-TOC-pageName, +a:focus { + outline: solid 0.2rem #008cba; +} + +.infusion-docs-header a:focus, +.infusion-docs-footer a:focus { + outline: 0.2rem solid #ffb200; +} + +#skip { + float: left; + height: 0rem; +} + +#skip a, +#skip a:hover, +#skip a:visited { + height: 1px; + left: -10000px; + overflow: hidden; + position: absolute; + top: auto; + width: 1px; +} + +#skip a:active, +#skip a:focus { + height: auto; + position: static; + width: auto; +} + + /* override foundation, so UIO's line-spacing will work */ +.infusion-docs h1, .infusion-docs h2, .infusion-docs h3, .infusion-docs h4, .infusion-docs h5, .infusion-docs h6, +.infusion-docs p, +.infusion-docs table tbody tr td, +.infusion-docs table tr td, +.infusion-docs ul, +.infusion-docs dl { + line-height: inherit; +} +.infusion-docs h1, .infusion-docs h2, .infusion-docs h3, .infusion-docs h4, .infusion-docs h5, .infusion-docs h6 { + font-family: "RobotoSlab"; +} +.infusion-docs-container h1 { + font-size: 3.0rem; + margin-top: 5rem; + padding-bottom: 4rem; +} + +.infusion-docs-container h2 { + font-size: 2.5rem; + padding-top: 2rem; + padding-bottom: 2rem; +} + +.infusion-docs-container h3 { + font-size: 2rem; + padding-top: 2rem; +} +.infusion-docs-container h4 { + font-size: 1.5rem; + padding-top: 2rem; +} +.infusion-docs-container h5 { + font-size: 1rem; + text-decoration: underline; +} + +.infusion-docs-container ul, +.infusion-docs-container ol, +.infusion-docs-container dl, +.infusion-docs-container p { + font-size: 1.2rem; +} + +/* override the above to avoid paragraphs in tables being resized inappropriately */ +.infusion-docs-container tr td p { + font-size: inherit; +} + +/* Styling for the hover links on headings */ + +.infusion-docs .infusion-docs-anchor { + display: inline-block; + padding-right: 4px; + margin-left: -2rem; +} + +.infusion-docs-anchor .octicon-link { + color: #000; + vertical-align: middle; +} + +.infusion-docs-container a.infusion-docs-anchor:hover { + background: inherit; +} + +.infusion-docs-anchor span { + font-size: 1.7rem; +} + +.infusion-docs-mainContent { /* Operates the main scrollbar for main content */ + overflow-y: auto; + overflow-x: hidden; + height: 100%; + width: 100%; +} + +.infusion-docs-mainContent code a:hover, +.infusion-docs-mainContent a:hover code, +.infusion-docs-container a:hover { + color: #ffcb00; + background: #323232; +} + +.infusion-docs pre code { + font-weight: normal; + font-size: smaller; + background-color: #FFF; + border: 0.1rem dotted #ddd; + border-radius: 0.2rem; + padding: 0.8rem; + color: #000; + margin-bottom: 1rem; +} + +.infusion-docs dt { + margin-left: 2em; +} +.infusion-docs dd { + margin-left: 3em; +} +.infusion-docs-mainContent code { + font-weight: normal; + background-color: #FFF; + color: #000; + font-size: inherit; +} + +.infusion-docs-mainContent code a, +.infusion-docs-mainContent a code { + font-size: inherit; + border-bottom: 0.1rem dotted #008cba; + color: #008cba; + background: 0; +} + +.infusion-docs table td { + border:1px solid #e7e7e7; +} + +.infusion-docs-container .infusion-docs-header { + background-color: #323232; + height: 7rem; + font-family: "OpenSans", Arial, Helvetica; + font-size: 1.1rem; + text-align: right; + word-spacing: 2rem; + padding-right: 2rem; + line-height: 2; + max-width: 100%; + position: fixed; + z-index: 2; +} + +.infusion-docs-fluidCategories { + top: 3rem; +} + +.infusion-docs-fluidLogoText:before { + font-family: "infusion_logo"; + content: "\e606"; + color: #ffb200; + font-size: 2rem; + text-align: bottom; + padding-right: 0.2rem; +} + +.infusion-docs-container .infusion-docs-fluidLogo { + text-align: left; + font-size: 1.6rem; + font-family: "OpenSans-Light", Arial, Helvetica; + letter-spacing: 0.2rem; + margin-top: 2.5rem; +} + +.infusion-docs-container .infusion-docs-fluidLogo a { + color: #ffb200; +} + +.infusion-docs-header nav { + margin-top: 1rem; +} +.infusion-docs-header nav a { + color: #FFFFFF; +} + +.infusion-docs-header a:hover { + color: #008cba; + background: #f2f2f2; +} + +.infusion-docs-header a:hover:before { + color: #008cba; +} + +.infusion-docs-category-active { + border-bottom: 0.2rem solid #ffb200; +} + +.infusion-docs-container .infusion-docs-header .infusion-docs-linkDOCS { + color: #FFCB00; +} + +.infusion-docs-container .infusion-docs-header .infusion-docs-linkDOCS:hover { + color: #FFCB00; + background: none; +} + +.infusion-docs-TOC { + min-height: 44rem; + background: #fff; + border-top: 7rem solid; + position: fixed; + width: 15rem; + height: 100vh; + top: 0; + overflow-y: auto; + z-index: 1; +} + +.infusion-docs-TOC ul { + list-style-type: none; +} + +.infusion-docs-TOC li { + padding: 0.6rem 0; + border-top: 0.1rem solid #efefef; +} + +.infusion-docs-TOC li:first-child { + border-top: none; +} + +.infusion-docs-category { + font-weight: bold; + margin: 1.5rem 0 1rem 0; + display:block; +} + +.infusion-docs-sectionName { + margin: 1rem 0; + display: block; +} + +.infusion-docs-TOC li a:focus { + outline: none; +} + +.infusion-docs-TOC li .infusion-docs-TOC-pageName { + /* By default give each item in the TOC an active page style. */ + border-left: solid 0.2rem #FFCB00; + padding-left: 0.2rem; + display: block; +} + +.infusion-docs-TOC li a .infusion-docs-TOC-pageName { + /* If the TOC item is a link, then hide the active page styling */ + border: none; + padding-left: 0; +} + +.infusion-docs-container { + background-color: #f2f2f2; + height: 100%; +} + +.infusion-docs-articleContainer { + width: 90%; + padding-left: 17rem; + min-height: 70vh; +} + +.infusion-docs-mainBody { + margin: 0; + position: fixed; + width: 100%; + height: 100%; /* Relies on border-box box sizing from foundation */ + padding-top: 7rem; +} + +div.infusion-docs-note { + border-left: solid; + border-left-width: 0.3rem; + border-color: #5DB93C; + padding-left: 0.4rem; + font-style: italic; + margin-bottom: 2rem; +} + +/* Note style for use inside table cells */ +table div.infusion-docs-note { + margin-bottom: 1rem; + margin-top: 1rem; +} + +.infusion-docs-callout { + font-family: "RobotoSlab"; + margin: 1rem; + border: 1px solid #ccc; + border-radius: 0.2rem; + background: #ffffff; + padding: 0.4rem; + font-size: 1.1rem; + padding-left: 3rem; + position: relative; +} +.infusion-docs-callout:before { + font-family: "infusion-docs"; + content: "\e600"; + color: #5DB93C; + font-size: 2rem; + position: absolute; + top: 0; + left: 0.4rem; +} + +.infusion-docs-container .infusion-docs-githubLink a:before { + display: inline-block; + vertical-align: bottom; + font-family: "github"; + content: "\e600"; + font-size: 1.3rem; + padding-right: 0.5rem; +} + +.infusion-docs-container .infusion-docs-githubLink { + margin-bottom: 2rem; +} + +.infusion-docs-articleBody > p:first-child { + font-size: 1.4rem; +} + +.infusion-docs-container .infusion-docs-navList { + font-size: 1.1rem; +} + +.infusion-docs-container .infusion-docs-paragraphBullets { + font-size: 1.3rem; +} + +.infusion-docs-container .infusion-docs-paragraphBullets li { + padding-bottom: 0.25rem; +} +.infusion-docs-container .infusion-docs-figure, +.infusion-docs-container figure { + margin: 0 0 1.5rem 0; + text-align: center; + padding-bottom: 1.1rem; +} + +.infusion-docs-container .infusion-docs-figureCaption, +.infusion-docs-container figcaption { + font-family: "OpenSans", Arial, Helvetica; + font-size: 1rem; + padding-left: 1.5rem; + padding-right: 1.5rem; + color: #4c4c4c; + text-align: left; + margin-top: 1rem; + border-top: solid; + border-color: #f2f2f2; + border-top-width: 0.3rem; +} + +.infusion-docs-container .infusion-docs-footer { + background-color: #323232; + padding-top: 2rem; + color: #FFFFFF; + font-family: "OpenSans", Arial, Helvetica; + text-align: center; + max-width: 100%; + margin-left: 10rem; + position: absolute; + width: 90%; +} + +.infusion-docs-footer p { + font-size: 0.8rem; +} + +.infusion-docs-footer a { + color: #ffcb00; +} + +.infusion-docs-footer a:hover { + color: #008cba; + background: #f2f2f2; +} + +.infusion-docs-footerInfusion { + font-size: 1.2rem +} + +.fl-prefsEditor-separatedPanel { + position: fixed; + z-index: 10; + width: 100% +} + +.fl-prefsEditor-separatedPanel .fl-panelBar .fl-prefsEditor-buttons { + margin-right: 2rem; +} +.fl-prefsEditor-separatedPanel .fl-prefsEditor-showHide, +.fl-prefsEditor-separatedPanel .fl-prefsEditor-reset { + font-size: 1.1rem; + padding-top: 0.5rem; + height: 2rem; + margin-bottom: 0.7rem; +} + +.infusion-docs-container .infusion-docs-toc h1 { + padding-top: 1rem; + padding-bottom: 1rem; +} + +.infusion-docs.fl-text-larger .fl-prefsEditor-separatedPanel .fl-prefsEditor-showHide, +.infusion-docs.fl-text-larger .fl-prefsEditor-separatedPanel .fl-prefsEditor-reset{ + height: 2.5rem; +} +.infusion-docs.fl-text-larger .fl-prefsEditor-separatedPanel .fl-prefsEditor-showHide { + min-width: 13rem; +} + +/* Styles for high-contrast themes */ +.fl-theme-yb .infusion-docs-fluidLogoText::before, +.fl-theme-yb .infusion-docs-callout:before { + color: #ffff00 !important; +} +.fl-theme-wb .infusion-docs-fluidLogoText::before, +.fl-theme-wb .infusion-docs-callout:before { + color: #ffffff !important; +} +.fl-theme-by .infusion-docs-fluidLogoText::before, +.fl-theme-bw .infusion-docs-fluidLogoText::before, +.fl-theme-by .infusion-docs-callout:before, +.fl-theme-bw .infusion-docs-callout:before { + color: #000000 !important; +} +.fl-theme-lgdg .infusion-docs-fluidLogoText::before, +.fl-theme-lgdg .infusion-docs-callout:before { + color: #bdbdbb !important; +} + +.fl-theme-bw a:focus, +.fl-theme-bw .fl-prefsEditor-buttons button:focus, +.fl-theme-bw a:focus .infusion-docs-TOC-pageName, +.fl-theme-by a:focus, +.fl-theme-by .fl-prefsEditor-buttons button:focus { + outline: 0.2rem solid #000000 !important; +} +.fl-theme-wb a:focus, +.fl-theme-wb a:focus .infusion-docs-TOC-pageName, +.fl-theme-wb .fl-prefsEditor-buttons button:focus { + outline: 0.2rem solid #ffffff !important; +} +.fl-theme-yb a:focus, +.fl-theme-yb a:focus .infusion-docs-TOC-pageName, +.fl-theme-yb .fl-prefsEditor-buttons button:focus { + outline: 0.2rem solid #ffff00 !important; +} +.fl-theme-lgdg a:focus, +.fl-theme-lgdg a:focus .infusion-docs-TOC-pageName, +.fl-theme-lgdg .fl-prefsEditor-buttons button:focus { + outline: 0.2rem solid #bdbdbb !important; +} + +/* +Focus style exception: don't have focus appear around the anchor. +Instead have it appear around the enclosed +*/ +.fl-theme-bw .infusion-docs-TOC li a:focus, +.fl-theme-wb .infusion-docs-TOC li a:focus, +.fl-theme-by .infusion-docs-TOC li a:focus, +.fl-theme-yb .infusion-docs-TOC li a:focus, +.fl-theme-lgdg .infusion-docs-TOC li a:focus { + outline:none !important; +} + +.fl-theme-bw .infusion-docs-container a:hover, +.fl-theme-bw .infusion-docs-container a:hover .infusion-docs-TOC-pageName, +.fl-theme-bw .fl-prefsEditor-buttons button:hover, +.fl-theme-bw .infusion-docs-header a:hover:before { + color: #ffffff !important; + background: #000000 !important; +} +.fl-theme-wb .infusion-docs-container a:hover, +.fl-theme-wb .infusion-docs-container a:hover .infusion-docs-TOC-pageName, +.fl-theme-wb .fl-prefsEditor-buttons button:hover, +.fl-theme-wb .infusion-docs-header a:hover:before { + color: #000000 !important; + background: #ffffff !important; +} +.fl-theme-by .infusion-docs-container a:hover, +.fl-theme-by .infusion-docs-container a:hover .infusion-docs-TOC-pageName, +.fl-theme-by .fl-prefsEditor-buttons button:hover, +.fl-theme-by .infusion-docs-header a:hover:before { + color: #ffff00 !important; + background: #000000 !important; +} +.fl-theme-yb .infusion-docs-container a:hover, +.fl-theme-yb .infusion-docs-container a:hover .infusion-docs-TOC-pageName, +.fl-theme-yb .fl-prefsEditor-buttons button:hover, +.fl-theme-yb .infusion-docs-header a:hover:before { + color: #000000 !important; + background: #ffff00 !important; +} +.fl-theme-lgdg .infusion-docs-container a:hover, +.fl-theme-lgdg .infusion-docs-container a:hover .infusion-docs-TOC-pageName, +.fl-theme-lgdg .fl-prefsEditor-buttons button:hover, +.fl-theme-lgdg .infusion-docs-header a:hover:before { + color: #555555 !important; + background: #bdbdbb !important; +} + +/* These definitions deal with complex formatted tables with alternating rows as seen in IoCTestingFramework.md + * They originally appeared in the Confluence wiki formatted verion of the table */ +/* copied from Confluence main-actions.css */ +.infusion-docs-complextable, .infusion-docs-complextable td, .infusion-docs-complextable th { + border:1px solid #CCCCCC; + padding:3px 4px; + vertical-align:top; + border-collapse: collapse; + } +/** Beat foundation's built-in row shading by doubling specificity **/ +.infusion-docs-alt-a-row.infusion-docs-alt-a-row, .infusion-docs-alt-a-row code { + background-color: #fee; +} +.infusion-docs-alt-b-row.infusion-docs-alt-b-row, .infusion-docs-alt-b-row code { + background-color: #efe; +} +.infusion-docs-duckrow.infusion-docs-duckrow, .infusion-docs-duckrow code { + background-color: #eee; + } +.infusion-docs-blockcell { + background-color: #fff; +} diff --git a/infusion/development/css/normalize.css b/infusion/development/css/normalize.css new file mode 100644 index 00000000..196d223f --- /dev/null +++ b/infusion/development/css/normalize.css @@ -0,0 +1,423 @@ +/*! normalize.css v3.0.0 | MIT License | git.io/normalize */ + +/** + * 1. Set default font family to sans-serif. + * 2. Prevent iOS text size adjust after orientation change, without disabling + * user zoom. + */ + +html { + font-family: sans-serif; /* 1 */ + -ms-text-size-adjust: 100%; /* 2 */ + -webkit-text-size-adjust: 100%; /* 2 */ +} + +/** + * Remove default margin. + */ + +body { + margin: 0; +} + +/* HTML5 display definitions + ========================================================================== */ + +/** + * Correct `block` display not defined in IE 8/9. + */ + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +nav, +section, +summary { + display: block; +} + +/** + * 1. Correct `inline-block` display not defined in IE 8/9. + * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. + */ + +audio, +canvas, +progress, +video { + display: inline-block; /* 1 */ + vertical-align: baseline; /* 2 */ +} + +/** + * Prevent modern browsers from displaying `audio` without controls. + * Remove excess height in iOS 5 devices. + */ + +audio:not([controls]) { + display: none; + height: 0; +} + +/** + * Address `[hidden]` styling not present in IE 8/9. + * Hide the `template` element in IE, Safari, and Firefox < 22. + */ + +[hidden], +template { + display: none; +} + +/* Links + ========================================================================== */ + +/** + * Remove the gray background color from active links in IE 10. + */ + +a { + background: transparent; +} + +/** + * Improve readability when focused and also mouse hovered in all browsers. + */ + +a:active, +a:hover { + outline: 0; +} + +/* Text-level semantics + ========================================================================== */ + +/** + * Address styling not present in IE 8/9, Safari 5, and Chrome. + */ + +abbr[title] { + border-bottom: 1px dotted; +} + +/** + * Address style set to `bolder` in Firefox 4+, Safari 5, and Chrome. + */ + +b, +strong { + font-weight: bold; +} + +/** + * Address styling not present in Safari 5 and Chrome. + */ + +dfn { + font-style: italic; +} + +/** + * Address variable `h1` font-size and margin within `section` and `article` + * contexts in Firefox 4+, Safari 5, and Chrome. + */ + +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +/** + * Address styling not present in IE 8/9. + */ + +mark { + background: #ff0; + color: #000; +} + +/** + * Address inconsistent and variable font size in all browsers. + */ + +small { + font-size: 80%; +} + +/** + * Prevent `sub` and `sup` affecting `line-height` in all browsers. + */ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +/* Embedded content + ========================================================================== */ + +/** + * Remove border when inside `a` element in IE 8/9. + */ + +img { + border: 0; +} + +/** + * Correct overflow displayed oddly in IE 9. + */ + +svg:not(:root) { + overflow: hidden; +} + +/* Grouping content + ========================================================================== */ + +/** + * Address margin not present in IE 8/9 and Safari 5. + */ + +figure { + margin: 1em 40px; +} + +/** + * Address differences between Firefox and other browsers. + */ + +hr { + -moz-box-sizing: content-box; + box-sizing: content-box; + height: 0; +} + +/** + * Contain overflow in all browsers. + */ + +pre { + overflow: auto; +} + +/** + * Address odd `em`-unit font size rendering in all browsers. + */ + +code, +kbd, +pre, +samp { + font-family: monospace, monospace; + font-size: 1em; +} + +/* Forms + ========================================================================== */ + +/** + * Known limitation: by default, Chrome and Safari on OS X allow very limited + * styling of `select`, unless a `border` property is set. + */ + +/** + * 1. Correct color not being inherited. + * Known issue: affects color of disabled elements. + * 2. Correct font properties not being inherited. + * 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome. + */ + +button, +input, +optgroup, +select, +textarea { + color: inherit; /* 1 */ + font: inherit; /* 2 */ + margin: 0; /* 3 */ +} + +/** + * Address `overflow` set to `hidden` in IE 8/9/10. + */ + +button { + overflow: visible; +} + +/** + * Address inconsistent `text-transform` inheritance for `button` and `select`. + * All other form control elements do not inherit `text-transform` values. + * Correct `button` style inheritance in Firefox, IE 8+, and Opera + * Correct `select` style inheritance in Firefox. + */ + +button, +select { + text-transform: none; +} + +/** + * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` + * and `video` controls. + * 2. Correct inability to style clickable `input` types in iOS. + * 3. Improve usability and consistency of cursor style between image-type + * `input` and others. + */ + +button, +html input[type="button"], /* 1 */ +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; /* 2 */ + cursor: pointer; /* 3 */ +} + +/** + * Re-set default cursor for disabled elements. + */ + +button[disabled], +html input[disabled] { + cursor: default; +} + +/** + * Remove inner padding and border in Firefox 4+. + */ + +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0; +} + +/** + * Address Firefox 4+ setting `line-height` on `input` using `!important` in + * the UA stylesheet. + */ + +input { + line-height: normal; +} + +/** + * It's recommended that you don't attempt to style these elements. + * Firefox's implementation doesn't respect box-sizing, padding, or width. + * + * 1. Address box sizing set to `content-box` in IE 8/9/10. + * 2. Remove excess padding in IE 8/9/10. + */ + +input[type="checkbox"], +input[type="radio"] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Fix the cursor style for Chrome's increment/decrement buttons. For certain + * `font-size` values of the `input`, it causes the cursor style of the + * decrement button to change from `default` to `text`. + */ + +input[type="number"]::-webkit-inner-spin-button, +input[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +/** + * 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome. + * 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome + * (include `-moz` to future-proof). + */ + +input[type="search"] { + -webkit-appearance: textfield; /* 1 */ + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; /* 2 */ + box-sizing: content-box; +} + +/** + * Remove inner padding and search cancel button in Safari and Chrome on OS X. + * Safari (but not Chrome) clips the cancel button when the search input has + * padding (and `textfield` appearance). + */ + +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +/** + * Define consistent border, margin, and padding. + */ + +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; +} + +/** + * 1. Correct `color` not being inherited in IE 8/9. + * 2. Remove padding so people aren't caught out if they zero out fieldsets. + */ + +legend { + border: 0; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Remove default vertical scrollbar in IE 8/9. + */ + +textarea { + overflow: auto; +} + +/** + * Don't inherit the `font-weight` (applied by a rule above). + * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. + */ + +optgroup { + font-weight: bold; +} + +/* Tables + ========================================================================== */ + +/** + * Remove most spacing between table cells. + */ + +table { + border-collapse: collapse; + border-spacing: 0; +} + +td, +th { + padding: 0; +} diff --git a/infusion/development/css/octicons.css b/infusion/development/css/octicons.css new file mode 100644 index 00000000..e08a0288 --- /dev/null +++ b/infusion/development/css/octicons.css @@ -0,0 +1,221 @@ +@font-face { + font-family: 'octicons'; + src: url('../fonts/octicons.eot?#iefix') format('embedded-opentype'), + url('../fonts/octicons.woff') format('woff'), + url('../fonts/octicons.ttf') format('truetype'), + url('../fonts/octicons.svg#octicons') format('svg'); + font-weight: normal; + font-style: normal; +} + +/* + +.octicon is optimized for 16px. +.mega-octicon is optimized for 32px but can be used larger. + +*/ +.octicon, .mega-octicon { + font: normal normal normal 16px/1 octicons; + display: inline-block; + text-decoration: none; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.mega-octicon { font-size: 32px; } + +.octicon-alert:before { content: '\f02d'} /*  */ +.octicon-arrow-down:before { content: '\f03f'} /*  */ +.octicon-arrow-left:before { content: '\f040'} /*  */ +.octicon-arrow-right:before { content: '\f03e'} /*  */ +.octicon-arrow-small-down:before { content: '\f0a0'} /*  */ +.octicon-arrow-small-left:before { content: '\f0a1'} /*  */ +.octicon-arrow-small-right:before { content: '\f071'} /*  */ +.octicon-arrow-small-up:before { content: '\f09f'} /*  */ +.octicon-arrow-up:before { content: '\f03d'} /*  */ +.octicon-microscope:before, +.octicon-beaker:before { content: '\f0dd'} /*  */ +.octicon-bell:before { content: '\f0de'} /*  */ +.octicon-book:before { content: '\f007'} /*  */ +.octicon-bookmark:before { content: '\f07b'} /*  */ +.octicon-briefcase:before { content: '\f0d3'} /*  */ +.octicon-broadcast:before { content: '\f048'} /*  */ +.octicon-browser:before { content: '\f0c5'} /*  */ +.octicon-bug:before { content: '\f091'} /*  */ +.octicon-calendar:before { content: '\f068'} /*  */ +.octicon-check:before { content: '\f03a'} /*  */ +.octicon-checklist:before { content: '\f076'} /*  */ +.octicon-chevron-down:before { content: '\f0a3'} /*  */ +.octicon-chevron-left:before { content: '\f0a4'} /*  */ +.octicon-chevron-right:before { content: '\f078'} /*  */ +.octicon-chevron-up:before { content: '\f0a2'} /*  */ +.octicon-circle-slash:before { content: '\f084'} /*  */ +.octicon-circuit-board:before { content: '\f0d6'} /*  */ +.octicon-clippy:before { content: '\f035'} /*  */ +.octicon-clock:before { content: '\f046'} /*  */ +.octicon-cloud-download:before { content: '\f00b'} /*  */ +.octicon-cloud-upload:before { content: '\f00c'} /*  */ +.octicon-code:before { content: '\f05f'} /*  */ +.octicon-color-mode:before { content: '\f065'} /*  */ +.octicon-comment-add:before, +.octicon-comment:before { content: '\f02b'} /*  */ +.octicon-comment-discussion:before { content: '\f04f'} /*  */ +.octicon-credit-card:before { content: '\f045'} /*  */ +.octicon-dash:before { content: '\f0ca'} /*  */ +.octicon-dashboard:before { content: '\f07d'} /*  */ +.octicon-database:before { content: '\f096'} /*  */ +.octicon-clone:before, +.octicon-desktop-download:before { content: '\f0dc'} /*  */ +.octicon-device-camera:before { content: '\f056'} /*  */ +.octicon-device-camera-video:before { content: '\f057'} /*  */ +.octicon-device-desktop:before { content: '\f27c'} /*  */ +.octicon-device-mobile:before { content: '\f038'} /*  */ +.octicon-diff:before { content: '\f04d'} /*  */ +.octicon-diff-added:before { content: '\f06b'} /*  */ +.octicon-diff-ignored:before { content: '\f099'} /*  */ +.octicon-diff-modified:before { content: '\f06d'} /*  */ +.octicon-diff-removed:before { content: '\f06c'} /*  */ +.octicon-diff-renamed:before { content: '\f06e'} /*  */ +.octicon-ellipsis:before { content: '\f09a'} /*  */ +.octicon-eye-unwatch:before, +.octicon-eye-watch:before, +.octicon-eye:before { content: '\f04e'} /*  */ +.octicon-file-binary:before { content: '\f094'} /*  */ +.octicon-file-code:before { content: '\f010'} /*  */ +.octicon-file-directory:before { content: '\f016'} /*  */ +.octicon-file-media:before { content: '\f012'} /*  */ +.octicon-file-pdf:before { content: '\f014'} /*  */ +.octicon-file-submodule:before { content: '\f017'} /*  */ +.octicon-file-symlink-directory:before { content: '\f0b1'} /*  */ +.octicon-file-symlink-file:before { content: '\f0b0'} /*  */ +.octicon-file-text:before { content: '\f011'} /*  */ +.octicon-file-zip:before { content: '\f013'} /*  */ +.octicon-flame:before { content: '\f0d2'} /*  */ +.octicon-fold:before { content: '\f0cc'} /*  */ +.octicon-gear:before { content: '\f02f'} /*  */ +.octicon-gift:before { content: '\f042'} /*  */ +.octicon-gist:before { content: '\f00e'} /*  */ +.octicon-gist-secret:before { content: '\f08c'} /*  */ +.octicon-git-branch-create:before, +.octicon-git-branch-delete:before, +.octicon-git-branch:before { content: '\f020'} /*  */ +.octicon-git-commit:before { content: '\f01f'} /*  */ +.octicon-git-compare:before { content: '\f0ac'} /*  */ +.octicon-git-merge:before { content: '\f023'} /*  */ +.octicon-git-pull-request-abandoned:before, +.octicon-git-pull-request:before { content: '\f009'} /*  */ +.octicon-globe:before { content: '\f0b6'} /*  */ +.octicon-graph:before { content: '\f043'} /*  */ +.octicon-heart:before { content: '\2665'} /* ♥ */ +.octicon-history:before { content: '\f07e'} /*  */ +.octicon-home:before { content: '\f08d'} /*  */ +.octicon-horizontal-rule:before { content: '\f070'} /*  */ +.octicon-hubot:before { content: '\f09d'} /*  */ +.octicon-inbox:before { content: '\f0cf'} /*  */ +.octicon-info:before { content: '\f059'} /*  */ +.octicon-issue-closed:before { content: '\f028'} /*  */ +.octicon-issue-opened:before { content: '\f026'} /*  */ +.octicon-issue-reopened:before { content: '\f027'} /*  */ +.octicon-jersey:before { content: '\f019'} /*  */ +.octicon-key:before { content: '\f049'} /*  */ +.octicon-keyboard:before { content: '\f00d'} /*  */ +.octicon-law:before { content: '\f0d8'} /*  */ +.octicon-light-bulb:before { content: '\f000'} /*  */ +.octicon-link:before { content: '\f05c'} /*  */ +.octicon-link-external:before { content: '\f07f'} /*  */ +.octicon-list-ordered:before { content: '\f062'} /*  */ +.octicon-list-unordered:before { content: '\f061'} /*  */ +.octicon-location:before { content: '\f060'} /*  */ +.octicon-gist-private:before, +.octicon-mirror-private:before, +.octicon-git-fork-private:before, +.octicon-lock:before { content: '\f06a'} /*  */ +.octicon-logo-github:before { content: '\f092'} /*  */ +.octicon-mail:before { content: '\f03b'} /*  */ +.octicon-mail-read:before { content: '\f03c'} /*  */ +.octicon-mail-reply:before { content: '\f051'} /*  */ +.octicon-mark-github:before { content: '\f00a'} /*  */ +.octicon-markdown:before { content: '\f0c9'} /*  */ +.octicon-megaphone:before { content: '\f077'} /*  */ +.octicon-mention:before { content: '\f0be'} /*  */ +.octicon-milestone:before { content: '\f075'} /*  */ +.octicon-mirror-public:before, +.octicon-mirror:before { content: '\f024'} /*  */ +.octicon-mortar-board:before { content: '\f0d7'} /*  */ +.octicon-mute:before { content: '\f080'} /*  */ +.octicon-no-newline:before { content: '\f09c'} /*  */ +.octicon-octoface:before { content: '\f008'} /*  */ +.octicon-organization:before { content: '\f037'} /*  */ +.octicon-package:before { content: '\f0c4'} /*  */ +.octicon-paintcan:before { content: '\f0d1'} /*  */ +.octicon-pencil:before { content: '\f058'} /*  */ +.octicon-person-add:before, +.octicon-person-follow:before, +.octicon-person:before { content: '\f018'} /*  */ +.octicon-pin:before { content: '\f041'} /*  */ +.octicon-plug:before { content: '\f0d4'} /*  */ +.octicon-repo-create:before, +.octicon-gist-new:before, +.octicon-file-directory-create:before, +.octicon-file-add:before, +.octicon-plus:before { content: '\f05d'} /*  */ +.octicon-primitive-dot:before { content: '\f052'} /*  */ +.octicon-primitive-square:before { content: '\f053'} /*  */ +.octicon-pulse:before { content: '\f085'} /*  */ +.octicon-question:before { content: '\f02c'} /*  */ +.octicon-quote:before { content: '\f063'} /*  */ +.octicon-radio-tower:before { content: '\f030'} /*  */ +.octicon-repo-delete:before, +.octicon-repo:before { content: '\f001'} /*  */ +.octicon-repo-clone:before { content: '\f04c'} /*  */ +.octicon-repo-force-push:before { content: '\f04a'} /*  */ +.octicon-gist-fork:before, +.octicon-repo-forked:before { content: '\f002'} /*  */ +.octicon-repo-pull:before { content: '\f006'} /*  */ +.octicon-repo-push:before { content: '\f005'} /*  */ +.octicon-rocket:before { content: '\f033'} /*  */ +.octicon-rss:before { content: '\f034'} /*  */ +.octicon-ruby:before { content: '\f047'} /*  */ +.octicon-screen-full:before { content: '\f066'} /*  */ +.octicon-screen-normal:before { content: '\f067'} /*  */ +.octicon-search-save:before, +.octicon-search:before { content: '\f02e'} /*  */ +.octicon-server:before { content: '\f097'} /*  */ +.octicon-settings:before { content: '\f07c'} /*  */ +.octicon-shield:before { content: '\f0e1'} /*  */ +.octicon-log-in:before, +.octicon-sign-in:before { content: '\f036'} /*  */ +.octicon-log-out:before, +.octicon-sign-out:before { content: '\f032'} /*  */ +.octicon-squirrel:before { content: '\f0b2'} /*  */ +.octicon-star-add:before, +.octicon-star-delete:before, +.octicon-star:before { content: '\f02a'} /*  */ +.octicon-stop:before { content: '\f08f'} /*  */ +.octicon-repo-sync:before, +.octicon-sync:before { content: '\f087'} /*  */ +.octicon-tag-remove:before, +.octicon-tag-add:before, +.octicon-tag:before { content: '\f015'} /*  */ +.octicon-telescope:before { content: '\f088'} /*  */ +.octicon-terminal:before { content: '\f0c8'} /*  */ +.octicon-three-bars:before { content: '\f05e'} /*  */ +.octicon-thumbsdown:before { content: '\f0db'} /*  */ +.octicon-thumbsup:before { content: '\f0da'} /*  */ +.octicon-tools:before { content: '\f031'} /*  */ +.octicon-trashcan:before { content: '\f0d0'} /*  */ +.octicon-triangle-down:before { content: '\f05b'} /*  */ +.octicon-triangle-left:before { content: '\f044'} /*  */ +.octicon-triangle-right:before { content: '\f05a'} /*  */ +.octicon-triangle-up:before { content: '\f0aa'} /*  */ +.octicon-unfold:before { content: '\f039'} /*  */ +.octicon-unmute:before { content: '\f0ba'} /*  */ +.octicon-versions:before { content: '\f064'} /*  */ +.octicon-watch:before { content: '\f0e0'} /*  */ +.octicon-remove-close:before, +.octicon-x:before { content: '\f081'} /*  */ +.octicon-zap:before { content: '\26A1'} /* ⚡ */ diff --git a/infusion/development/fonts/OpenSans-Bold.ttf b/infusion/development/fonts/OpenSans-Bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..fd79d43bea0293ac1b20e8aca1142627983d2c07 GIT binary patch literal 224592 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 literal 0 HcmV?d00001 diff --git a/infusion/development/fonts/OpenSans-BoldItalic.ttf b/infusion/development/fonts/OpenSans-BoldItalic.ttf new file mode 100644 index 0000000000000000000000000000000000000000..9bc800958a421d937fc392e00beaef4eea76dc71 GIT binary patch literal 213292 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

JU{jq<7f203t|Ihq? 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

93Tg2c}Lc^2oc3nPS$ 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�LN9 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%0DpzNyo5m`c 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 gdXGe&xpSVmb3UZsF@w&B^gHI!dG<);L$9dk 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 DzdWN1 literal 0 HcmV?d00001 diff --git a/infusion/development/fonts/OpenSans-Italic.ttf b/infusion/development/fonts/OpenSans-Italic.ttf new file mode 100644 index 0000000000000000000000000000000000000000..c90da48ff3b8ad6167236d70c48df4d7b5de3bbb GIT binary patch literal 212896 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 I-Ko?4FC8~NI{*Lx literal 0 HcmV?d00001 diff --git a/infusion/development/fonts/OpenSans-Light.ttf b/infusion/development/fonts/OpenSans-Light.ttf new file mode 100644 index 0000000000000000000000000000000000000000..0d381897da20345fa63112f19042561f44ee3aa0 GIT binary patch literal 222412 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%0AG%b#%#Weyp=oz<}IGPqm z)8c4aT%)1Wt!Z(MiMFk2@iJ>#98HU(X>l|yj;6)Yv^bg;N7LeHS{zM_Yxd#ySkvN~ zeHg82+}v^bg;*NE&CYg!yli=%0AG%cHosL)|1w>IGPqm)8c4a98HU( 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%0AcdZx)e(&Qd#a*s5*M_SL=`WWXP>A<;1 zI&kih4xD?W1Lq#;z_~|SE2z3ca*s5*M_Rj8UGCf?P41B<_ehg_q{%(fT3Pim&OOrF zt?F8wd!)%d(t&f2bl}`09XR($2hKgxrE%p!>F)RbF^}4KxuAwln)XQ8FgQ}PTiML`v!w{Jv9&swVPMyZ%f3ET&x^GAvvQdj8VRcbe_;5Fg|3G~4|?JE6bRY?p@^{hekzUeV4shVAkSm-t)4 zcD^5M=li~PzUgb{JHB>#g+7&682!y%yS&2aZ|mCeigvuBT|S_z!Ux*%fp)%SYfoxd zv&yxrS@;Jd{joim>w5{j(%8=TYwdhL)h>PN%+jaP-$u1dpGJQV)y_9i?b4@Xf9upP zeH#5uQ@iwOwCdVXT|264M|Gd^(;2~M#IsPf8}+<-uuAG07W#XoRZ`ce(C1mDtj4Ha zIznrERq`I%fzR;i2(iC&*^qpW_yzF0;ENpdGN>JWI_Br# zMI)`SfmYZMbozK@XfD4OypNL2#2N50N}eFruUP2F5!dVARS@b|EQH56<~d@n#J{Vc za`&bU%H@pujRN7%h_#1M@fi4P(BGAB2wvxy8Sn}vvtSx@b)gnF(p4X>TJgAg&Wn5!@|(0_EL#j z%II$}H){MfzDUWhK)b|7wYbXF;>P>H&0=q(##7?~j&Un*6stbQ-*RpgxBgVWfFyML zZqz7ge1T)AOHBIs-y1dF4GP}@F7lClN7x7+Zkx1xqty3x*6z&7Pj?~FDcS=hxe-X5nI=PEZwUJ`Aj*e987&lUK zpN~|YHZ1gb-5Gd{>kNj#{h)W_bSgJdTJJ zL#OgF$KGSpDFqtMMyG#ITQ~v!o^rF%nM#4huF+5Y3Ex3%PCC_3bq2H=!%Pe_vF56y zL9AJ-aSXI>V{{v9#_Do^LlL9fShH7`{5xn3$FLN`QmomiK1Inf^UzrHP?uQMF{+L= zCw06P+y+|bv1X=5>pa%{)bT%pUP+6kd6zs3TJ5nIbM4;)t@hZ@8w!6;$!~}+fOei( zGgG5A9|zWajOJtIv5GZU)u)=J8t1D&#?q4UU6gqBEY@6gH0Xl8F4*frS6%3;i#b9U zy6Qq#UFfQdoey2;sta9p!B`iJb)l;+`PE?1g|52LRTsMILRVe-6)Dv#2lFx3RTsMI zLRVersta9pp{p)*)rGFQ&{Y?@>Oxmt=&B1{b)l;+bk&8fy3kdZyv}u5S6%3;OTHH= zwywI+RTq7&3te@gt8SR-hM8`3)s3#Y(N#Bo*p05b(N#CP>PA=H=&BoCb>ofQu+$Ap z-RP6CK9S!c) z-;M_N>2D)piBUPv3E@Gx)_q#Ja_sElKE~+#7^CmgN|gRewdi=&V(j$sjMVojyU_8< zE_}>s%E!Q88|B7EkH7aRL(q|o>Gvr&aO{!&ektU<&^hq^jFR_D6^?%mdX&6hs&L5} z@Ul@#FgjblKX}~7s5KoQ1w8`ZueNi^cfjv~9`){5tGV2x-u-GL$9fJ+_!jsFBjeru zjCc2|ja;JVu!M_+J@DTH|2^vODj|F9QLlIWq|V$!_Shp<9UlUnJ@$xUmpFUuA$#oc zuW~8=F6ivB$G^%YboSVzRxmny?4hlDXzL!b#~!lB9~nft=+PRW(b;1U*<(-O z?6D_s_SoZJAo280KI7~bOew$DA zJfq6J!*+A>pNREqu8Q5WHcJDJJtA+$IXB~$n|0SN@%X#hzve3RD7;x~$UfUe{z|{* z8u-1Ix)LeJ=n;9dvN9bb73q4UBAs6unoBnE=|jXGmp5z0$>koMH*4L=vAuM2&`-P_ z^hmwgzve2`uel1X_RYBKX01dy_Sn6d(PuN`&Ss4}F43>K3STDv0kPK!H%oQCDrY#G zS%uy#)%j|F4cc`#D-ZOU?Y*0o4LY`8ZPu!kWBc%C#;nb(KX1l+H?#h{83*1h?Wrzl zPjx9v)L-Gln{nXH(xE@SUY|ZduYZ7E{{Rm801o*84*39m^8xzi19;;DxZ(pi-UE1D z232HGMFv%5P(=n+WKcy${xBG1luMr%S``^okwFz1)jO;bt0IFcGN>YhDl(`dgDNtp zB7-V2s3LZs-}ntOs3LYhDl(`dgDNtpB7-V2fmM-VRL!7@464YWiVUjA zpo)yvBz>e+kwFz1RFOdy8B~!$6&X~KK@}NPkwFz1RFOdy8I86lbRMfBgDNtpB7-V2 zs3LIz-%^^jghv|dKEUPiQDMzmf=v|dKE-oPVTFC$tnBU&#bS}!A7 zFC$tnBU&#bTCY^3s}%!2|Idg$qV+PO^)jOMGNSb|qV+PO^)jOMGNSb|qV*~t)?YEA z^)jOMGNSb|qV+PO^@?HD!id((h}J8%^*cU{Xj>W4wlbn^WklP`h_;mxZ7U<%Rz|d~ zjA&aK(Y7+8ZDmB;%80g=5p63Y+Ezxit&C_}8PT>fqHR@wQN4_4TN%-|GNNr|MBB=U zwv`cWDW4`cOz83h6^3eJG?4h4i72J`~c2Li$ih9}4M1A$=&M4~6uh zkUkXBheG;LNFNI6Lm_=Aqz{Gkp^!cl(uYF&P)HvN=|drXD5MXC^r4VG6w-%6`cOz8 z3h6^3eJG?4h4i72J`~c2Li$ih9}4Ls=jlTseJG?4h4i72J`~c2Li$ih9}4M1A$=&M z4~6uhkUkXBheG;LNFNI6Lm_=AWE%?EhC;TXkZmYr8w%NmLbjohZ75_L3fYE2wxN)1 zC}bN7*@i;4p^$ATWE%?EhC;TXkZmYr8w%NmLbjohZ75_L3fYE2wxN)1C}bN7*@i-R z2Xw$Ypo4xC(vL#=QAj@u=|>^`D5M{S^rMh|6w;4E`cX(f3h757{V1d#h4iD4eiYJ= zLU_}3z?-Ipo$8hSD5M{S^rMh|6w;4E`cX(f3h757{V1d#h4iD4eiYJ=Li$liKMLtb zA^j+%ABFUzkbV@>k3#xUNIwecM^`D5M{S^rMh| z6w;4E`ccTk^v8$kj}PPd4~vu0;9)%fVS3HO^qPn9{D<-Uhw=P}@%-(q+HGgmZhP{W z{&qVn72C-lwzF!tomIQ-8u#_7Mtq}J?Y3)_H+t1>yT){*SM9blj&Eli-_AI`oe_My z)a6enL9g0v*H~=ydct;A?Y6UOw_Un&$veU8gkSS7q6c5|FQNxuDTEaU#E|J z9p!%=<@-(C!-3z#EtC#Nh5JCS6+a?H8DFI2SD;t+9?=<8t}__DR{V%Gb3*8~;zy(t zALEslN2C^i>b2rWq#1wewcp4r2Nip*cnAG`huURWvDb=supY8Q*R11p&BibLJb_o$cCh-fgSCzw z_`nWbx&BJmZ1h_34y|t(JrCNUYj(NUig&2(j9xw4p}foJInfTapvygL-Vu1lu|qE5 zGkD!>hg`zwwc;JP#133yhuTYLR(lz}V)m%t0VFIj${)4}eQl4*6C8V{{HWZ(v1g-? zO56VQ=io)7-vJ~{gPoMbpub&xl-~U){r6FN>!a$eI-B(Gzda55iNZ(KPmP|vK1v^a zls@<G}h(8aa z(m_-@NV^Q;&x82$AZ;;-KM&&1gZT3x{11wMod^C0@#jJOc@Tdd#GeOYeh}sd@#jJO zc@Tddl4A@8L;fWtp=Uiqdgpw#(5nPPYKvjvK1#fQen>6i603a(ml(n&hWs07D)C%( zNN*%?e2VyopxbLmGZg>TKXc}P0e`}$KLvjVx=n|YzaSn3|CPTwP5evHt4Tx2SHb_q zd45B=e*H}4uMvBn{7};SeYW7QIMUyA3r?C<)A zaMvNtt$YT1?2zVGj_tHVnp-)x-wtVR<=Cz}gzFAzZsihxvp*!~P%G$H&K!RO^qSaE z@DHF@`G)i>XT~Qv@&NcPO1$nj6dVHW$lE?_KKn4IpXhdU*7{? z6gu1f*z!8vxElJL(Q9a<`1cd8h^uI z*?ES7e*HHdX7E53~8?C_%iVyT#J6eOn;?cFf(53a{9}V zdc8mOs4=9z@7Uj!4>95lG2#r#4P0V37}778`3xSRhBP;H`64r;8KUF&fcA==>USrE zUjN)FH#2(vzEhs&*sD4_lU`5TDV-bbt~;5t@031uj7D=~8eH#Br7M?st!5|l@tw@X zcQOax$-H|fv+SMBuXl=bAMZ7joy?1OG9%u}TzDt*-<`~Sck1qRB(vR}%yxIm@lFK0 z+NCyiya@Ct{0;8$8{FeJxY}=UwckJk-#`PrxjuM|oP_t+D|YVW_t&2g`mX&J z`(dH)ns?a?|1R+-!u#dnyw_gn{?2>th3@0L*IwwH>M?lW?e>b@6CZ<($22-P_DJnF z-5XzWy^Pn7soy#FsQs82@Tcw_y!Bq_9^tp%tDHOHP4|ke;m62B9+xuD2aijW#xd|! z&@1qdOPR)hH_G>nn?U`Nx#F#$elJe(--Cz2e+0b_|2QMsJy^m6EZE8b0O?xr<&Y0W*f<{nye53RXJ4s$-(LuRsv*4#sD?x8jJ(3*SXCpw1K+#^46?AF{PKQX#B z_mH3Lp*8o=ntN!?J@OWR>ek#tYwn>n_t2VqXw5xb?H;an53RX}*4#^5?4=d<(h7T- zkL+a*xECkc3;%nW)9r=%y)eHQ=J&$1Mq(U{tv+a0r)=v{|DgzAo@Ru{tv?cLHIw&y&OdU z2jTx9`acN&2jTx9{2xUB2jTx9{2zpW-ZdZamU*H1KZyQ$zr14SIS1kYAo@QD|GZ^B zIEelaqW^>Ne-Qq^$tdtm))~IZ9etBK`WAD&Z!y>V7BjeSF@y6P-UkD};eAx-`P5U) zr+Cl1V$Y|ZVm{@!y>C(M`IO)GZv3|YidN=r?~0v2JjHyc>ZzpXQ+~I*|JL&ZzpXQ+~s{ z&c=MoZ+Lg?`IO)AZuET0Z+Q2So=^GR?v6d5^1I!AjOSB+x4S>}e9G^3H}+8C`4sPS z7kWO$``m?|Pw_r?q32V)&t2$@%WrabiRV*KF`x4L+#P#9#rxcao=^FG?k;iO`xNu3 zrvlHX{8o3D41=Ce@m6=C=Tp4ZUFi7~Z*>=XKJ^syDc<3(*z+mB!`*-D`IO(`?%4Aw zzr)?J=Tm-%yJOF%{0?{jmFH7_hr1CaFrRvg`IO(`ZuUH%@;lu9SDsJt4tF8#$b5>o zx2weSDc;^L^n8l9w+lU=;_dB1&!_yZcGbvyig&duF7la~Px)Q#I-dEI-_`Eext!nC zZuET0?`rpXJfGrS?LyC|o?<@bceOkAe9G@?9}I@+cf<6%Vfx)Lv#MdTondBG!{j`} zQv3N}SZX&qcO8~ijhxDw^EVOdC{;m zV{~3Ltd=!;o;56n9Xl5qCKnnOZ;Hu+hRK44nP&~_PF?P7c9?nA({h{D!P9aZVRDzQ z=V|6yPba-o@oCMo{!I8?wd2#8XSw88V&-Wa_37jp$MPustvt$jpN~{N90~mkHcxAw zrN2@}>LW*dHszv@vy|t+=fLMFe}OZ2p7pdw4WG?f)6>%D38B6BY3b9kN5H2wg7_F` zP)}>TaO`~PY31IkORcZElz}^bC$V=SKCOIpI5?zxkA&Wzc}Vv)DD)18L%J`;x-XUM zzKmaXdEnK~L#%clVzu*-?#oAdo%2v&k3Gabu0w%WI1e%Q9pd^Aapi}&=0jZVA+Ga~ zu2ARKwHdu)`HWg&RJafHJogz^kDp z8CHD{Go~D7OgYRd*k`3X7oAC=yRC$!^65?eX9F4 z+D{JaP91x;by#<5v|}9BJvw%;Kg{~!Vb%{1vwnD3_pVP_4>?T#JuDtv;$2UN#l!jF z2>HnoMy?}_Tt~=Hj?hL&@aiKt@DXy7BjhAU$VrZnlN`ZmkC2lbAtyOPiyWavj^KDl z@VXytBvQh7M5W07dXk2!D z4)nM@qH)Xhd%5BfBa23i!9+{h&wZ5qYVPbk7~3=Z>J35xJ|&dnw;a z+(*2PxS#l8(Bt)pyw}HnoiqDs#1W0u#>e^8BlUbpIV;6?8=3!l=bHcKfgX1N4k_ zMB|Q+^jheMMjyvs`5Dm|8qJLhd|!UQgU~BWBO2p;q#b@lBb{UKsv6OFwE>;d@n2K zak=xoY|{CER$RH<`G1!DKP%o`;`~2L{+|_xE_oGn=AV_%xOQj$Su+2u9LBLT|13Fw zR^BqI_;>u3Gyg1^e^&haZ2!R-ocU+T{Ig{KSu+1DnSYkdKdTnm5@hj{tXf3Jljmpg zlPr0DmOMX8o}VSp&ywe7$@8yfJ4RM&aqLyutlYrp z96l=_aQp+%8GDwDJxj)(C1cN$v1iryeWYh?Su*ylp1603^Y(1u94|}uo((*A%Sw~3 z(HTNk&)vI3ZrvveK|)dqP%9cKiqb6`6dNOg^jr?vl`- zs=qr<6FYm)GTLUz-m_%yS+e&m{XMH*;J@+;SXO<(v9tFq+55NEBZh--t49c>=kr2m zCf`;s7D^#1mqLu*3HEJqB~&d&@1Dxhr*ibE9DOQBpUTmva`dSjeJV$v%F(BC^r;+u zDyNbCM3AFT<>*s6`c#fSm7`DP=uzNK9!?S<(N(9=uzNK9!?S<>*s6`c#fSm7`DP=uzN zK9!?S<>*s6`c#fSm7`DP=uzNK9!?S<>*s6 z`c#fSm17p1qfh1NQ#txnjy{#6Pvz)SIr>zNK9!?S<>*s6`c#fSm7`DP=uzNK9!?S<>*s6`c#fSm7`DP=ug*Q_s?;o~2JcOP_j{KJ_ep>RI~Kv-GKF=~K_r zr=F!x9itx|V+HIOz2+Fb<`})^m@?JT;25etrYux3>N>{vAjkL~lOjJ7_;?DCk}+MjxMd5oFbG1~MP{2zn)V{m>9 zwvWN&F_=6CZ^x8%j0VTaC61Ft94Cu7P8M-ocXVE#dS&3a`kjzG;W!z>ap~VBp6?%* z=8c~3AD2pvp6?%*K8>Dd9oMxPJ@-FOws4$m;W*jCab2Ox$r+B5GaTn?k8`!h$sCT8 zIXp)zJjXiZa~$&=$2`xR@p6Ixr?BJ_8uCz#>teZrLcNt_dKrMI?Ha@i$1r_P{r8vT8)cJUKu zK<}73L5nL(^_gjFjc*ze21H<~%QRo|ie#%be$B&hs+od71OP%z1vmd49lo ze!zKtzXz+@9x6$A7yrSN1^u4^I-fi@^Jg=yC8~rWME9%|Gt)QQ0 zc}2b3=x^CxQSUbTE?$uijrO8faG_VY@>kT;U2*~Rw>+i@rr?~f1taqJKd+D64dYw|MIbJOMA@}t|YWX4O{~>4iA%FWL-0VlV z*^g-PAJO7JM$bP+&p$@bKSs|#;rO3${7*RkCmjD%j{hmg|CHl@%JIM8_+N1RFF5`e z96!qOqa3f_92F;{9DiEnQE*!2Lb>Ij(CZ1O)oLzr-#M*TbBR{~PU9-4xyRGE%4wZV zN9t_GjXqv&rz6#N!@>;s2<1cIe$eZ*r}3ZD>goPlkCms@f?I_C{lL>&UGytd<*cgnB!Ppp#jltL$jE%wA7>td<*cgnB!Ppp# zjltL$jE(U$^cYV=j|FCIjFs&%7#oAJF&G#V{=@@qTjb z=4-UhYqZX5to^qr zfkGxw$OH73YkD56DVW? zg-oE32^2DcLMBki1PYlzArmNM0)qrfkGxw$OHqrfkGxw$OHQ$QcxJ28EnKA!ks?85D8`g`7bl zXHdu)6mkZIoFOYdLsoo-toV$4>3nbog`7blXHdu)6mkZIoFxxDOCETZJn$^ee3n)| ziyNOM4?Ih&oh1)E8$2Yo&yok8B@aAH9(a~K@GN=YS@OWMwA5ML^(^gm7I!_1yPm~e z&(dCJbuT`r^T4y@foI7B&(b1i@z}HEfoI7B&*HIXao4ltfoI7B&yfe7BM&@B9(XSK zs?K?idpSoQc#b^q9C_e5^1yTCf#=8r&uNyY1-3t}=^d}rJ6@+3 zyiPB89W}m=8vl*Gi@!y6zeRPwMN7X$OTUGm-@?x%wMtu6gA16 zPI9M{_`oDSFo_RL;scW~FbM;b_`oDSFp0V*(bXhAFo_RL;scZDY7!rq#0Mtvfk}K| z5+9hv2PW}>Nqk@uADBdSllZ_SJ}?RMlQ2Jt4@}|%llZ_SJ}`+7T%biR&>|P`feZM+ z1$^KFK5zjaxPT8_zy~hSb{A;73;4hVeBc5;Z~-5LZ(p26bhL_AyX)13WZFekSP>0g+iuK$P@~h zLLpNqWD12$p^zyQGKE5>P{0g+iuK$P@~hLLpNqWD12$p^zyQGKE5>P{PLN20^izwtG3b}|vE~1c&DC8mvxrjn8qL7OyPLZ(s3GzytUA=4;i8ih=wkZBY$jY6hT$TSL>Mj_KEWEzD`qmXG7GL1r}QOGn3 znMNVgC}bLiOrwx#6f%uMrcuZ=3YkVB(Mj_KEWEzD`qmXG7GL1r}QOGn3nMNVgC}bLiOrwx#6f%uMrcuZ= z3YkVB($R!kV358rjA(v3dB@}WA zg$R!kV358rjA(v3d3<{Y+Au}js28GO^ zkQo#*gFCls z3YkG6Gbm&Rh0LIk85A;uLS|6N3<{Y+Au}js28GO^kQo#*gFCls3YkG6Gbm&Rh0LIk%P8bB3b~9z zE~AjkDC9Bkjp6KG77njLN23_%P8bB3b~9zE~AjkDC9B< zxr{kjp6KG77mOg=`6~NFhRHp67+$n{h>|h=jw$BcRu&t|a}- zCs&k_o)G>MvG+P&A;-HS4LJ6S-<70if>)Bx^seZxjlTo^dpK9f_pb2ECs(8y|CN9F zwUa(UDYTR>3XCh9jT1hC0;GO5x9XoHlqDi zROhR5wtPjZ^L2WE$Q7y1=+($8%A$Q{uSs4}F74PE=@n(vj-8iYQF{rMQR}bBPOm7h zcI>svE7G3olJ-=WvTOYnS?d+D)+^GXKfPX`zCo{lgI@oJ`sQfxhT6sG8sDIAzCqu7 zLwvf#>$Gp^%*N}5v#4SgRm`G_SyVBLDrQl|to&gxnAJSxywIwcMHRECVpjDItHfuX zMHRECVir}*qKa8mF^ei@`8}LjR56PxW>Li~s+dI;v#4SgRm`G_SyVBLDrQl|EUK7A z6|>ABW>Li~s+dI;v#4SgRm`G_SyVBLDrQl|EUK7A6|<;f7FEomidj@Kiz;SO#Vo3r zMHRECVir}*qKa8mF^ei@QN=8(m_-${sA3jX%%X}}R56PxW>Li~s+dI;v#4SgRm`G_ zSyVBLDrQl|EUK7A6|<<~O;qtFs(2GsyooB_L=|tMiZ@Zko2cSVRPiRNcoS9RQAHkA zK zEIcJYDX^=vpeyltysNXoNLon#3&(p`XCdibd4;6c%nQ0&AL(74g`{`r6{INtm3MU( zv=78+H!f%_b}io3S&-6P;uXR|(mQqvQk~JeIt%RTENG1Ok>1r=NP1UiA^AGTdsk;6 z>0O-#snqB3PQQXw>e#zF3u4dcU7ZE(3^96FXF>Zz9D7%1fnA*ic6Aom)#*27>#xvr zL3-BN*wtBJwWq+Y&H}qS3n;vx7V+`job4;1cXbx@y}z-?S1aZFJP!~*2zsTcpkCne zUSjX+EU;=+P%m)YPq}w>7StDv-ql$MysNXIJtRi&>MW446nOrk5IA!vu&cA697gx6 z{Uk1N7EuVitFxdUrvM^BKIWv!K4_*sHY#c6Ao$cLnLzTzOY#LAy|lKL^naJ+VMfEYK4R>WMy& zS9%NV>MXFUv%s#-0=qg3tc(@ZPkrPRM|xLhfmO1C`l(}ob6rqw=6mt3&Vq6?qjz-{ zv@q&7y?u%WW1=idO>ghhxyE+T% z?~a`t6x3U{r2OvnL7~1g5-OueCDhkW2(^+g{5kQz66+ZamAndSCx&9}#1QHkja0(B zI)!>hLwF6SXEYRRH=1z0kCZ-rq@F|;YR`sHdp3mHvmw-;4WagI2(@QJsAn{U+NUAZ zGaAB+pq|l4CB%kN&m9XF_(gMrMSD4pZrRt>`1~rg<+w7Nkgb7 zzl6h-XrHHI?IIA$mxS^qp|V_|en~^9ooPbt6%;D#6DsQy{xiqRofK>5r%*dTh1&Tk zl*WYG`6<*MLgByiSK9fhSWkWl_2idOy9b4GB%$_y3gt*b?f(=`fZG45So=SP@*<(0 z{1X0-zt#Rv#d=~$s3*UK|3R!>g^H(%_2if08Dc&8rC3jXrBbwJiq=fgnkjja{)*O2 zsWo*r?_LvbaJ}BWChRnaYGohUO^KfTQmiMxgnIHzC>Ijy$uFUtN2n*igmNCCp8OJO zN2pLwehK9~LV1o*PksrtBUGqg(h%y&FQK0N5A^-CIx_2ifETa;*z zsABCA70Q2vdh$ys{}JlRFQImo3*|OK{gQ@IZX=Z22(@ces9AtevjCxH0Yc3JgmN1p z+K}7$Y}yGd)RSLA^kBD9j0WU3=1n_Dg?jQ!s3*UKavR~lfwZG{wW&la@IpQLC6vzy zHDeNLr>Ia*ehK9>Lb*yx-N1k4y=}s4U2azq>X$Txp^ulVIM#kn;e0-|C#2*mE?K~* zdh$#0b(Fu0a{ZEqO8zsk_KqsnlV7Q8)bCCRON{u*HO}!A+fS}>jwjT7P^kH!P%}ZH z_I?QMC)Y@C#x$sTpJKbmHO}0Gn%@bxf|}DQ)}9cdW^F>v*MxSDYn(v|HO~@iz9ZD! zDs_!>B%x+fLc7N`&WMEC`ysS@%)uq*cprjdyTKgXU=BVoNBM(Gv@2V9#xZ?ij`!Lr zzF#gh2er>Z=W|f_9JD_^QC~%HOJ;%?3+H0p+dzFQHl1un~%C*-{ z@ehbK%T{bv%s~%xP{JIwzRGFMIhy0^Q`&Bh#)8q5-&=iNXm7t(ZDF*xU#mMZ+TpKN ziwJS=Yw_)C@om3j+U54`YsI|LzI`peeXV+mV|`C5)HkF;d$`{mZM28`&Cy1E|CREa zqm6d*Yq{EMx!P;-^K0?*xwOSxT464&FjuWGnwsm?C!y98Qgh*du2+*3+h^v&{9Kry z3-fbfelE<pA?MWfJAO%ep6gsf_%lj0cUEk+=fd_}*q-Z^B9;8X zsGen<2f8=S<&NgU|6G3ymMVh(BKR+Y|04MJ+c5p9`7eV1BKR+Y|04J=g8w4;FM|If z_%DM0BKR+Y|04J=g8w4;FM|If_%DM0BKR+Yf4_-xH05_t8apC_+&JO=(6^e8+Jub!v%L&qLN=V|@W z_nq))T2T{HNhRO^%UqnTnfQ;cSc(M+-Wwa%bb zq*iqT9lY!suJVmK*A zGsRkAR_%c`Qw&SRXr>shiqT9lj1{AqVt6Y?GsUo1jAn}Auo%r0qnToj?>?tBQw+Do zXr>s=6r-79G*gU|6r-79crHdW#jstBW{S~FF`6kxGsS4882;zO|9tqL4~O&Na6X!u z50mp@az0GXM>F%`b3S~|hpYLpG#`HE!^V7gm=6Q^g2qbFSP2>{fu9oiDS??1m??po5;!S=lM*ymg2qbF zSP2>{L1QIotOVXl&{zrVm7uW_I4nV9C1|V!jg`P^2^uSb+Y&TZ0>dR}tOTA*&{zp< zm!Po{I4?nCC1|V!jg_FW6565!jg_FW5;RtV#!6_B5;RsqyOf}@5?ZGOjg`;}C1|XK zwkSbkCA8N9_+J433*c}894g+l%knZG*gOZO1a-s?zfaXE#*#2xzkeav6Oo(MKh&nrWDPTqM1@OQ;KFv z;h_}Gl)^?Snkj{oQZ!SFW=hdaDJ+$unNqkaMKh%^R*Ggy;jI+Sl)_#qnkj|DQZ!SF zW=hdaDViyT+fp=Bie^gDOevZvh2c^(QwqglOVLaznkhvyrD&!U&6L9bLik?@ z{|n)8AsjA5GYesIAxtiW$%SY}?`fA;EQHU6aJ3MY7Q)X$*jNY;3t?a(_r8$3Uda6} zZs6jsO!|?I!3K*%z%$^%m}Dw3RJFV3WQ!^xK3?kJWYwS@$1wg#)Z+v*3xJdm)&uOT?7(H`Y1P_bEgGLV`s6(yb@Ez(u#47w^~CnfiR zo52idmKLcO=x^1&jz@?+Ct9RlVAOtip?O;*{rkx0iK$)6ce(joB()p06IJN><|46b zG^>lGXCd4!g4;!?cM-Z>B*p5?YW>mFVida=#V$s%i&5-i6uTJ3E=IA7QS4$AyBNhT zMzM=g>|zwV7{x9|v5QgcVida=#V$s%i&5-i6uTJ3E=IA7QS4$AyBNhTMzM=g>|zwV z7{$Ju>v=b4em7@+H|KmefBPQB+4nHczK7oW9@_eP-Rb$%^}17`uHWc!_Pr{Pgj#_V z-XKoioA?l@H;pR(DDlTYy=hb>def+IDY#5)8t?U+Muq=3_%-nBpmx-&daD~o z@!a;k3Af{W6Q{r*fv=+EO}-w#X;ior{8Nt6 zN~}t>5-aqq`MrMAs8CM?2=%S2@GpI&-!v+01e?HSumx-d+rUqQp8@{@{4DtPc{+Ul zR0L|>Uh#lxc^~}05B}c=|L=qUGWaip|1$V5ga0zW=`~db|7CvDt77wC2LEO7UzRZc zW$<4H|78jDU*%KVq5%zs(R{FnJnuR`-*mNNfkDf3?j|7CvDt77xN1pb%6{}T9L z0{`XkUk?A}@Lvx9Ke*^sA0RL6+Uj_eF@LvW0Rq$U0|5fl`1^-p>Uj_eF@LvW0Rq$U0 z|5fl`1^-p>Uj_eF@LvW0Rq$U0|5fl`1^-p>Uj_eF@LvW0Rq$U0|5fl`1^-p>Uj_eF z@LvW0Rq$U0|5fl`1^-p>Uj_eF@LvW0Rq$U0|5fl`1^-p>Uj_eF@LvW0Rq$U0|5fl` z1^-p>Uj_eF@LvW0AB6u8!v6>1|AX*f4gb~fUk(4&@Lvu8)$m^p|JCqc4gb~fUk(4& z@Lvu8)$m^p|JCqc4gb~fUk(4&@Lvu8)$m^p|JCqc4gb~fUk(4&@Lvu8)$m^p|JCqc z4gb~fUk(4&@Lvu8)$m^p|JCqc4gb~fUk(4&@Lvu8)$m^p|JCqc4gb~fUk(4&@Lvu8 z)$m^p|JCqc4gb~fUk(4&@c$wB{}B9t2>w3=|26Pm1OGMfUjzR&@LvP}HSk{p|26Pm z1OGMfUjzR&@LvP}HSk{p|26Pm1OGMfUjzR&@LvP}HSk{p|26Pm1OGMfUjzR&@LvP} zHSk{p|26Pm1OGMfUjzR&@LvP}HSk{p|26Pm1OGMfUjzR&@LvP}HSk{p|26Pm1OGMf zUjzR&@LvP}HSk{p|26Pm1OGMfUjzRihW`)4|A*oK!|-1V|F!U63;(t7Ukm@W@Lvo6 zweVjH|F!U63;(t7Ukm@W@Lvo6weVjH|F!U63;(t7Ukm@W@Lvo6weVjH|F!U63;(t7 zUkm@W@Lvo6weVjH|F!U63;(t7Ukm@W@Lvo6weVjH|F!U63;(t7Ukm@W@Lvo6weVjH z|F!U63;(t7Ukm@W@Lvo6weVjH|F!U63;(t7{}K5A2>gEp{yzf$b?{#Y|8?+R2mf{O zUkCqn@Lvc2b?{#Y|8?+R2mf{OUkCqn@Lvc2b?{#Y|8?+R2mf{OUkCqn@Lvc2b?{#Y z|8?+R2mf{OUkCqn@Lvc2b?{#Y|8?+R2mf{OUkCqn@Lvc2b?{#Y|8?+R2mf{OUkCqn z@Lvc2b?{#Y|8?+R2mf{OUkCqn@Lvc2b?{#Y|8?+R2md$1|Bdi}BmCb8|Ml=+5C8S> zUl0HF@Lv!A_3&R0|Ml=+5C8S>Ul0HF@Lv!A_3&R0|Ml=+5C8S>Ul0HF@Lv!A_3&R0 z|Ml=+5C8S>Ul0HF@Lv!A_3&R0|Ml=+5C8S>Ul0HF@Lv!A_3&R0|Ml=+5C8S>Ul0HF z@Lv!A_3&R0|Ml=+5C8S>Ul0HF@Lv!A_3&R0|Ml=+5C8S>Ul0Euh5wJj|3~5fqwwDV z{|)fp0RIi}-vIv&@ZSLc4e;Lp{|)fp0RIi}-vIv&@ZSLc4e;Lp{|)fp0RIi}-vIv& z@ZSLc4e;Lp{|)fp0RIi}-vIv&@ZSLc4e;Lp{|)fp0RIi}-vIv&@ZSLc4e;Lp{|)fp z0RIi}-vIv&@ZSLc4e;Lp{|)fp0RIi}-vIv&@ZSLc4e;Lp{|)fp0RIi}|1tRg82o<> z{yzr)A5YXK{w{SBpWei$Hzho?zA3Q^^!)m!#A@)fS}(dO;kCG%lAi#Vxg>cDxE#z= z?)A5usO2VVxhZvzNWQtDbtT}!EJDRnKSuBFtql)9Eu*HY?QN?l8-YbkXt zrLLvawUoM+QrA-I`eW)^MqSIOYZ-MdqpoGtwT!x!QP(o+T1H*VsB0N@Eu*ew)U}Md zmQmL->RLu!e?nciP}eQgbqjUfLS45|*Dcg_3w7N>UAIuzE!1@jb=^W;w@}wD)O8DW z-9lZrP}hH5XYdLi-r>^DHwVb+^Q`d6pT25WdscSiPEvK&K z)b(GfYXxRLfvE2wJ)b$yb$ zZl$hUsq0qix|OsIQzmAY=Fu3M?=R_eNyx^AVeTdC_->bjM>Zl$i<68?VS zwuHZ5xGnJkY4tYw*a_huNyE3v$BchWxfOm};!i-YnctSsK3?HN;1;kK+zRR`9)0>f z;uk^hAi7Pyr1Q&{j5qlh`I3>kl7CE0Ey@2v{7L@G-zMB9zcTt;gWKd+Liv@^-+#U@8R?<2vX`Mz|r;*laq;(o;okm)x zk=ALXbs9C+oKH2cyL8WV1v#)Mm^k=ALX zbsA}%Mp~zl)@h`58k26FMp~ya>DFmXx^)_9okm)xk=ALXbsA}%Mp~zl)@h`58dGka z#*|y9G3C~2Ou2O$Q*NEclv}4U<<@CTxpf*-Zk@)ITc2hPP&TYlgRGcx#5YW_W9cw`O>2hPP&TYlgRGcx#5YW_W9cw`O>2hPP&TYlgRG zcx#5YW_W9cw`O>2hPP&TYlgRGcx#5YW_W9cw`O>2hPP&TYlgRGcx#5YW_W9cw`O>2 zhPP&TYlgRGcx!>T7IT7IT z7IT7IT7IT7IT7IEfdgSR$#YlF8ocx!{VHh61;w>EfdgSR$#YlF8ocx!{V zHh61;w>EfdgSR$#YlF8ocx!{VHh61;w>EfdgSR$#YlF8ocx!{VHh61;w>EfdgSR$# zYlF8ocx!{VHh61;w>EfdgSR$#YlF8ocx!{VHh61;w>EfdPu!OH^Hh7{)8Jsc|he-l-lpnz~ax&iDc4 zHg~Ew8TFfuLOo+H^b<^Xsy7+EAO24DBjbzU_l@coLMdP8k@Ai0E|Kz$Wnej20ak)l zU^Q3+)`E3lJ=h?;Tg==o{4{92-3>E$!_3_!@)ZHLjz^b=0_y8rM#1=) zHLj<|_0+hY8aGhm25Q_ujT@+O12t}-#tqcCff_eZ;|6NnK#d!yaRW7OpvDcw+4HEyKFjnuf28aGnoMrzzhjT@

    tNNc zgH^i@R_!`iwd+Xy19j~N_2jAkYA>i?0ad&od=k_zcBgx)+N^iG?Ogr6GgNaz_=p`K9{`l+#wgq~3q>WOBd-V-7GHRzo=9f|)1dVfww z!cPQruu9pHm>@m_o(13ZH7BnH{k&C2vKaJEs*a?e4DDb&vm@yzLpxa2>`0apdv8xi z@;YMgl

    o8+@-@Iav9JaRqTDcmpL>#2+NC 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 !}#gv~NV!5|5YF|kE)J0y^zWbk4>=%|6F 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 literal 0 HcmV?d00001 diff --git a/infusion/development/fonts/OpenSans-Semibold.ttf b/infusion/development/fonts/OpenSans-Semibold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..1a7679e3949fb045f152f456bc4adad31e8b9f55 GIT binary patch literal 221328 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%0DJH?LFC28_mTUAZOar9j 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

    MAzfu-#(7W5VH7%hxxNU1% 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 b^2ROSp1r5Xdx>eYXCxdsa=Oc~d6M+Mf|cc} literal 0 HcmV?d00001 diff --git a/infusion/development/fonts/RobotoSlab-Bold.ttf b/infusion/development/fonts/RobotoSlab-Bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..df5d1df2730433013f41bf2698cbe249b075aa02 GIT binary patch literal 170616 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

    4Fsce1hJS-NZ# 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 literal 0 HcmV?d00001 diff --git a/infusion/development/fonts/RobotoSlab-Thin.ttf b/infusion/development/fonts/RobotoSlab-Thin.ttf new file mode 100644 index 0000000000000000000000000000000000000000..fee11da1735e315c86ba9c23a27c3cf7c55a9c6f GIT binary patch literal 181156 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 + + +Generated by IcoMoon + + + + + + + \ No newline at end of file diff --git a/infusion/development/fonts/github-1.ttf b/infusion/development/fonts/github-1.ttf new file mode 100644 index 0000000000000000000000000000000000000000..af913ed0266ff1446a649a3741f55cfd574a2124 GIT binary patch literal 1288 zcmah|OK1~O6uo!8nVB?c^KF8ZAzw=&scDl~DD?wc1goIb?qXw_HpQk1HbT4W!j&r* zx_9N$r3(??dG{0n>@Jkx6Tc4ZTlNL~exY;_uSx=3Had*J?deYZ|^Tx>Gz@08Rq_vq~c{b0ZdGcT|vji)!<#7b4m{C{!f$p zCz8U4)PZ42(*vwea2!{xQq5KJT5hJm>0D)Ig3}O7mFfal3!E=7qAsqMVsVJL+{6V= z$289bZfAyC1ftl6%W+7vQm&;kdFI4;{94x18KazHGsI&d4oBIDT4q?0eR_OyY&6QO z$cmxMs>yavAJdJX>C8qZ#eSVtOHw7~a40wxm33BtnRP3BJvN?T&Sz4!Sw5UhrEBG> zCEG5JNQS1wN3B9E=vSmfV1!l4A5vt0AW+O&VZ#^H)ohXzk}Q10kfj7Cv#K`gGs0H3 z7zp?!+0eA0k<4kDA&nGmdugg%OQ$BCvvE%3{qt9M9tP)6$r8s-bPzcBGFZJgkG^-h zLIiMbqJPjPrl68Cbh<(y(VK%Iju|_h4n_w>Xo5aD87g(XOtyRK+X- zFM7HRobj*%yzF6>Vqk7}Y51~A9yV!~8lpcH1B&o;vFqt#*VDzWr;A-r7i-9!^KxC! zP55@Gjk`nJ^njZ9ns;c^VK!Z&0!@Pr?b&Q}+MUk!d6DiRaf6=H7S&;JE`e@3W<9d8 hqlqG-M4ftA*PuP3J$6q~&lve-% literal 0 HcmV?d00001 diff --git a/infusion/development/fonts/github-1.woff b/infusion/development/fonts/github-1.woff new file mode 100644 index 0000000000000000000000000000000000000000..49cddbe378c5a26f64ba1397117e6fae1aa5cc20 GIT binary patch literal 1228 zcmaJ=-%C_M6h5=}?hiLxwK7sGHt{6_+a#o4P@t{_#)?+H1huK@R_iTyw+w|Ib_Mlh z=(>tx#VT1nRP+=*Sbu>JKKRf}Ar&I@gM`F|Ew*p&y{1BR?mg#x=bM>t=FZH$<@0)d zXU_PD)EROTOpVF-FRSo+-Qa%`iAw1o!j+n@et#K})DF{gTbun&;J%_RmoAQfY;Ofgq?Dl6U0D!6T7%&Za3{fSldd>P3Hm#r zr<_M^)7@H2ZT?_0IB1G0=?w*szhBovVSLjw^l|I1poLVGgb*$-#;KiMz?ZiQZ(lWBOS##yr*Ef^D-4s4E1^wx$7&5 zPY^ATn9tx5^ZLn%bzR&#wjkoPaOMh*M`o4eJ#*p)S?~yQFHq)pCIgQCVv+e&sG1}6 z1_VI@y>fIFlyB3#cp>N5GHsGm5Y4(~->v1$qD2+&QOj8j!|ZacI79spvEcTYEvpIp zux7FmJ+by$k~;)*(F=2o0G2C~W&y4?u>xFTViowTiLJC9mC@fub}BQmlMYg&{7y9s zjMOx+p=n@4)4+zNfelRq+c5U9Io8k&Kv$z6T%$HRN6pkuAqwb~n+{MZc~GtEv-%rt zAgK-mTPQ-;$Pa;yZC+h0Om6gO#w2nIKZTK-z+Ix-h^O=^PMgapmHQ=c!+-1#7y9_R literal 0 HcmV?d00001 diff --git a/infusion/development/fonts/infusion-docs.eot b/infusion/development/fonts/infusion-docs.eot new file mode 100644 index 0000000000000000000000000000000000000000..9442001ff9cf97850cc9ae4a7516dcd605b9b81f GIT binary patch literal 1336 zcmah}Noy2A6n?Mwt{!@_bRt=ZL&)MGWJ9umWV~nyL^MhaLO|QeB$JTIjLC?JB6#oz z%)zrK@#xWu9z7`Jke?6~bBH1e=BA8ab#;~w0pCnleeZi)b#>JnGl^apL`)hbg{jJt znZA+arLU4-eV=zu+lYKxrW}>1h^ItraPa9S=$HT-xN*^uUhgVeE5JaTaXMrjSmpfSvX9N18vGJ90}TdRSiBh0lgtwtOX889$0 zywXt?#Uc0TcvSMZ?*F)!+Hc2dxCrWd4NYJcyy!(u(#7nORBf0)Arf6g7YkA zpU-v3e->1;gv}!e$x2Fw@>f&W^^{ndcU@-Nwi|^AocSR$?TSDMUpLI5CtibXTg<|7 z0`GB~W|(HZ@B+t8Y3(a+lMwZ0!G&|ZnVoT>c*jAinX*V5kUCd1i3gqxZ}hwd%d$E3 z$ZJBlt{IluAU3n6u4ySD_a)woJJyHt-Snjc^3>hgabI>zvzp^wz!^NcT8NY1QhhSu z{liQ$DiWNNW07T$8D|k9@LfBo8bz2i8AqzZk;Bp8)0^1JxO#`H)qoG9bl|So#{iy< zv5AZ6$JoLtAC9r0i@4G_U4{!r=2TeaR9NLySmjh$0?06ijawaeP*-atgvz#jx zOQp3_Jto;-5&<}dvcps;gASAjl6@zHo~H$H_h}2`RMfGq#T~0(Ze?`cB{*CD0rq{G A#Q*>R literal 0 HcmV?d00001 diff --git a/infusion/development/fonts/infusion-docs.svg b/infusion/development/fonts/infusion-docs.svg new file mode 100644 index 00000000..d8ad520f --- /dev/null +++ b/infusion/development/fonts/infusion-docs.svg @@ -0,0 +1,11 @@ + + + +Generated by IcoMoon + + + + + + + \ No newline at end of file diff --git a/infusion/development/fonts/infusion-docs.ttf b/infusion/development/fonts/infusion-docs.ttf new file mode 100644 index 0000000000000000000000000000000000000000..ed3713c072bbcf697a05bbae06f778549bdbcf0b GIT binary patch literal 1172 zcmah|%W4!s6g}1Nt{!Ic=tS}$4j~U0k{6N~kc=A*frvzjArR1ZGRaKHq(?Jiq6jYh zfP8@~ap}^HE?p>O;U@&dETV`Dvs1=XU7Z&QR?=1HoO|!NMO6(1fB?^7V&vxS;W4lG z_ggCO`Q0m4qgvzM@@JB*K) zDVV!rpZp_vU%6V}GJy{A@8scnT#Rr5ufXOUnQF9EgNqsR40(Pds+JZyUjHD!NdIfK zc(blkt-6ZCG$3|hGd3$$s7$BpA$znllYn4WE^*Nsy(cD~(TV8XV|#v%+=4^Fpmzajr-G7bvwW*gnpZf|69J_-dP` znUQNtzAuF9x~)=%-qNU@^JOSy*0k)=r$LMBIzmX#3xg+JhGpB$G6+3CV|1_iZBjPd zWuM8-c45v->OGHEb2XW>IGTLfCLaW9kTeP7;o%EZ(G1fh<+MTZ8zh$|UYfb&GgD#Wvc>biTt^K9*vMODL+hV);~* zr^eb-W9_N2_S9H=YV5FfGOg8~75c`g@{6&7J1F5HHc?4f9-|n-2-&HeN-?g+@y1yZ yw^+D}M_5NhgEIwuhRV8*JTpo}szpRz!ZNk{*ycQww78LOV@Mrk@^e?<-{UXht%+a& literal 0 HcmV?d00001 diff --git a/infusion/development/fonts/infusion-docs.woff b/infusion/development/fonts/infusion-docs.woff new file mode 100644 index 0000000000000000000000000000000000000000..2580f7b1468d1bc3e6db6a4e5a87bb765322d2b6 GIT binary patch literal 1160 zcmaJ=QA-q26h3!nW*t}C)lzY_Vhei`Uux3LwcMTEb|+UVlu$4> zrD(yDFfDV1q{p861BMU%fF7j4z=t5x99U!e?#yhi5Z&2x&i9>r?sxA!GdmIt1cKe& zK_YRAT!bOEa{sS!ArSB(zYR0E^{n+R2D=)Xh#1dZ<0hZnd*2^XVnmK^@D6S@J?p)L zN`mJWz-8OY!XaeHHMr9> zsgt5gB!rv~=V{~C>s|gHQxi$tDU2HAVOY#a6p1k=5A~}NRgDsJAlITFb?CK%UM(JX zk+;i8r}MG2D1A%M=t=1q6z+Jqzgy0IF?YWXlM`B=@*`EXwxAs}zt*TV`L(uYzaMvE z53#w#m{{aGl-SF-tzRzV)<=I<&b@x{Ha;hx`1tL!^y=mGYHBgHaPyItk{eq3c13Ay zdH7j;JU%uyJR6fg~85! zhqQEW_385^*{x?P^h{;C6far8eIJvAPIRyvxI()fcgRZ<;Dv*g6*7)ni8hIC7<@leRCiaxi@-fLmZ%EMs&`TmHQCrjXQ-dwQ!GY?Yg*XSw6LXVVN27( zmZpWBSbNT1YiSNaSEUF{r6^sY5Z$H(4VlbGjZ{y5u!5TWU*JHJE@R;!X*5g<1P;yx lOtB>SP!Yl=d<%t=hy%!7r&0Ke<`$RiW7PBZ@~`1P;}7{z%?|(o literal 0 HcmV?d00001 diff --git a/infusion/development/fonts/infusion_logo.eot b/infusion/development/fonts/infusion_logo.eot new file mode 100644 index 0000000000000000000000000000000000000000..d21cf61fba42bc45648e803fb14b4a31f0f4dbb6 GIT binary patch literal 2132 zcma)7%Wsrb6hHU*J?DGgna(t{PH8FFCKaZom4p~Kz7hy3K9)L`(vr|l12uu2e}IWZ zSMFRHjm8jnB$BXl#lpXUjRY4GSF*(VyZ3$-hOqF?o$sFK@1ApRa?X1p(anH}5vTFR z=mxWrGjET}t*u`V?{D0CR!5Z4C0eHuZR0z(IN0>HiuVtaTegW zaE6_yD}cPq&BHb}3|+z#jwO-x+RieAxT;FYs^Tj@NcaSN9MnR&c}WNl0QhND=X` z`CUl9@F)9|mRV%&o>~lHkFQsW9%ylAA3t%2z`0r+*z_G?AI{!r@U@jPBpyTxBIc8l&jeM@67?*Ip@%LA)@fb)1T*;r)swCY%d0LWSG8GjTc=WmoN*?Vl&Td)brPE} z%A}MKS$UbZUMS1Mc`+HqQ5*+l9JgCs3GCQJcIR4YrnN4k2)l}8AVnyuLupbdh9v}J zTB$S)t2n8GFjawOaN$f(it9Kwu>fu$ zf|k~a%KK$`q^_rvBm+8=LPUydE|kc!JP&iFL(W63iiiu&1dEVlD~$?m>cQPiHi9b{oxMhF?( zhnSRF2Z7cVs)&#y30)w{DU?D8q}|E$nX>F>u?wUrj+Pp=snetmQ5#!zf!Z)xB=J;< zjBKUb7A?w@LLpTaB@-#O)oEd7(lp_`%JL&^bF?hFwz7D>K&h55IbcyqApyz+-Z@lR zEv3+b$yzgpD~>G`$J2#HXwy-mJZ8+%0!btjEo2}A(dwp&iMX`J`D|Ivv|^Jay+)fN zz&bRhuB(z&rKwF_Vr7+-TA5})CPvSj=F`qY zvCRha0QqURjDBix8OG8Dr<(8?NGQ$T};j%fws4xLv + + +Generated by IcoMoon + + + + + + + \ No newline at end of file diff --git a/infusion/development/fonts/infusion_logo.ttf b/infusion/development/fonts/infusion_logo.ttf new file mode 100644 index 0000000000000000000000000000000000000000..d1eba42afe362c91b9a2913f980af225b4d0934a GIT binary patch literal 1968 zcmaJ?OKV+K6khvz-tT>H?hQ@6Y0|VN5YwA9u~5W`FEA7>>QJv~ngp8OU?a3Me}G`o zkuyi4C?d`T3mrM?z+cdbr4AHFI;`>Ad!N_@iu>+!_P5sB>syZl>k=cPggzoc%a^Y_ zH_Sg3%h3FU=e^Cn(f;J+`pM>qFzmXLRFhTGR~U;F-z-#&v3y}Y!uHM%OV zd_6^^zJ+~l2a4be@iXLykmq*x4sNNx$PnoevbjFq9ML&GglzfKz0s|G3fV5?bC3r& zMtfWD^uPQQ@~epP(*F470rJEO?pQksN$d_OBK|qQ56vh3WWUo2i|oB)iy`fk>qVkR zTHHItPuwF&WP5S61`cq%ZA62&wHlK2JkFRx;`lKdJkp1c4-cV3MlEKCzxMxWJ)8kA zMhv$K$KrM1Uccx}eh3 z47)SUCZ<{El*M-I_JY3;m-V&bio3Huv<#NSbAn{vlFXiNT@Yp6Me!j{MA6;jQQ8ah zj&QiPGPKqw{3nxq!jHHvqE8h$+wF3LyWbtt))hR>+SZ6NPg+-eX)XL>mr_Dy^;McZQ&p#nax#jeI1Z{f z?qpmE?ASzh7g}kiwXUKFyN+ZaMJVc1X;LbNB?MzysWc4hIH`j$Re@%3;Y?2y<+D9A zm*q9%Ns`PMp#|3>>BdPXjtZ$%pmZ6Z*Q zCGxx|!b0hg^H8fY;({~5A{3dWQK_w7E18Ane7`?z>cwt%u{P%?`^%En<43uRHWrYskF6ANY8cz8F+!?22wGPX}Ksk9CPt!s1^QQT<^H6NNZIN?AqJF){B;Kmk$ g*bpN+zPA4|QaF$pxi#YSxZ2SHIc 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 literal 0 HcmV?d00001 diff --git a/infusion/development/fonts/octicons.svg b/infusion/development/fonts/octicons.svg new file mode 100644 index 00000000..d932988b --- /dev/null +++ b/infusion/development/fonts/octicons.svg @@ -0,0 +1,183 @@ + + + + +(c) 2012-2015 GitHub + +When using the GitHub logos, be sure to follow the GitHub logo guidelines (https://github.com/logos) + +Font License: SIL OFL 1.1 (http://scripts.sil.org/OFL) +Applies to all font files + +Code License: MIT (http://choosealicense.com/licenses/mit/) +Applies to all other files + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/infusion/development/fonts/octicons.ttf b/infusion/development/fonts/octicons.ttf new file mode 100644 index 0000000000000000000000000000000000000000..32e6720a733413cec27e048df79d853dff41d728 GIT binary patch literal 28992 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 + + + diff --git a/infusion/development/images/Unicode-charmap.png b/infusion/development/images/Unicode-charmap.png new file mode 100644 index 0000000000000000000000000000000000000000..69da3751d70e98f9f0fb1e3fa8b84beaf486d8e1 GIT binary patch literal 39221 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 T4HFO$(C+FO-u`maA?AMooJxpQ literal 0 HcmV?d00001 diff --git a/infusion/development/images/checkbox-styled.png b/infusion/development/images/checkbox-styled.png new file mode 100644 index 0000000000000000000000000000000000000000..4abe67acbe6bcc6226ede2d7324ce6b76b5ee7cd GIT binary patch literal 24645 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 + + + + + + + + + image/svg+xml + + + + + + + + + + + Plain + Model + View + Renderer + + diff --git a/infusion/development/images/curr-converter-screenshot.png b/infusion/development/images/curr-converter-screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..b751da1bb3eece5bdbdea0367a86c55f7b277a14 GIT binary patch literal 16827 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 SCZKKr0000wDAy literal 0 HcmV?d00001 diff --git a/infusion/development/images/mac-characters-window.png b/infusion/development/images/mac-characters-window.png new file mode 100644 index 0000000000000000000000000000000000000000..fa3c33e11ce0135c3330bb2cc3a31c00e3cab7c9 GIT binary patch literal 40928 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

    853Z)k`{)Ikv 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 V;7e~6R$&l$sVHeE7Acqp{U7#giTwZo literal 0 HcmV?d00001 diff --git a/infusion/development/images/mac-font-book.png b/infusion/development/images/mac-font-book.png new file mode 100644 index 0000000000000000000000000000000000000000..f5711f7a52425392b410515843ac8469db0b56d5 GIT binary patch literal 61146 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 ZKs3dlYL1-L@<71DQ1_lroz|o1{|7entdRf! literal 0 HcmV?d00001 diff --git a/infusion/development/images/pencil-icon-01.svg b/infusion/development/images/pencil-icon-01.svg new file mode 100644 index 00000000..e301dc1e --- /dev/null +++ b/infusion/development/images/pencil-icon-01.svg @@ -0,0 +1,12 @@ + + + + + + + + + + diff --git a/infusion/development/images/prefsEditorFolders.png b/infusion/development/images/prefsEditorFolders.png new file mode 100644 index 0000000000000000000000000000000000000000..7176ab1c781ddad3d802a7fa8b047c68be402b43 GIT binary patch literal 25153 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 literal 0 HcmV?d00001 diff --git a/infusion/development/images/progress-example.png b/infusion/development/images/progress-example.png new file mode 100644 index 0000000000000000000000000000000000000000..4ca742e9432e7a7f51c61049a5ded6a33a2be749 GIT binary patch literal 7461 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 literal 0 HcmV?d00001 diff --git a/infusion/development/images/radio-styled.png b/infusion/development/images/radio-styled.png new file mode 100644 index 0000000000000000000000000000000000000000..64a62f82bd5f36d799866b1203e4efb735923b0f GIT binary patch literal 26429 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 Ks$9}I@c#g`YKh|j literal 0 HcmV?d00001 diff --git a/infusion/development/images/simplePrefsEditor.png b/infusion/development/images/simplePrefsEditor.png new file mode 100644 index 0000000000000000000000000000000000000000..f747557a58fdfc012de1fd08de276b35d6c78ba6 GIT binary patch literal 91063 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

    C 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 literal 0 HcmV?d00001 diff --git a/infusion/development/images/tutorial-uio-button-hc.png b/infusion/development/images/tutorial-uio-button-hc.png new file mode 100644 index 0000000000000000000000000000000000000000..f720b1c170c553459e9385da58a1cee4f71f5f7a GIT binary patch literal 7060 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�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 I#x&&r0R~@C)Bpeg literal 0 HcmV?d00001 diff --git a/infusion/development/images/tutorial-uio-content-by.png b/infusion/development/images/tutorial-uio-content-by.png new file mode 100644 index 0000000000000000000000000000000000000000..25a3a3d6d05f40466f48ef69218bda2453707d7a GIT binary patch literal 5692 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 V9{$c$_TSrsuBM?zjhaK${{Z=@8F&By literal 0 HcmV?d00001 diff --git a/infusion/development/images/tutorial-uio-good-bad-logos.png b/infusion/development/images/tutorial-uio-good-bad-logos.png new file mode 100644 index 0000000000000000000000000000000000000000..4ce893dd2b9071ea58f3c491e5c249a7f5a0a01f GIT binary patch literal 50364 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 literal 0 HcmV?d00001 diff --git a/infusion/development/images/tutorial-uio-icon-hc.png b/infusion/development/images/tutorial-uio-icon-hc.png new file mode 100644 index 0000000000000000000000000000000000000000..256eb6769bffb77285003881db7c5ee383513c6f GIT binary patch literal 7978 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 literal 0 HcmV?d00001 diff --git a/infusion/development/images/tutorial-uio-icon-regular.png b/infusion/development/images/tutorial-uio-icon-regular.png new file mode 100644 index 0000000000000000000000000000000000000000..4082b08903e8c51fbf8762a3c59dbf4d0be7fce8 GIT binary patch literal 9122 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 SKqPel0000j literal 0 HcmV?d00001 diff --git a/infusion/development/images/tutorial-uio-shadow-regular.png b/infusion/development/images/tutorial-uio-shadow-regular.png new file mode 100644 index 0000000000000000000000000000000000000000..75518647e4a6107366d91353a545e39dca635124 GIT binary patch literal 9396 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 + + + + + + + + + +]> + + + + + + + + + + + S + e + p + e + r + a + t + e + d + + P + a + n + e + l + F + u + l + l + + w + i + t + h + o + u + t + + P + r + e + v + i + e + w + F + u + l + l + + w + i + t + h + + P + r + e + v + i + e + w + + + L + i + v + e + + P + r + e + v + i + e + w + S + l + i + d + i + n + g + + P + a + n + e + l + UI Options + P + r + e + v + i + e + w + + + L + a + y + o + u + t + + C + o + n + t + r + o + l + s + L + i + n + k + s + + C + o + n + t + r + o + l + s + T + e + x + t + + C + o + n + t + r + o + l + s + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + eJzsvetyJbl1LvgE+Q57fjhCOuEiMxPIm8bhiL03SZ/2SGqFumVb4zjRQbHY1TxikWUWS7L89LO+ +b2EtAPvCIrtKOtK4KkNqEkQCSGBh3S9/93/96ptX69f3v7t+FU7aVfN3f7d9uL58vH/42Yqtq69u +bz+8f3xA009+/dNVN5600mn91fxd6vgv1w/vb+7vfsY/nUT54wXe/sk/y2s3d6uvf3f5cPnT1U9+ +Kn/49ubx9lr+9Ju7R/z0+lX3U5tQRji7fJQ/9m0XX7XDq35eLT+Lw2r9C3S5vPvD5fv3N/91jWnC +HKRtc//h7vXN3ZvN/X9KY9euXnVLu4pzv3oVsMT/efPr6/e7nU66OAzSc15O2r6X3t1JGMKAV06W +aZbXzu6vPry9vnv81cP91fX799v72/uH9z9bbW4vr35f/Pni/u5Rmn/xp4eby9fS99Wvr998uL18 +KLr88vr69fXr4x3XXw3fXdzcXst2vb18XHU9dnb9Vdd/t/lwc/v6lx/e/u5aNnJcOjSH77iU37y/ +fCObwJ/RPH331Vtp+eb6UTb7jUyET9/+4rf/T7l++fT0/OTfZfobnqfs+P/6aRr54f7d28uH38vr +83Aiu9H37Wpox1Wrf//2+u27Wzkd7mJoR3QJC/5T/pL6yhex36u5P+n5t3k1Dt3JNKw67DA65U2+ +/sPN9R9/tvrl/d217sj64fEbPecY21b/X//y6w+31w+/ubvBdvZoWnRLfnH/+vo2NfH9i9tL7gSf +Lv+/dvj28uHN9aPAxv3th0cC7mwzyJb//PJP1zjvTif4+t313bf3/8I1vurGKKe06lfdMC+rOciw +M0eP46oLwSfs8v/ruBgFY9jgk5zRr+TUvn64eXNz9zMB3Wnp9TT/6eHmdT7MqV/N+n/8gJO5+N9i +/9OVykc/Pl7fpZULEG1/UQBFe/KLb2TS87vX2/u32Pn3uEECCncCJ7f3b/Rv/jP/Iq9/eNf8exOW +0//4cP94/V7Gur1eLePpm4fLP1zLVsyn69c31w/yl/en6wf58+n26vr1ze3t5en55dWHx+vTXz4K +JF+ffm3dmtPf+BuX2uWSo51eXt08CFB8f3v9n6eXuY++f8nBr2zwa77ZnF7rq9fFq9f+6o0Of6N9 +boo+N97njsM3p/fa91773hd9773vvS7lg3b9oF0/5K7N6Qfv+/ryzZvrh9PXssDr69Mr2e/T94/X +D7f4ivfXVwC70999uL29fjx9J+hRxnr3w6m88fby7vXvbmWXHnhLZbTXp1f37wR3vPnh8VRu7etr +3NNTXYNPd3J3//j6+vvT9fnp1+9vL9//0HjTO8Heb2/uPuRO9t8/Xd+dvv2w29zs9bP/3j+8/v5a +hrq5u8bPby/fX324xS/W4VLa0+z/8eH6PT7y9f0f706v//Pq9vItfxTourm6vJUX/K3v5Qbf3O0v +443gwNvrt/dCJ75/zL/pTlzf3t68w5e/f3d5dX261sNYJ2BL/zk/vQeM3L2WJZ1ev+V/CMiyxRzU +ftEx+Vtu18bXN3+4AYD4pvme/9Z/+v7hUk/0/MPDPVfKm+Lr5m8crjn9/kY+OIGHzHz6Tua5fw0A +4Vnne/a7y/fXvkD+Il0ff7j/8F5ApDldFyB6Xvy8Vsg498Wd69Z8pe1fleD6lXf6Sjt9rZ2+Lsaz +7/5ae/xGe/ymHOY3+qfXOCkh0afF23oQby+vHgDvguvZ7fKKF0KvtN7o5vSHD3dvLh8+vL29/PAo +91DIwe9Pry7lvebbcyLR4Z+/+/a9EI1MK8J3RFPnd1f3IPE/W323R2QPkN1/P93vdrr/omLyb/9f +nUhwo02jbNG3f3p33fx7N3bpjgtpC6eyV9f/8eHyVn4ZT2/uvpe78vin4gZif9hBEKiwPLL5+KXp +5g4XURDB483l7eub778/lQ99Swp9+u7h/vWHK0ETNzLiIxCeDD8vp1+/vX5zuWq6ZTgVrIBLteqW +6fTynbzwn2kVy3x6dn37eLnqu5ggWW7gf13fvble9bFF51uB7e+++dPb393ffneq/01kTD990D3+ +Tvb8V3JgICfNL9815P9+dftB/vRPD/cf3n119/198xNlGP9F8Jtc6f+6fi283/+WX4T5I4+y+lYu +igwgv3ufk8ubdz99cjihaw/XK/2jvMlf7b8ff/vs+nvhrvLr2np+94fr2/t3xbDeIrdr9a+XD+8+ +PvSvbi/vBFDY7iP//EYI468uZafy2LntGYMKf/AOBOIPtridCZ7oUPzpGRNdPv4gTK1gx/c+tv5a +L1zbPj7eN1dgPx5Wm4cP739YfXt/f+vD1n/y0VMzW9H/r2OOX/GFu6/vdIP2Z0oddmcStvOvbhbp +fXwG+eNf8+jbSyHx5Iturg5NcODvPpP+7SWARcR38/5thqei5VdAzFe319/8STiyt88+3JUQYUFy +R67xk32++ePl49UPP7/53YMwvtdP3j4cgBCa1wL733y4ebzOG3T/9h2E39U3P1y+u+ZnPP5wwZ7f ++IADKFuJ3F+9egLri1C4uSv+/k+gPELKRaK/uCRt/Ob3f/ppU/4ihKRfbV6LFCFCSwP1QNv8QyPy +1j823ervvts86F9EjIkUcFr5F1R2GkUCXXUiAko3kV2++1i3zftyJApg/NuhAcq/ynubM98M+6bD +n/n1w6UQz79f/VYY0Ps/yqfuNMhwg36ufOTwI5/x8NMUP/6jjL/ZbLabs8355mLbbrttvw3buB22 +43bazttlu95ut2fb8+3FWXvWnfVn4SyeDWfj2XQ2ny1n67PN2fbs7Oz87OK8Pe/O+/PQnMfz4Xw8 +n85nji+9n//Ejz9N8eM/Chik85eNCk888eVPs9dU7S8/bo7zMI/zNM/zMq/nzbydz+bz+WJpl27p +l7gMy7hMy7wsy3rZLNvlbDlfLtbtulv367CO62E9rqf1vF7W6/VmvW3WZ+vz9cWm3XSbfhM2cTNs +xs20mTfLZr3Z6IZOL3rGjz3NgcbiTHY2uf+8z+6AT53hkw+3JsxhCeuwCdtwFs7DhRxaF/sYYoxD +HOMU57jEddzErUDPebyQY+yGfojDMIzDNMzDMqyHzbCVzz4fLsa2GbuxH8MYx2Ecx2mcx2Vcj5tx +K3t0Pl5M7dRN/RSmOA3TOE3TPC3TetpMW9n48+libudu7ucwR67u4uLiXJ4zebbybORZy7PIM8sz +yTNeDPJEeYI8vTydPO1FixfP8e/sXC7juVzX83Vzvj4XcDoXgJPbNsmdG+XmDXL/4nmQq9jLhezk +WraYUa7o+Rn+yW2WS7uRqyvAKJd4Ppt2jvi5/7rnPc1zO36OAV8OgP+on9wR+CLx5tTO7dKuW7mG +7bY9kx28kLG7rpcndLEbRGAbu0kELrnl3brbdII4uzPsdneBURvpiX9BntgLhPUCRr2ASi/g0Ati +6OX693LDe8G3vWDVnseF807g3PHhAEH+Nfi/ENMzpGcsnmnnmY8/ikUUcZ8RLoC8W0KLIHB5InH4 +QIgCZM2EszUfgB5AEC/iH2H6om0ESjs+/Ao+kc/AZ+QzpWfms6Rn7c/Gn23DS4LnrHrODz4f+VdC +ODiFtg8DdJ4dlKChJOQVp/B0N3IKbTcLK3AyhaidxqHsNs8n0xiLAZ/TO43bo8vQzSN6CgIre47j +yTyEpRz4Od115HZE1753BTP79PNJK3SqGPLpfhhLlcmj/7mfCzbp4B9fwiV98+Ed2NH77x/VbLL6 +l5s3d9fC8ArDdPxvMlcwVrH3/3V2+gcb2Xdl/3OGcDxpp35ZDdOJEJCQd+bjXbnRO91OxqHr5VzG +VehkX9qwmpaTaeqOD3z8jYPjL8MBEH6q00sO4zd3d5dvr1+v3qSmVSencKARZgxjXYWFxDPyGdIT ++QQ+RH9bYk9hPvmk+080syGhEvZUnw141Y3wQXgWPnN6Jj4jn4FPTE/gQ1wrPBWeVh+gm0b+T9Ha +GZ9tenQO/bfwmdMz8Rn5DHwin6BPsyZmF/YOT4vHkNxCHLqQ6gojiCd9hM6w6L+Zz5SesRH+cVyU +2ZQJMHLLsc74/ppvTOgizGYQytIJYj0Xqr6VbVnLULMwp6MwqVEQfy/sSCvo91zYk+20aeRTFuFZ +JuFdBuFhghCobmoFT58Lf7OVvVzL5LPwPaPwP1GoTC90rxVsfi4M0lZ2eS0M0yyM0ygMVBxCI5Su +G1pB+ufCX21l+9fCb83Cd43Cf8m9EF6si62QhnPhz7ZyMGvh12ahVqNQsygUrhei1woBOReSuO03 +jezlIhRzEuo5CCUNQlO7vhUqcy7kdiunuRYCPAspHoUoRyGZvZDpFvySkO0tTlkIuXyzEHVZl3CJ +Qpw7io07fM5LuIkjEsa+vLAnM3xENpvqp0k/zAef5eCzPvgkmG/sh/RsDz5nB5/zQ0/Tgje9qPlH +uaprge5JYbZTUYddik4iS7ak7ufCj+Kfyja8aRPvVlRwr18EohaIk7NU+X0Q4K2o0zKfCIc2Zvz3 +rN5Ep9MssgCxbpiGdqrl+7E/WfoSVT+rt44rd3MY2bOdxn6nZyd/n6Zi3Of0Vh1Ft4wtVBHjGOUC +HddWPN3v04hAe5AKtBUZIJdcP/PeMx14xgOPIJgG/1c88cAT9p7+wJP+NV3+dwALKJDvPPu3obgt +jf+4f702B579G7tzrxv+5xAamPaeQ5hlDwMdRlaH8No+/ju4R45OeY/ljLFekCIQI5AjJUhr0jcQ +JZAlJUyRUklPOGgTgTqn8mJLui4IoSGhAqlSYgVypQSrJ6i0FC/OSbiUdG1Io0G+QMCUhIGIKRnr +G0JTS9nkPNGzLTkH0DRQNaVroGykbfL0St5I4EDilMhtyWesG6F0oHVK7UDvlOKB5pHqke4p5Tsj +97Mhx7AkCjhRihso3+Ff3xBsW5JDJYhnZJc25DCWRBcnSpagjZHCYk/AbhONBJVUOimUsknEck53 +y65O8KvQJtJ5nkDXQHNxSFNIUlDpmwQLeuTUV3TUVKiWYkP1xEzFxJBUEh2VEedUQ6gKYqaKCpq/ +IF+oVIE0wejITA5yIM8IXrEldwiucEM2cCbjN5DVA4vXkqc7Ixe3LunJM/mnBLbP4KAawuZn5KAa +Atln5KAaQstn5KAaIgTnoJ6DGT6TYue/wYCf5d/z1XcvHTDbWv6hqchoPv4Lf86L58yfrT8bf8gh +NvqfblGTxIvv9tNXu7G7bWrYC9cbmVbJdE0bV8uaatbUs7Mrr8b0qGJraJKeS1XQxwhuQpsvprl+ +ycrtpxYyUhOpz5g0khO1kvosSTu5poZSn23SVJ4lbSU1lt1Fo2pLedKZqnGjNGWElxszdm0ZTW3M +2Gz1OLJ2MOsHTUNYagmP6Al3lYTNrlZQj2X/7j1HsDsqzzW7wlxliSx8Rg9KJcf+rvq5ZYkD+PVh +nLtA18whTl1He6UIiYF6nJhUhv0J7A6F1u7HvM15gfuhozuZwiwkgf3aXghWfEJceQ== + + + yUv6ddMg5ArrE3IEnerJMnYzf2jbPsbuoAzzorc+TaKJByWaCL2iSzTtMXvBMWuB2grUUqB374KX +rVcDQUMLwUTbgNkFYBO4SLaAnsp/VflPNHKZmSsZutzUlYxdjdu71OJlNi9avZLdC5YvjBnJ4o7J +AqY2sDVZ4S0NgGCPLxqYw4hlelrEAllpWMVGstczbWMLme4NLWTbZEsEU35BW1mb5DqwraGhmSLS +dDbQfDbShDbRjDbTlLbQnLamSU2fpFF06+a5PxeNY45dGWlP1szqnxIT1De+1NPUapha0eKalKZQ +nphISFHRMY79MyRrkmk8iMzHxuXgeQenG1bfx+wZu5cY/lyJcpPsMxnjlVS8/BeqJ1bPkJ8mGbbK +Z9p75oPPcuhp/Mf1x559FV4+z2PPx4yB4Wkfguf6EVRi9o/w0HhKN9gcEPifeg7rDoun+XiXJxWO +e0/z3I7tcvgMPxe/+kn//maFiL/0gCVbat4OT/rEvICRbI5xkmQknY180ntpU/ovNc9xYMr+S7R5 +w9p9Rkglac6EOZNlI8ov9DxpSICPOp+83PekOex88vHj0Iv4nDv7XGTxUczyMjR2FPc9C3kekwD+ +jHfkL4m4yitIt4yPPS/41xxsPeKE8ZyngbPI049qkAdiiZGYYiK2mIkxFmKNNTHHhthjSwxyRixy +niRF5c66ZH6CAYoGWjXWquF2JJKZKLHOlFqXZPJV8++WeOeMuAfPBTFQSywkT0OTspqXI1HSQLQ0 +UsaFlDubQmCqJIRaRgiJ9duVEc53ZQQTEAwNvRwRHUFFTfKCewIVlU5SpdizJ/hUn7X7Udta8GnK +rzqAW1+MXZs9x769TzospUNyDOEEavcd/5UDf6YUK+NDtO5kboigskpKoiJvZz+Z5US2YSgskc9/ +h3PAfxQS7xzZka5I1rWTvwb5KZ4IeivE8Re8o3PEDs4hU9/B5Bgm+COdhGFcdl6qXEpe8tKnyeLj +QVl8hHUxFLJ4LwA5CiiuBQzPO7hCRQG9WcBuKxS9FWCLAmeAso1A2AWhC6ZQQNUGECXwBGgaAEkN +74ZAkZwXIAjwA+jR6wC6rFQZNFkpstJjo8bmB+qEeJ8tehlTtMsWTY2r2Jw1cubI2KPBsdBCbLah +B80ZvWouErPU0ftGGKaGPNNANx3wTTNx6prc04bW+TPyUOdUtLX0BO/oDQ52KiR37IFsFZ6pIXc1 +k8NaFIeqKw+9T9Xv8Mzpkbr1te6DqH6I+gR9GrokmluiuSaO7qCoTor5WfxZF88mP03yYszPx4jk +YbfDTLR2qFj35NN//GkKR8pPe1Q9HU1P/dmeLwPu/fkfS4Q0CW3cyG25cJQ0CS3cJKTUCYUbCrR0 +TrIXiJgmkjsQOyF1jdA6UDqlc0q4lcQZgTPylkWHXcGhEhuaj/qs7wsOWXTIaMsQV2wS7poSg7ZO +bFliyJwV6xMPVnJfme8qeK5mj90yXis6div4rORHp3huk3DdlghHb/tFk5BemxBfl1wP++SIGNMz +OB5UXKjPnJ7Ea2KRTXIVdOfEbf53VjwlirnIz453VQfRtFDcEbPWT9h7jkXIWNzGwQCbj0aDKAI/ +9Dwn8GR+ydO8rPvnGXB5ydO8rPtf34C195zIrNmNbhmmKfR0Fl9CMEcz8KcHvIif01lYPU2Sgiwm +q+icb91ovU6macfKs9v8aazjfJB1nL+Ycb6Ycb6Ycb6Ycb6Ycb6Ycf6sCuC/sQG/mHG+mHG+mHH2 +nr8k4nqxGecFz+EBtz/+aT7l5U8dcPOcp3let+oVNzyZ6Smbn7IJyoxQ2RC19kg+M0dtXQI7b1wX +eVHZplpn/jI3lKIIk5nKDFVDijdM5qqmsFnNtoD1urJdbTyU8ayyYZ27A2WblStNYj779ITCqpUt +W6ZzGY2J9+DLpdC/UAfTVGqYbQrjPPN9NtfNQh+TfWeN3THu3ILwz4wV583skpUpOMttIfmzc9ab +phDUzhPPbDxycC54TDKbBebXYfkXhfTWWxi+Bd9rmL2KcVmQy6JcFuaUggwMDSnkuYY7bCKdEpRa +qIs7Qt3iQt3WhLpCpgvNAZFuSSTHxLnzRHhUkCsyIGRh+LlZEEwgzlbLJBA3vsHHDHwfp7sV5W2O +5O4I1Q69gPY2R/J3HMng8Qzq+3Lv6L+gOTIMJ8vwMmtkeuW5xsh5OJFD7F9kjLR30hw0KE6wJLYn +MU4Mr5z7+KQx8gUvfZpGaTmoUVqgUepNozRvqmf7jOdJbaX64B9/Lo49xxi/Zj8WMz2HRXnA9qEn +2tPkHykRHHrGg8904JHb1TiZnQ8Q3H3SWz6b+jkkmO7zeE9HAezpBJojcv8xcT3v/YGIbI3KPhx7 +fV7rnyodVNZCdaXyRzVRTaWO2lNIeaDIYZ3UsqeTEjq6r5baUUod1Efta6LUQraTCKFOgaDJD5j1 +gEF5GrrTc2ktgdsiSjcpQG9pPKB08Di9vggmtVDStYfrWcCehezloD2G7TWM2ysj98rYvTJ6r86A +EHcC+DyEr/EYvkNRfEfj+MpcCHUgX7MTyfejsiF4KF8dXx/HvmdA+8mITR9zpMp0ImuKZWDGczoT +uY/tvDAKpZMP7Qa3IEwHrA3P6PtJqLw/mLuk7yq/kgMptY4n1SrTauXEWrMnYKM9Ts1zgYGufbpH +radBOGfY61myIW4Y/bpmBOySSMVOLpXmeCKVo0lUNkcyqJChb56ZQKXLCVT4lBlUqhwqTZFGZTeR +iqVSmVy4GaqEKkVSlSwgNVlhXoTKX+ykWMnYxTDMdifhimOcpsq9UmZgsaemTzUF26Vze+Rwn24e +orCH6bET7F3VzVGan8Ltn37IUjz/eQYH0zyLzamfzVPPLhf1gofk5WDA+CeElBq9Ohwwvh8yXgeN +l2HjVeB4Dh234PEcPm4B5BZCvhRZDDyHQSZHDS18df6CKVGlnL2g8+wF5wV12vCuWeqCRKQauouG +RKnK7AVl/gLLYDAXGQxGCseexYB0TChZ43kMzqtcBpsqn8Fc5DQYKZxHz2wQyEh4xHHj4cZlkHEZ +XJwiiot8I3VekZ30Ic1eppCdlCAHUn9kZu1Afo/maEKPp1SoT+TtaI5GER8zcz1tJ3uxweHPp/ts +KxfjUJnkS6P8IS1E1kPsORo3bp3PeRhN1ZMN9FnNk92O446GJ+l3mh0FT1dY66Ord9RMYAb7Sr9T +GO2p4WkqFU+p5CnVPKWi55D5fsj6nqay4R+x4pfqH7XjHzDjJyN+c8SKn+33brsvzPZd8iLrqT3R +hyhmHhpy6QPTv4xUqkxUrOg/I7zGJuyL0kaanKY1B8Xew5LtQRl2V3BtPiKpvlg8bY5JqAcUx089 +ztU0L3QTOv/Y03y8y9FX6+xfta1uN2n0rrlu12BHk52mAjuWTeBAXuRjxsMDycMOyysiaRyQQ57T +WTVX7TgxPH2aO2bgzEkvw4kgnBm9s8rqOb1T6rDQTdBrCVYZ4uSCUN/vRch/vOsniUxhOCQySWuR +mV0O7SN5blKewOcluYFytDo8fM1QJyOdkHczlIkVjnbRfKUncSebaTgRgr+UAxzp8UnbdzCpQKxU +h+3znNEOu6IdiBVqjoTV/Ghb9zPihF5m624O+R5/3Klr36VrqlRtOw5d2L+mUKiVirRSgVY6cR1P +q5I0ZE2hINvPqVLqw0pNWO2JNbj1iaeVfazcderlzlFPukWlROk/wiXqSe+nZt9Sf0Qt+kyvpuaQ +n9JfjZPRJ3gTfC73hONmo4om7P/lucaimgo+r/+n4ceDGjlp/UwY8mAsZfMc/LhrHQ3pQoyFdLLs +mKmzkdqklCyncFVNWthe4viELLKqfAfo9m0U+1d09+ZVpohmxxKxmwpW01c+4679aEh+Uib9NMgW +Zg2hiJ3GJwq1IqBO8xHAfl73T4Pr/iBc90V+VORub4dhkS2vInIsepDJ+ou4Do+xO1SXQ3OQUbE0 +TkN+d79YysecaF/4vHhATfT2Mn3cR3M3Ns9P3qi5G+u6HJoAThO/acI3TfMGsT1YLY5UieMs5bjc +eBGOKWW6HBo3FnQp4eWF197YeNrL2U0D8a+DttW1lBQowQ4vk+Avhn4Iezg/mWz5JS+lKgf2wjB3 +48SaCF3f1sULdlMvv+SlVPFgmpirWRjPQcNYguDOsXphN7PZS16yugqRCdemXtDxqKnQWEThYEaz +5/T+JNxzUGIbvgTAfAmA+RIA8yUA5ksAzJcAmD+HbPq3OuCXAJgvATA/BrN8CYD5bIjrSwDMlwCY +LwEwXwJgvgTAfAmA+fwBMMN4MsVufJFdw975EgKjyqODVpqhK5wA/qHpzo4858969lKlNZWkvy/v +HwozKKX9LOcn0b7ZkedrUX3j6G+bUi95aV5HhJ07ihEbNgVCHL34bkaKihb1YpeIsUSNlfNYU3iP +bT+q75rSxberny6/X38ixYwQZ9dulajQ0MB+VrCDiKDZxQTEoQcLtj3/2SsA1+zpjfaDVXb1SEXY +yr42qflI6MouRO2b64dKPTQ3tcG+IJ4l9NSw40Wdi1rODjjNAcg5Owg5GW4Gdzo0t8ONA855UxDV +/gjkrCvIOS/JqdNSo6TrZhd29Og/7d9eab5mR7cY9rSMta6xjm86EOHUPEPreLbvxXHcj6PZc+PI +aCUDxGaHmzqvOKquBIWmhoQ9QNgHgyc5q7hpDAb2QCDu8AxPoI4SczQ7qOPiz6z4+vFS7TNtkz9O +R3pUG/o8/5cDGsldncWR+q0Hy7YeLNPa7EYOVrGD7ZG7d/iaDbnmZnG/amuhQNOygMWJQdYf+UOI +HRmreR7GcMy35GXvaZ0iWQgN9y1gHf8dB2HbnLGagjBz8K8sqhQ9+5VP448OuvlJ65P80Yv4oX1G +qHmSD9rlgmrjxkEGqNmhYR/lfyp58ADuaj6ditUYrNmhYvMBKnbxNBVL0uCZGvUa54BKUWjHO/Gg +MHREHGoOKYdfziMdKoq7ww41O9zQYU7oKavaDmQ1H+WBxh1q9xEGqClI3jEO6CjsHAKdZo9zronf +Mdb5MP0T8GkqtcKZC88lEazhx8Roh6AagJpkBJ6T4Zcw9HI+aY8r2meImmdwQ/uQcyzSWwCkOcwH +HeOCCsDIYDEXyqR1s6dReoIH+ggLRBmqeQKJ7MbfHEUhJRA0BQo5DAKh5oP2ASApk3o7/uHI8f8o +huiZyvsn7MHPZG/2DL1PMzPHzaoF79IcYV1+dJ6D5hiLUsD8YXg/wvQ3z+T6n40Km0PKhJpfGmXR +C52L5iXGWX+YO7ojAvSP+eK+8L3n8UvwhIwv45f8lU/ilw7m6J3BLQ2Fh9Jn/ffxdCCf1Xz2ZcAv +A34Z8M87YDbfmB+jmW2yyWbXXHMkZirbaZod94hdQ0021Zzv+izuuCwm+1azp8M9wIjueC0+Gfrb +eOyvGbqy92L2X9z1YCzDf0s/xsqT0XwZzZvR/BnNo3F2i/B6x68xezaC4zng3ng+lQ== + + + NZ6f8m/c9bSTjW88lLgMKK6f4egz7j9N8cv07OeJf81Tf9z5dyDP1f7TPK/b85//vgPWxVmerhY1 +yI3IZVl6Xn4ryoILj+se1SqLOw4BwwqyWL2otdeL6lx6UNVDlhlK02vSNTR75pZsdT3uhFZqGtz0 +qsbXJjlWWNmVsuiKVZA6K+qt7NZa2a2zsm5SmZWdEivJnSFXV8mVVcqqKmVFlVRNpSkqqdQ1VMzh +ZbdqyqFCKUVhlGa/Gspe8ZOPVS45WGVjffDZPPFsDz/NXtMn/muKelqf5Wk+swPW386AZaCUV0zZ +/4FBMnLlI4zuQ5hbRt/Pk8hO4alSKi94p66oMnQnrVzyA2VV7C9eW2Uc5A9jdwKxeRWiiI1DrMus +HOxRvz/JqMIVrfr2JPTLdOD93R5/odouczgoN4YqWHQ3iVMRNrYTNJZjxvTkoaVb/6g0eqWAP9h5 +FvlU48m0dEWI0VOd1K0ldTie8OCJLi/Z43/94ebx+u9Xm9vLq9/L5la/lsYLhsqdpTC5JYXIDR4e +16bQuG0Ki5tTSFxM0XBtioTbWhRcwyC4gWnxkBKvZSq8MybAWzPx3aFcXmfHs3k1H0/n9VQA4X78 +YPN0AGHK4DV4JsnWc3dp5q6cQjIlxWj2smJML8uL4WkjU9LIZjdr5LGckTspI48mjGyekzGy9trq +DuurDv1N83C8KLL3KBhLw3e/vL/71cPN3ePN3ZtXrwroLv/Q/PId/hL0L7+6fHy8frgTsL+4v725 +fHMtEG8/rbo4yp2aBK92s2DmaTUs4aRbprAK03wizNzAZa75///2R/nPB/7YpZX/25/46z/Lj/9b +Gv8o37z6xerf/1e7eq2v/Bro0CaxMVdvpXVvptXPy1Zb0M/LAQ42Vu/fyf9O1w+PZzdXjzf3d5cP +f1r9jBj5dHN/f7v6yfqrtB/fnb++ebx/+G4jl1727Ltvb26vv/v19dXjT1d/Ly/83/I//9qvNeeM +4a9+9XustIcrmyC1bp5OBCj1o0J7sghRE25WENuwrESKFqoxS8sU5S99xxaRqudVh9q0fVht+d6k +70mvWa7Gaohw0ps6HQkBoHJlZKRW3ptnuNil9+aTCVl7unk4ifMcOLzw77KsaZEf2mn1L+wXTnCz +pJ9MKiC+2lv+b6Xb9+jadfqHXsbuMTM/rOtBNXtp7U96oeFChqeTqQ1ChPrpRG6NtPRRKGMbpCWe +yPhpiX13MsLaLbf1RF4SQO8x1tRzBuiYpWXU5YmcgXjZIb05nMgBo58cdUSmIJlqEczAsboW+4Tl +yGAy53jSTzYnjqGVvS36CfXuFnyVDBqxT/CplGPoI4Li2zG92NvHy6rHVpYWlpMBYfL4zKBHMyNT +OD5c+ixzv7rCm8Je6AZ1UfiMRbZjlBWFXhbbDkL8RplzlB3FlnVLlO+VVXNOgYMJL7ay8UEYm2GQ +bWnlpPt20q0DNAjGkxY5nGkMk04pt6GNckB9N8LnEZmUFlla3/EEBADkmPdOc1ucs+BqooA2jumY +WxlpmgUqBuRW6oGVosJfJ6uSXYlsUcgZBQIE4eti2iBrGACeckOEwqziIvs04yoDNvs4S4scgsCM +tMjWLGkxQ9vLpe4B6vJx3Yh+ckaImu7GRT5jnqRlkeMDnI8IhJZzwZtx6QVAhCXsxkHWJocvFORk +DO3CsaS/rEJ+CCJvsoVXS9+UPw9ydDK6nI3AolCekx6ZjzCWQClW0eoGIbfvkGAyynUEfWRrHDuZ +QO5ZL0RVWjpNshCxaswtXKb8oDdcKObJjOBw7GzEtuDFdkFLBFi0WIOAN5gZb9EpsS1ylh0uBwAk +yqIX3mYA59RjrFHXGrA8X+uIRFmyjhjgKCsA2OIKAhvFSX/YgwK8uPkdUebhDFivBDFFOWSURezA +UwvDAP5+ioKdE2F4JVz20o/g1zCHkHK530Ly5c+bNzL2qz7I+QsSeSUfHIRvkBshxyB9Xw3EKr38 +JUwAZrkkAmOALcH7/wYYfRVGgRbNXfGqEyYC8Iav3B1CWuWyCzOAqyXnJuhU5gewymvyjgz9Sg5o +noYDL8v88FUWLgjz9wK3AuibF80vQyxygaeIIeSuzLN8KOf/nmRlszlMrE7L31env7x/FLp0//Ba +TuLvXRQ6usWnv76+vP3F5ePDzX9K59VPtuuvjI349vv7h7f6p0TlhCC+vv/d9Xfrr5bvZCHfPP5J +qGCevqKFIH7/9trAo/8E8LD/JyykfRhXP/np6t/+VX76Hx/4kWf8G3qMvVyUIBi1A7C2vfIPsteC +QwG6giUHkSJWwpgKCRBGQC7uLEKmNMw83tWUSCeAW85D7qugULnwQeBiNQJ5ACvLa/0U42qUazvM +cn+FFxnnXimD9xKoHMdlkdc6pLQLkCtnoeWcngQRHuhzokR4LQgkr8Zw0vYYXGiA4K0eggvvpFAZ +uaVC3ISsCy5b0iKluxCQFZCWMAUrrHrpBd0AFIV8jZPAU99zdukXiYNlsbJGwZYDytWL+DkvJwDW +Vexkq2QfBE3xbUEbYZ6V/IxzUNoiBEL4a+kkdItwL1hDZARZOjA/aOwgHIWQVZ0rAtzbiL1d2EnY +GrkN2DSRJGTFcve4P0J/T2Bu0NliulTLwKXKEEpeZRWC0eQQY1RWQPZpFkBKbwkmCy1Pdhrxxx7Y +VDCC4PsQRxmnhzIBwLAo9eFrciUHMFHLZK8JKo/DhL1ugTdHCKCCbTF9WBITMArxjCBlwJ9YuND1 +E5kbGARfKlDIKTqh6z1e5kugikAwMlI6mFGJt2ynYBiBM9DkZQjewG2Ua6vdvdesnwo4CdCPWMPU +KpHX16xRmTc5HeHB5HX/XeYK+K7lZJrm4NuBj58S/zIKGMjpC5AxS2PIDSOo7ayE3Rvl9PtZiDeW +3MYIjlTgXBgCTB5EWgQstoKI0iYG3dlBmL0FEBvAtoKR7U8iLmcE2RdqNsrvQ+zSQYcT/CwQJxQJ +nQS8wTEMYLXwYWHQsxHwQ0Vx340YFlBeQffYMrmByMgib82tIN3fJiwCih9b5cw5v/xVqK5sFUBI +IJhIXWjj0so5cWg5F8EgHRrldBdexK4LQnLlIuK2yI73uL7Co4rkOTqOQeFg8FzgKUBAyE1Kw9jx +tBMWQYPI1OktuUqyTNWKABbkYMgxCyM8z0BVE3CETCY73reGKoQRAWaQDY8D+rS6dz0ozqTfJSKz +MMOzciB6fQVHtrJc2RW95MI5DEilGXA8wo3hrhBPBpzFoCwFDlHk8xkRSbKOgYPL69xW2bOJ+E2w +gIzCXVIciC0X3iJCCQSAIZcvSAv702IuTB4GHWUxGJd7BiUE8FAk9hEAlPsN+A04uLFttcMS8tYP +C9g3IMoWFRlweQWtz+DHhUz0wNNdUE5dVjEsth/YUVl2q3vYMbNmD2wj446CwZQTlO9IV0lwI7A3 +5Avsw7CMeEPWH7GbWGs7AHWkw9gm2VbICb9ywSwyLGU2wDQIhjdA8IG8w5VZo84+CMZbgMO7dF4u +Mbdpkk7pi/9diAJvd3rffi3n8EZbyQDOehQsnpY6QEgENq6/J/3iXy1gLoihz7sC4bWnOGE7JwJd +As+0uQO4ZTSkvccgpBvl8fCtVoDQDhGf2UPwtWMW1KIrroBBlt0BdxnICBuSvivB1CBHMmKyAvAG +XG1ZgoMnBdFF8IgBMCQv3okSzCF0Er/bVRiASKAptssiYpSgmnaprhSXgK21iwdBfwAut6uJgVug +k/ICD0JeIFPZLRf2RmWHhAYGyI4QYwpUMQjBmiELGT4B70oiYxgHo079MFZ4aRBgn0KMjr2gDGiF +kjt+g9wpeHaqkCB69ULbDFMOoMYQwQ2V4rvIhpQIdwAF6GQFhpYHYywMcUNejqBfht11FyclaokE +DMJXLBN4oUQn/sCxo1xAIVBGTXDS8wCwSvRGZ5/GiijhHGeBPqNcg/xxpHCdSBtAuB2JWjIBHEbI +7LI8I5MDmBjgLyOk3lCSW280ogw1wgLiZmQbF4TsWEnbsYQAfJ4YAOzHeODXgoewNmM0AJ1yP3pn +RfCdIjn1FcOCiaZ5KHrJHW+h7DHGZwC3jdtS8UdCxYUvHDMbBYUJT8i4rAGngm0teTEsiqy7cWzY +jlmW6Twd1SzEMSXrh7UPkGeNQYQeB19rHKQcbiJ8BZ8pNOgESfScG0WvtpO9TuwqwIq0o2Jqh8Ra +GOsLHZwIEp3xxkMPWJaLWzLQQ9/q0MZmQ4PCTzVGHEoKaMkrdj3Kd7c91AeJp4c6htjFuH5ggmES +dFGKBpDzqXFK8gPuNHUJJmAojpumSgyBjm8R1OPCCpR5VGeaOAMMMi4hVkIPFIHcJRON8Fq3yB0w +4QnqOLIfpYjlvUwQAwYR9LK4qIZPAzIr5Tl8GZCSCX3UEWI/XS4cqMCRb3T5UWeTjQyQT2SWGcpX +zg9qsYDBZWJyOb8WCxKyGFvdyQhKD3UMZCkZmlqbaURSOznAOXTgFQVhjNAuCUiK2Gt6nEURQdeO +qrdTnC1vApYXIsg2gHRDwkBgs6HRGRIkrtMyAyO0DH+e9QuBUf/A4eUezzFyUpKvSNYUggr0g9iS +COwIXacq0sekmbJuPbL+CW30kXpQAeJ3m1FQNpWAV9XKQqeKwPwFIiMMrbzwW5Kd9JlQVy0iT6zy +VuBNpAHMW4Y55bTSltnWBmiAeigV0+53EciXu5EOCS0BEHBlsDRTlYYZgDb9vAU6ZxHXCriQ1cIk +5HCh8AN6zq9PEAYd2RL76GDYCZKZgCDtnAis3QAKTLYhwTO0bVFoVwZ7qPJaaC4ruIeKtQX+sPvT +AYEEXHK7ZtClkm2yF924ICsdVn5hoXoJbZzyve6EErbRCTovfzdg/KhqQKIHaD+ndslIpAPnJTQy +KXkTrukEi/OgHR11OBhcWsdaHXJfjkPaHUNuaJ2h4Xf81wFtAoMYloROtnclt+FSfBHU5IZsodSc +MU/GycLFyOxpQsPcAAtSAkfuUMtS0HMa0AkRoHFGicDiKtFlXsLKaQn1qEKFCpoDydP02EaZCOZ8 +0YgX9n6cSWMTjcMaKJRtk+2ApBC64QVf4NSyg74E6NmJKkWlJS3VaC9gjqymk+cOpH6BKG1U3Fuu +El0lsc/9EjsAnXtAMtHcAINV21VMA/TwAdK7Mx65xfgTgD3vve0O2RgAOaVB53Q6cHgRsOotI9Qb +IdYcEeCCQOqsFY1jEzgz48AArpSQjQnQ3Z6Bq4GgjJVDixpbjOPDXaMgv00iABlDWNHGFiTMeEfY +Loj3ncWEQU7Y8sk3iGxat9ACkdlVTLnEqJY252pxbyhhGd/bCW4kODt7jBZ4xiWkm7joboGmdeVc +trTJycwFMw6DUutmOOPZBd5VxWJcPRpoAHPmHy3tZHysyQgiCslKod90MQISOiw3Lmz0fUvr2tbR +PiSSLiqBcZlFVjiP6RNVskHfzjgjF4BkWGIGE5FgSaMY6pIUljq2JkqZwNW3EPMgxw== + + + mkzWQRMPW52LbrTKhdk4uCThoV/X4qaaEKj7BW7AZEWONZjdzyRK2PRCAFU3obOTRZL5NtGUWB/I +0gR1SrAwo9Gk5UIuTWiwJLksDBwpCLBzFjyJ0IlyZ6EalH7mnEnyhpGSSiVlwpOA3gsLMgAaXIbH +R+HGuaTfTVOxs6YPALiqFOZ6hBbXHXfLWwCSrSEab7WFuIail02n7shVGH0Qej8Y82maDu+X9SM2 +Vm4p58ytvjZTveT1m4Zm5zupxrHNcDWP75epgqptNXWRbX5SJvnxuMapOkZXTOXjNt2Vg4SruHZA +J2nCDMJcVeZA6Bq1Clhd8eZA7bo5B/ykwKuuh2v5/Bq5ItCvmusLqyvpakW/ulnzmG531k+WSCCr +MQ1ZZEWn4RNXh5ZoJytNDTu5XtUxmKtfK0znWlrHiKbHNZzpyt4KtbpK2FGwa40TknbVcoXKXQPt +KN901EYUXJHttGNbqruNxLhS3CnRHzh80p07xTLtuhM118FXxM819U4kXZnvhNR1/hXBddOAE2a3 +Hjjxzi0lkc+txgyYtcL5BbdpVHyFWz6c/3DbyKGWgpUpWhPH48YYZ4rcZlMxT27ayf3M+uOMWLYS +lQybWpKMqXNDk/N9bo+q+EM3Wzkf6ZYt5zXdAFZwpG4lc8bVDWnO3Lq9reKB3SznvLIb7pyfzga+ +ku92O6Dz524pNA7e7YkVo+9mR5MH3DDpIoOZLyvJwo2cLoGYGdSFFDeWVsKMm1RN5nGjq4tFbpst +hCc34LqI5TZeF8PcFFyJa24xdrHOjcom+bnpuRIQczcTJN2I7cKm27orodRN4i67ZrO5ibfZvF6K +wSNIC/bYxWWuglTHRGqgWt2KUvQewVJMw5xFdKEYJ3LblizGTxAvKTaW4r50PkGAc1YLEOerMJ5U +B3Ck4MVwFYN+p2A2Hp2pIsY50S9XWRAnLpOSGFdtTOSWwfkl7cckM5EHKXUkuZepUvJIpm7JM5pa +5qpamalv8heYmofmSftS1QXlrTBlUd6yUqmUt9aUT779pp/yUyq1WH6YpuvK523qsH23C0yoriuF +c8YIjznIFWm76Jshn6j0TrDzCJw9wnueqxcM2JH2yF2ced+theuSSy/73BX94BQF3CdDUbweoTPs +Q3U+uZPQ1wUWbB8Hzobg9/N81qLHY+vyfr52YFQ48u19Yt6HN00yg80UkBa9gm/r1qiCV+ZyoU1b +8u9gqtiD/PJer1GV6MU43pLmuzLOla2Q6+gwKiMtZNFkK+lxmseWTxt703cImoyUmnI/W3sea/cb +r+o9QPrFAgAgpYZZZFDfRJFtBb7AgdtGQ04dqKEpDwTegAFKdG+FH2GEPtwPF35/09TXB1J0S4CS +hzJYylOWMJeX5v18+Qa/5QfuHr9t/KyM8NuyMUC/PReHH0bFY94AmyJ6VIefe6V9z+PYQaTZripY +A9DDNzcfaXI6dlgTLj+YtSMDiPWyT/Fxdr7NTh0sYk/FbHnr+znxhKmRHBusiB0YEXhNQnwK5A5k +TmIZ3t4WJqBO+ykfBA2r6qSHJHh1rXq+1hRD3kwqXHMlwDVBrtMOllFAM2Qo5T+EYnB92yQj6krg +8gvmCi0z+Q0wNpDHlKsblODBaKQvdknhBSuuiq9CMQIs7HD2plVkMTUTLOGdaesEQlV1Az4cmBUn +MFAIjaOCYD6oEaz5svgVpQIk9xOER2rvQyWv8HrGeUwSja8MDDzZZV89dIi6quIr0TpQdWmbMQhG +bTlB2i8MRSNZta94kdY73/9hNld2OyMoM9VLtzzLARwMJFA/8wFyCjl+gwtfRAk+VDjSK8bADB7U +qg5MkDjQmtxmoq6qut1ePlAHS95QfDRQ47AkVZovC+iRpktfOowAMxTx/okltc5bAUQUk/VUtwuu +2x1dn2xboZOHsVbfTAsRLiK2sx6bHlALHTCQlh3kMqgaQt9L5w0JFpCWQULgWG0GBjlyl/hZ+p7C +1wKvaCKiBIHQ7leBIohYmKIjFE6SOyWIz8PYxagm8wtka/JLZsu2q1h+W76wtgX5Uts25ctf7mZG +ErbrGZHYyWSEU/FbjpjspDPyMmjIqyihJiNDA659fLmLVQGl9La1SKHND81hz2zEA+Zgouf4YIMX +j3KR9SX75ZVsP2xULd2eRR6Qz6DXc+Gy/D9+0/zt+i1XO3nIiXl/J592Vx4YxIKoFwskIQMAx6lR +7j/iUgKdR0aQcCiegaVm8BQiSY7tFKldbC2iZ4J/xFQoR2ErZSyLtKgDiOlsexFVusVxC3gG6OBD +CvkAngrtDLYgJNciio2MloHWJKGICVwPliHdelgEgM5mCxphoAGxBqcUma4bU2TCwDgEgfg+4k0Y +YycLs0HECmB7EHZ6gNkVgUPZ+D7G9CbMewjbYRQMdXkw3A3Q8Zs9rReiF0W+dZtOZyuZgxrZKLhA +eYzoEVjTeg1MWlRE43tQzCAuit3ovSOL1jAb+GfRALJ3lNvmGdEQPaW5drUwVHhhjs9XDu0D9OaC +tLCve5eQVfDatlu9gvGzFcL+ahhUU/0q/a3nnew1dmUCNMzQdjAUAl1krQveAr/Me/vECPSAFmDr +EH3FSIS8gA72reXj8wO3Cf7b/Jj5OQL0J0KlP0MkxMc2+a8gFOIQbDwHqxS13X/fqC8s+b+S3W4n +vYqQi+g9Ciq4qCjbTmTfJ43VgxTWLsZnUT+/KBO1tLAhLskFDAyU0L1IlpaeO+DFMKa+OGl/smNw +2IN8oLxwH805lfpVLGGI5vKJXqpKMskMZoq2VX+SceGExvcGjWQytpdemUW31r7Rh+qUWdyZsk1s +bloYFOOqDrClC0YbZi61+EKoEcbEcOpGwDuN9nTfLLmBnW5fualwUaIW0jcfcWG0r+rxAPdqaF0h +RhadZtXH5IGEeaBNNU/YJVOOoXtdGJkMxCX64sFpoJBD/kZhVuJoXqC+F2BE6BvnuyX9SLXyrnZJ +9ei7yt2HTWahLsJOqIUOIxSCLni5dh6yLU8PPPczoMhjGfDUcxqI5bUZGOb1G7RW3+lQ7fvhkO97 +5jek3Nt8k+wMiruWzmn3RppS4AhvdCAA+av33/36+t315eP1ayCcCsEsjggQDNX30A5TK1zEaoKg +knR6rCYKbniYJgJdlaMtwzTRqpZCC9MEreOfPUxT/pdsMWWYJii16s8sTBPBuvJ2n8M0OVakbrwI +0+zjpOoJD9Ps46AeVRal2SPkFbxxGaSJdQzU6lmQZj8MasCyGM0eennuTBmk2cMGQe8ZC9IEwxln +OsGnIE2hgydg1ssYTeG9k07XYjTxnojbXY7I7AdT4pcxmlh/S3OrxWjizWQdSTGaPXwmudYySLMf +Elh7kCYjdSkNWZDm/vk/iy85Hob3TO6EUZpjCtIUMHilIY5DCnEEtzDBUtQvsrYUpbkk1gRpX2TV +8Dx7JecHSyJkiQNDiKwX+6SIGuiTB3mY3IGGaXYpTDMeXgAcc8ZxsjDNOYVpPn8BE43UEyKjGKa5 +WJjo/9+Zk0+L09zLiAC7vGKcIiMCjPrqJGopEXq4UKguMqVEoF2e+CFnRICFXdMkWEoEGOGJdzwl +ArwdaIgqUyLQNE8/T0uJgAnJ1lcpESB09byglhJhb/2WEgH3j3+oUiJAhqKQ4CkRetB+6GQ8JQJU +6szGUKVE6OmDFIecEqGnXhYY1FIiQPXO5VUpEZhcAMKLp0SglwMA21MdwK8i+dcUKRF4DtjGot+s +DmCWEgE7AjJZST8YLX17yogAwwTJhCVEgJMDOf8qIQKQtm6PJUToYArrQ5EQoRNxUZVYZUIEmEeJ +ai0hAqhChN+GJ0QALERg6iohAuaHIdfzIUACFBCfcj6E/aM0wo3Z9KhKOR6m5mkJWYyHCbmFJ5SL +8fiI5KmSxXgQXfoeuBwPE/I8YHtNjqc1XzNjFHJ8N8DnC9BkcjyJKVCGy/GgfxF+B6Ucz9ujaoEk +x+NF6p9cjoe5mLxkJcd3RqtcjlffDMCGyfEddKN9HGs5nhZvvmlyPA8PKk6X4/GmahNKOV7drtJK +IMeDIaG7o8nxAKBBb1Mhx+NWz5TRTY6H3Z8Oli7H7x/lj5bjn5nPYF+OVyG4q4TgKSTitiPGs0+H +dAhB8OGiniRHB2DE1DghIQs0tJrQYE+O/9j8pRj/svl1gM8nxf916AX/HEL8XiYDZqFQi2SRyYAo +PAxFxEpPuwis8ymohYQCjF8Z+YLLD3Jp0TEgKwPSXVj8DNAl3RfLKBvvZbE4oFHq7ZaidXDfWvQo +Y3rwWorAVksSkC3xmcUGEc9DhCojiIA3QVMszAhfRrKW4pBIjdSjKQcrkSDhFwtpAo5gXKEFPUE0 +iFCKlqFRxEGQGy2Aqhdej+KIhVhhp4Wb76pALLAHbYvYeY3WEvFOvTAtnAvuedygKuiLlCGqWwW8 +jTAMr7TFjsGsr35MOcAMtFPNMSkMDWgQb1uYmtLIIdbRbI5CLegNyJKcj4XFdfwh9lXwHAanjsBC +7IDWSRAsCI80A7S/itWD2EQvMQvpg4C3jHQX1aA/jEy3zjI0EIvSs7ResEjNDGRPkrg1lHGIuVG5 +LjjV0UnZfoczLIhdGe/IHQGwWlQkvMYAUBY2ab+XsZXWZgGY5AfZkEI0MTWRahnIiW/l1lq4J9wu +F6CmFA9Kx7MwhypolC6cqi8yB+uYQjRS8CmOjKdTpjKgcA2PsxTHCnJKxUmZygA7RrdQC4nlCiIz +CGnQLNw0NPNHEVoLrw/yBRaACwQSoYVPEbo91Gy4wWUYL7EMopMs2BdXmjp+CwcGJ0R1SRk0DCQS +ADsWWgzqDJugxR6Dj1AH+xygjAUkdoJBzBiZhUstyhnfxXxnZSg0drYrUhnQWRZGPYuoBmACUZZh +1zhExnNYcDaGJu2x8O3eEpeVQd6K5MbgoeD0iIa7lQWLk0GBPqsMKafCAoCV4s7B5NE31wLTqYag +wbUIX4eKgbYTC3LvYENCjQoLg4dDKxm7MlieUMyFa0Q93yKrlULucb9T2JCF5ZNfhZrNQvedObXg +/m6wxBBFCoCOqp1hsDwB6r0rB2WJBLyhTDfgjTo/NSnq2qFIRVP7yWLaNElUSuN/F/hUO6m+b79W +c1ijr0SICZNI2VJxeRjdXH1PAjj/aoArbGi+L/CkUI2T7x28tgmltr9QRaPBDgCOlSAg1SnJW/Sg +97PEX+Xy+WGDjGHBNUiop7vDDaIV+VUJsBBzwBxABfTB8Q/GcwNR4sycjgNCWCuUpoTzOehW22WA +NpfBCnZdqGpdNKVJvlSYHXtqNw8p4Bhvkq4mqVM/1qlIlmQFtXwlPYodezoTYOKxwhJA3yAMnhUl +IImsI5qpJTKrM6voZnj6lUF9ATw/CxC3TFLlcBEZFZxLwo1T8pQ33EkqX+eKWej07zi4Mz7CsTQc +0xj6WCQuACdI8d4QPhwdoAUvExcss0YUGekwtyyjLZx5qumPHFjHUOtEpEQmpjenUw== + + + sb5X5/OK1sGHoc2pfTrwK8y/YyTTGiq6ao1OfEFpQMWcOveDMl4VDYeHX85RgJ0gVtr7vWQWrNFZ +CpgFQiiYDrjYjwg9KFmTPqjGxXtBOz5r4idlcZLffM0I9VGVBM4vwVUQp+McVTvotlZ8F+4GBFbn +zrAfkGmdf4NNiFikYvO6QffPuEHwK/hY4xbBakIbUbKUsqN9zPmzlhSIkLhSsKwq+Ze8q/EPxuHC +oaClcZYc8JwCtEouWfhSjuvZCkb9RE9WEPVelAz50KoXpacqmNRC5/nJhI8Kfc37j1HdmC3P2aga +JZMfCFB1kgJBX/wwk0OmSMOMJ1yLGudVCjPTpJtiEg9i+CBVmUgkJLzbSU5gXXKSOBSjysIXv2GO +dao5WQkKk5sUJx/B43M5DyhCVZqlizUUIXQJM09szB1DTkuAhJPttJOVQEf0pATdifpBJa/wkMwe +dUYCBFjQKJd8zIl6h+SCDkcUamXLbATjaNY9S0YA5R58Z6tcBJ05ZiXfeDKWQDrmPt9WhjP/s2Ug +sPc9AYHNUuYf8LWYz7+vuMw+kL4p5x6wj7YYA9+aKvNA2r+cdyCdmKcdSIdQhT6kg/IACT9Ji6HI +B17GWjhceEhGApwctZGgqw7uSCDoMSAGox4mkuC4CibxTinkxO5CDkpJF6aKXUmXyiNc7NJ5EEy6 +mFWgjF7dHE2TrrbH26TrX6cYSDjCg3cMieQEAwnT1PkFEjryWCHDVxZNZDitijkyvGeRSYYXPXYp +o88yxslwrIdCJRzswVKGp6uYKkPmHnrl6N7DszJZKKK4nHh4rJfTF48HczJUxY05tfL4MidoFoLm +ZK+MUnPi6NFsTj894s3JbBUZ59S46JcItkfZFS1FNF7RmqL2jD0oGhITUQUAOq/hgYLOjngsYW4p +Yw5zq8UmGvvj4YvOJFVhjs5LeTikc1seMplYsiqw0tg2j780vs4jNJ37q3IKOI9oAZ/OSVY5BZzh +tPDRxJB6eGniWasgVONrPVJVud4cyppY4zriNfHPOS42eYFY4GziwevwWmXTcxoBY+M9Tjex+lU0 +bxIGPOTXhAWLCnaJogwedrEjhRi7XOJRyC6+VNHKLuV4VLPJQR74bMJSFR+dBCqPoTaBy8OsXSyr +wrFdePOwbRPvLLDbZcAq/tskRQ8Td1nSQ8ld5KxCzl0w9dD0LLta8LoLuFWIu8vBHgnvorIFy7tA +XUXUu9jtkfdZXLfo/NxSRvHnVluIKwIKo1rSFFSZA1yhkPu5GsLH8pZqTm/1tZmGI6/fFCE732m+ +RbYdplHJO2Zql3pnXTvjJ2D6m3xKpuapT9O0QfnUTWGUIcP0SjUAmfrJ4cz0UxkSTY1VQ6xpuxyy +XSHmwO96s+qKuHrNb5Jr4PyymZ6uvpOmzct31/R96XZnpWCJA7Lu0FBF1i4aNnEdZIlyXFFpeMlV +mY66XONZIThXjDoadN2pIUrXsFbo1PWwjnVdVZvQsutzK9ztal/H8K4ZNhLg+uMqg4BrmZ2gmC66 +yiDgKutMn0yr7STMld8VpXMVudND16JnmmnK9pq2mk4+0+Cktc9U2hoqYm6NTvPNQpD5AjMk1PyD +mRsyn2EGiUMtJcuSW421MQtIZn/MUFKzSWZPyf3M5JJZLjfNVKyZWXCcgTMbT+bxzBRU84JmMco8 +oxmVMl/pxqeS/UwWKmdS3YaVGdlk6arYXbeHOVfsFjPnm7NlrWSv3QDnbLib6IxRd0Nexc67vc+Y +frcIuljghsNKenD7ogsZboJ0OcQtlZW44vZME2rM4OlSj5tFC9HIbacuPrl51SUst8JWcpgba11c +c3uuCXRu9a3EvtzNhEMzH7v46EbmSsp0W7QLo9lebfJqtmuXYi0o6wSXERd/uQjSHZOQiWy5E6Uc +3TOqceizuN1TfQM0YxJ5D+WNhhgXcjscQqcpFJkFifVVuk4aACBXLZpTphDAwVF5YNoEOs0sRc5D +oESsQ6t9mGqiJ4ecsyf2INHMBlMoOLyT6T/yOKYi8enK7AG+KFO35LWXyQP8G1VzkzfBFDt5s0r9 +T95UUxP5xpseyc+nVDb5MZpGKp+0qaz2PR0w4W7yAEBzlWtB/epa84BPwdfw3krh2ClAGx/c86aX +gdxgAgOztnm/2KWERxYU3hNp7URzF91SiHkeysLQ85RluHpemvfz5Vvo+95X5q2gU0jKylOlD8iN +Keo/c7qaF8B/r7IH7PdKaf6KcbyliOTPrRbxDzQRyJ1ZVoA8dpk9AHRomtNXpn5p6XmonQ+8qr4f +6n5StAIGkPdMQ4stB8OcUtN5moaelSR3kgdgo6cixQOcteGcnFMHjBr/XgVheCeLKbFhPAeFTVan +qkhLskZftMHt7pftnrvteZE4wBst4N933VICeEOZOOBAL93zPEw6gyKQ39tStH9xlErGM4wVWQMK +wLBe9h0+zs6H2XmDKxyLtA1vEyuqXGBq7BgwOHU5mhss3Uh+oIz6BnPWkQWw4HAQ06RGTgHk4KG6 +fifLDGSepIM1kz2czj1AiTBMnmWZ69j2vBCLgcebmpnHwuSVkQPnXobTY7yxzBkAosvgIY/MR2SC +qpDKCH60qn7GAv1Jhu10NG2FH1OZMwCtmvcz9+uSUJHH6rSeWj0njL6UY3xtyPZGHtnXDxWhrqv8 +zGABFL4dKEenM9iWwdmVWQ6rrcULQ3EAKM9G5tQPqQd9tNQ9fpiycEb85DOXiZSldrjwNVTww+py +cwlnDBEfMnKAOkiVREU89n4vH8gCu/OEZQB4XpgFiufFWzB5/siSTufNsOB02y4LX8+bWoa553VY +OHw+IAuZ94MsI+v9vC38PoOERehn0Ckj+R3ELODfodBSAjiwFnkDHKS9k0G9D+OXo5rNL5GvKt0z +X7fdxurr/NL6JvjF9o1yBFBtqCMK33hHJn40hnOqE3TU5Cft6MuhwRdRQY2jQ4euPYy5g1YBpX/p +rAETIQbOJF+yBvyI+F4AzTRNoSaN+F5eOo0ghUipCYEtxlQj/4gli1jUjiFlzIeSYlY7sjhdDmtl +HAD1eEX0K2Pj6BxhQbLUFeTwXqgXE5oqYm3RKYl5iX8Ci5DSzqS43UyiivBe8BsM6yi6BftCHyqq +88fOlCHRI1tYl9I1+8oh7DFHZvmBYPOZw9n3gQECcSi2KiKEdJ53thTq5T65dunWQytDm0c6HASW +MM6pYPaKTilsNA9koaV5wjIENS/MQlXz4i2cNX9jGfaa98LCY/NudR5raLtahtrm3beQ3HxCFrab +D7IM780HnvsZUOSxDHjqOROE+dIcCH35DqvVZxpI+2441PuO+e2odtZvkZ9Avmd2SrvX0Tj3P0d0 +b846MYwqiNQJRDRQdSkSiDBPJQoMeQIReJhYRKlnEJlkhwLS0HsGEWgbmVDbM4iQPnr0u2UQGeFI +2RcJRMaQyi55ApFxKWe0DCKw8WmGJ8sggnTozGTmGUSGWJSt8Qwig79pGURADhmC7xlERtgmRsu2 +bxlEQEhH2BM9gwhCV5h+yDOIIJ4319u1DCKwjTDdm6cQATXXfPKWQwSmzd5W6zlE0G+Y5yKHCK2b +OKW909w2n5ZDhAGkfasBpPL50dTmOylE9jKIHE6/0QYtNlEmEGEye1OTH39/XL2K0wA1JjTadf6Q +3fQhRyaHglYgd/Pyyfk+oiin/llRRz95BZcF4c+EMp9+I1zA3ZvVTzab9dXVh7e/vn+8RF+9lc8L +5D12DH/D8UnHa5oHcLOezDAVNQ9EtXBDtaLmobfcY1bUPEDM67wMt1Y1Z7e5KGrOkViF3IqaC5rJ +8fte1TyA+WZqfKtqHgSVS/+5rmoeYMPlfdz7gP2y5sOsXn11WXNaW1jazcqaA8OxTIyXNUf2/M7y +UriVE84QHeoueFlzzNAhrMTLmsPptrf6MlbVHNYllATOVc3HQVMaeVFz4P7RZvSi5t7NUCWsCExX +50XNS+STi5oj/8LEIvFW1HyEw1EoaprDigeCQHWa1zRH1WtWifKa5qhegLITXtM8tKDOw+zYmXYa +GDRbpFbymuZI19wjP4rXNIeXGjTpnNJrmiNVHmqA55rm0K+hCNH+URp5Pl46OEyw/YqQXpUODnAH +ZmFYy5McBLtRieX5lEOImrSC7iiWdzmAp2Kuf8vNjDcxkmVwDnLmrGjE97xXmJVuejLowFrSXc4Z +DaDvJqvuabmlcYfgI2PZp1naOnRzzlEdUNtksWxzlss6IAy37ZdcQTiYw6OnxQ4wKgxdVUM4tKi+ +gJThll87tAkYLQ13v6QaQZzQsnWjtYPLouXzDqA4LT7Z8n4HGLvgicQJLT04vqibuYUphXiAfD+H +nGk8wIwSbU8tI3mAnZMZiy1reUBCCQT6e3bzgBQawFT6ZsqCztNmnQXLlI4pB+YMT/nUAzYc5jK+ +aGnXwzDaiyk1O3a/B3R6CncsYpgsS7mleg/wh8EnaCr4MHSpfILliw/gcvwYLa884K2Fqcpzz4c+ +GfQ9R723cFstl33RL+W7DzD8wZs2t8CQB9uhvumt4PVTsn9afIuWlIs/AHGMVrU6pewHkItwMuZc +/4HhKO1ctFCvZwn1vbWbFYl4JQGSClTntYIDge6QSwrssMIEgc4arGObihcEGp4Q1mpFDnDTxpDi +LqwWAghKYN5sK5cQutbiSlJZBRCnQRjcuthwQBkclhm3Kg14c1mGrqo33C+p1pmXewhIqcB6A1YW +Ai3cHk5gxSNCizQ205BrDgf4p7GsgheigGKr6zrHTqymAxckfTFVtOhpGERecat8gZbZkm3kChlI +CcxStF5FA+4aIyuQW7GNSS42bCn6phXlmGFyQRyGF+6Y4fGBOoS5APGszLTee6sDwvxWwA9eKwTZ +pxZW9U41RfhFwT7Ta48wLCPmIsTYa1IvK2ICKmVk0EudoNcMOcLLoXB4RtBY2RSONNlSrbwKaByN +mV6BRXBzur9WqQV430/EK7oEeOix3oJVfQmotsSK0lYdBohyynNqDRl49nBbU42ZKVFDL0TDtGJe +DMPq1Sytlg3TejY9HarikKveBGS4Dr7KVB0HKJ4cXq6gswhfRGdtb5ljUbbDW20ZuWqPi5+edRxF +m2ZLMOxVgLKYapWCfCxvKefMrbY2r07k6/cqRjvfaaDp++EFkWzDvG5Sua+5vpJtf67BZAfktZqq +Y/SaTn7cXvfJQcLrQ9WgY2WkHMS81FQGQytJVYGrl65ysPbyVg76uQxWeUW8XJZfpFxSK901r7xV +Xclcocuubi7iZde7KGNcoAGvCWbYIpcNM4ySq4uVmCdXITMMlSuVGRbzimYVtvPKZ44VvTiaY85c +RK1EsF5szRGxl2NzZO1l2yqk7uXdHPl7BTgnEF4pzumIbm0qKOf0xgvPOV2qihs7/fIidk7jvNhd +RQq9KJ6TTC+c52TVC+xV5NcL8RmV9lp9TshzS0nwc6sxBl4f0JkHryNY8Rheb9B5EQ== + + + K0l4oKHgarzRmB+vgOgMkldKrBgpr6iY+1nVRWfKvDpjxbx5EUdn8rzQo3OBXhCy4ha9cKRzla7K +cs7Ta1BWHKrXqnRG1spZOq/rVS8rntirYzrv7BU0nb/2SpsVH24FOY1b94qdztB7Zc+K8fcCoC4g +eJFQkyG8lmglanjNUZdIvC6pSy1ev7SUbbzKqYtAXgnVxSSvl1qJU15X1cUur72aBDOv0FqJb17J +1aQ8r/XqgqDXhK0ExtxPxUqvLuuCpxWhreRTK1XrYqxXs3VR16veukis86XquGGy/KVWQTcMUAlA +a2yVdgEQiFW+aopyyGjsY9fnesgBIZiQoby4L0CVse08RisCHJgWsou5HjKBnByAFRTGYmOwQtFW +eDgwD2RbFCjmZwLLVCWRMS/D1bzWcSBdRti1lUQOE6oBdHqNcj+qIZAVwsdCZnwWGfA554Wx91fV +0pY2cQr+CagPtPSxrokc6CuOPAu+HVDm47rlbcOUfXLkzNsLvgrozY8gImceMb+dVKQHw9TVNZEj +eFXTPOmpC4OlJakdOui4bcp2hyIoA/jxCdAisknTOpHAMcLHYrasuAa1EXq2QE4kwTVeHMcC/CMC +lIfkjJm7gQ0eYfO1mxSBVfryxkVYs4Y+6+V4LyMcRbuiJHLs28Rv2RWPWHNvPJ6hggh/rh531dBF +hP/qQk4kYZVIrwmriZsrsAta6USey0Xa5e4gO4fhscjwxiV9pKE7tGqdeCsJD1TazQXmjMIEEuNy +QsOw+CSk5vSiyNjENiDtuqNqBDFPtq2G0gEXE6+cof3YgUtHcWsjDxHkASyQkgelIjzvicnrE6GJ +ba9JLTJBEggl46YEyQgXAJ1vGnHD9s8sZmJEEIvIOZyNWEb6g5PMJoIaETEykEcwwrvAA8TmNALN +j6Im1oh4pMvyPGVi7y1XifCSKcj9Et+A3aCvcG4YVUFZchcR7CDTGxubkluMnYnMJWwcpbE9AHTl +Ao01iowyRO4Fb+E1nJeahQJoMDuuc2MRR4igPefaAK+8BMYj6HYzgS94buMA0TKwToxxihGe+bAZ +bpNkQY4yQkOP4gTGdEZhaIj9nTmNsAl3xkQZExsRzksm1pjdyFzAAm9VWeQIkZ7MvzHOAv2a38MZ +7AhLFDJXKOJNjDhaeamdWY9DTKTWmPo4gol1FEXWPw7Jn9PFA7QwBYeLEWihnUHfTOJGhEGRyM1E +kggjJllRE10EqNUhbuvIH4h4CqkwfJKCIg4spo+ksBRH3MI41ZWRI8ySRBAmeMUxJhOtCWj8oMU5 +fEpxEWZKlJAwQQ/7LPL7nAVCDDT3wdiQJDiiXz8DpEy45PDBqjNDCOVYltXFhVXgMkFsQ66LHOE+ +zt0xwZe4H8KxaQYoIOOG0dHPhegYFrXAuLAdh15TZRirTqE8jmPaVxPcI35gJgET8CNyT8cp28yp +B4gI44hLtpDjo5iE2VUKEdg312VKHzmk22vKiTh2GlWRW6ZO7T2VEsOX4QqRiJQSPBIvEYaoKyTZ +0DmTgsX7uRLGx8ot5Zy51ddmip+8flMQVV9JJZLvhGuZbLNMF1VtaVJY+cYnhZYfjau9qiN09Vg+ +alOhOTi4qm0HbJJKzsHL1XYOgq7eq0DV1YAO0q4qdLBPCsXqcrja0S+RaybtnrkCs7iMrub0K+uq +UL/WrjKtrr+rVh1NuPrVMYmraSuM4+pcx0yu8nXs5arhCsu5CtmxoWmZHWG6MrpAq66yduTram1H +0K7+rhC5q8kd4Zsm3WmCK9yddmxLxbzTGFfgOy2q6iI7zTJbgFE1txhUxM8tC04k3frghNStFBXB +dWOGE2Y3eDjxzi0lkc+txgyYjcX5BTfFVHyFm2yc/3CzzoGWkpUpWhPH46YkZ4rc5FQxT26ayv3M +fOWMWDZzlQyb2sKcq3NjmXN+blSrOEQ3vjknmQ10xm26Ha9kSt3c58yrmwSdwXXTYcUHu4nR+WU3 +QzpPnc2VJe/tVk3n0d3y6Wy8W0grdt8tqS4WuLHVJAczyVbyhVtukxRipl0XU9wAXIkzbih2sceN +yS4audG5EqHcOO2ilpuvTRpzK3cltLkx3IU7N5i7AOiG9UpQzP2SPOkWehc53ZJfiaZu8XcJNnsF +mJCbvQdKYdgr5brQ7MV0XbD2mruVAO6leV1Q9/K9Lsx7md9K6PdywK4c8HrBrkDwusKuaNDvTPWH +XSHhdYpNb1EVRnb1hpc8dhWIV0auVCW5n6lU8limdslTmnrmqlqaqXHyJ5i6pyqN7GqhvB2mOsrb +VqqY8vaaKsqPwNVVflSlVstP1JVf+dRNQbbvW4Ipj9ZH9k2rCiRj0+YON8UKEQcAMIiQ1Su2Bq7L +yhp7r1T4OCC8XiioFUeujih3Qqwpo+lsGORVo/XbZ7MWPSFblPfLC190n/c/MG9DVR4ZrExAPoW3 +davc5ljWw5WNTpZEbxnZhXzzgW4pq04eyRvShFfGxLJ1QoqEVHKKVUcilAhattUGn1A3wMIDrZhu +0c8Wn8fa/cirZrc+cgUAXmHY99GrEPtee7Xi6ky8qrG3euVjP18vkFwrNXM/BZY8VIKmPGMBc3lh +1iuvPQFv9Xm7x+8lhCeyxFV5ZLp2TsXO98uo2KxoWdilOv2im5U+9pG8QPKUFf+5EelL+7GokCy7 +SOqex4aVsStKmmppmtzPP8jH2vlEO3uv51nffSv76a1eGjTMTGKx5BKiOGRiG95jKzWKfsoXWTlS +0CKKYla1tCYfVt0UreroYBVQ0aJ5Eq1SKsjH0PVWYNkWAsMuGVCruhogiEJCs9qsoH6LFX3yCq6B +RmiKs6nKa0B6tC7XggVlcpTtJWPBmpFB9KqysZWFsTKk31M4lo5m+7AStblfKmKbh0p1YuoZrSKu +rctK5uaVW2Xd6gu9Aq9vhBXp9b3yWr7VnnrNX997rwvs5+P1g6tz9DrDdtxeitghwtdQAo4XNnYA +89rHDoReItlbVHG318/HAlc4d8VnT4MOrlPayogjYer0xUMpgavq31jS7LwXTO8yxFwjOUDsXeax +2FemSrLSqbaOMaVZzicEd346X9hJgq5TLaEv2olTATCFXCU5jK1aEQxy4HvbFeUC6SI6BLX6OggG +iAn0ZvCK7gFpFc3ibiBd9EtgX4xl16Oa0i9RWli+Z7Z2u47VJ+Zba1uRb7ZtV8YA5a5mTGG7n7GJ +nVDGOhX35cgpHXjGXwYTeREl7GR8aCB2AGfu4VaA65837HEMRdij/FIWS4aAznwsX+Ien6yWDBcT +QmuSY8gOtKOWxgwxFRyESY25I2AmZxoXtKhnf7+osKDMELLBgJ2H7gHiPZgcRvrCDj90yfjWmmNn +tku1vWb3CghHQzbiuAz6AlxEaNiNUIYCa8O1hPKsslHw1IB4zxQzPditmBBZl1x0oAkNsASgpZ2N +/+o0ExDcINQyMUdNQM6hkE42Lm3yXYHOK70H73siH+hEkUgZ/Cmzx8CPRFAl9IGUYeG8MVv4BXSC +VHJiWxlGgffapVe3XTrdwZpMU4S36Iwo8UijPvQjsKZOqYJUYAg0VA2TRnICffgXIi32EtT7hPmc +hrZTpTH9GLpptQcA2+aTShkauBXXRBAVpDZGWab6TKxkKOgDlQyBbrUIIMgstBG4yYGefQFx6R0M +KNKotZmgQWECc2immeyqflXa4BMCXecroTXg5pdUvvAV6xfinKGAYAasvWnnlGp1ohJoDlaS6WPT +yqvMxTf1eJUq8vjZijEd286/glinT6xZeLiscs2fW61XtKqC2+rBgqmiQsPrxgJsmBjfiLP65s+d +BjxZCdpgxQ+9VC04ON5lfTGVtCV/Rnc4K3uLFnesZeo5DE4rhdlmkjIqyXRWaRfaHYSuZg5kQVxs +u1NaOXdr7RttoFQCeGe+lPwtr8vKCee1W9nh+hutPHHeCyth7NtllY7rXbWKyHn3rWqyn5AXV66k +0KLflAKkfCykn4CipJgzmYRMJtClsZwdHCp8+cgszQAm/0xhb0YrgZG3A7wLHfB8y6ZeTax5a2FK +macpby1PYExifD6kcayVJOD+6H9qFkE9cu9mQJFHMuCpZzQgyyszQMyrN4CtvtIB23fDYd93LN+R +YmfzXbITKO5bOqW9a2kqhT9H+HXoNO1M3yblBLxl6RGGSHoW9YWTqqb9gPMd6gmD7mrd6LHLZRUC +Q2NHTWZHQyhORHP/dSbCjGpxRb4At5UGZnJlKsZBMxcHGmQt310ISjBTcvK2mJLliJmPAAY3nNyQ +4guZkYCxQyPOiC1wyEylbtBPvikwh4LeAFjJmNynT2bIALuWpi2I6nGkn9mlN0ObQmb4eSn/n7L8 +TDGUSs/TlsY34fSoKxGZowvKWdE0prkEwfOHKdWZhg0kJICDL69mOEW/UQMYlhkJM+H/2NJrujjI +Z3EVf+agazh1dELhVywwTHRSBF3TnxY+7h1iRo+/DzlDeK2YHB6eHXVdzo4YCJG/Ni+fne8PzLc7 +fIm6/ixR1zCraV68EutAlaVpIx3rLKmUSsY6qJI7jvMO1oHIoMmwDetMwRKoGtqBwK2J/Eu0Q4vN +FAu0gxTxrKzlaGdOmVNrtENqyJoEhnbmVGE3ox0UZNE5S7SDfm03FmgHVI4pch3tQBJTpFCinSXp +jzLaWVIx34x2qIod5xrtUG2nK0loBzZEJvo3rEOLHFP8lVgntp6fVrEOZAMtc2tYZ/80fzTqybw3 +0tAa772DeV7toZ6DdzeqyLuDebTQ60j2bY6pWPWx9+HX9Cp0SHpN0/tOodmqzuzR2UvM86LZ9f3/ +E5jn6WP4W0Y8wiswuVlPxeuiyhdY15jnCBH3DCRQTx8kPKDuOaqrD4upMT5qtJpD8DSMjEdbNOFK +pC7A1B7qbyTn3IakGrHCUHQUslh3ysvwfGI5EUR6TLTLY6yRsR8tfRtUpQH3i56hf+raBZeDGDT2 +dqJ3w5yKpDF5RBztxU5TUbTqx4X8NBo4J9cXmhQsVDcHWXDiZIqQVHuF4Wl02kLBMA1bbbUQdVws +6BLIs0sZEODO38OhhIkMICbgTWae7ZGyG7oXps2BVSo1mOqFiWeR5Wehe6lhTCRr6OD9JSvUpTIM +x5Y6pXr2TA8U6eSn6Vpl9K6jr+Tu+X+i7uWVKykHeEEqkd5XnvbMkYObDS9GWdorVWYMwndAmwEG +ZsJLC4xnE3yKA+CQKGvocSBwKH7VgQFSPH9gBBE39Gz7Aawt0yETbVAJIxDyil763XRk+k7rKsK/ +VXY8qWGePfsEUiGyF5LUQDMtouJn0MZ8bIP/CpDRJ+pjdjPQILS1hfQChe6CAEKKZMiJTQ8GOUwN +rkTGaZQdQMSXVq+EZxizoTBpZLqGCEzUN6UfsYEG4iJsB2PFWYMhNeEBfKDNXwsIS0tMU4XLGmpw +YmOg9gIsHJmEBoinA+hgqh5Zt/e/wZLQMPKVfxF0xzIOTHg9L5b6IUVb4hNSaotRsw== + + + jFN2ZxU0y929zCmOHBsPDowxu3BaxeCK60JaGVAJouK2aYdZAgqiKDOnYWvoMzK2mmwdSFITGoA6 +W0gaD2Huy25JXqT/TuDxpDShUDy4zojbpV+N3G74GsgWajkDsh01S4WaC+GctqgNPYQ5S5NaXRDB +icgUCp1rz7/E5LfSpwTXJqGqegI5c/SHqOIixEvmk4WYz0Ok8DpYCnHQA2iUoDMfWGUEpsBAm15Q +p4r9U9wW50uHxIrCgi5o0Q+jsHAmIJPpFJbuBcwKVFJYvMBCKE5hOTDF30RgkaAMG1mSV0Sp0wDu +5BW5c7ol5WwheeVASx8r8goK0yMLkJFXBOcHDQ1O5BU5d+hAXJFXrELD3hIOHqHdR1kmo6/ooVtT +0lekBBigLHL6iuRtWrvJ6GsfB3XGqegrUroJdi7oa0+szxwJSk41pxNU9AV9xfppX3X62lMRgr1J +9BW56HSpJX1FhrfIuHSlrz3M2QupaaKv+6f/WWwbH7NNqnFj6pS+ys1MtoIxkacAygtDa4/NMfLq +1o0lJP+tVyKnzakIw94IQkGRMxMheYiaiuoeX1g5QFe11NByeH7Y8WBeSQQ2up3jeQuQIfoUFW8U +dvls9o7/02bWvyCBpcM59WwlgY2o/aymyURgI4XxacwEFpsC0aMmsLQ9UXtrBDaiOJJmeUsEFhEZ +GjBfElhIzmFgXrlEYBnhwVjcksDGHprllH+OBHb/G4zARkYS4i8lgUVAABOHOoGNrJ7TdZnA0vef +ZLGksnDYZ0CHU9mIyuBDJrKIk9HVlUQWKxwyhaVbMwPgjXbCRT7luCpILI9hClW/pBxxGovtSB4g +BY3FeOnDE43FMaSsIonGRrhV9PzoTGPpoMy9cRqLsoF0FTEaC2rAzapoLJQvTDBlNBb++yw74jQW +Sq2UaKugsdh8NQEYjYVjO8PWjcTun6ORWNe3+OdX2jPqzRmob9ozmqJhhHLtGe21zuaZ9gznjuAP +V55RkY5QA1ee0d8lJcl33RkdcWYazkIR906W1HRnCmXGkpruDFkU5n7qsu4MEwzjFLPuDFaXaUhO +PK47w4pmnKDrzrAbC9MBmO4MozNGo9KdASQDY8pNd0ZnH2Qadt0ZJm/H1lRgSXeGOTUoI+nONKNA +W+jOAqh525vSLenO2I+HasozLI1Ht3+Yn6g8+yitdPXVq1312auDGihqKpAJuNCfIVDiVZgXFNcp +VVh7IzAycAxMKjuFXQXaqx0N2pEF4EqAJ9v8iAXoCIG5eP9bEMvPlgnVZTjUo6ODTCWHdnOqouxy +KOqERSrMXQ41r9NKDmW/JfRZDuVYVJqZHIqiZvSTq+RQ5P1XNyCTQ7tZaVAlhqLyEh1s9r5gTwpF +8U9apispFMYAeiq6FKqqf/ICWvSYfHklheIl4jKXQjk4GHQXQ7s+2ZQrMRSqdSZhMjGUdT8RmeFi +KE0iU5rSxNCim5ktmUqiL8TQSifvYijWykTaLoYyk/qSMv9QDEXm8zGmWkUuhyIVea/SYZJDWdhh +pidWEkRZVi/JDC6Hom6ghk2YHMrCEYE8UZJDkZh8mJOXv8uhSGKeEuwlORTmIIope8doNHIvDSo8 +ojV3H+qagygo0zdo6U4Uu9IQWxQEG1AnFwFcGlAWtYofCki581ykLRoZa1mUgmlUOv181ODjCxE5 +dlhHDfLJZD5p3g/6MqZkYcwsbDEIgG6XFBDMrZw7rayib/bKkOIGMc8uoz+x7J5lzjRoDk4gqE9G +vwZ9L/FLPb0KGMnaKcuGIpyMKMZXsloqPfRS3AOU3lozDTU0QcYRu9yyQN6UABJqZS3HhtKHcyp8 +B6KhRzqmeqwRmaJYowMxTx0/OybgnhemTeKUKImDS4Zap8PCYPOQ0uT1yaMuWhZ8FC9lMoZtYoBU +W07ZDIGf/aTA3XtiEyRV4UWk90ZKxAc+kdvCwmXgCEDyGUuFOTUnF1lCloObVQ+hTEViGFBJML0Z +U4Vb+FBAVc1UvUishvz+FkkLhoHx/Ch5S2U3+BhyQCyNi7Tu5JKYO1k2ymNx6CnEDFEdVj0wbk4R +EHxZmGIFMXjTkBuUyw3pgL3XkAvG0wffW1A6jVzpVbo5qTWJGphRNRq5pU3FJREYM3Wd747gKK1K +Sz4SLsKaBxOZI5aiAYsYoULglN4K9hFRDq1V1wOlYMqyxUtqsjiAc2rca1AAOqcgXJM+0qxUqlGr +XoW3V1BWEGhTdeo5lQOAxNZrqZles/dodSF4gXaz7wxLRqEepgYEMNoONlSot0Cyfst+o8a0otap +ipYMQCadm7RsD6ScVAoWJVrTBNFqb8MvCEUygXZYyXFK0gGYI7p9Ab8G85HH/WaWG9TOEVyrmUKY +F7tjtmoGoY+aK4Ut5kkFzDPKJWQBCJYVR0AtPa6AnTUcGPUj6OsiQ8xtqooWBzNrD5bUJ5qnjwwR +gfJxl7VE7azaPz1t/HXUUsyKGdrktYZyXpQjAL1aawnKvpCqETAYlyVCRkuGEayYO0L5mSggWgXf +MZXDNOmUka44kt4TCcFrjTMsnHNJxeoxFqz3pIQIgyDgTakiK9y9wIlq2VF6EqPkLZOLw/BjhwJB +Rgt9wqGMjtwsN4GCHUgM0i0a3Kp0FtkDrMQqLlz6hjZlxcObbEGk/0CHyzZVF7NobJften1RA7Ld +DQIF6unZjXhkJDQHGnb/50AzI5gT/KBTwgFgZplXpj/xBkRZQMbX7UmNnpoa5eLnWDqELSwuzbrr +i61znM1fw7oNi+YayCN5SzWht/q6oMKNc7Fy2FF7qNSqL3Q/NN+JCB9yAo/t1rCkYljVpiJNncK1 +bX5M8kc+ICata3cPcuityLQdOJQobar4rUCBtExxF3ZGZJgB4nQYgwYjlmAInxDU46qgtZtTIUeD +anKdikIS5Kuqe+jrG8JsnsBHdpGg+tDy7nbZoEVgfE51KbkO7rZdXuYHZKVXu+AYfOpYg75ABAhg +XPppyvgCiU2pv3acgjy4VKNUuKdnmNM0ZhzVz0kl7XgMKVEjCyOV+A66f8ZRO14EU0mPG8edWMU0 +Yc4Sx6LfAp8kx8UMySQbbuiaCVAhA5dYHfkYyYE68g/G4jiBANvMlBZOSHRrY+LNneAgl+fAauRK +l/7ACeTKweMgEa/AlBAJ6gj/uoQp1EQQJ6zF/oxYItxC63caQWW4BUt8FnQX2i4tBu/kGcALnGgU +PDeUhN5bjR+ACm5kxVhjGZj6FFxizVpEqwbsLIjsjZoeDrQU7Iy3OtsDB8yexWmNNaKT5twuNQfF +GBJoQnM/BJwRZowXgy8qDS8VyxanVO/CWTuZgMeW2T/4jGGnKzYRN4zysHGT7lTqDCflMLo0VIxp +WDReITOwmIm7YUwucAMzW1XMMMR5Kk2daaY3MM0exlgD6kilKgY8GJvjjDrEdFYOdGYeEi6VviXP +j3vDCVw0gPlO9QAmPvTIAgTJuRIzYIiCa4JLIzSZQbnnEgsuL7XBlWSDy8sq3S4A0QgI1zsXkhRT +QggohSlgS9QLSRIXEyib9kNrnyCAdQq16MZsyaTrJuIxHzPA2cVACPtRK1wX4mLuZ2Il1j7TpGmi +J5AiTZ+ViErLKpQBLsrSkMEk2CbuMiaT8GRisa42aGK93ixVmj0a9AfqgdhpbmrK6mhhnjbuK0R/ +2hZBLeAZBRMkdWOoo63AAFETVxsQy2nUuIhgKowXUqYMRf54E7BOiXkZVEHfI11UWAz5LylRPyrW +QzsNe2RENhl+J9TqLFwO+8EYtc44s6b3ZJ5BLaiG7xV01fErzlqTTi2m1o+qiFQfTMcaUhBmnlOI +HA3aV9XaUKCGBeD9G+h1tqhSKn8rytHQZ8n3A+YMFjrwfcOcfQo4y/s7pjSB+QwQp8xqxn5W8AFr +o107O9MpJUDP5z5ErXqX4QOmZfdDdTiCCodf77AmlEnLBzhMLvQ+WpxoKuwyDDsuxT1ASoapD8U9 +mJBULc2Z+80poaDfKaQFZ7C5XT0oDIOVD/UbilXTXONXmJlkwGv6TZ9QWDexeRkjIHSd2gDHGnKI +AcyHYxeswVPeOxZikvFePdmY9Lof0h02dAZUuphB37AeiEGEIc0xIwglAc8RKFiL2exJGdEizWqM +ymGlAkpB4SMjbbooJgLjuB3uEWHRQlKK/+GzgVToTieYghoMnb5p9GTSAI9McnACTpXoLJHYtEy9 +xpQw2+kb4pQmEGOng/AVHIwZdXqJLG6zBmooSUXYE01JTnqZzc1mdAo9B3WWcCqO1NnDPC6Z2nuL +8gmJKyj6GT+BAFvm3sktMFb1S81h4PIvTLbt3EpuMa4GouJop+HcD/woYLHIDBI8HhnT7i20Po59 +zUjh8tBA6TwZbdDMKGSsG2CDLgbGKagM08UU+25sIFrUdcjYRUKfhaw6Wwm1MvleZzxxAYn9nT8N +NIB3g++QujohNTmjbI3fxZsEkd+yX+KL5TuTKGe8Mybv2zlz2Ghg+V3jKHRF8KLAhXZuHVdQL4Zx +9RpYY05lxv0zyDrwSiUJIfQpN6JLEmgZU1o0FzhQ/23Q+l1JKAlmQnfhBZFMnRXwdiEHx68uTiYI +MdyZ5XeSvARYpX1RDz3JVThrxQ4me1HJDpbOZTR+z2KObCbLoZ96PSRxT7FEIRTSBB4682NLwiMO +ZFzo8pcETI4fk8MZywphpJQKxoRVgKmI/NMqy7M8l2HOYi+QPhKsqdibpGMgcXIwJkDTHaxvQxa0 +sRvMzXWV5AOt54KyfPOkcdzaEi1o0YR7FicYhhzBRiUA3uyQl9AVBfjohdtsCgVAX97UpHdAt2R3 +T6oJxLazkF5uQc34xVCNt9pCXB3iJvmkNAn0IUsgZ6oV75R0L3kYa6hms0ZflKl68sJNJVR/nzsB ++D4kGTBvlSmh6i01ZVXeelNo5eMxxVd9jKYgy8dtSjSHCNe1VYDjOjmHL9PbOQy6fq+EVFcDOjy7 +qtBh3lWK1d1w1aNdIddO+iVzLWZ1GV3b6ZfWNaJ+sU1xWt1/168amnAVrGMSV9VWGMdVuo6ZXO3r +2MvVwyWScy2y40LXNDu+dI10hVdNce3o13XbjqJdBV6hcleVG8Z3bXomCqZ1d+KxLbXzTmRcie/E +iCUSVNHvJMtNAU7W3GRQkT83LTiZdPNDJqVmpahIrlsznDS7wcPJd7aUlGQ+tzo74DYWZxncFlOx +Fm6zMRYk23X2W0p2pmhNbI+ZkpwzMoNTzUCZXSozUG66cmbMTVwV0+amMGPusrks8X/Zqlayidn4 +5uykG+iM43Q7XsmYZnvfpN57+sGJs3WrYcUAZ+uiMcrZAmnMdLZUFjx3Nmgaa56Nnsa+u220YvPd +hurigNtZXWRwe2wpWbjZ1gUQN+2aiGIG4EqQyXZiE3iyLdmEomxzLoWnbJk2Icut1y6HuZW7ktfc +Gu5iXbaYm+iXLeuliJj7mSiZrfQmbmZrfimWZqu/ia/ZM8BE3OxBUIrC0aK3XWTmKg== + + + SHpMrCa65V6U4ndkWYhhyGI6oqFysXFm/Id4mVzOXeJHUhvmRHDNAD6KqgTXHoBEsQSdKRkMB6v7 +qikjkPlabl3MSgtiRCSuZ+EyU27EOYUTuQIEsdF09qkUJbmfKVTyWKZ0yXOacuaqWpspcfwTTNdD +U6p/qemE8m6Y3sg3rVQv5b01NVTef1NV5XMqVVr5PE31lc/c1GP73iWYczcRKhK6t9CO+569TZea +ZK9HpaueN2WitqCXHRg1uzocWYFYrEUBqFWXytwP7v4kBjJCSneENH/Qy1THlPstymjkseRO9tCW +5DmtRTcjLc275dUvqtfa/8q8F2+aZHcbO+VlJqQ4eVu3Bk0H7iwvi13Qczg1gA9Dj6vEdNe9qP2K +QzFQbkkTXiVuVltRwJ5BUO4GKriLqXd9cAAnOEVj81OyCO9ma/eh9r7xqt4D5JkjhSshAWSXmQZ9 +L3uaZyBL2n6D8LMsUHUsPdOeIojE+yGyEsyXHzFwA0se1KrN3C+BTB7LwCrPWYJfXpv3y+tPkLz/ +nTuwYIcAOyBZ5LdVK/LZatXjZDNGMhHNl5waYMSczZq03ysdQzGQtdiEVyXwwcxIbOWH3EGQoRHT +Bkea9N6MJQYyuVv+Ihtq7xsNFuCNvlB1W+EDwSXkGb2VHB0sNtBDR5AppuoiC4GAVmAglbOC8s09 +59aMBElvPZiANmmwcEVRmLdItbxmJUbYFazWaFEgh00zpCAj+lnrBthCUKqImXXBofWplDtV6cr2 +IbAJoVRDSiuL8VQnRst0rw7fjPEd1JCC9DjUQ8HTdrIiF5DstNItvNQZlQYYYEV2FHQY8lEBQuNk +NkqQxj6FfWmvmGrt+kBIec1au9WEo1WU94XBTm4RXVw6gsN1TeUXDhb/7DtBXoIT2G6NyaW83lXU +h6I5y3d/SK6y+YTAPEGxU58kVAEMgfYTRx0NigMGFL6ICnYiXKTnEsaYeWIs8AW0RtQleYsp83b6 ++VgxlVvJcwJnWs77vDTgTVpBffnQWLDMqH9mSc3zdgRI6dwg2zKkDWxTbIFuLUt+JfNdXgl8fJMW +SE9JeEoqX/NpovTP7KooO3QqBrBYBwx5U+NAHICgPLbKIxnQ+hQ4n2GReV3a7BQDAx4jNAy7KGB7 +Nwd+H8ovSTWl3SVf2f/H3rvubJNc53lHwHOYPwGSALK7q3qbf9IXxVZCI4JiJBGCgGCGY5mxySEo +SoLO3s91r03V6p7hRhpDCUAIkuZdX3c/va1atTb3lV9bnn1+leUq8+vNu5FfeNywHAjKfc0BI+9/ +Dir5jHLwKc8yB6l85jmO5XuRJ1HenxwX4z17j53vMZZ39r+uSOq2TyKpdPWdu6gRq1r7D0to/1Ek +9Z/WtFe6EbJpL7sRsmkvuxFG097cjZBNe9mNkE172Y2QTXulGyGb9rIbIZv25m6E7NmLboT3Fbxa +9ko3QrbsZTdCtuxlN0K27JWWhGzZy5aEaNnLjoTs2SsdCdazl+0I2bOXjQbZs1f6EbJnb9ouBI2i +ISF79kpDQvbsZUNC9uxlQ0L27JWGhGzaGw0J0bQ3GhKia680JETTXjYkZNNeNiRk015pSMimvWxI +iKa96Ed4P8gv0yM24ZHGmj0fcQjPrA4FGcIzBB+NHuXCMxQIamFsy2UXnlnVNe70OwnP8FoavCaE +Z9aIu3350SQ8s5J2Epk0hGeoA9JlpO6MiN5HhB1ceGZp5hqn8Mx6eTVaCs9wbH1UtqMJz1AKpucy +pGc41HFNyjOLj/MWTAjlGbX+E6VO5RnaVtQAkcozKJPkx53KM6ujN4fyzBqAvJSeCYvtGdozfBck +RYb2DJrIkuVJ8RnYWHm2KT7D1Hzfs/wMlTttb1+934IvP/oh5GeKOMpb+/cp/ZviLU/tmZv56bJB +8iE9813aLy/hmc4/LsRyJZQwtGcmAeDv/HGUZz5P6dwlBr+1p/TMb/11E575eFjsj9bC59d+MOGZ +77u1/x/o9PvntcUPqYZ5RBpCHTEiDaGOGJFSqKOMSCnUkSNSCHXkgORCHWU4SqGOHI5SqCOGo6HT +MQ9HKdQRw1EKdeRwlEIdZThKoY4cj4ZUh49HQ6ljHo+GUkeMR0OpI8ajodQxj0dDqSPGo6HUEaPP +kOqYx6Oh1RHj0dDqiPFoiHXM49EQ64jxaMh1xHj0fgf+mePRHyBFfmg4OiatjKdUR8/h6LO4LFod +akkzpYxlEvt4KHUQd/qTfemu3Twrdaw2HG3f+dteMeSD0een/uwP+O0Q6TjWGI36+UdR8t81GCFc +W9QMUoF4qBmEAvFQMwgF4qpmEArEo3TC69NSzCDrOWYxg9AfHmIGoT88xAxCf7iKGYT+8BAzCP3h +IWYQ+sNVzCD0h4eYwZZ6UiFmEPrDVcwg9IeHmEHoD09RbC+2K2IGqT+cYgapP5xqBqk/XNQMUn84 +1QxSgDjVDMpz/L3Gkt8iQPy7RPXeQgZ/8t0yAKHiW5UMXAVY0sEUpmiN8VuO8Fm7HJ/Z6jZsZhUh +/pOnCvH3nEBRMvhDT0BH+MGUDP5/IKz3T5YyqIgDKn+W+3wkWwgyKa1IgsSUaVjlq/h5NQqw9GwI +xrHJZ78RW7Oqarx56Rgoh6Kga3dRT+JvzAFkhRO42ZULVQi9qxtIFVWKyu3b1C233JaHk3aI7RjF +0rsnafjK9ekxHXyctpEuo2480cUa4U4F43Ozwy8yjkTfk9rAyi9qLMA3yjMToVKRaj95cir7fT2u +ETdm83Cz3QscEVU/5v0Cmq07WO7rZ+ZQjcK4/4zAFJyMR8Q/yT2d80nTdlShd5MAsmMxR6hEcvym +FXvFoG+nRlhRInx5+mgBqSgrL1N6vT0uM+4GoUf11+Qd2yj7dBKU3dltM9xD3ln1rpOXc1ynPSNi +Mvsxsl1N0ZErXp544rlZvhV5qHx7yi/mW5Znli9inn2+sOUq88XOu5Evf96x8ZFMNzY+pbz942uL +R/T6KiNWQiC0Agpo0rE1CHF/1ql8wawPVGtwqgrxVlecaoGlT8dF0Bdk3rVCxa7bRGNfp1KPJYP6 +4dbPC2ZVhbrLxDQ2hzko4RI9o6vKT1XAjjNh/Z6j+6KpR5C1xmY17tNPbuZesJ2ISex57f4D99Et +kmUrGTyX09spsxeVD8r3vOxhcDeOVc1/H6+2qYxqG5ReOk9tz4OKT0I+AlN4N8dl+dNmSyoVdpwe +4qQx8Ygz+cyshHi8MVHlMKcrtCjiymJpaXG21+6ShWzHMESz3LazUOPKeXbvp/lP9hT+WXrh66y4 +ffbTCuhPgFrKdhe9I2VhyeN9jvt9u3N//uTjAuHWMVr9Nrnw7/3xz23b+lm1jn6fH7fdUXc/46f/ +qBb+z/MjXiIy69WGky3esWImKxTaPRxoPkNKZkVD24gfKAdGiMubSCSAqjU63RHN6kY0gNNpqKIb +q2q3bm/Cm6peD428sRXe4C7Zjd2Vxj4Leb3pBKC1yefkxIqLHU0YnM6BVct+DXtaQZECb2v0AzBO +39FC1SydyCJjYT3ABVo9BYV4ZB25QPFlVW3rxdSq5RI6c9lMGZDp5WzSZoLy1j1rbCX+l4Eg9Yv9 +MEg61tXjtudGcpDPc9E1r1H1S4R8s8xeW7IdHuTCZq3FXkvf1XJK66nLsjVDzH+J2WRzCHa/pY3T +rVRQzUydMCQ9aF5suTDY61SXgBvxsCWxcp4qQOMHd/Ws0tcq9UdC5p+J2UdZH3slT6gdP6OsYg9d +c6mUsS4rpuIc9s/3neOzdUHQWMQVMCdoNlHhPTxYzTiSPlYDvD/JVbPZYqvDZTlM3MJK7BvH2qwt +3Sqzw6I47rXEA47t6BK/vB34WI82WYBFUO/6tX81bj28Sx+2uWAbaTlOmzXVGHX0e9whkZf6ZQW1 +6+118J/hRaStNPBGBlY9jSuuxX4p5WYdsLzfh9UNWa051d4Uh8d9tbu9ukom7bpKH2NRkS9jnCqs +VDgbErdYjRq1kh0n53RHk8Dn/RPpnmfpvSuQTj8viN0dejPU4uDkRLUuC2a1utzrX/tdtI6x+7YG +aJ3Jtpj8V2+rJY2M7UVXFLdHnwSXKOdN8VM+1nZaYYxaKE85lYs71je+tHfZa3xS4ReSzLbnYbpi +6qrUbE5gkqyYtZO6UgHjj/daknihJLt3c2ohzRIToXfc6sygTd8RKu3h7pA23Tx+qfYUCSQzQHCZ +KnGW/lfzGjhuuKlV3zZA4IvYsgDY2K1I9KLxVpfT/SJ5xCZAfTcxWjm8ZjEJueH6MU6aP3R7Sa+N +ppuXCBMUwOtaxSNkVXA7xFj+kOrUOVaUVeMjmvj38rnIhbUqlEkBXUjB6vvdtxAIb+OJrJv3w9Nu +IR7nqsCVGuAOK1oisWmgStp58zdFtFVj5W03Vnta5JyBC89yP6N+fjO0XbrLyrrBjD5n31jEs81O +f5MoOSINeWe306RPGOxX/eR+WPiE9jJVAw8LPGfCRjrZtMaJcOFWWjN8dq/yw9XUSG+/uYUnH9uR +lLYO7ThWWspvpjXPjdFVbXh5/hsD9Nqe1xlvaN4PyuxVbRy3jCAb2dl6Z5HA0Y75BD4Ts7/s8ZTa +4bNVeZo8fnWx5lPfNgtz5ovxGTPt7OsLtIjyMN4z2gTsIuNdXE5rgCnv7L1bw0m+2giO+DXr5T+9 +ArJ8I5c3+eSntDLiaAHpX9tKi4QKmMpHyTlwo/PbpfnERNH9876667rMgwBiNUjS5lhBsXmfRhMC +A/14DDoqATv7GJu0VFnH4IVC0LXXIY5lj+rOYyRk4dfcoMES94LWlDKmHl5EnkPvGW1jMTojortd +dQy/vTszRvo1nJoxG6ynK+3GrKH7SJ+MrDm70H0hlkLMQpT842Vdku70yUp9M3q//KnoDM7HrEdb +jiI1OTt+Xsel3+s0g7aIM5eZdnUF3ZiPcaKMUBxTdlrKzJ7WdAA4rObP9BGo05djWHyJ5qKg6XJ8 +ztAkub/DMrsvaU03B4kWCZ2mK0TjmZrUisvUujcA5nbdWbfD/aJvx6tRh5f2WcYZoCK9OTpk9NTS +46PUTXe6eIZ8TRIvSQ+yeRXF8DJpZ5PaavFGVxItRx9eK06Urjv82s9r7M2/k/t7edNr+MgoppoS +srvR6+LiGcXdDm8mnPKbO9734baTdlbr9+zdg9rUwWMRsB+jN41lAnEvK5yfFhOodKnVKdYcn2nO +MkGxLFE5bquLlwNeKL8VSxwEOW5PtWgVpBHwrEul07F0uaKiPpPaYltxUVkj6v28LDu9CS4Wb2co +68by7trl2ZRFYG5kK0UGH2WtYilJ8Yn64ucFJ1ohVMHkuhSBKD3SWLoysBgbJpa4elrLgOgt52mn +uFmOrDGBMoIqdbSjYOvCkV4dgM2qwj7X3KxuVnWjcWN5D/viMUe1UCxejE1vrUZwXyQxcZ7N3itO +ULXRurAjqLC73VdJ2B8R7/6MHtbq6bLuRGZNcsfXSJIyV91mIa7mv18uBZJHQO+E2g== + + + v/ydy+DeX88n83mpNavnKV9eyYBDH9d1sxqlXCgu/HYseN4eEVLWkDy0ewgGlxEqbrIUyBm440mo +QI5H/LW/LDQu06dJ+iif57VZD8d47NC4I4KYbwdMb6423h96cEVbj7eMEp7MAcS7SPfjx2U784Vm +N1Ss/H2mj1Rj1Pw+0/vcjs+tjq9CVYht+nbUfh01wP550VN5fx5afH408eoc/BvdqE9qe74s+pDV +oE3HeHzqlHZet3kJGg/47Y7WODcxRg2quNp6fm61jys0WXOiPvZs2tCLKWKAwnh/psMYwUgF6o2K +cU5tlJt3h8RoqG50RIViuOSWCS08RtW7j+R3DL48/JOPx0fnDb1sXrwYwjeG8Nu7umOg11NlqM25 +gE5laTSOOYMWzFCYGnMLL7Ht6fMPN/w6jmme4hx0/2K20Xy2yZHRPOVzHuWY+6553KfGex11uzmD +6pJW19TWLLuJZAktNGbjtHztU6Nm7Wk7n9m5G6pZnyysc7ejegDWi973r8KZmAzuc2xCOYcXG74J +L7V5aeG/bHKUlj5ZcMTX665+jqqG6eMIj4niXjU8p2PFS6oSCbux7oDxlbTP+PhVOmlYdgTv3JWj +x3gLpbnw91RR/HGzwyGk6FWDd/qNtAAea7g44V9SrWzYmvBD1QFMQZeiF+GvUvKqpZR7tBsFPlQe +uddLf/HSXT0rXGOM+nrDeVYXLzNjuNhK7aeDbf2de7Dr3VG32tqPo+TePH9nptQ9/k196Of5VSwJ +KF5VDVksHDZEmqLPwlcX9KDKkYrlxwZ1fLOrMhFd9J7uzd7EWMpQeKsxIFc7VN5aFilWRbqKO71t +6xPmZD9eSiyuuKfXRXmAL8E4zNXc+/F1Ghu163MBsZDTkZm7c72n40ApN+fV14VqBG2L4W81ixB+ +lr8cK0wN5NEvFQtRVcWjOJFrVTpDP5/tOta06gBHzuRr99C19qUzV7cz18cU164wanIdTaFuUnxz +ub2R5UVlL1bkXNKuWxwrdyrf44bG+n5Tqc+6jcgAtbvqMxkWyguZO0usIE8j4w7UC3ceRsYnNmKD +3bPcGccY20WsYxwrLeU305rnFvGVcf4RhylX6dGacS8ioJO3K+I+9a5GfGjc/YghjScUsab6JCMm +NZ54xK3GWxHxrfryRBxsvGQRKxvvYcTU6vsasbd8rzM+l69+xvHKB5LxvvyOMiQYX1oEDuevMaKL +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 +9VzZmUr7Js70M7bIVdmdQkXkQgJQKpURn+r56L/86F9OhiW0A1a0A3YljEGWowLBoOY6LNvt7XKf +74woFgPA+wDHghDUTbLtT9ZlOzxl+9uEWMrPk8RCsuNUKPPjuIQQy+/38+eBevy56QDUeNzbH5VY +/tB2Zfyx8zz7Y+2JJyG39rwCi707reHyohd0qUzDAPnzaxk9i9bgwbriMq1S1WV9Bmo1iarx8BQj +YbOPOxZ0anzVykOllmQScVcRU4qi7FVKW9c6ev7ZzAOrFqlgJX4cixVJXecUF2Lddu3LiNIYdCo3 +63GFcSByPv16/l73NcA4r9WkncepoyamRtdyiQTVCBGMW7EtXrIZNwuJZ929ck/76W1Mee9586ky +GM+HqUeO0BxbmbY7bRYexzo3qy6eftMTnLHYtVNTFyc1QHn6VBVpnszLhEm57eMy7XacLvY2bhli +O2w3bu252UI2bq09gcNDU+MhHUeN+nWpKyzxk/HIc7N4KcaR4uWpv+jvWJ5YvoZ58vm6louMtzrv +Rb73eb/G9zHf1/yO8v6Pby2e0eubDDfie5YI61f/+s++/fY/f4abv/jLn/7mN9/8+pc/+Yu//clf +ffOrb376m29+xtBThprR7vw9x9u++td/8RlwpsP9+c9+/ptvf61D/ubnbPqTf/+Pv/rGjvq9W/P/ +fvr/fIa8L9/+6h9/8uNvv/7J//KND3r7YiPpd+z1P/78Fz/5y29+/fVnyBvbs9z8TGLft8+f/t1v +vv3ffvXTr3/+y7/5yb/1X/i+s/rLX3/z9z//5h9+8lff/sPf2qbe0nF97+H//c8/F/Fvv/n53/xH +v5HfccNj029/9ZOf//In/9Ovv/3l79z2x9/8h9/83htzWz738eff/O10F3/XNX759j/HNd7I3x/7 +b7/G/+PnP/vNf/xdZ8LN/je//vYf/uAn879/51v45z/6b/70L/pP/vyXP/Nd7e8/++Zvfv5Lt/wP +X/23f/ntL3710599+3e//u9+NP23kmjrjdAjgS3FQPDZb1WWL7JozvtT/d//8x9+ZC3+MUl+TP+o +P//nz3/+vx/jP3y1Ll/9u6/+r/97+epntstfxXpqPqZrejx+6asfz9Y8ox/PR/huaznCL3/vj9zv +8Z/99Ov/xP3VI/w4M/Vr53r/e7vo/1UL688S4zMyff73MldAgqdUZTGzAJslrv8LN2qoDOOmtd/n +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 +yDsj2veVKA3wVqC4eLaX2+LmrY7EWQ+m5NbbsdXpsOYTcDHbBW855TixZTiTSSow66qSN22tMdv4 +0Qlp7F4jjgOZNDcOefLl6fQU3OsV0upZH3u3aHUkzr4/Jbeejq2OA1oO/eKdQoI7+vVR32bu7RZb +itxuO8kF0RrqxwDzleOH5HqmBiFHXE9zrfuOHqk6XAct1tlydvU4yMSJ1t8HqcRRH8pyezDHj9Oy +6lsgQ92KfHbcyAgOoMr1X+cb2cgUIRllNGM/bwKhEQQXx8/9YHsWcFTrVc/y5W7e9az3NI7DfHUk +ZB5b46RM9/u75/a7o+k+hyZQW5jIQZlaL4FskjOCWiDCgS5rrgsCYhINnMSIubvQtUmxS9I7GirX +2m4PRB7Zph4tRmSAn88W5VqC7KJ9LMFhsam3G3ZlpmW0GhKg/qlfDAnhg36I8yHhrITGvxgSEgiQ +DLcYEjYKlCAZEny/RibydjaojAw/P8wHte7v1nvp3SdwAvHL39/d/vH+6vbh6vabkxMh82Ce/uHo +99/jL66TP33x59/+29V1bebo1+3H4385+vVffnf2+7vXl/jxs6uLh6u72/P7v7/vD785/uXfbq5v +659Oarfur756+3D55lfH//3o15/c358vnrj49ur69f3lLf7uj3/977cP49/wn4e/f3+Jv/3yk3// +8pPr7789/9L96vjX/3l7dVH/+EVt/fab+Qs/nF+/lTeuXtcnNz0CbQRP1G7gmf/+2EO5++r/Xl48 +fHr39vZ17dund3/bdkRfc1Hqow9v3v/KZISzdx59qK7rfrHt6L69vPrm24etB2aPP/qYth/R37ce +zN+f9Tg+wKCTcfztmfPYj1evH77dejT69H/fouPPRUw+vL3/6u315e3F5bZTIq9uOSP2ncdm1dMu +bTuer87fXP7b/eX/e1snYfsNuHjr0Ufotx3e7dubP1w8nP9wuf0RMH3l0Qd2e/fFw9XDxQc23Ti+ +N3z6T1fXOwxw9s6jjxBbbtvR3V++eXu9/Rlnj28jgd7Rdfeerm9Wjyb6xuWfthQnY5/fM/2PvC5X +t9uuyt33l/fnD3f3W6/L+MKz5rar2w+IlakmjGcffTRf3L29v7j87f35999eXWw/rB1G9YSb59Xd +zfd3b64edtg7P0U/aABs24Vff3b59fFvnrkJGA8m4MEEPJiABxPwYAJumIyv78+rtn/9+7urNy/M +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 +adUTUf7S+H2rWo7mCwsi32r9rdbusC3txMkK4t2uv8UgmyzmCffdFhG8vlVrFuuCS/HKN4e5Avdh +gkxtNDvkePQ6hncaj7EDeiV5Om3b63qVWwWko/QgpS4oYTFTFchIn2S3t5NmrgLSH14a6wdTN/Mr +F6vTy8XLhR196iCe2Whtvr8sPddHdwqjCzPT2Wox0Z6wzrby1vjSxtnm2r6xvrT3c3p/o9Ut2YW8 +tp+cVA1jXFHaudfc84IysbF8l5jbWFlotjfau9riyOTG8t5oSzTa6WSet472NlaMykm2urpWyiUS +0889oPbKVwyenStMLtnXm53c623GuI4vpN8be21GJp2X+TVrvFvIGRMXmdfa9MXIZO5J2XkM7GzC +Tj3Z50c3P9On2cR5OFC53dLtxspb4XZjqZ14n88tTHYLM5vlp5FJRFbh4f6gm3u6vbAztY3a5dJT +5qWTfbGvVQ86HqZyJXXvY2NlffqC+mFDbmfvnu8a7K+pj9x2eXs0E0++TqRP4uN1GsNlsdwdmUy9 +zsyX8iXzaCb7Ytwvr6Qn9an5zI+Fh/mN7PRZIVvpzq2d74y/LJdKxTf4qzqff9p7Iciqsli0W9WJ +h6Xq3U45U5tcn4635n9203snUx8w/tmN5Z0XfWTSWj6/3UjXS9Pv86v7y4v2+8/Vqm0vtp/0dKu0 +rc6/LalOj6XcTvucoc2ertgXulJeqmYXi2x91f3VmfhCJVOzD99pBld7kxvZ7ZXxi/xCymyzddm+ +scbX7Gzjbn7lvHyzpD2O32K3a/VJNqE1a24cluTGurCO6oCntczbrBXnpHle3lPU2/H93GJxZaow +On/dAigWvLjDXrDJyKTyOLZt4N/za4UV/tfKRX6XmmcX8g/UmXalbTPSvVTm19byC1pu/XmV93Ox +urJcfv1xhyvpDJj1d5AxORTWKLPjDODWHYA6s3oMjSoGPjNHM7l7RHWu0l43rGvrtZQ+zb3O554W +dz/yxeL0RMZ6PDtKHU5enqUPspnD3NNJ9WPj43bpeWQyY1yd3hMyr63ydf5enT/PGJfpg0Lu9eI+ +W321Fpef3iefC9mnOZUhcO3Bto/LDRde8uTjfTd9sDe3W8jNlncJNwLRRPts9TvNxNH8+nnxgya0 +ZiWLG8unnbH06U6n2zs1H2YlPIiFuGyNiq5O2M45yHZGJvPX5cln7WFlPacUfm7oSAIrDyuFHKOO +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 + + + diff --git a/infusion/development/images/uio-buttons-styled.png b/infusion/development/images/uio-buttons-styled.png new file mode 100644 index 0000000000000000000000000000000000000000..875a8a0fbccb7febea6dc3d9782380558a6aec42 GIT binary patch literal 69646 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%0D3_kc zoV!Hqkca3ePGqpsblbI2(c0}G0m>W3Sv;|~^D&;!bl6yR-l_&m zI&-R0@Bj%sWn*lXqn`+;9}0Xvzc~AESIySN8SS-y?96yIKR-)4 z)4dqt-Jg;n_Uhe|n*nS|ZJx_6tw-rcCN~~7-s;_gi}m=?DZ5y!4APS~@>PygBW+9` zj-nQpSC&~fR+BQbeLQDpu(3>Vhq0XuAqrT^g*dFAtlzf=4%axX`y0HPn+G2~JFY$? zvA`;WKi=#s=#c(OUt6z`;klJ<>Ng$^*^z)+%4yAp^I|x>*gjoQCNST&VMgL<<{UZC zd5M>Yv;-_aTKK=-LjQg{HjZ>B^NS}M`7XE--(pnftV{0>-y=vnQREiHtr}s;a`MCMyKPd-Fme+;wP8IOo7Gf zQJKt6gqYS}p{UxPkxvc(xIc_KhyPRYvn5#!7QAqny{RvcGlHTZy;!NYQ1M#eY4qGy z+O3uv(zheDyo;zJddM!*ZZ8zUTUGIR*R_Pb!jn~E+1gEDfo5sNN08b~d2?!=D`*zv zf)Oa`;$*N+TcMXOfm^?8)I0ibP}3VydaD2z(Z(pHtJgf=4cf!=XBDD+FZ#Al96T|a zko<__EoP|>?=tqcpg60qc06+LJgOCczar^quotNrQoW3*TaAaMi@HfSyNQzNd>%Q=3jG1g|gV)@7bBRk~hE;8B>2>5CWrlU|>1C(f>o% zR{+JeEPo@52Pa4%KyZS)JHai%gS%UBcXxMpcXx;2?j9sSfJGPoHuv8DdpGZ^nxanC z&f!c?Pxth%r>8rXiaj-hBM*C`rzD(F&=9t$LZ~B`$tplmhJc?C;Jc)CvkqR`BK&U3z#n$UryL67;brc1Znkfvx>$=J8VLkiJrsvV^a!7VCcg$KXXQ) z`Wg&J)oT{_-}LF|WU!s2wtzspdHT)6nMp~o3L?%m8cRr@M2!bwdE#a9G za8M_v15Oqwf{NC8mF%^uRqT6dzlEEHT$}{Oe!Hrp-Kwr?wO4>6BP|%MwsN^B8!}{u z<*&P$SVkc&Lh00Pay6RG5zo}J1{u7H2XC@mlgJ!q`^6Hlyd?3fI*xDk9oi}cs>`Cz zbdGN^V z_nGV4(0-F~O-7po|EqDQR6g+y{u=6)hAM&V3)vZP9vH%Qd1T@^xQOmYjJeHi+GP6H z=QC3Iam{v@MPpr@P!O=YyGu#T)`ODv>LLp7Ah1qEe~G$ze>|np5?CQFrP1)-W9fq3 zO`Qy0O802i>qo!yf~(VzA51-=Mox14T2%M1qN>y_D7<$!xG7z3gpi1;_X}KDi6SdfU{{(gmc%Q8GiJcoc+{%T zasPd(=C1>LqChCdNZTe-@hC&qmKHXPMR57Rul%k$_7iL+KXm77tT*C^qltneE4bg^ z6YB&94?Ml&V_M$3=6swM%bn_g>2~F#tTGa5_%z*f*?y{>UO8Zd#8$_H@~MgNP}*xm z>j?Rrzed*~bEpy62W{gS#23`NZy{jG=F!1-1m9B@Hj7G3KHaIH6c1l{(NdaEg(^3*+&`za&; z0DqPOy7K&HUI8)lc-UK-;5Y43GVJEtPtX(@5WKOXgaada)i9{2Dc_b~Y+h)N%z?r8 zIdFqBSPcPA=d1Qhnemah#ISXw=!Osqx{nh_^aPxHN@Q>06BUpi*ZKl=EJ1my(S*rw z2z2|yS%~|sTXI6-WdKYeiy0samc|2_V$;4!MM!ZyVf0>RU0iHGG!adL?I<5X3a7Q$ z{NXUU!v!hH$%-Y2bSFiHK14L7+)eUX95eX)&v-}%t|ai{PuQfndJs&W$$BkqwmVxs zeF3rq>sg;+CPZ6)&;TD9B7(zL+cTYE2*o?UcRkM7zdTnECl3 z&!uL2zEs!pt5hNT7PCIG!3^Ge9>p&o=@#9Om3r{-!$WG?ygXZn?LCExd6?K5SqCK5 z>2zLz>m*eLMMX(4KOS$TKeY~D6}E#K=2-|pvC&yBw%X(KCTE=ed&xHeO531VO+fY} zXue^f-oE)mk-1kBTz=NiCmH#LLy!A=q2M)4owgtauNO1R4on(4l~t88Gf-HVt-lE; z=H3*4_2piWM}r+Vd4OIC)vLou=2x@Nt=X>!U0gU@&!Cv1#NM|z;lkh=@P*vpEDfkX z2pV{-{J<-1pk=BRzACdClRtLfr%~Knd6(51JFWx(5HP9H;es%9#(7@Gor@}Ol;|>ohW;8-tQy7Vb$_K8Z5h7D zV^m`zOokV=c(zPbw;v=@d5RJtXLsoc0-g91;IM~Oe<#e}B+s(ZTVZNv#4~=Du}&)y zMMOkAcexHEr9|3q@Aem@hzd}X_jfbfjG?1oud>eMwrj+A6I?75cXB+5jHz$86o`ni zwTq677NOObmJxU*?sd7SVdMF-Vq$U+LivH~a=-8SaEsKNu+($E#||2$Boe50lm^)a zAlB@sarz30M}L2F<69wQh+=z1*83qulQCFa*XI&v9t!~(QWL^F2j32p*19r)TVEZ` z_a_mP2dHFb3G*Yy6*{^HJSzk*@wXoGnifHO3?FoF-H^N*cMhR&@Le`IA<~oz0|q|^ zsJT#^X$N6qk!fB_){?F1#1;5c-#J#YPsH$$Vk2AuZp*Nt5aBPico;T1yU?kn>1n1# zy(sYost`zv%+HT^Yc+NTx4o858Xm&J`Qzi0nG6!u$pwkTIrz<#-EQt3O*CaK@=JBiDhVmSvnQ_C!v9WgPcNLb{lSM5>Dh5{9&1+3cBc#F zl-Bk-E<4r!u*jA(dH3Q(o=U%XWwTX2g#TYIfGj-YW+>FqythyGuD75eLdUcMccT02 z`OW;Ac0$rcbjyR91-1;L{k7+p?7_sR?hj{9H@--h`&qa+`zr=r8R3P12y3;NK&72E zp88&&bwas{#HV6+Z(uhA?P|kahzBq_M>QKwFr-i1WgU&@edDhF$x@xxYOaun<(mp# zPXo*7!;hhNz{(8oWp=k8CHO;82CRzb5?UrqqzX{_XtgyEIC^}9wDge3^8@$&*Q6RT za)!IxC_eszZ$)vRY~1%3x@W^jWCkLu;jty2y1^0WlJRGd`aRbySXJMTgmhDJqahS~ z@O0q@7#S4=Q3x`*pkiZ0NqX4>QR{sGvD^^W1K)J4-^$GoM7$RY43$QcK-=ImMQuOY zJjKp~M1Qj@=x01FDB|I#DU~Fpi480WYNltJHF>JRRD#lm2w@HYSz`MU@5Z(Nz(8gm z2^T_Bgnb_GYy2N!pr z$Wg=m?yG#;ml7*JHhZx#6*@E~2t3_fEs%O&f{rlb?k$oW;ZvV)H`zprIM#-!2u+AI zlY$^FLgYZ(@H}kJ2W)aQnRkAX&OyoWv$b5y#l0Jx?24q9hLYxP*?Fy;U`&g6F zXulC<_AlgthtKhC3=V}P7e#=80>Tes^kjzN#&4hE!7%w6`Ot31>3(cAa>56|xsOi! z$tjBs&ewPN~HctOJ3)U9pV$pg6K{@|iTo|$N+Lsp+o-B6_uhC#a6qeb71 z%~rxEDAFWSS^Tf-?Vqc_TYgY#{Cj|+)lycA#nan0Z>?YCbXd2zK@aQ8d)$&y(t8FE zJq@t6)EB{)Q7vvv9?`{})F~kT(^^p-ahy>j&CUGheZDpC&e!GIIhgy+xcP#B2eVN# z1O#gw5(qNb64u^TgM1Pa0COMMwsFA<(5l`qN zdI^JRYpBK4f+6!A=nqALNaf4&_<$cogbtUBCIl%#9}~GO?DhEsgSDSpI1=p#_Lw6j znkY9^gRY~N3q%T*=cMpULoFRmfeO*W0l^$o1>TkX46MC|A(8NjMtj&%tMO2W;%NX{Mf z5v31;!0Lg`z`;b@gkcw2c>~g4tz_f@FzMp(zLPKluxyjg@Aik}0M;Re1PM_f(Dlp# z?GhO->QN(l1NT0}`01SP6u2la@C7gi`XBw*gQ>$SU+>h@_=aH4?o0WM7TxInxkUa? zG#@t1WFQpeZhmj&OTzNr`NX|HI|OABR|l1&FD6;4_zV!E{!IYwr96ty8&3CcAKIx5 z5w@a<^gR-ChXQ4wtJNi_e^jSzhor!y!mDtFeDw2Wgoxp#>wz*P!I;gAq2JXL>_8?3 z2vI=ipuuU%t?JkKor(q}tVyCm5cra{z}W}+Q5AfsL9d=bd1&H^*{i|Q49aaHr_UZ- zsi$_dYau|qZUm*CJ*3bMi10x*eF_hVg*k@AdTIH=lvcm37&4q*zgM}DFM4x2{Y zq}c9`y)?_;6~b6(AwEg0`-6)bO~P=Oo$%k85XQl->2mcoy{RNMYK$sTl#Y`9c-nwr zr!l6DjLl(%wj_xbnhyWXK+<{e(|{E=jrxFotUJ1PlDjh@HNb zNyDc;^?5qe2nZZClWDFqW6!Xqibe80W2CPU!Elfwqr{Kkegh~Trc(7P{ZI}pg+F=3)1!TwpM*SQg*o#^p3 z=)J3eoRWZoAFW4l1$J7zf(}#fz7`82M%m*cTYWi-!sgY+F~PHSG564PU>RUxSI01g zVR^sD%WvTnNXjeSTvS|yTJWMXSB?H0G{436Ji2IUc#KJB82P%i{#ZB4$_Ra?J7nzqDSxp-P7F<#1JgKF0XCE~K#b5?ZKPUz+nO@HF1F?si z^vq$jpsh8@wx>A9K5`xHg0-3Y^_~A_3vV91!3vc+KJUMiEdu5Vxrf(($Yo0?a{OGCDHFdGnpCMdy@v8>YwYpT@eJX zK9v<`Y8a5`i+Kqj1h>HKSEz8B!WGLv4esntEBe(X_p2dYuG6fCGU}9+G;` zSNqxY0=rcdXeQO)t=n4B#t1X_%a zgs)MsI%@LSE~vNwn`jS%^?SrMvPf^A&q3P|81m6Lxn6lQ2t^G1r1*el*;{TFR)+$O zImJ1+FR#@&+NsQ)g;NsvL@|5>Hh?e|l(m{1m*T_z^l1h1ajY2&Q=t=6fLUyoOD8Us#PEZ8JK4g#c5N7S42cGP0ZLW~(Fb+^dE~U)}W5I&?7(P{gC-{Ysmh3G^qAyoYo+Bv11Q59RHj(T!Un4Jm z@Oow7+(u2GVF(Qw(nQm!?HbdO5$;t2&&=}c#8R5xSmnYqd3}|hX8a0afT2tdum8&$ zaB<-ccqdq+hQb|?B2?MRwoWD|jt#xsg-BHt;{!p;`aLQd#+dAwHDHf85TApz;bfZ> z(u8LtEh~*b=D{1e`@@ZeDEN=Ftalw7e(I$tjdSs^V&?ta6kH%X=D0Pr2xyAF>lNtx zl@miRP9|P>mmHhN@%TFKJNeV&0IiY3kzbP!tdJ>JB@}4w6PsYKP(NS*oVb6P?WAV9 zHw@E^0wqWbre05`>e;qs*Hu#M2Bdt?d^IsJC&j zKV?1Y>Gdu>hS&sK3&O)x5M6}ir9!j4IrH(xCJ2h~N6(C^35I|h=)a1Wdn-x`?=NGj zs|Ns(LvNOTKr{1Gz&<9BLUr?>aSbJkVPr!(rDklf<&+_`MEXb{=2!J0wWf=FtXiLm!=Nb%u@Fs+C-Kc|npfmS zIr)E74IrLbwt+RcLuSt4d<0yfW>e*wy$osm>VsU3Q3C?SiDsjJ7|bHPMz#XRG{T$x za_{H2Wq5DV(IEe5DIcJsmKn>Sb&zvZkI~-|s%;CwEI?gB2Zqpnmf_Q3w_d06jLXSI z{^KPuG{yAcckQsFd-Pq_jR|7P=DZ95zGE%rtQ+ilXBhU(@*G|c_vb5+=(w^yDbgjM z#)Aw*^h~)(g>awF*b@gjJH?#y-~Dgj6hg=l49qHPH=zpz<3Th&DNPk;6jC3XkMgz(NISd!KxO~>uJxb`+9 zwZY&JR?4rRX|Ld?x?%r0F(X`1XjGbw0Q_iVuoE@nkV|8cBaGbS$ z0*Z|q_z<6eHNjg1Vw>ct@IZ{#V}#Ait1EN}`9wc*6g+}xDEm+Zsa$KO#}%T)Dq<*- zf47)$02Q~4ik|3@0W`cRU+(k39>-|A=4W7uC_4k~mGwA{!K~Y_#-*VO)xy8N)Z5J{vm)ssVDyu^MNTabx+~!4vShOnZb+GRzF8dPmLqqi9V4n4iT8mwlLXLkCVm zU4OP2&BGOh5joCC1jJs+5hD&pz@3bm(5KSJ-@kc}{?`<=xFH;A6qnzvm>QDAKm)8> zc7pJ2I_$EjU0q$dY=_%EVK5#8y0o;TQF&@5$o#BmCqkgTlms)DF$NJ7grXSeeVDUE z(N+IoX$rqD$Ck%c)0(x2z>=18=Jn{c>tr9{(K-y%Z__W8>^K-D_a>k<7>{@Asb5Ce zlHGXc*=*$RSyBz_8O5ah`f?h&w)JwmW;2Yc4K9G*yu}aB9!tYUsHF-J)m1^`^m^hP zLa<}@etA-7(nbDO1TSctLX1g;`e5g3Fut@O`tbC*B%W~)0i2=M5)*ODB`EA4&dDV8 zOf;`w`k#BhK8i=T$+!G0NCU}g8-|W?rh0$r*V!1QX^vU%9MB+MlL%UJ(H_HmqeGGzr73}ao zKj2$~loaC!LeoQ={$8fU0ulY#nJuR`xE~Zg=cxcrhSS%zFK+Vm^>TxRBv0+dKmD`h zDJUSa>7Da+9&dEEYVA$znE1w&{}BdaA&Bq(yZtGjsl-#p!h3-w{dts31q8<57*L%R zEHm}H(-1rVS*$$;@Wk5#8z=_}={8-1TKQK0@QN5R1bMAId~Kc-jkF0Om#jB0(pV3x z44aSR&SrZNT`DRKKR zUZ%Wvf0{J23dDXEMb3WLqXpRF^iDko*VCR`5GA$%L|pqET|7Q%SEGKW5{o0&-s}fq zo-s*e`3=w}Ld8PeRaZocy$}CO_{YCNxxWI5bk2T#TFh*C^zl|DIRK;v;`852vbxx9 zbu}2Pn%=FS-EFA@UnZ}GbaH2Y+!|fEK3>sXIju;%A@VvnX;GUACe-e+h!P0$Yb}bs znY6<&xgkR5HmpoKCC~DlIr|t zC{j?b&s(n>_1@l+WUz)al-JbZs{jK4LB7<>lLUHQ(=4md@r{q-~P zU=5GP64)7|qpA5cHdid(EIP5hxwu;P@Jtybf8)rf0#lvNv*h$Gl|9LR*jYf`M$_)B zqU0feBD0z-lJGF<)#{{}C?^@k%j>*W-oyBAGa=s~%jE?meWD^Tnf3T$b4AJD<>dH$ z&2nncx~2~O@JE#(}-gXYhkh>WgYvtvZp z{^qqE=y?9h_h``SB))_SE6(K>X1ajQGSVWeg?Iss3S+&E+rY^G&5-wAqY2`qp5-l(N*zVF(goIrwn0E_mUfbLD?7 zN5JPAi`lh<$-wuty(cMa?`C^C8BPTs^PaOu#+cX`j5GGYRLl^0 z*$f9yw;Cm~cVDdDZ8y)|>|DOd|8nyN4fjrx{E@-ca1SZC`|fh5+q*6Zb%pynlEbu; z^KJrGBPYqr`Y@c~^}?OublnsMm7T*Ovl;R1VLN!G#irWK@_Cy$UrL6{!PG}A=?dBt zjnZX#44Z-V291{C7dsn~=N8Xt+JHq6({{`AeZzYwd8^k3I=L|Z=EuQgok#6MW0oLM zhCMIq_{s)yC=xWvp11M}PyAHq-I5fRc%y!M+Syale%-7WXL*_AQ1Ug5FHDA?{%`vj zBC(z743B<3>E1P|@E>i%X>S+FohIT3>DHM?RL*v<-l0bGUu4bJUCz3~fS3t%^77Z0 zo|ZeWDz6TM!q41#vf8~~f86`EPC9StcpjvR49jDUYq%^yH?r+tx%9PAepM0rTpH?} zCD2@wqkGojYLBT?ab=i@N5QxmFQt7PYr?)rpQ5V3c>dnI?$!GpHn-z0Q`@axm_+q;fO z=X3YF^YyFXcFaj_q^(CTQWZI(hX=~!XT8C8w190uwv4U*ZeKBm#_9-#@3{O&*M-4- zG2JiOOk%-|Ti?XxcVsqgS{M1~dhU)nLGcKb z&dB*~)JvdZ!=nWxD@5ej3cS1O&mF@I+#i@vaqBAi$5s$DhEj6}YMnp)^7i^!xEP85 zYWeKuft<8>yE_;@5$%0kEb#m@SfCD3vU4`7=(GqaXn^C;}0 z#G|2!f?6^ymfuJ4pKqelHSurZ@Lqo}zcOQ_c02McJXeF~+2B9f&h2VP!52!mJ>zyg zIuW{kmYCReI2k1y>S3YIIc?tg5wnXIl1X}-ZWQ?l4Ck0_hYx{>w*$g`9SC#dnAKarUS^?2Fmxv~nK~Z&*Os#xow~sO z?6v!g_+nTmfqP)_j?)}mcJ^Cm*Y%ki;+&btSbAB zsndOGS(=F8t-^JyT?5zEM%+E!Ee;G%@^=wet+K3(LGU4h8G@`(CiD!Eau(Pt=G9| zFNZ-m{)@*2W%;HGd;)@}e50|h={Bn{_+$kFWT;ET*L#4RE;Jzg~W@?v>Ax!Gqr$4h`1`C z=#c7tdOV#H+>77vP{W=TX=Y6!2IZ|{T;U>Z*1D+IWe=jJ3C3@E9qou}d7z6~fIz*) zKYtmq@v=rnz+Yi++O%zMT%@YXU&Py+ZwF2>pOI@*Jb?!BkF@}zJs-AR98zoIOtFCH zXf)U7b-ZuHS~~(wfp=xI70Is{|gaW>AZZWVd#G96L{*Ee!b4@Qq>k) zzlh}61o;ZQ#4iv%E(5H!s;m`}-(3-IwBG+T0wH?T>_?Y>jhhJTx?SzY%H&?X42Tyi zEje=V&`Yelf0FX-zyuE7`?YVHsDlVSYg|__Zof91?L!l#9+f}+*l%Pbhk{2MeJY6K zE98F=eSQ*uHNKid-DR0xs4(e z{J^*U^vvrb(xl~c+nJYYisG)+@(5#)A?BR!PJTMk%JV>Tto|vJs@SPveki|JRnjUJ zBzg@(kD6a~jV_)LA_FIaVrq{dl+fGgNPn^xLh0{?2$j;g0&sa)m+d9TnU5pEq>H>{gieV&J6A(IG~E!bW?DDEi3rL(UoH-!pe&}ThKlkev8My$ zg-20&^S<<*eAZ15dqn{#%&e43*bdTbz6h*^RC=b(VTL)bR;|~SDX-foo->zX>MLgd z2`h=E)s24K+4-kZp3QrF%>zI=lUwQ++-glo7=++lnbU?oG|HV=^fd>l{;-76##^E3 z=il1B$CA{?k*S1V3<-f&m$_}$(HT#kwKLMYsvO@+F1_dXNRTc*N0AFr@-k^4yNDmT zcQ8fX0ml|==Bwey`JozuiBAD~z>6K>n2urp>yMw0;?)xF1AlG}_QhafwYe5jhGlr( zRiOV3P5#+Wz&NfEfO{&J>Nkj+A44=vwuy^@?EV~*5X}jjfUAV`1A&&3ALL*9clRH# zkQJNZTdyt?k!uTDVc?fP0TLw7Kf2*2J5#ZS2?nT15WfNLL_X-xlfm z8u>U5bAVp#C+K$XthH%UP#*f5+_$7L+1cJZeStJiu3BmUQQ}~P3_kayctyo;xFYnM z+^q0#C>V36W5@iiumj-9LU4doUi6dj_LAd=;roM^HSDBxbegY#6V|eS1_$ALQq_Jo zp2{MDodJDUrU90imNxjO$L?1i(gN9;;RmY^E(&44!Ara6pazsJ!>XoQ6&3+n@vs z;ERJi*o&e{?Q4HH>3PVr#q{$UM8Ysve$8cMqBcYZg^tmj{W)Htbh?ygDm!>#ua!59 z64o6N`e&?R3d5~>zBrb7bw>Te(UIGH0#WOXVt=_$Y6=jR1qM$okj`qh+quctBXd>Uwxmxfc%^9{8pKMAFcokCO0#It3D+Re|MZ_4=)!tS5i%Re&H<7yl@_{6MpA=^wA0yul~)s@vSY4=g58zqSetUerB}2Rrk7oUqfX{uC9%7dZpZKW?NE7OacBO3{LUWearbIjs*$d|jmEtQBU z|N14nU_>4dM8jTx}qSh=rY`yySQ;pUm|3Ev|G&tljnQ z1bfA zMC0-9Jb2~DLAp(lz1io_=w3)W&Yzoxb6%=Rpcu0R1BgKzw8-*&`r~9Vq%Yz9x2i^j z^@51cZQIL(7cS=kp%mdXs);rmgLupif*yGtrRB|qrFFLB=>ltOiMC==>{Qh>sox_6 zTz5q^5|L#W7Z=V{v^t?3jhgfZO6jXAw2Ug9EsAcmI%OBwN=Xr69v|)cCWFkKZQ?g3 z)AmUezCiBB6L`4Fwymj^bbHN6u}se6r=3nO$br=eCA_X2#4EjrKOSPBTo$kE?m(y@ zv5#^FdP5rKoxm|gZNO6rw=!5~$RziSjEpdN-;ZU#J{^MipquHRCVlsB!9Go$8ePaH zpoYYQVOxmF!oAD-#eUyI_|CG#{K>@Fm_MQ~k1D6}%Pr>$1}~ujm+vT)H>O#Nid9P5D_82u-r-kPYM_!m(%ZjzH=2gGikP6>U;n)_gj@B_vbtIV zUEa6u!EwKxz4c7jLcE5}F^>q*+Qfh8`1 zaBCmW&pLigI)Ytsg7oM<8ZdbZ)~);4>#Rj6DS|yqNSN@nvS=v5_e(;5fz2XW2zxmX zASAV43Z^NBnjEp*MLJx!_m6cptG4G_9{A=4S}( z1(9^DKQJgezE_>SfHQ|999epE7~k*9FC=Py#~tD{fkpo4yBk*26jj7T&)m@2*1%$_Q$K!R4OKn84^6;FxM2ER`Ap_=gcJcfiFc=Nppr|qnvJVHUGWUT-0k6jY?+sH z1wA9H=dc5!RQZtk);!}cFonwPE^IK=LDz_48?GNc6%lGmTZ=6^S+DnHVRi1FSL_|9I z_@1FfaGi5%S}OAD>hv2p?X!IZp0Rm{+T7gi>LunQKuKw7-#f$bm${v(samP$ z&M|BSt)AFu@JaEc!YWrUEjdIRD|cN9d-FBOi>Gn!aHXF)VW8WzqghDsrb@r-#`F7q z237S5>UJKI0&5(X__HooZ6xK=Zs&2$FEi#YiN)aWtyGN&eXKWOZ6wHR1Np6pO39j+RkOeewclp;!*yb zx>ZNB-G1<4fgbtW{I6Zdrgle6VST5wQmxK7u{f8N1(ur5arlZBdsQpRC$%TO`Mr0? zNu(w*Z*_C>&1R%ZQnjR|{lzD*TRaAKDOb+nqN+^Szu+BNfqi$&zWd?UtM;eDnV7p6 z$JSxt@o(2)*YJs*f*#t_&a|!Nd=djHK5~COJJ{bHm)&$5DlKeqo`o@^f8h`;ztCIj1vu z(T$vmiTi3CcbU1o{|t#OWjN|fPh3#ckCx2%433cUsHUQ##V8i>rk3am&4v%Ax3yGH zB6b@y%iBLVXsSwnan^4Iaw)`iWN^{RbyO5pl{)r+bY7zQn)dG9yR@`-#{~6@4nyZ> zYHPo@`u{XWWhjcafq-`W8NJ~=My$Z{T-<1S(LBKz!Ail*oTx6XqMwFUhFBswO>9PG z$i-z*FZH)Sb6@CN1QP`o5_W-!r4}BK-E{n;99D}qM{+XPJ5i1hPASN2*5V~Hd|Wq! ziECe$gnn9{G>I>6%>=Q_v&{o4cH69~QUzwotIrX4)l7Tr&ZJaDOxDulv<+y+!=gJh zb6O~7WKArpp?$M%rfE^_`~0>PBpngJrjRd?r8R`SRL&oqYu{OGQr%lXTvdw_7#8LTs~ zeLt28o6M{m9Y2+nTOmhTmXu5IW!Y8dRZ)LZAW+-b8=nRi3XCHv$Jg|?@Gw-Esqb$# zAMFN)`TlYs(@?fZ=QmILvZ|)x4kw)Jo28|sVusgEtkD)6Uo<|i zXw&2AG}aqm+8_6YEe?q`ubciN++I^SKZdT!YAC>Gak1?9@tX`{@Uz^Nac^U41jzF-tOW0eNsCM!(X@Z|^ZWGh*wI)JiT z(~KUoGIW?x;sU#}dV3BrMqy)lF=Ng9c6qB3*%Vw1aTXgu8UC%BMm*#l++qV9{;DwF zFHR#3&wZsfW*q7YOLaZHn?%u-g;k7?KfDx~N3x8QjLoTw9jesLCvgqbhjhK2I})F} z91D5m`0QvWMn8T&U!|h=2Zau&4V*w5v0X@N*t2$>cQ{uKgnVD>+^o;-i|Uu;;s3dT zNAOxuT^jVqNw2&j4*a48qEOrsmMquM55n5% zPRx>zXD)Cq*gP=_$u}BX4l)z-t*t1_9zUGN6R10Smffw)Ov=HRDwU&<{8SXPX`|Ok zK3fkw_DR(5q4G8tP(i@eYTH1nl(EhMssti;R&xwFf7y(-ZhI_xcu|nrP;#ylcqxsN z`1S8tgKr@|TZjF58Xxv#ZtJIKEjaTa{Q^Qkd6*ec4HafG9M!2u!kF<>CDc@CcDClM`$`&KWuvVY3O^&=0nsJl(Mmwn7gXH2C ze2?8|$+Kzq<=G;V2+fSKIh`Y|<4;Li8@mjY=y!DGRj0@drN4qRup1$`4L(phGpNs7 zeQ|<8ls-;dHNb(rV{Pl4`a(xM3cl4VB}_QSaymPlz2jE)M@)z>5CLo*1ts-VBbBoX z$B5D~=%8Z}`F4`!O5mn2dzl=VnwsiHsF;NYIkOi&C`9t-v!qZX*%*0-x8Khv@!4gY zH8C+Z*DFa|?Uzu5&`L7ZNBmkJRADO}D^vqt%59;02dza{D4omzHszDv*-D2i)Ho+w z;Ff~>%UR!OZ za-THB<>lp7r87-tE@jo!_thR#)W;s;{VYqG2NT=N?apEEa!^>8oD0-+p#trYqzu9( z^_`qX=&UOyH$N<;d?}cjVUu0sSxq-jqqC5P#@YjKlWjqN#_()oAmBnHXycL)H5th0 zlIK1Ld=Gegnv$ihDdNS8`F*-aP~O>n!%F(sQ?o_Vy3*F-%vyE>QHp5)X(h0A)i94{ zKP2=XaDhqr(CZ#89!Aop-JeD=^DBq>J$hOQ=&fWr>#5-Bp z7nY`6WbAQRCHSeomX8|!NzI|lb$=GjB^%*1rgHPwZKvjCMy*u_aiTJ_p91)ZnZIm8 zSq6NE_^O+^hT=un@@a53l$KU!1km2V!f}7a&xq*XUt^z70OPENMpp8)w8%>Q)wT>r z0%-C^WokI*O7&K^lh3?yuzNNfk-%by^7ntpNee5~^;VdA%m?%$U><=lelkuN%q^zj zji0dZAYe7%08=VKMit?PmG``5UJOiDk3XLB zT}kZ?hdIhumep}DRd=|5HUq~cB%XwJbl6Qzx#1&LDoh0xPPES^WHpw%y2@+j%salX zogr`2sx>+fY$}j6ncb6j`0J?ZzY~!H2?g)Oae&@2@QV`OM|>EKil_T_|6&lmNmme& z!MOPzh%aEacA4CeuetNh$$e1PB8nYlXjRHspR9ND>_tJ+%5jA=v$t+$!L!MDHoPeV z83hoGyX`x;9WE^uHish*=FTk~+Wlk>Mp6vd2T|lc%l} zZAK;>&p|>}#p-2$!{!)v`)0!pV7JqMOm6T4BND>0IpBDpkV__WN&gAq29cnh zO8G*BgRz>@uWih`SgipX&&9pXJy^!NyzYA%Vrcx>E3U(*KR7x<0eOsp`$;p*zqO-8 zf!C`dpf5w46UBx>3Io;e^J%3e3bp-~Z`|=}+<35~=%38eO~Sk&wqdNd*Mr0oOL6JE zKGi2=sK$|I6E4AR++8PgHo1Q`2mLW-FgRj>JU|u;qkjr^+%v!;jbPew=|oqPj$ngn zuMm=^_vvG)+I*ZD`S&IOem16qB$cO9AQ@kI8@NDrb_`=L_2x{AHD_4`vtkaHDV(iu zk=f#06&mNy5J+$!pkTZx5IVIlp|2)WFoF{nYwuv6rAu3a*D``OfhrcBj_NP3<-g}O z1_sJ@LtmmJmQ+n*Q+o$6sZ9YtXm{#ok7Fn^+e?GguaNvdG;zuM6rqJ+if2uyhQl;| z4*33fbZ>=?hcNkvEMxu5|o=(F^~f$~es@l(BY#Qf`ScL6mm+i>00Zk1#HM8M+Y3 z(50zsiTUh*nZ4jOBN&Crh>cE^Ym;CnE%N`TTNbJ&S}?jNqR$5lSIL&{ z0J}(==`(c#bCcWX0o8o-|BMI)(^eWqBN~@Y|EV3Eqb`DCnr^0KDJ%uK%^y!h3Wap8 z@_$ZE4E=pNAM)rV(7bnV?#(!ANe}G!EQteguG~Mjwj|21!{+nPSXwqW+6T=UHV#lH05tJOT9l|{-?Wf5(F}t;cG?8H!tr4!J)e;BORo z4?j>Me>#n6!0wy*pP-cgu(eLY2SvjHSckN?9f{i;o_vxG^57>szto!;Qo}`JogL_d z!8ei~-6j3J^e3y@0mQPq$ADdc+rZ@fr+$Rw$Y?P-Ot)PqfE|hF?ryH^pM&;IC52E# zkfCA>(=7y<0%%716@(#$U+EXWe`U6>Scw0VRXv;lV*aCz!3a%4%Qh=g?d)iJ?b1Q^ z<^ekT(%}ZmKeY-m)Z7Q3BMdAz`+JY71T6&`LIID?KE2@z;qtJ1CLra^Pt7lf;Ny({ zf=ci+_zN{)OBa68*svp%x+aF~xqW-@Q!~TfiBWgdT=JhF^mqS4^qlUb%r2xPEZD4^ zi??n8CoIC%xXOLz)&^5g?G52SY5yb`9DAMY6HDo|9tzjmmLo@^GJX>2`n+SiOhy!R zhr`>W01b)Bb}~%!VyIcb{r4&6e?;0=5@5N9fJ};hgi3`@>kDPW@B)gR97{iJBw?&g zAxitYef?Ib{wvAm5=aDwK;~W<`K(hS-0l@mvcN8P%!N(cr4OI+fO-hYmXipZDEQSac zB95@oCVf38V*iiCc8faG-zNkA-T-yY0mO2q^g9CB8rjPvV52RZQ0w9%&l!gm@g4CL zj%P=a6MEzS_c2K{U9p`ONdWWU?fEWZBx51yiJ$Zcn(h!hV`2>v z%zZ%ZAP6%IomBkvN$Yl&(kV!<=>N5GrBO{?K{!5xO<0;01gjy)4iUqFQiYT}AP_J@ zgHntVBLoC$ZAT1tPMAh(g5*N~y)r!xA=uBGv+}MJR5OrEG$1+NQR8 zn%MX2{kdn}ow?sP-@G$(EyDlpV0c6F=>$~T^z>*uD>rwxWmRrckw>~Pl@;|F_Nx7@ zaynAX)o>_3#eG5?3)i)RzXXr;=g8?QmN|W7%zq6q-?T;D?sxfiF*lWyO{wOA$=d1Y z1Qp#7MQrmtHO{;4VdR$NJdaR&8Q zm#lX&8@~7y9e*Z}zkrF$4=^KGT6*-GC3AXK!MjS`Zv=nDjO>!&GS2ePg_DYua2O8BiKj3vp6laa)Evfd>`4nzmYpc!oNsh~*G%y7Ct&SSbdsb?Q#zjN51 zYka_)Jd3c7EiMT7pJWCh*g9y=CJ826H)P||zvVCUJ5{CocAg!ku4D!I6IMERlHZxv zBN~Ww3#EXf^wuCfKMTzqY4td_*piFVpfKl}t5^X5{{S9vsjWHTzkWLv=PY8XQ z#E3q-SUC2ODVaUmz*=|vL2?L%^vrP653vc5u^sx}-v}_fp=ev<7Wf5`{bOpP%ODl+ z%Rc#F$>4W(fhS;aZ$HqnvYuRrQ($MuIW$o<^ozQ`<7RmSsDE>pq zc%Ewoc)F3v9ZX`H+!3^4b~}VICiYyfT(4&XC65AJ379DjiYj8TY^Fv>C40(kNu2a5 z)JWD$owrE68O2-|fXOK4R0ejR%4RO8p>1xW{LK%qFWB6z(M1qs9!7z$9S+ub@n|DI zA6!xdp{*Q|PFMonCG=AG$XnZ{LGb}>n7d+#?Qi;X*q_^4pGP?#gcPz9V5BiVUw3FTIQ*>>j*HB9sf$tqo zI+2G+x>*_|Q+17N3(_YoN4T}ki@g|yXN~oP2D3ZJ%X-KbHX37ujd9NC`6pIah~=W* z%q=DG{O64)n-@8Qd#Zg};9E@&Y^_i0nRd8aq=G{(;Crn%;@GnMMU_CM#1pXTRV-oooPArA8)kd9B&w`+_*oahO^d3%(%|fC0!zAAd332>BpL4a$LB1Dwnb!D$>34T{*r!5fv7e6!GgBqBjoe-nM2rF;rIC znC?s_BgWRQOiz}5OV=!VHH&jkNPoiQtr(m#L(vxV;Aau_=i53Gxr2eB&F*{R_!& B{=xtN literal 0 HcmV?d00001 diff --git a/infusion/development/images/uio-buttons.png b/infusion/development/images/uio-buttons.png new file mode 100644 index 0000000000000000000000000000000000000000..e358de00e8106775869a450473a3784eef92dd44 GIT binary patch literal 66615 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

    03)IC=rHt<0Th8mum5t!^9;mD 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

    oP zIaSHPT{hv6O9D|0MyHx*_vkIKYC}&Nv13FUJss-Zgqgt!!P*=h zdC+zLdvTUvXHzDa(IGMSQW@30sYVhP%s6;_vits$Q z0Dc-b~5Y%%s*3=03MgaNrtwm(%F z*l%@E{?106Q_mvmckU7Um49VR{{PQlDezy2wsIzmL)x5`PpXrefdiH*7#vX||K$1q E0p|T^6951J literal 0 HcmV?d00001 diff --git a/infusion/development/images/uploader.png b/infusion/development/images/uploader.png new file mode 100644 index 0000000000000000000000000000000000000000..1ee973758b23be1f3523e77b93a35d2eacf4bb68 GIT binary patch literal 49510 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 literal 0 HcmV?d00001 diff --git a/infusion/development/index-components.html b/infusion/development/index-components.html new file mode 100644 index 00000000..840370bb --- /dev/null +++ b/infusion/development/index-components.html @@ -0,0 +1,240 @@ + + + + + + Infusion Components Documentation | Fluid Infusion + + + + + + + + + + + + + + + + + +

    + + + + + + +
    + +
    + + +
    + + + + +
    +
    + + + + + +
    + + + +
    + +
    + + + + +
    + + +
    + + + + + diff --git a/infusion/development/index-tutorials.html b/infusion/development/index-tutorials.html new file mode 100644 index 00000000..32c721f2 --- /dev/null +++ b/infusion/development/index-tutorials.html @@ -0,0 +1,374 @@ + + + + + + Infusion Tutorials | Fluid Infusion + + + + + + + + + + + + + + + + + +
    + + + + + + +
    + +
    + + +
    + + + + +
    +
    + + + + + +
    + + + +
    + +
    + + + + +
    + + +
    + + + + + diff --git a/infusion/development/index.html b/infusion/development/index.html new file mode 100644 index 00000000..0c417594 --- /dev/null +++ b/infusion/development/index.html @@ -0,0 +1,591 @@ + + + + + + Infusion Documentation | Fluid Infusion + + + + + + + + + + + + + + + + + +
    + + + + + + +
    + +
    + + +
    + + + + +
    +
    + + + + + +
    + + + +
    + +
    + + +
    +
    + +
    + +

    Infusion Documentation

    + + + + + +
    +

    This section contains documentation related to using, configuring, and customizing Infusion. Use the table of contents to navigate the content.

    +

    What is Infusion and how do I get it?

    +

    See the Infusion website at:

    +

    http://fluidproject.org/infusion.html

    + +
    +
    + + + +
    + +
    + + +
    + + + + + diff --git a/infusion/development/jqUnit.html b/infusion/development/jqUnit.html new file mode 100644 index 00000000..861c4839 --- /dev/null +++ b/infusion/development/jqUnit.html @@ -0,0 +1,827 @@ + + + + + + jqUnit | Fluid Infusion + + + + + + + + + + + + + + + + + +
    + + + + + + +
    + +
    + + +
    + + + + +
    +
    + + + + + +
    + + + +
    + +
    + + +
    +
    + +
    + +

    jqUnit

    + + + + + +
    +

    Bundled with infusion is jqUnit, a library modelled on the xUnit API style. jqUnit wraps base functionality provided by the +popular QUnit. All of the QUnit base functionality remains available in a jqUnit fixture at the QUnit namespace, and you should consult the QUnit documentation +for details of packaging markup-based fixtures and its own API semantic. However, jqUnit is a complete wrapper and it is possible and recommended to write complete +test suites without reference to QUnit. jqUnit is based on the 1.x API of QUnit, and not the (currently unreleased) 2.x version of QUnit which is API incompatible with QUnit 1.x.

    +

    As well as the use of jqUnit in the browser, there is also a node.js module, node-jqunit which allows the use of the same +testing API for writing node.js tests.

    +

    A more advanced piece of infrastructure is the IoC Testing Framework which is useful for writing asynchronous test fixtures targetting Infusion's IoC +component trees. This is not a replacement for jqUnit but a library layered on top of it which is good for certain specialised purposes. If you are +writing plain unit tests, as well as integration tests which don't have a highly asynchronous, conversational style, you should continue to write jqUnit fixtures. If you find you are +writing large-scale integration or acceptance tests against significantly-sized parts of an application, that require sequences of asynchronous conversation, for example simulating user +GUI interaction or HTTP requests, you should use the IoC Testing Framework.

    +

    Organising and controlling fixtures

    +

    jqUnit.module(name, hooks)

    +

    Starts a group of related tests which will display with the module's name as a prefix. Direct passthrough for QUnit.module

    +

    jqUnit.test(name, testFunc)

    +

    Registers (queues) a synchronous test fixture by providing a callback which will run it. Direct passthrough for QUnit.test. This is equivalent +to a call to jqUnit.asyncTest, where the fixture ends with jqUnit.start.

    +

    jqUnit.asyncTest(name, testFunc)

    +

    Registers (queues) an asynchronous test fixture by providing a callback which will run it. Direct passthrough for QUnit.asyncTest.

    +

    jqUnit.start()

    +

    Restarts QUnit's progress through its fixtures, which were previously suspended by a call to jqUnit.stop(). The idiom is that whilst the system is suspended by stop, the +test currently in progress is waiting for I/O and the test run will not proceed until it resumes. Note that +QUnit's suspension has the semantics of a Counting Semaphore in that repeated calls to +jqUnit.stop are possible and must be matched by an equal number of calls to jqUnit.start before the system will resume. Direct passthrough for QUnit.start.

    +

    jqUnit.stop()

    +

    Suspends QUnit's progression through its fixtures. QUnit will not continue to the next queued test fixture until it has been resumed with jqUnit.start. Direct passthrough for QUnit.start.

    +

    jqUnit.expect(count)

    +

    Informs QUnit that it must receive a certain number of successful assertions in the current fixture, or else the fixture will fail. Note that multiple successive calls to jqUnit.expect within the same fixture +will be cumulative - this is different to QUnit's base behaviour for QUnit.expect where successive calls to QUnit.expect will overwrite the framework's expected count.

    +
      +
    • count: {Integer} The number of (additional) successful assertions to be expected
    • +
    +

    Assertion methods

    +

    jqUnit's assertion methods have the xUnit standard signature of [message, expected, actual] rather than QUnit's signature of [actual, expected, message]. In many cases they are +direct passthroughs to the QUnit equivalents, but jqUnit does implement a few useful extra assertion types. In the following documentation we do not describe the standard message argument +which is accepted as the first argument of every assertion. You may consider that each API section below contains an entry:

    +
      +
    • {message: String} Message describing the assertion
    • +
    +

    jqUnit.assert(message)

    +

    An assertion which unconditionally succeeds, and raises the successful assertion count by one. Equivalent to QUnit.ok(true, message).

    +

    jqUnit.fail(message)

    +

    An assertion which unconditionally fails, and then aborts the current fixture. Equivalent to QUnit.ok(false, message).

    +

    jqUnit.assertTrue(message, value)

    +
      +
    • value {Any} The value to be tested
    • +
    +

    Asserts that the supplied value is true. Equivalent to QUnit.ok(value, message).

    +

    jqUnit.assertFalse(message, value)

    +
      +
    • value {Any} The value to be tested
    • +
    +

    Asserts that the supplied value is false. Equivalent to QUnit.ok(!value, message).

    +

    jqUnit.assertUndefined(message, value)

    +
      +
    • value {Any} The value to be tested
    • +
    +

    Asserts that the supplied value is undefined.

    +

    jqUnit.assertNotUndefined(message, value)

    +
      +
    • value {Any} The value to be tested
    • +
    +

    Asserts that the supplied value is not undefined.

    +

    jqUnit.assertNull(message, value)

    +
      +
    • value {Any} The value to be tested
    • +
    +

    Asserts that the supplied value is null.

    +

    jqUnit.assertNotNull(message, value)

    +
      +
    • value {Any} The value to be tested
    • +
    +

    Asserts that the supplied value is not null.

    +

    jqUnit.assertValue(message, value)

    +
      +
    • value {Any} The value to be tested
    • +
    +

    Asserts that the supplied value is not null or undefined.

    +

    jqUnit.assertNoValue(message, value)

    +
      +
    • value {Any} The value to be tested
    • +
    +

    Asserts that the supplied value is either null or undefined.

    +

    jqUnit.assertEquals(message, expected, value)

    +
      +
    • expected {Any} The expected value of value
    • +
    • value {Any} The value to be tested
    • +
    +

    Asserts that the supplied value is equal to the one supplied as expected. This will be performed by a strict equality check (===) - equivalent to QUnit.strictEqual(actual, expected, message)

    +

    jqUnit.assertNotEquals(message, unexpected value)

    +
      +
    • unexpected {Any} The value that value is expected to differ from
    • +
    • value {Any} The value to be tested
    • +
    +

    Asserts that the supplied value is not equal to the one supplied as unexpected. This will be performed by a strict inequality check (!==) - equivalent to QUnit.notStrictEqual(actual, expected, message)

    +

    jqUnit.assertDeepEq(message, expected, value)

    +
      +
    • expected {Any} The expected value of value
    • +
    • value {Any} The value to be tested
    • +
    +

    Asserts that the supplied value is equal to the one supplied as expected. This will be performed by a deep equality check on the basis of properties only (ignoring constructors and prototypes) - equivalent to QUnit.propEqual(actual, expected, message)

    +

    jqUnit.assertDeepNeq(message, unexpected, value)

    +
      +
    • unexpected {Any} The value that value is expected to differ from
    • +
    • value {Any} The value to be tested
    • +
    +

    Asserts that the supplied value is not equal to the one supplied as unexpected. This will be performed by a deep equality check on the basis of properties only (ignoring constructors and prototypes) - +equivalent to QUnit.notPropEqual(actual, expected, message)

    +

    jqUnit.assertCanoniseEqual(message, expected, value, canonFunc)

    +
      +
    • expected {Any} The expected value of value
    • +
    • value {Any} The value to be tested
    • +
    • canonFunc {Function: (value {Any}) → Any} A canonicalisation function which will be applied to both expected and value to reduce them +to a common form in which they can then be compared by standard deep equality.
    • +
    +

    Asserts that the supplied value is equal to the one supplied as expected, by deep equality and after applying a "canonicalisation function" to remove irrelevant differences +between the two values. Useful canonicalisation functions could act i) to allow all Functions to compare equal, ii) to remove irrelevant differences in array order by sorting, +or iii) other means. Functions supplied by jqUnit include jqUnit.canonicaliseFunctions and jqUnit.sortTree.

    +

    jqUnit.assertLeftHand(message, expected, value)

    +
      +
    • expected {Any} An expected subset of value
    • +
    • value {Any} The value to be tested
    • +
    +

    Assert that the actual value object is a superset (considered in terms of shallow key coincidence) of the +expected value object. The coincidence between value and expected is only in terms of top-level keys, but the comparison will +use deep equality. That is, if value has any top-level keys in common with expected, they must compare equal by deep equality - but it may +have extra top-level keys whose contents will be iignored. "Left hand" (expected) is a subset of actual.

    +

    jqUnit.assertRightHand(message, expected, value)

    +
      +
    • expected {Any} An expected superset of value
    • +
    • value {Any} The value to be tested
    • +
    +

    Assert that the actual value object is a subset (considered in terms of shallow key coincidence) of the +expected value object. This is the natural converse of jqUnit.assertLeftHand but this assertion is rarely used - it is less useful to assert +that a payload is as expected but may be missing arbitrarily many top-level keys.

    +

    jqUnit.expectFrameworkDiagnostic(message, toInvoke, errorTexts)

    +

    Assert that the supplied callback will produce a framework diagnostic (that is, an exception descended from fluid.FluidError), containing the supplied text(s) +somewhere in its error message - that is, the callback has invoked fluid.fail with a message containing +the entries in errorTexts.

    +
      +
    • message {String} The message prefix to be supplied for all the assertions this function issues
    • +
    • toInvoke {Function} A no-arg function holding the code to be tested for emission of the diagnostic +errorTexts {String|Array of String} Either a single string or array of strings which the message> field +of the thrown exception will be tested against - each string must appear as a substring in the text
    • +
    +

    Utilities for testing

    +

    jqUnit.canonicaliseFunctions(value)

    +

    A canonicalisation function, helpful for use with jqUnit.assertCanoniseEqual - this will +take any Functions within the supplied tree and replace them with the same Function reference (fluid.identity)

    +
      +
    • value {Object} Value to be canonicalised
    • +
    • Returns: {Object} Deep clone of value with all functions replaced by the same reference
    • +
    +

    jqUnit.sortTree(value)

    +

    A canonicalisation function, helpful if supplying a renderer component tree to jqUnit.assertCanoniseEqual - +this will sort each set of children in the tree recursively into a canonical order, where this order would not disturb the rendered result.

    +

    Testing in the browser

    +

    The QUnit browser UI requires a standard set of includes and markup to render properly. In the header (adjust include paths as appropriate):

    +
    
    +    <link rel="stylesheet" media="screen" href="../../../lib/qunit/css/qunit.css" />
    +
    +    <script type="text/javascript" src="../../../lib/qunit/js/qunit.js"></script>
    +    <script type="text/javascript" src="../../../test-core/jqUnit/js/jqUnit.js"></script>
    +
    +

    and in the body of the document:

    +
        <h1 id="qunit-header">Your Test Name Here</h1>
    +    <h2 id="qunit-banner"></h2>
    +    <div id="qunit-testrunner-toolbar"></div>
    +    <h2 id="qunit-userAgent"></h2>
    +    <ol id="qunit-tests"></ol>
    +
    +    <!-- Test HTML -->
    +    <div id="qunit-fixture">
    +    </div>
    +
    +

    Mysteriously, these UI element ids and their functions are not documented on the QUnit site itself - although you can find explanations of them in some 3rd party tutorials. +Any markup used within test fixtures must be placed within the div with id qunit-fixture - QUnit will take care of tearing this down and restoring it in its +original condition before the start of every test.

    +

    Your test fixtures should be scheduled to start only once this markup has loaded - you can achieve this by either starting them within a $(document).ready +callback, or by writing a <script> block at the base of your HTML file which starts them.

    +

    jqUnit provides a special set of assertions and utilities for testing within the browser environment:

    +

    jqUnit.assertNode (message, expected, node)

    +

    Checks a subtree of DOM nodes descended for a particular node against a condensed JSON representation, allowing multiple aspects of a rendered UI to be checked in a single +operation. Each attribute of each DOM node is attached as a direct property, the node's tag name is attached as nodeName, the node's element test is attached as nodeText, and then +all children are recursively attached as the property children. In addition, at any stage, the entire nested markup may be attached as nodeHTML.

    +

    As an example, the following markup:

    +
        <a href="a-link"><img src="a-source"/></a>
    +
    +

    will compare equal to

    +
    {
    +   nodeName: "a",
    +   href: "a-link",
    +   children: [
    +       {
    +       nodeName: "img",
    +       src: "a-source"
    +       }
    +   ]
    +}
    +
    +
      +
    • expected {Object|Array} A condensed JSON respresentation of a set of assertions to make about a subtree of DOM nodes, or an array of these
    • +
    • node {DOM|Array of DOM|jQuery} The DOM node to be checked against expected - this may also be an array of DOM nodes or a jQuery object.
    • +
    +

    jqUnit.canonicaliseDom(list)

    +

    Canonicalise a list of DOM elements (or a jQuery) by converting elements to their ids (allocated if necessary).

    +
      +
    • list {Array of DOM|jQuery} An array of DOM nodes or a jQuery
    • +
    • Returns: {Array of String} An array of ids for the supplied nodes, allocated via fluid.allocateSimpleId.
    • +
    +

    jqUnit.assertDomEquals(message, expected, actual)

    +

    Compare two lists of DOM elements (or jQueries) for being equal by virtue of containing the same DOM elements in the same order. This will +be achieved by canonicalising the DOM elements onto their ids by means of the canonicalisation function jqUnit.canonicaliseDom

    +
      +
    • expected {Array of DOM|jQuery} The expected list of DOM nodes
    • +
    • actual {Array of DOM|jQuery} The actual list of DOM nodes to be compared with expected.
    • +
    +

    jqUnit.isVisible(msg, selector)

    +

    Asserts that the DOM nodes identified by selector are visible, in terms of not matching the jQuery :hidden pseudoselector.

    +
      +
    • selector {jQueryable} The selector or other jQueryable identifying the DOM nodes to be tested for visibility
    • +
    +

    jqUnit.notVisible(msg, selector)

    +

    Asserts that the DOM nodes identified by selector are not visible, in terms of matching the jQuery :hidden pseudoselector.

    +
      +
    • selector {jQueryable} The selector or other jQueryable identifying the DOM nodes to be tested for invisibility
    • +
    +

    jqUnit.assertNodeExists (msg, selector)

    +

    Asserts that there is at least one node matching the provided selector (or other jQueryable)

    +
      +
    • selector {jQueryable} The selector or other jQueryable identifying the DOM nodes to be checked for existence
    • +
    +

    jqUnit.assertNodeNotExists (msg, selector)

    +

    Asserts that there are no nodes matching the provided selector (or other jQueryable)

    +
      +
    • selector {jQueryable} The selector or other jQueryable identifying the DOM nodes to be checked for nonexistence
    • +
    +

    jqUnit.subvertAnimations()

    +

    Overrides jQuery's animation routines to be synchronous. This can simplify tests which would otherwise have to wait for an unknown timeout for the DOM to come into +an expected state after, say, a jQuery.hide or jQuery.show.

    + +
    +
    + + + +
    + +
    + + +
    + + + + + diff --git a/infusion/development/js/infusion-docs.js b/infusion/development/js/infusion-docs.js new file mode 100644 index 00000000..34974e8f --- /dev/null +++ b/infusion/development/js/infusion-docs.js @@ -0,0 +1,42 @@ +/* eslint-env browser:true node:false */ +(function ($) { + "use strict"; + fluid.registerNamespace("fluid.docs"); + + fluid.docs.findActivePageToc = function () { + var allPages = $(".infusion-docs-TOC li .infusion-docs-TOC-pageName"); + var activePage = allPages.filter(":not(a *)"); + return activePage; + }; + + fluid.docs.scrollActivePageTocIntoView = function () { + var active = fluid.docs.findActivePageToc(); + if (active.length === 1) { + active[0].scrollIntoView(); + } + }; + + fluid.docs.headerLinkMarkup = ""; + + fluid.docs.fabricateHeaderLinks = function () { + var headers = $(":header"); + fluid.each(headers, function (header) { + var id = header.id; + var anchor = $(fluid.stringTemplate(fluid.docs.headerLinkMarkup, {href: "#" + id})); + var jHeader = $(header); + jHeader.prepend(anchor); + var link = $("span", anchor); + jHeader.add(anchor).hover(function () { + link.css("visibility", "visible"); + }, function () { + link.css("visibility", "hidden"); + }); + link.css("visibility", "hidden"); // We do not apply this in the stylesheet because it does not work, for reasons I cannot explain + }); + }; + + fluid.docs.onLoad = function () { + fluid.docs.scrollActivePageTocIntoView(); + fluid.docs.fabricateHeaderLinks(); + }; +})(jQuery); diff --git a/infusion/development/lib/infusion/Infusion-LICENSE.txt b/infusion/development/lib/infusion/Infusion-LICENSE.txt new file mode 100644 index 00000000..5e9a8feb --- /dev/null +++ b/infusion/development/lib/infusion/Infusion-LICENSE.txt @@ -0,0 +1,227 @@ +Infusion is available under either the terms of the New BSD license or the +Educational Community License, Version 2.0. As a recipient of Infusion, you may +choose which license to receive this code under (except as noted in per-module +LICENSE files). All modules are Copyright 2011 OCAD University except +where noted otherwise in the code itself, or if the modules reside in a separate +directory, they may contain explicit declarations of copyright in both the +LICENSE file in the directory in which they reside and in the code itself. No +external contributions are allowed under licenses which are fundamentally +incompatible with the ECL or BSD licenses that Infusion is distributed under. + +The text of the ECL and BSD licenses is reproduced below. + +Educational Community License, Version 2.0 +************************************* +Copyright 2011 OCAD University + +Educational Community License, Version 2.0, April 2007 + +The Educational Community License version 2.0 ("ECL") consists of the Apache 2.0 +license, modified to change the scope of the patent grant in section 3 to be +specific to the needs of the education communities using this license. The +original Apache 2.0 license can be found at: +http://www.apache.org/licenses/LICENSE-2.0 + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + +"License" shall mean the terms and conditions for use, reproduction, and +distribution as defined by Sections 1 through 9 of this document. + +"Licensor" shall mean the copyright owner or entity authorized by the copyright +owner that is granting the License. + +"Legal Entity" shall mean the union of the acting entity and all other entities +that control, are controlled by, or are under common control with that entity. +For the purposes of this definition, "control" means (i) the power, direct or +indirect, to cause the direction or management of such entity, whether by +contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the +outstanding shares, or (iii) beneficial ownership of such entity. + +"You" (or "Your") shall mean an individual or Legal Entity exercising +permissions granted by this License. + +"Source" form shall mean the preferred form for making modifications, including +but not limited to software source code, documentation source, and configuration +files. + +"Object" form shall mean any form resulting from mechanical transformation or +translation of a Source form, including but not limited to compiled object code, +generated documentation, and conversions to other media types. + +"Work" shall mean the work of authorship, whether in Source or Object form, made +available under the License, as indicated by a copyright notice that is included +in or attached to the work (an example is provided in the Appendix below). + +"Derivative Works" shall mean any work, whether in Source or Object form, that +is based on (or derived from) the Work and for which the editorial revisions, +annotations, elaborations, or other modifications represent, as a whole, an +original work of authorship. For the purposes of this License, Derivative Works +shall not include works that remain separable from, or merely link (or bind by +name) to the interfaces of, the Work and Derivative Works thereof. + +"Contribution" shall mean any work of authorship, including the original version +of the Work and any modifications or additions to that Work or Derivative Works +thereof, that is intentionally submitted to Licensor for inclusion in the Work +by the copyright owner or by an individual or Legal Entity authorized to submit +on behalf of the copyright owner. For the purposes of this definition, +"submitted" means any form of electronic, verbal, or written communication sent +to the Licensor or its representatives, including but not limited to +communication on electronic mailing lists, source code control systems, and +issue tracking systems that are managed by, or on behalf of, the Licensor for +the purpose of discussing and improving the Work, but excluding communication +that is conspicuously marked or otherwise designated in writing by the copyright +owner as "Not a Contribution." + +"Contributor" shall mean Licensor and any individual or Legal Entity on behalf +of whom a Contribution has been received by Licensor and subsequently +incorporated within the Work. + +2. Grant of Copyright License. + +Subject to the terms and conditions of this License, each Contributor hereby +grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, +irrevocable copyright license to reproduce, prepare Derivative Works of, +publicly display, publicly perform, sublicense, and distribute the Work and such +Derivative Works in Source or Object form. + +3. Grant of Patent License. + +Subject to the terms and conditions of this License, each Contributor hereby +grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, +irrevocable (except as stated in this section) patent license to make, have +made, use, offer to sell, sell, import, and otherwise transfer the Work, where +such license applies only to those patent claims licensable by such Contributor +that are necessarily infringed by their Contribution(s) alone or by combination +of their Contribution(s) with the Work to which such Contribution(s) was +submitted. If You institute patent litigation against any entity (including a +cross-claim or counterclaim in a lawsuit) alleging that the Work or a +Contribution incorporated within the Work constitutes direct or contributory +patent infringement, then any patent licenses granted to You under this License +for that Work shall terminate as of the date such litigation is filed. Any +patent license granted hereby with respect to contributions by an individual +employed by an institution or organization is limited to patent claims where the +individual that is the author of the Work is also the inventor of the patent +claims licensed, and where the organization or institution has the right to +grant such license under applicable grant and research funding agreements. No +other express or implied licenses are granted. + +4. Redistribution. + +You may reproduce and distribute copies of the Work or Derivative Works thereof +in any medium, with or without modifications, and in Source or Object form, +provided that You meet the following conditions: + + 1. You must give any other recipients of the Work or Derivative Works a copy +of this License; and + 2. You must cause any modified files to carry prominent notices stating that +You changed the files; and + 3. You must retain, in the Source form of any Derivative Works that You +distribute, all copyright, patent, trademark, and attribution notices from +the Source form of the Work, excluding those notices that do not pertain to +any part of the Derivative Works; and + 4. If the Work includes a "NOTICE" text file as part of its distribution, +then any Derivative Works that You distribute must include a readable copy of +the attribution notices contained within such NOTICE file, excluding those +notices that do not pertain to any part of the Derivative Works, in at least +one of the following places: within a NOTICE text file distributed as part of +the Derivative Works; within the Source form or documentation, if provided +along with the Derivative Works; or, within a display generated by the +Derivative Works, if and wherever such third-party notices normally appear. +The contents of the NOTICE file are for informational purposes only and do +not modify the License. You may add Your own attribution notices within +Derivative Works that You distribute, alongside or as an addendum to the +NOTICE text from the Work, provided that such additional attribution notices +cannot be construed as modifying the License. + +You may add Your own copyright statement to Your modifications and may provide +additional or different license terms and conditions for use, reproduction, or +distribution of Your modifications, or for any such Derivative Works as a whole, +provided Your use, reproduction, and distribution of the Work otherwise complies +with the conditions stated in this License. + +5. Submission of Contributions. + +Unless You explicitly state otherwise, any Contribution intentionally submitted +for inclusion in the Work by You to the Licensor shall be under the terms and +conditions of this License, without any additional terms or conditions. +Notwithstanding the above, nothing herein shall supersede or modify the terms of +any separate license agreement you may have executed with Licensor regarding +such Contributions. + +6. Trademarks. + +This License does not grant permission to use the trade names, trademarks, +service marks, or product names of the Licensor, except as required for +reasonable and customary use in describing the origin of the Work and +reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. + +Unless required by applicable law or agreed to in writing, Licensor provides the +Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, +including, without limitation, any warranties or conditions of TITLE, +NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are +solely responsible for determining the appropriateness of using or +redistributing the Work and assume any risks associated with Your exercise of +permissions under this License. + +8. Limitation of Liability. + +In no event and under no legal theory, whether in tort (including negligence), +contract, or otherwise, unless required by applicable law (such as deliberate +and grossly negligent acts) or agreed to in writing, shall any Contributor be +liable to You for damages, including any direct, indirect, special, incidental, +or consequential damages of any character arising as a result of this License or +out of the use or inability to use the Work (including but not limited to +damages for loss of goodwill, work stoppage, computer failure or malfunction, or +any and all other commercial damages or losses), even if such Contributor has +been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. + +While redistributing the Work or Derivative Works thereof, You may choose to +offer, and charge a fee for, acceptance of support, warranty, indemnity, or +other liability obligations and/or rights consistent with this License. However, +in accepting such obligations, You may act only on Your own behalf and on Your +sole responsibility, not on behalf of any other Contributor, and only if You +agree to indemnify, defend, and hold each Contributor harmless for any liability +incurred by, or claims asserted against, such Contributor by reason of your +accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS FOR ECL 2.0 + +The New BSD license +********************** + +Copyright 2011 OCAD University + +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 OCAD University nor the names of its +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. + +END OF TERMS AND CONDITIONS FOR THE NEW BSD LICENSE diff --git a/infusion/development/lib/infusion/Version.md b/infusion/development/lib/infusion/Version.md new file mode 100644 index 00000000..93ad8573 --- /dev/null +++ b/infusion/development/lib/infusion/Version.md @@ -0,0 +1,25 @@ +Uses the infusion-uiOptions-2.0.0-minified.zip custom Infusion 2.0 build provided on +the [Infusion 2.0 release page](https://github.com/fluid-project/infusion/releases/tag/infusion-2.0). + +The following directories and files were removed from the build, because they are already included in infusion-uiOptions.js file, or are no longer needed: + +* src/components/slidingPanel/ +* src/components/tableOfContents/js/ +* src/components/tableOfContents/tableOfContentsDependencies.json +* src/components/textfieldSlider/ +* src/components/textToSpeech/ +* src/components/uiOptions/ +* src/framework/core/js/ +* src/framework/core/coreDependencies.json +* src/framework/enhancement/ +* src/framework/preferences/js/ +* src/framework/preferences/preferencesDependencies.json +* src/framework/renderer/ +* src/lib/fastXmlPull/ +* src/lib/fonts/fontsDependencies.json +* src/lib/jquery/core/jQueryDependencies.json +* src/lib/jquery/plugins/touchPunch/jQueryTouchPunchPluginDependencies.json +* src/lib/jquery/ui/jQueryUIDependencies.json +* src/lib/normamlize/normalizeDependencies.json +* README.md +* ReleaseNotes.md diff --git a/infusion/development/lib/infusion/infusion-uiOptions.js b/infusion/development/lib/infusion/infusion-uiOptions.js new file mode 100644 index 00000000..e96482f8 --- /dev/null +++ b/infusion/development/lib/infusion/infusion-uiOptions.js @@ -0,0 +1,30 @@ +/*! + infusion - v2.0.0 + Thursday, December 8th, 2016, 3:42:03 PM + branch: HEAD + revision: 85a1ffe +*/ + +!function(global,factory){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=global.document?factory(global,!0):function(w){if(!w.document)throw new Error("jQuery requires a window with a document");return factory(w)}:factory(global)}("undefined"!=typeof window?window:this,function(window,noGlobal){"use strict";function DOMEval(code,doc){doc=doc||document;var script=doc.createElement("script");script.text=code,doc.head.appendChild(script).parentNode.removeChild(script)}function isArrayLike(obj){var length=!!obj&&"length"in obj&&obj.length,type=jQuery.type(obj);return"function"!==type&&!jQuery.isWindow(obj)&&("array"===type||0===length||"number"==typeof length&&length>0&&length-1 in obj)}function winnow(elements,qualifier,not){if(jQuery.isFunction(qualifier))return jQuery.grep(elements,function(elem,i){return!!qualifier.call(elem,i,elem)!==not});if(qualifier.nodeType)return jQuery.grep(elements,function(elem){return elem===qualifier!==not});if("string"==typeof qualifier){if(risSimple.test(qualifier))return jQuery.filter(qualifier,elements,not);qualifier=jQuery.filter(qualifier,elements)}return jQuery.grep(elements,function(elem){return indexOf.call(qualifier,elem)>-1!==not&&1===elem.nodeType})}function sibling(cur,dir){for(;(cur=cur[dir])&&1!==cur.nodeType;);return cur}function createOptions(options){var object={};return jQuery.each(options.match(rnotwhite)||[],function(_,flag){object[flag]=!0}),object}function Identity(v){return v}function Thrower(ex){throw ex}function adoptValue(value,resolve,reject){var method;try{value&&jQuery.isFunction(method=value.promise)?method.call(value).done(resolve).fail(reject):value&&jQuery.isFunction(method=value.then)?method.call(value,resolve,reject):resolve.call(void 0,value)}catch(value){reject.call(void 0,value)}}function completed(){document.removeEventListener("DOMContentLoaded",completed),window.removeEventListener("load",completed),jQuery.ready()}function Data(){this.expando=jQuery.expando+Data.uid++}function dataAttr(elem,key,data){var name;if(void 0===data&&1===elem.nodeType)if(name="data-"+key.replace(rmultiDash,"-$&").toLowerCase(),data=elem.getAttribute(name),"string"==typeof data){try{data="true"===data||"false"!==data&&("null"===data?null:+data+""===data?+data:rbrace.test(data)?JSON.parse(data):data)}catch(e){}dataUser.set(elem,key,data)}else data=void 0;return data}function adjustCSS(elem,prop,valueParts,tween){var adjusted,scale=1,maxIterations=20,currentValue=tween?function(){return tween.cur()}:function(){return jQuery.css(elem,prop,"")},initial=currentValue(),unit=valueParts&&valueParts[3]||(jQuery.cssNumber[prop]?"":"px"),initialInUnit=(jQuery.cssNumber[prop]||"px"!==unit&&+initial)&&rcssNum.exec(jQuery.css(elem,prop));if(initialInUnit&&initialInUnit[3]!==unit){unit=unit||initialInUnit[3],valueParts=valueParts||[],initialInUnit=+initial||1;do scale=scale||".5",initialInUnit/=scale,jQuery.style(elem,prop,initialInUnit+unit);while(scale!==(scale=currentValue()/initial)&&1!==scale&&--maxIterations)}return valueParts&&(initialInUnit=+initialInUnit||+initial||0,adjusted=valueParts[1]?initialInUnit+(valueParts[1]+1)*valueParts[2]:+valueParts[2],tween&&(tween.unit=unit,tween.start=initialInUnit,tween.end=adjusted)),adjusted}function getDefaultDisplay(elem){var temp,doc=elem.ownerDocument,nodeName=elem.nodeName,display=defaultDisplayMap[nodeName];return display?display:(temp=doc.body.appendChild(doc.createElement(nodeName)),display=jQuery.css(temp,"display"),temp.parentNode.removeChild(temp),"none"===display&&(display="block"),defaultDisplayMap[nodeName]=display,display)}function showHide(elements,show){for(var display,elem,values=[],index=0,length=elements.length;index-1)ignored&&ignored.push(elem);else if(contains=jQuery.contains(elem.ownerDocument,elem),tmp=getAll(fragment.appendChild(elem),"script"),contains&&setGlobalEval(tmp),scripts)for(j=0;elem=tmp[j++];)rscriptType.test(elem.type||"")&&scripts.push(elem);return fragment}function returnTrue(){return!0}function returnFalse(){return!1}function safeActiveElement(){try{return document.activeElement}catch(err){}}function on(elem,types,selector,data,fn,one){var origFn,type;if("object"==typeof types){"string"!=typeof selector&&(data=data||selector,selector=void 0);for(type in types)on(elem,type,selector,data,types[type],one);return elem}if(null==data&&null==fn?(fn=selector,data=selector=void 0):null==fn&&("string"==typeof selector?(fn=data,data=void 0):(fn=data,data=selector,selector=void 0)),fn===!1)fn=returnFalse;else if(!fn)return elem;return 1===one&&(origFn=fn,fn=function(event){return jQuery().off(event),origFn.apply(this,arguments)},fn.guid=origFn.guid||(origFn.guid=jQuery.guid++)),elem.each(function(){jQuery.event.add(this,types,fn,data,selector)})}function manipulationTarget(elem,content){return jQuery.nodeName(elem,"table")&&jQuery.nodeName(11!==content.nodeType?content:content.firstChild,"tr")?elem.getElementsByTagName("tbody")[0]||elem:elem}function disableScript(elem){return elem.type=(null!==elem.getAttribute("type"))+"/"+elem.type,elem}function restoreScript(elem){var match=rscriptTypeMasked.exec(elem.type);return match?elem.type=match[1]:elem.removeAttribute("type"),elem}function cloneCopyEvent(src,dest){var i,l,type,pdataOld,pdataCur,udataOld,udataCur,events;if(1===dest.nodeType){if(dataPriv.hasData(src)&&(pdataOld=dataPriv.access(src),pdataCur=dataPriv.set(dest,pdataOld),events=pdataOld.events)){delete pdataCur.handle,pdataCur.events={};for(type in events)for(i=0,l=events[type].length;i1&&"string"==typeof value&&!support.checkClone&&rchecked.test(value))return collection.each(function(index){var self=collection.eq(index);isFunction&&(args[0]=value.call(this,index,self.html())),domManip(self,args,callback,ignored)});if(l&&(fragment=buildFragment(args,collection[0].ownerDocument,!1,collection,ignored),first=fragment.firstChild,1===fragment.childNodes.length&&(fragment=first),first||ignored)){for(scripts=jQuery.map(getAll(fragment,"script"),disableScript),hasScripts=scripts.length;i=0&&jExpr.cacheLength&&delete cache[keys.shift()],cache[key+" "]=value}var keys=[];return cache}function markFunction(fn){return fn[expando]=!0,fn}function assert(fn){var el=document.createElement("fieldset");try{return!!fn(el)}catch(e){return!1}finally{el.parentNode&&el.parentNode.removeChild(el),el=null}}function addHandle(attrs,handler){for(var arr=attrs.split("|"),i=arr.length;i--;)Expr.attrHandle[arr[i]]=handler}function siblingCheck(a,b){var cur=b&&a,diff=cur&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;if(diff)return diff;if(cur)for(;cur=cur.nextSibling;)if(cur===b)return-1;return a?1:-1}function createInputPseudo(type){return function(elem){var name=elem.nodeName.toLowerCase();return"input"===name&&elem.type===type}}function createButtonPseudo(type){return function(elem){var name=elem.nodeName.toLowerCase();return("input"===name||"button"===name)&&elem.type===type}}function createDisabledPseudo(disabled){return function(elem){return"label"in elem&&elem.disabled===disabled||"form"in elem&&elem.disabled===disabled||"form"in elem&&elem.disabled===!1&&(elem.isDisabled===disabled||elem.isDisabled!==!disabled&&("label"in elem||!disabledAncestor(elem))!==disabled)}}function createPositionalPseudo(fn){return markFunction(function(argument){return argument=+argument,markFunction(function(seed,matches){for(var j,matchIndexes=fn([],seed.length,argument),i=matchIndexes.length;i--;)seed[j=matchIndexes[i]]&&(seed[j]=!(matches[j]=seed[j]))})})}function testContext(context){return context&&"undefined"!=typeof context.getElementsByTagName&&context}function setFilters(){}function toSelector(tokens){for(var i=0,len=tokens.length,selector="";i1?function(elem,context,xml){for(var i=matchers.length;i--;)if(!matchers[i](elem,context,xml))return!1;return!0}:matchers[0]}function multipleContexts(selector,contexts,results){for(var i=0,len=contexts.length;i-1&&(seed[temp]=!(results[temp]=elem)); +}}else matcherOut=condense(matcherOut===results?matcherOut.splice(preexisting,matcherOut.length):matcherOut),postFinder?postFinder(null,results,matcherOut,xml):push.apply(results,matcherOut)})}function matcherFromTokens(tokens){for(var checkContext,matcher,j,len=tokens.length,leadingRelative=Expr.relative[tokens[0].type],implicitRelative=leadingRelative||Expr.relative[" "],i=leadingRelative?1:0,matchContext=addCombinator(function(elem){return elem===checkContext},implicitRelative,!0),matchAnyContext=addCombinator(function(elem){return indexOf(checkContext,elem)>-1},implicitRelative,!0),matchers=[function(elem,context,xml){var ret=!leadingRelative&&(xml||context!==outermostContext)||((checkContext=context).nodeType?matchContext(elem,context,xml):matchAnyContext(elem,context,xml));return checkContext=null,ret}];i1&&elementMatcher(matchers),i>1&&toSelector(tokens.slice(0,i-1).concat({value:" "===tokens[i-2].type?"*":""})).replace(rtrim,"$1"),matcher,i0,byElement=elementMatchers.length>0,superMatcher=function(seed,context,xml,results,outermost){var elem,j,matcher,matchedCount=0,i="0",unmatched=seed&&[],setMatched=[],contextBackup=outermostContext,elems=seed||byElement&&Expr.find.TAG("*",outermost),dirrunsUnique=dirruns+=null==contextBackup?1:Math.random()||.1,len=elems.length;for(outermost&&(outermostContext=context===document||context||outermost);i!==len&&null!=(elem=elems[i]);i++){if(byElement&&elem){for(j=0,context||elem.ownerDocument===document||(setDocument(elem),xml=!documentIsHTML);matcher=elementMatchers[j++];)if(matcher(elem,context||document,xml)){results.push(elem);break}outermost&&(dirruns=dirrunsUnique)}bySet&&((elem=!matcher&&elem)&&matchedCount--,seed&&unmatched.push(elem))}if(matchedCount+=i,bySet&&i!==matchedCount){for(j=0;matcher=setMatchers[j++];)matcher(unmatched,setMatched,context,xml);if(seed){if(matchedCount>0)for(;i--;)unmatched[i]||setMatched[i]||(setMatched[i]=pop.call(results));setMatched=condense(setMatched)}push.apply(results,setMatched),outermost&&!seed&&setMatched.length>0&&matchedCount+setMatchers.length>1&&Sizzle.uniqueSort(results)}return outermost&&(dirruns=dirrunsUnique,outermostContext=contextBackup),unmatched};return bySet?markFunction(superMatcher):superMatcher}var i,support,Expr,getText,isXML,tokenize,compile,select,outermostContext,sortInput,hasDuplicate,setDocument,document,docElem,documentIsHTML,rbuggyQSA,rbuggyMatches,matches,contains,expando="sizzle"+1*new Date,preferredDoc=window.document,dirruns=0,done=0,classCache=createCache(),tokenCache=createCache(),compilerCache=createCache(),sortOrder=function(a,b){return a===b&&(hasDuplicate=!0),0},hasOwn={}.hasOwnProperty,arr=[],pop=arr.pop,push_native=arr.push,push=arr.push,slice=arr.slice,indexOf=function(list,elem){for(var i=0,len=list.length;i+~]|"+whitespace+")"+whitespace+"*"),rattributeQuotes=new RegExp("="+whitespace+"*([^\\]'\"]*?)"+whitespace+"*\\]","g"),rpseudo=new RegExp(pseudos),ridentifier=new RegExp("^"+identifier+"$"),matchExpr={ID:new RegExp("^#("+identifier+")"),CLASS:new RegExp("^\\.("+identifier+")"),TAG:new RegExp("^("+identifier+"|[*])"),ATTR:new RegExp("^"+attributes),PSEUDO:new RegExp("^"+pseudos),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+whitespace+"*(even|odd|(([+-]|)(\\d*)n|)"+whitespace+"*(?:([+-]|)"+whitespace+"*(\\d+)|))"+whitespace+"*\\)|)","i"),bool:new RegExp("^(?:"+booleans+")$","i"),needsContext:new RegExp("^"+whitespace+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+whitespace+"*((?:-\\d)?\\d*)"+whitespace+"*\\)|)(?=[^-]|$)","i")},rinputs=/^(?:input|select|textarea|button)$/i,rheader=/^h\d$/i,rnative=/^[^{]+\{\s*\[native \w/,rquickExpr=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,rsibling=/[+~]/,runescape=new RegExp("\\\\([\\da-f]{1,6}"+whitespace+"?|("+whitespace+")|.)","ig"),funescape=function(_,escaped,escapedWhitespace){var high="0x"+escaped-65536;return high!==high||escapedWhitespace?escaped:high<0?String.fromCharCode(high+65536):String.fromCharCode(high>>10|55296,1023&high|56320)},rcssescape=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g,fcssescape=function(ch,asCodePoint){return asCodePoint?"\0"===ch?"�":ch.slice(0,-1)+"\\"+ch.charCodeAt(ch.length-1).toString(16)+" ":"\\"+ch},unloadHandler=function(){setDocument()},disabledAncestor=addCombinator(function(elem){return elem.disabled===!0},{dir:"parentNode",next:"legend"});try{push.apply(arr=slice.call(preferredDoc.childNodes),preferredDoc.childNodes),arr[preferredDoc.childNodes.length].nodeType}catch(e){push={apply:arr.length?function(target,els){push_native.apply(target,slice.call(els))}:function(target,els){for(var j=target.length,i=0;target[j++]=els[i++];);target.length=j-1}}}support=Sizzle.support={},isXML=Sizzle.isXML=function(elem){var documentElement=elem&&(elem.ownerDocument||elem).documentElement;return!!documentElement&&"HTML"!==documentElement.nodeName},setDocument=Sizzle.setDocument=function(node){var hasCompare,subWindow,doc=node?node.ownerDocument||node:preferredDoc;return doc!==document&&9===doc.nodeType&&doc.documentElement?(document=doc,docElem=document.documentElement,documentIsHTML=!isXML(document),preferredDoc!==document&&(subWindow=document.defaultView)&&subWindow.top!==subWindow&&(subWindow.addEventListener?subWindow.addEventListener("unload",unloadHandler,!1):subWindow.attachEvent&&subWindow.attachEvent("onunload",unloadHandler)),support.attributes=assert(function(el){return el.className="i",!el.getAttribute("className")}),support.getElementsByTagName=assert(function(el){return el.appendChild(document.createComment("")),!el.getElementsByTagName("*").length}),support.getElementsByClassName=rnative.test(document.getElementsByClassName),support.getById=assert(function(el){return docElem.appendChild(el).id=expando,!document.getElementsByName||!document.getElementsByName(expando).length}),support.getById?(Expr.find.ID=function(id,context){if("undefined"!=typeof context.getElementById&&documentIsHTML){var m=context.getElementById(id);return m?[m]:[]}},Expr.filter.ID=function(id){var attrId=id.replace(runescape,funescape);return function(elem){return elem.getAttribute("id")===attrId}}):(delete Expr.find.ID,Expr.filter.ID=function(id){var attrId=id.replace(runescape,funescape);return function(elem){var node="undefined"!=typeof elem.getAttributeNode&&elem.getAttributeNode("id");return node&&node.value===attrId}}),Expr.find.TAG=support.getElementsByTagName?function(tag,context){return"undefined"!=typeof context.getElementsByTagName?context.getElementsByTagName(tag):support.qsa?context.querySelectorAll(tag):void 0}:function(tag,context){var elem,tmp=[],i=0,results=context.getElementsByTagName(tag);if("*"===tag){for(;elem=results[i++];)1===elem.nodeType&&tmp.push(elem);return tmp}return results},Expr.find.CLASS=support.getElementsByClassName&&function(className,context){if("undefined"!=typeof context.getElementsByClassName&&documentIsHTML)return context.getElementsByClassName(className)},rbuggyMatches=[],rbuggyQSA=[],(support.qsa=rnative.test(document.querySelectorAll))&&(assert(function(el){docElem.appendChild(el).innerHTML="",el.querySelectorAll("[msallowcapture^='']").length&&rbuggyQSA.push("[*^$]="+whitespace+"*(?:''|\"\")"),el.querySelectorAll("[selected]").length||rbuggyQSA.push("\\["+whitespace+"*(?:value|"+booleans+")"),el.querySelectorAll("[id~="+expando+"-]").length||rbuggyQSA.push("~="),el.querySelectorAll(":checked").length||rbuggyQSA.push(":checked"),el.querySelectorAll("a#"+expando+"+*").length||rbuggyQSA.push(".#.+[+~]")}),assert(function(el){el.innerHTML="";var input=document.createElement("input");input.setAttribute("type","hidden"),el.appendChild(input).setAttribute("name","D"),el.querySelectorAll("[name=d]").length&&rbuggyQSA.push("name"+whitespace+"*[*^$|!~]?="),2!==el.querySelectorAll(":enabled").length&&rbuggyQSA.push(":enabled",":disabled"),docElem.appendChild(el).disabled=!0,2!==el.querySelectorAll(":disabled").length&&rbuggyQSA.push(":enabled",":disabled"),el.querySelectorAll("*,:x"),rbuggyQSA.push(",.*:")})),(support.matchesSelector=rnative.test(matches=docElem.matches||docElem.webkitMatchesSelector||docElem.mozMatchesSelector||docElem.oMatchesSelector||docElem.msMatchesSelector))&&assert(function(el){support.disconnectedMatch=matches.call(el,"*"),matches.call(el,"[s!='']:x"),rbuggyMatches.push("!=",pseudos)}),rbuggyQSA=rbuggyQSA.length&&new RegExp(rbuggyQSA.join("|")),rbuggyMatches=rbuggyMatches.length&&new RegExp(rbuggyMatches.join("|")),hasCompare=rnative.test(docElem.compareDocumentPosition),contains=hasCompare||rnative.test(docElem.contains)?function(a,b){var adown=9===a.nodeType?a.documentElement:a,bup=b&&b.parentNode;return a===bup||!(!bup||1!==bup.nodeType||!(adown.contains?adown.contains(bup):a.compareDocumentPosition&&16&a.compareDocumentPosition(bup)))}:function(a,b){if(b)for(;b=b.parentNode;)if(b===a)return!0;return!1},sortOrder=hasCompare?function(a,b){if(a===b)return hasDuplicate=!0,0;var compare=!a.compareDocumentPosition-!b.compareDocumentPosition;return compare?compare:(compare=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&compare||!support.sortDetached&&b.compareDocumentPosition(a)===compare?a===document||a.ownerDocument===preferredDoc&&contains(preferredDoc,a)?-1:b===document||b.ownerDocument===preferredDoc&&contains(preferredDoc,b)?1:sortInput?indexOf(sortInput,a)-indexOf(sortInput,b):0:4&compare?-1:1)}:function(a,b){if(a===b)return hasDuplicate=!0,0;var cur,i=0,aup=a.parentNode,bup=b.parentNode,ap=[a],bp=[b];if(!aup||!bup)return a===document?-1:b===document?1:aup?-1:bup?1:sortInput?indexOf(sortInput,a)-indexOf(sortInput,b):0;if(aup===bup)return siblingCheck(a,b);for(cur=a;cur=cur.parentNode;)ap.unshift(cur);for(cur=b;cur=cur.parentNode;)bp.unshift(cur);for(;ap[i]===bp[i];)i++;return i?siblingCheck(ap[i],bp[i]):ap[i]===preferredDoc?-1:bp[i]===preferredDoc?1:0},document):document},Sizzle.matches=function(expr,elements){return Sizzle(expr,null,null,elements)},Sizzle.matchesSelector=function(elem,expr){if((elem.ownerDocument||elem)!==document&&setDocument(elem),expr=expr.replace(rattributeQuotes,"='$1']"),support.matchesSelector&&documentIsHTML&&!compilerCache[expr+" "]&&(!rbuggyMatches||!rbuggyMatches.test(expr))&&(!rbuggyQSA||!rbuggyQSA.test(expr)))try{var ret=matches.call(elem,expr);if(ret||support.disconnectedMatch||elem.document&&11!==elem.document.nodeType)return ret}catch(e){}return Sizzle(expr,document,null,[elem]).length>0},Sizzle.contains=function(context,elem){return(context.ownerDocument||context)!==document&&setDocument(context),contains(context,elem)},Sizzle.attr=function(elem,name){(elem.ownerDocument||elem)!==document&&setDocument(elem);var fn=Expr.attrHandle[name.toLowerCase()],val=fn&&hasOwn.call(Expr.attrHandle,name.toLowerCase())?fn(elem,name,!documentIsHTML):void 0;return void 0!==val?val:support.attributes||!documentIsHTML?elem.getAttribute(name):(val=elem.getAttributeNode(name))&&val.specified?val.value:null},Sizzle.escape=function(sel){return(sel+"").replace(rcssescape,fcssescape)},Sizzle.error=function(msg){throw new Error("Syntax error, unrecognized expression: "+msg)},Sizzle.uniqueSort=function(results){var elem,duplicates=[],j=0,i=0;if(hasDuplicate=!support.detectDuplicates,sortInput=!support.sortStable&&results.slice(0),results.sort(sortOrder),hasDuplicate){for(;elem=results[i++];)elem===results[i]&&(j=duplicates.push(i));for(;j--;)results.splice(duplicates[j],1)}return sortInput=null,results},getText=Sizzle.getText=function(elem){var node,ret="",i=0,nodeType=elem.nodeType;if(nodeType){if(1===nodeType||9===nodeType||11===nodeType){if("string"==typeof elem.textContent)return elem.textContent;for(elem=elem.firstChild;elem;elem=elem.nextSibling)ret+=getText(elem)}else if(3===nodeType||4===nodeType)return elem.nodeValue}else for(;node=elem[i++];)ret+=getText(node);return ret},Expr=Sizzle.selectors={cacheLength:50,createPseudo:markFunction,match:matchExpr,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(match){return match[1]=match[1].replace(runescape,funescape),match[3]=(match[3]||match[4]||match[5]||"").replace(runescape,funescape),"~="===match[2]&&(match[3]=" "+match[3]+" "),match.slice(0,4)},CHILD:function(match){return match[1]=match[1].toLowerCase(),"nth"===match[1].slice(0,3)?(match[3]||Sizzle.error(match[0]),match[4]=+(match[4]?match[5]+(match[6]||1):2*("even"===match[3]||"odd"===match[3])),match[5]=+(match[7]+match[8]||"odd"===match[3])):match[3]&&Sizzle.error(match[0]),match},PSEUDO:function(match){var excess,unquoted=!match[6]&&match[2];return matchExpr.CHILD.test(match[0])?null:(match[3]?match[2]=match[4]||match[5]||"":unquoted&&rpseudo.test(unquoted)&&(excess=tokenize(unquoted,!0))&&(excess=unquoted.indexOf(")",unquoted.length-excess)-unquoted.length)&&(match[0]=match[0].slice(0,excess),match[2]=unquoted.slice(0,excess)),match.slice(0,3))}},filter:{TAG:function(nodeNameSelector){var nodeName=nodeNameSelector.replace(runescape,funescape).toLowerCase();return"*"===nodeNameSelector?function(){return!0}:function(elem){return elem.nodeName&&elem.nodeName.toLowerCase()===nodeName}},CLASS:function(className){var pattern=classCache[className+" "];return pattern||(pattern=new RegExp("(^|"+whitespace+")"+className+"("+whitespace+"|$)"))&&classCache(className,function(elem){return pattern.test("string"==typeof elem.className&&elem.className||"undefined"!=typeof elem.getAttribute&&elem.getAttribute("class")||"")})},ATTR:function(name,operator,check){return function(elem){var result=Sizzle.attr(elem,name);return null==result?"!="===operator:!operator||(result+="","="===operator?result===check:"!="===operator?result!==check:"^="===operator?check&&0===result.indexOf(check):"*="===operator?check&&result.indexOf(check)>-1:"$="===operator?check&&result.slice(-check.length)===check:"~="===operator?(" "+result.replace(rwhitespace," ")+" ").indexOf(check)>-1:"|="===operator&&(result===check||result.slice(0,check.length+1)===check+"-"))}},CHILD:function(type,what,argument,first,last){var simple="nth"!==type.slice(0,3),forward="last"!==type.slice(-4),ofType="of-type"===what;return 1===first&&0===last?function(elem){return!!elem.parentNode}:function(elem,context,xml){var cache,uniqueCache,outerCache,node,nodeIndex,start,dir=simple!==forward?"nextSibling":"previousSibling",parent=elem.parentNode,name=ofType&&elem.nodeName.toLowerCase(),useCache=!xml&&!ofType,diff=!1;if(parent){if(simple){for(;dir;){for(node=elem;node=node[dir];)if(ofType?node.nodeName.toLowerCase()===name:1===node.nodeType)return!1;start=dir="only"===type&&!start&&"nextSibling"}return!0}if(start=[forward?parent.firstChild:parent.lastChild],forward&&useCache){for(node=parent,outerCache=node[expando]||(node[expando]={}),uniqueCache=outerCache[node.uniqueID]||(outerCache[node.uniqueID]={}),cache=uniqueCache[type]||[],nodeIndex=cache[0]===dirruns&&cache[1],diff=nodeIndex&&cache[2],node=nodeIndex&&parent.childNodes[nodeIndex];node=++nodeIndex&&node&&node[dir]||(diff=nodeIndex=0)||start.pop();)if(1===node.nodeType&&++diff&&node===elem){uniqueCache[type]=[dirruns,nodeIndex,diff];break}}else if(useCache&&(node=elem,outerCache=node[expando]||(node[expando]={}),uniqueCache=outerCache[node.uniqueID]||(outerCache[node.uniqueID]={}),cache=uniqueCache[type]||[],nodeIndex=cache[0]===dirruns&&cache[1],diff=nodeIndex),diff===!1)for(;(node=++nodeIndex&&node&&node[dir]||(diff=nodeIndex=0)||start.pop())&&((ofType?node.nodeName.toLowerCase()!==name:1!==node.nodeType)||!++diff||(useCache&&(outerCache=node[expando]||(node[expando]={}),uniqueCache=outerCache[node.uniqueID]||(outerCache[node.uniqueID]={}),uniqueCache[type]=[dirruns,diff]),node!==elem)););return diff-=last,diff===first||diff%first===0&&diff/first>=0}}},PSEUDO:function(pseudo,argument){var args,fn=Expr.pseudos[pseudo]||Expr.setFilters[pseudo.toLowerCase()]||Sizzle.error("unsupported pseudo: "+pseudo);return fn[expando]?fn(argument):fn.length>1?(args=[pseudo,pseudo,"",argument],Expr.setFilters.hasOwnProperty(pseudo.toLowerCase())?markFunction(function(seed,matches){for(var idx,matched=fn(seed,argument),i=matched.length;i--;)idx=indexOf(seed,matched[i]),seed[idx]=!(matches[idx]=matched[i])}):function(elem){return fn(elem,0,args)}):fn}},pseudos:{not:markFunction(function(selector){var input=[],results=[],matcher=compile(selector.replace(rtrim,"$1"));return matcher[expando]?markFunction(function(seed,matches,context,xml){for(var elem,unmatched=matcher(seed,null,xml,[]),i=seed.length;i--;)(elem=unmatched[i])&&(seed[i]=!(matches[i]=elem))}):function(elem,context,xml){return input[0]=elem,matcher(input,null,xml,results),input[0]=null,!results.pop()}}),has:markFunction(function(selector){return function(elem){return Sizzle(selector,elem).length>0}}),contains:markFunction(function(text){return text=text.replace(runescape,funescape),function(elem){return(elem.textContent||elem.innerText||getText(elem)).indexOf(text)>-1}}),lang:markFunction(function(lang){return ridentifier.test(lang||"")||Sizzle.error("unsupported lang: "+lang),lang=lang.replace(runescape,funescape).toLowerCase(),function(elem){var elemLang;do if(elemLang=documentIsHTML?elem.lang:elem.getAttribute("xml:lang")||elem.getAttribute("lang"))return elemLang=elemLang.toLowerCase(),elemLang===lang||0===elemLang.indexOf(lang+"-");while((elem=elem.parentNode)&&1===elem.nodeType);return!1}}),target:function(elem){var hash=window.location&&window.location.hash;return hash&&hash.slice(1)===elem.id},root:function(elem){return elem===docElem},focus:function(elem){return elem===document.activeElement&&(!document.hasFocus||document.hasFocus())&&!!(elem.type||elem.href||~elem.tabIndex)},enabled:createDisabledPseudo(!1),disabled:createDisabledPseudo(!0),checked:function(elem){var nodeName=elem.nodeName.toLowerCase();return"input"===nodeName&&!!elem.checked||"option"===nodeName&&!!elem.selected},selected:function(elem){return elem.parentNode&&elem.parentNode.selectedIndex,elem.selected===!0},empty:function(elem){for(elem=elem.firstChild;elem;elem=elem.nextSibling)if(elem.nodeType<6)return!1;return!0},parent:function(elem){return!Expr.pseudos.empty(elem)},header:function(elem){return rheader.test(elem.nodeName)},input:function(elem){return rinputs.test(elem.nodeName)},button:function(elem){var name=elem.nodeName.toLowerCase();return"input"===name&&"button"===elem.type||"button"===name},text:function(elem){var attr;return"input"===elem.nodeName.toLowerCase()&&"text"===elem.type&&(null==(attr=elem.getAttribute("type"))||"text"===attr.toLowerCase())},first:createPositionalPseudo(function(){return[0]}),last:createPositionalPseudo(function(matchIndexes,length){return[length-1]}),eq:createPositionalPseudo(function(matchIndexes,length,argument){return[argument<0?argument+length:argument]}),even:createPositionalPseudo(function(matchIndexes,length){for(var i=0;i=0;)matchIndexes.push(i);return matchIndexes}),gt:createPositionalPseudo(function(matchIndexes,length,argument){for(var i=argument<0?argument+length:argument;++i2&&"ID"===(token=tokens[0]).type&&support.getById&&9===context.nodeType&&documentIsHTML&&Expr.relative[tokens[1].type]){if(context=(Expr.find.ID(token.matches[0].replace(runescape,funescape),context)||[])[0],!context)return results;compiled&&(context=context.parentNode),selector=selector.slice(tokens.shift().value.length)}for(i=matchExpr.needsContext.test(selector)?0:tokens.length;i--&&(token=tokens[i],!Expr.relative[type=token.type]);)if((find=Expr.find[type])&&(seed=find(token.matches[0].replace(runescape,funescape),rsibling.test(tokens[0].type)&&testContext(context.parentNode)||context))){if(tokens.splice(i,1),selector=seed.length&&toSelector(tokens),!selector)return push.apply(results,seed),results;break}}return(compiled||compile(selector,match))(seed,context,!documentIsHTML,results,!context||rsibling.test(selector)&&testContext(context.parentNode)||context),results},support.sortStable=expando.split("").sort(sortOrder).join("")===expando,support.detectDuplicates=!!hasDuplicate,setDocument(),support.sortDetached=assert(function(el){return 1&el.compareDocumentPosition(document.createElement("fieldset"))}),assert(function(el){return el.innerHTML="","#"===el.firstChild.getAttribute("href")})||addHandle("type|href|height|width",function(elem,name,isXML){if(!isXML)return elem.getAttribute(name,"type"===name.toLowerCase()?1:2)}),support.attributes&&assert(function(el){return el.innerHTML="",el.firstChild.setAttribute("value",""),""===el.firstChild.getAttribute("value")})||addHandle("value",function(elem,name,isXML){if(!isXML&&"input"===elem.nodeName.toLowerCase())return elem.defaultValue}),assert(function(el){return null==el.getAttribute("disabled")})||addHandle(booleans,function(elem,name,isXML){var val;if(!isXML)return elem[name]===!0?name.toLowerCase():(val=elem.getAttributeNode(name))&&val.specified?val.value:null}),Sizzle}(window);jQuery.find=Sizzle,jQuery.expr=Sizzle.selectors,jQuery.expr[":"]=jQuery.expr.pseudos,jQuery.uniqueSort=jQuery.unique=Sizzle.uniqueSort,jQuery.text=Sizzle.getText,jQuery.isXMLDoc=Sizzle.isXML,jQuery.contains=Sizzle.contains,jQuery.escapeSelector=Sizzle.escape;var dir=function(elem,dir,until){for(var matched=[],truncate=void 0!==until;(elem=elem[dir])&&9!==elem.nodeType;)if(1===elem.nodeType){if(truncate&&jQuery(elem).is(until))break;matched.push(elem)}return matched},siblings=function(n,elem){for(var matched=[];n;n=n.nextSibling)1===n.nodeType&&n!==elem&&matched.push(n);return matched},rneedsContext=jQuery.expr.match.needsContext,rsingleTag=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,risSimple=/^.[^:#\[\.,]*$/;jQuery.filter=function(expr,elems,not){var elem=elems[0];return not&&(expr=":not("+expr+")"),1===elems.length&&1===elem.nodeType?jQuery.find.matchesSelector(elem,expr)?[elem]:[]:jQuery.find.matches(expr,jQuery.grep(elems,function(elem){return 1===elem.nodeType}))},jQuery.fn.extend({find:function(selector){var i,ret,len=this.length,self=this;if("string"!=typeof selector)return this.pushStack(jQuery(selector).filter(function(){for(i=0;i1?jQuery.uniqueSort(ret):ret},filter:function(selector){return this.pushStack(winnow(this,selector||[],!1))},not:function(selector){return this.pushStack(winnow(this,selector||[],!0))},is:function(selector){return!!winnow(this,"string"==typeof selector&&rneedsContext.test(selector)?jQuery(selector):selector||[],!1).length}});var rootjQuery,rquickExpr=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,init=jQuery.fn.init=function(selector,context,root){var match,elem;if(!selector)return this;if(root=root||rootjQuery,"string"==typeof selector){if(match="<"===selector[0]&&">"===selector[selector.length-1]&&selector.length>=3?[null,selector,null]:rquickExpr.exec(selector),!match||!match[1]&&context)return!context||context.jquery?(context||root).find(selector):this.constructor(context).find(selector);if(match[1]){if(context=context instanceof jQuery?context[0]:context,jQuery.merge(this,jQuery.parseHTML(match[1],context&&context.nodeType?context.ownerDocument||context:document,!0)),rsingleTag.test(match[1])&&jQuery.isPlainObject(context))for(match in context)jQuery.isFunction(this[match])?this[match](context[match]):this.attr(match,context[match]);return this}return elem=document.getElementById(match[2]),elem&&(this[0]=elem,this.length=1),this}return selector.nodeType?(this[0]=selector,this.length=1,this):jQuery.isFunction(selector)?void 0!==root.ready?root.ready(selector):selector(jQuery):jQuery.makeArray(selector,this)};init.prototype=jQuery.fn,rootjQuery=jQuery(document);var rparentsprev=/^(?:parents|prev(?:Until|All))/,guaranteedUnique={children:!0,contents:!0,next:!0,prev:!0};jQuery.fn.extend({has:function(target){var targets=jQuery(target,this),l=targets.length;return this.filter(function(){for(var i=0;i-1:1===cur.nodeType&&jQuery.find.matchesSelector(cur,selectors))){matched.push(cur);break}return this.pushStack(matched.length>1?jQuery.uniqueSort(matched):matched)},index:function(elem){return elem?"string"==typeof elem?indexOf.call(jQuery(elem),this[0]):indexOf.call(this,elem.jquery?elem[0]:elem):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(selector,context){return this.pushStack(jQuery.uniqueSort(jQuery.merge(this.get(),jQuery(selector,context))))},addBack:function(selector){return this.add(null==selector?this.prevObject:this.prevObject.filter(selector))}}),jQuery.each({parent:function(elem){var parent=elem.parentNode;return parent&&11!==parent.nodeType?parent:null},parents:function(elem){return dir(elem,"parentNode")},parentsUntil:function(elem,i,until){return dir(elem,"parentNode",until)},next:function(elem){return sibling(elem,"nextSibling")},prev:function(elem){return sibling(elem,"previousSibling")},nextAll:function(elem){return dir(elem,"nextSibling")},prevAll:function(elem){return dir(elem,"previousSibling")},nextUntil:function(elem,i,until){return dir(elem,"nextSibling",until)},prevUntil:function(elem,i,until){return dir(elem,"previousSibling",until)},siblings:function(elem){return siblings((elem.parentNode||{}).firstChild,elem)},children:function(elem){return siblings(elem.firstChild)},contents:function(elem){return elem.contentDocument||jQuery.merge([],elem.childNodes)}},function(name,fn){jQuery.fn[name]=function(until,selector){var matched=jQuery.map(this,fn,until);return"Until"!==name.slice(-5)&&(selector=until),selector&&"string"==typeof selector&&(matched=jQuery.filter(selector,matched)),this.length>1&&(guaranteedUnique[name]||jQuery.uniqueSort(matched),rparentsprev.test(name)&&matched.reverse()),this.pushStack(matched)}});var rnotwhite=/\S+/g;jQuery.Callbacks=function(options){options="string"==typeof options?createOptions(options):jQuery.extend({},options);var firing,memory,fired,locked,list=[],queue=[],firingIndex=-1,fire=function(){for(locked=options.once,fired=firing=!0;queue.length;firingIndex=-1)for(memory=queue.shift();++firingIndex-1;)list.splice(index,1),index<=firingIndex&&firingIndex--}),this},has:function(fn){return fn?jQuery.inArray(fn,list)>-1:list.length>0},empty:function(){return list&&(list=[]),this},disable:function(){return locked=queue=[],list=memory="",this},disabled:function(){return!list},lock:function(){return locked=queue=[],memory||firing||(list=memory=""),this},locked:function(){return!!locked},fireWith:function(context,args){return locked||(args=args||[],args=[context,args.slice?args.slice():args],queue.push(args),firing||fire()),this},fire:function(){return self.fireWith(this,arguments),this},fired:function(){return!!fired}};return self},jQuery.extend({Deferred:function(func){var tuples=[["notify","progress",jQuery.Callbacks("memory"),jQuery.Callbacks("memory"),2],["resolve","done",jQuery.Callbacks("once memory"),jQuery.Callbacks("once memory"),0,"resolved"],["reject","fail",jQuery.Callbacks("once memory"),jQuery.Callbacks("once memory"),1,"rejected"]],state="pending",promise={state:function(){return state},always:function(){return deferred.done(arguments).fail(arguments),this},"catch":function(fn){return promise.then(null,fn)},pipe:function(){var fns=arguments;return jQuery.Deferred(function(newDefer){ +jQuery.each(tuples,function(i,tuple){var fn=jQuery.isFunction(fns[tuple[4]])&&fns[tuple[4]];deferred[tuple[1]](function(){var returned=fn&&fn.apply(this,arguments);returned&&jQuery.isFunction(returned.promise)?returned.promise().progress(newDefer.notify).done(newDefer.resolve).fail(newDefer.reject):newDefer[tuple[0]+"With"](this,fn?[returned]:arguments)})}),fns=null}).promise()},then:function(onFulfilled,onRejected,onProgress){function resolve(depth,deferred,handler,special){return function(){var that=this,args=arguments,mightThrow=function(){var returned,then;if(!(depth=maxDepth&&(handler!==Thrower&&(that=void 0,args=[e]),deferred.rejectWith(that,args))}};depth?process():(jQuery.Deferred.getStackHook&&(process.stackTrace=jQuery.Deferred.getStackHook()),window.setTimeout(process))}}var maxDepth=0;return jQuery.Deferred(function(newDefer){tuples[0][3].add(resolve(0,newDefer,jQuery.isFunction(onProgress)?onProgress:Identity,newDefer.notifyWith)),tuples[1][3].add(resolve(0,newDefer,jQuery.isFunction(onFulfilled)?onFulfilled:Identity)),tuples[2][3].add(resolve(0,newDefer,jQuery.isFunction(onRejected)?onRejected:Thrower))}).promise()},promise:function(obj){return null!=obj?jQuery.extend(obj,promise):promise}},deferred={};return jQuery.each(tuples,function(i,tuple){var list=tuple[2],stateString=tuple[5];promise[tuple[1]]=list.add,stateString&&list.add(function(){state=stateString},tuples[3-i][2].disable,tuples[0][2].lock),list.add(tuple[3].fire),deferred[tuple[0]]=function(){return deferred[tuple[0]+"With"](this===deferred?void 0:this,arguments),this},deferred[tuple[0]+"With"]=list.fireWith}),promise.promise(deferred),func&&func.call(deferred,deferred),deferred},when:function(singleValue){var remaining=arguments.length,i=remaining,resolveContexts=Array(i),resolveValues=slice.call(arguments),master=jQuery.Deferred(),updateFunc=function(i){return function(value){resolveContexts[i]=this,resolveValues[i]=arguments.length>1?slice.call(arguments):value,--remaining||master.resolveWith(resolveContexts,resolveValues)}};if(remaining<=1&&(adoptValue(singleValue,master.done(updateFunc(i)).resolve,master.reject),"pending"===master.state()||jQuery.isFunction(resolveValues[i]&&resolveValues[i].then)))return master.then();for(;i--;)adoptValue(resolveValues[i],updateFunc(i),master.reject);return master.promise()}});var rerrorNames=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;jQuery.Deferred.exceptionHook=function(error,stack){window.console&&window.console.warn&&error&&rerrorNames.test(error.name)&&window.console.warn("jQuery.Deferred exception: "+error.message,error.stack,stack)},jQuery.readyException=function(error){window.setTimeout(function(){throw error})};var readyList=jQuery.Deferred();jQuery.fn.ready=function(fn){return readyList.then(fn)["catch"](function(error){jQuery.readyException(error)}),this},jQuery.extend({isReady:!1,readyWait:1,holdReady:function(hold){hold?jQuery.readyWait++:jQuery.ready(!0)},ready:function(wait){(wait===!0?--jQuery.readyWait:jQuery.isReady)||(jQuery.isReady=!0,wait!==!0&&--jQuery.readyWait>0||readyList.resolveWith(document,[jQuery]))}}),jQuery.ready.then=readyList.then,"complete"===document.readyState||"loading"!==document.readyState&&!document.documentElement.doScroll?window.setTimeout(jQuery.ready):(document.addEventListener("DOMContentLoaded",completed),window.addEventListener("load",completed));var access=function(elems,fn,key,value,chainable,emptyGet,raw){var i=0,len=elems.length,bulk=null==key;if("object"===jQuery.type(key)){chainable=!0;for(i in key)access(elems,fn,i,key[i],!0,emptyGet,raw)}else if(void 0!==value&&(chainable=!0,jQuery.isFunction(value)||(raw=!0),bulk&&(raw?(fn.call(elems,value),fn=null):(bulk=fn,fn=function(elem,key,value){return bulk.call(jQuery(elem),value)})),fn))for(;i1,null,!0)},removeData:function(key){return this.each(function(){dataUser.remove(this,key)})}}),jQuery.extend({queue:function(elem,type,data){var queue;if(elem)return type=(type||"fx")+"queue",queue=dataPriv.get(elem,type),data&&(!queue||jQuery.isArray(data)?queue=dataPriv.access(elem,type,jQuery.makeArray(data)):queue.push(data)),queue||[]},dequeue:function(elem,type){type=type||"fx";var queue=jQuery.queue(elem,type),startLength=queue.length,fn=queue.shift(),hooks=jQuery._queueHooks(elem,type),next=function(){jQuery.dequeue(elem,type)};"inprogress"===fn&&(fn=queue.shift(),startLength--),fn&&("fx"===type&&queue.unshift("inprogress"),delete hooks.stop,fn.call(elem,next,hooks)),!startLength&&hooks&&hooks.empty.fire()},_queueHooks:function(elem,type){var key=type+"queueHooks";return dataPriv.get(elem,key)||dataPriv.access(elem,key,{empty:jQuery.Callbacks("once memory").add(function(){dataPriv.remove(elem,[type+"queue",key])})})}}),jQuery.fn.extend({queue:function(type,data){var setter=2;return"string"!=typeof type&&(data=type,type="fx",setter--),arguments.length\x20\t\r\n\f]+)/i,rscriptType=/^$|\/(?:java|ecma)script/i,wrapMap={option:[1,""],thead:[1,"","
    "],col:[2,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],_default:[0,"",""]};wrapMap.optgroup=wrapMap.option,wrapMap.tbody=wrapMap.tfoot=wrapMap.colgroup=wrapMap.caption=wrapMap.thead,wrapMap.th=wrapMap.td;var rhtml=/<|&#?\w+;/;!function(){var fragment=document.createDocumentFragment(),div=fragment.appendChild(document.createElement("div")),input=document.createElement("input");input.setAttribute("type","radio"),input.setAttribute("checked","checked"),input.setAttribute("name","t"),div.appendChild(input),support.checkClone=div.cloneNode(!0).cloneNode(!0).lastChild.checked,div.innerHTML="",support.noCloneChecked=!!div.cloneNode(!0).lastChild.defaultValue}();var documentElement=document.documentElement,rkeyEvent=/^key/,rmouseEvent=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,rtypenamespace=/^([^.]*)(?:\.(.+)|)/;jQuery.event={global:{},add:function(elem,types,handler,data,selector){var handleObjIn,eventHandle,tmp,events,t,handleObj,special,handlers,type,namespaces,origType,elemData=dataPriv.get(elem);if(elemData)for(handler.handler&&(handleObjIn=handler,handler=handleObjIn.handler,selector=handleObjIn.selector),selector&&jQuery.find.matchesSelector(documentElement,selector),handler.guid||(handler.guid=jQuery.guid++),(events=elemData.events)||(events=elemData.events={}),(eventHandle=elemData.handle)||(eventHandle=elemData.handle=function(e){return"undefined"!=typeof jQuery&&jQuery.event.triggered!==e.type?jQuery.event.dispatch.apply(elem,arguments):void 0}),types=(types||"").match(rnotwhite)||[""],t=types.length;t--;)tmp=rtypenamespace.exec(types[t])||[],type=origType=tmp[1],namespaces=(tmp[2]||"").split(".").sort(),type&&(special=jQuery.event.special[type]||{},type=(selector?special.delegateType:special.bindType)||type,special=jQuery.event.special[type]||{},handleObj=jQuery.extend({type:type,origType:origType,data:data,handler:handler,guid:handler.guid,selector:selector,needsContext:selector&&jQuery.expr.match.needsContext.test(selector),namespace:namespaces.join(".")},handleObjIn),(handlers=events[type])||(handlers=events[type]=[],handlers.delegateCount=0,special.setup&&special.setup.call(elem,data,namespaces,eventHandle)!==!1||elem.addEventListener&&elem.addEventListener(type,eventHandle)),special.add&&(special.add.call(elem,handleObj),handleObj.handler.guid||(handleObj.handler.guid=handler.guid)),selector?handlers.splice(handlers.delegateCount++,0,handleObj):handlers.push(handleObj),jQuery.event.global[type]=!0)},remove:function(elem,types,handler,selector,mappedTypes){var j,origCount,tmp,events,t,handleObj,special,handlers,type,namespaces,origType,elemData=dataPriv.hasData(elem)&&dataPriv.get(elem);if(elemData&&(events=elemData.events)){for(types=(types||"").match(rnotwhite)||[""],t=types.length;t--;)if(tmp=rtypenamespace.exec(types[t])||[],type=origType=tmp[1],namespaces=(tmp[2]||"").split(".").sort(),type){for(special=jQuery.event.special[type]||{},type=(selector?special.delegateType:special.bindType)||type,handlers=events[type]||[],tmp=tmp[2]&&new RegExp("(^|\\.)"+namespaces.join("\\.(?:.*\\.|)")+"(\\.|$)"),origCount=j=handlers.length;j--;)handleObj=handlers[j],!mappedTypes&&origType!==handleObj.origType||handler&&handler.guid!==handleObj.guid||tmp&&!tmp.test(handleObj.namespace)||selector&&selector!==handleObj.selector&&("**"!==selector||!handleObj.selector)||(handlers.splice(j,1),handleObj.selector&&handlers.delegateCount--,special.remove&&special.remove.call(elem,handleObj));origCount&&!handlers.length&&(special.teardown&&special.teardown.call(elem,namespaces,elemData.handle)!==!1||jQuery.removeEvent(elem,type,elemData.handle),delete events[type])}else for(type in events)jQuery.event.remove(elem,type+types[t],handler,selector,!0);jQuery.isEmptyObject(events)&&dataPriv.remove(elem,"handle events")}},dispatch:function(nativeEvent){var i,j,ret,matched,handleObj,handlerQueue,event=jQuery.event.fix(nativeEvent),args=new Array(arguments.length),handlers=(dataPriv.get(this,"events")||{})[event.type]||[],special=jQuery.event.special[event.type]||{};for(args[0]=event,i=1;i-1:jQuery.find(sel,this,null,[cur]).length),matches[sel]&&matches.push(handleObj);matches.length&&handlerQueue.push({elem:cur,handlers:matches})}return delegateCount\x20\t\r\n\f]*)[^>]*)\/>/gi,rnoInnerhtml=/\s*$/g;jQuery.extend({htmlPrefilter:function(html){return html.replace(rxhtmlTag,"<$1>")},clone:function(elem,dataAndEvents,deepDataAndEvents){var i,l,srcElements,destElements,clone=elem.cloneNode(!0),inPage=jQuery.contains(elem.ownerDocument,elem);if(!(support.noCloneChecked||1!==elem.nodeType&&11!==elem.nodeType||jQuery.isXMLDoc(elem)))for(destElements=getAll(clone),srcElements=getAll(elem),i=0,l=srcElements.length;i0&&setGlobalEval(destElements,!inPage&&getAll(elem,"script")),clone},cleanData:function(elems){for(var data,elem,type,special=jQuery.event.special,i=0;void 0!==(elem=elems[i]);i++)if(acceptData(elem)){if(data=elem[dataPriv.expando]){if(data.events)for(type in data.events)special[type]?jQuery.event.remove(elem,type):jQuery.removeEvent(elem,type,data.handle);elem[dataPriv.expando]=void 0}elem[dataUser.expando]&&(elem[dataUser.expando]=void 0)}}}),jQuery.fn.extend({detach:function(selector){return remove(this,selector,!0)},remove:function(selector){return remove(this,selector)},text:function(value){return access(this,function(value){return void 0===value?jQuery.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=value)})},null,value,arguments.length)},append:function(){return domManip(this,arguments,function(elem){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var target=manipulationTarget(this,elem);target.appendChild(elem)}})},prepend:function(){return domManip(this,arguments,function(elem){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var target=manipulationTarget(this,elem);target.insertBefore(elem,target.firstChild)}})},before:function(){return domManip(this,arguments,function(elem){this.parentNode&&this.parentNode.insertBefore(elem,this)})},after:function(){return domManip(this,arguments,function(elem){this.parentNode&&this.parentNode.insertBefore(elem,this.nextSibling)})},empty:function(){for(var elem,i=0;null!=(elem=this[i]);i++)1===elem.nodeType&&(jQuery.cleanData(getAll(elem,!1)),elem.textContent="");return this},clone:function(dataAndEvents,deepDataAndEvents){return dataAndEvents=null!=dataAndEvents&&dataAndEvents,deepDataAndEvents=null==deepDataAndEvents?dataAndEvents:deepDataAndEvents,this.map(function(){return jQuery.clone(this,dataAndEvents,deepDataAndEvents)})},html:function(value){return access(this,function(value){var elem=this[0]||{},i=0,l=this.length;if(void 0===value&&1===elem.nodeType)return elem.innerHTML;if("string"==typeof value&&!rnoInnerhtml.test(value)&&!wrapMap[(rtagName.exec(value)||["",""])[1].toLowerCase()]){value=jQuery.htmlPrefilter(value);try{for(;i1)}}),jQuery.Tween=Tween,Tween.prototype={constructor:Tween,init:function(elem,options,prop,end,easing,unit){this.elem=elem,this.prop=prop,this.easing=easing||jQuery.easing._default,this.options=options,this.start=this.now=this.cur(),this.end=end,this.unit=unit||(jQuery.cssNumber[prop]?"":"px")},cur:function(){var hooks=Tween.propHooks[this.prop];return hooks&&hooks.get?hooks.get(this):Tween.propHooks._default.get(this)},run:function(percent){var eased,hooks=Tween.propHooks[this.prop];return this.options.duration?this.pos=eased=jQuery.easing[this.easing](percent,this.options.duration*percent,0,1,this.options.duration):this.pos=eased=percent,this.now=(this.end-this.start)*eased+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),hooks&&hooks.set?hooks.set(this):Tween.propHooks._default.set(this),this}},Tween.prototype.init.prototype=Tween.prototype,Tween.propHooks={_default:{get:function(tween){var result;return 1!==tween.elem.nodeType||null!=tween.elem[tween.prop]&&null==tween.elem.style[tween.prop]?tween.elem[tween.prop]:(result=jQuery.css(tween.elem,tween.prop,""),result&&"auto"!==result?result:0)},set:function(tween){jQuery.fx.step[tween.prop]?jQuery.fx.step[tween.prop](tween):1!==tween.elem.nodeType||null==tween.elem.style[jQuery.cssProps[tween.prop]]&&!jQuery.cssHooks[tween.prop]?tween.elem[tween.prop]=tween.now:jQuery.style(tween.elem,tween.prop,tween.now+tween.unit)}}},Tween.propHooks.scrollTop=Tween.propHooks.scrollLeft={set:function(tween){tween.elem.nodeType&&tween.elem.parentNode&&(tween.elem[tween.prop]=tween.now)}},jQuery.easing={linear:function(p){return p},swing:function(p){return.5-Math.cos(p*Math.PI)/2},_default:"swing"},jQuery.fx=Tween.prototype.init,jQuery.fx.step={};var fxNow,timerId,rfxtypes=/^(?:toggle|show|hide)$/,rrun=/queueHooks$/;jQuery.Animation=jQuery.extend(Animation,{tweeners:{"*":[function(prop,value){var tween=this.createTween(prop,value);return adjustCSS(tween.elem,prop,rcssNum.exec(value),tween),tween}]},tweener:function(props,callback){jQuery.isFunction(props)?(callback=props,props=["*"]):props=props.match(rnotwhite);for(var prop,index=0,length=props.length;index1)},removeAttr:function(name){return this.each(function(){jQuery.removeAttr(this,name)})}}),jQuery.extend({attr:function(elem,name,value){var ret,hooks,nType=elem.nodeType;if(3!==nType&&8!==nType&&2!==nType)return"undefined"==typeof elem.getAttribute?jQuery.prop(elem,name,value):(1===nType&&jQuery.isXMLDoc(elem)||(hooks=jQuery.attrHooks[name.toLowerCase()]||(jQuery.expr.match.bool.test(name)?boolHook:void 0)),void 0!==value?null===value?void jQuery.removeAttr(elem,name):hooks&&"set"in hooks&&void 0!==(ret=hooks.set(elem,value,name))?ret:(elem.setAttribute(name,value+""),value):hooks&&"get"in hooks&&null!==(ret=hooks.get(elem,name))?ret:(ret=jQuery.find.attr(elem,name),null==ret?void 0:ret))},attrHooks:{type:{set:function(elem,value){if(!support.radioValue&&"radio"===value&&jQuery.nodeName(elem,"input")){var val=elem.value;return elem.setAttribute("type",value),val&&(elem.value=val),value}}}},removeAttr:function(elem,value){var name,i=0,attrNames=value&&value.match(rnotwhite);if(attrNames&&1===elem.nodeType)for(;name=attrNames[i++];)elem.removeAttribute(name)}}),boolHook={set:function(elem,value,name){return value===!1?jQuery.removeAttr(elem,name):elem.setAttribute(name,name),name}},jQuery.each(jQuery.expr.match.bool.source.match(/\w+/g),function(i,name){var getter=attrHandle[name]||jQuery.find.attr;attrHandle[name]=function(elem,name,isXML){var ret,handle,lowercaseName=name.toLowerCase();return isXML||(handle=attrHandle[lowercaseName],attrHandle[lowercaseName]=ret,ret=null!=getter(elem,name,isXML)?lowercaseName:null,attrHandle[lowercaseName]=handle),ret}});var rfocusable=/^(?:input|select|textarea|button)$/i,rclickable=/^(?:a|area)$/i;jQuery.fn.extend({prop:function(name,value){return access(this,jQuery.prop,name,value,arguments.length>1)},removeProp:function(name){return this.each(function(){delete this[jQuery.propFix[name]||name]})}}),jQuery.extend({prop:function(elem,name,value){var ret,hooks,nType=elem.nodeType;if(3!==nType&&8!==nType&&2!==nType)return 1===nType&&jQuery.isXMLDoc(elem)||(name=jQuery.propFix[name]||name,hooks=jQuery.propHooks[name]),void 0!==value?hooks&&"set"in hooks&&void 0!==(ret=hooks.set(elem,value,name))?ret:elem[name]=value:hooks&&"get"in hooks&&null!==(ret=hooks.get(elem,name))?ret:elem[name]},propHooks:{tabIndex:{get:function(elem){var tabindex=jQuery.find.attr(elem,"tabindex");return tabindex?parseInt(tabindex,10):rfocusable.test(elem.nodeName)||rclickable.test(elem.nodeName)&&elem.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),support.optSelected||(jQuery.propHooks.selected={get:function(elem){var parent=elem.parentNode;return parent&&parent.parentNode&&parent.parentNode.selectedIndex,null},set:function(elem){var parent=elem.parentNode;parent&&(parent.selectedIndex,parent.parentNode&&parent.parentNode.selectedIndex)}}),jQuery.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){jQuery.propFix[this.toLowerCase()]=this});var rclass=/[\t\r\n\f]/g;jQuery.fn.extend({addClass:function(value){var classes,elem,cur,curValue,clazz,j,finalValue,i=0;if(jQuery.isFunction(value))return this.each(function(j){jQuery(this).addClass(value.call(this,j,getClass(this)))});if("string"==typeof value&&value)for(classes=value.match(rnotwhite)||[];elem=this[i++];)if(curValue=getClass(elem),cur=1===elem.nodeType&&(" "+curValue+" ").replace(rclass," ")){for(j=0;clazz=classes[j++];)cur.indexOf(" "+clazz+" ")<0&&(cur+=clazz+" ");finalValue=jQuery.trim(cur),curValue!==finalValue&&elem.setAttribute("class",finalValue)}return this},removeClass:function(value){var classes,elem,cur,curValue,clazz,j,finalValue,i=0;if(jQuery.isFunction(value))return this.each(function(j){jQuery(this).removeClass(value.call(this,j,getClass(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof value&&value)for(classes=value.match(rnotwhite)||[];elem=this[i++];)if(curValue=getClass(elem),cur=1===elem.nodeType&&(" "+curValue+" ").replace(rclass," ")){for(j=0;clazz=classes[j++];)for(;cur.indexOf(" "+clazz+" ")>-1;)cur=cur.replace(" "+clazz+" "," ");finalValue=jQuery.trim(cur),curValue!==finalValue&&elem.setAttribute("class",finalValue)}return this},toggleClass:function(value,stateVal){var type=typeof value;return"boolean"==typeof stateVal&&"string"===type?stateVal?this.addClass(value):this.removeClass(value):jQuery.isFunction(value)?this.each(function(i){jQuery(this).toggleClass(value.call(this,i,getClass(this),stateVal),stateVal)}):this.each(function(){var className,i,self,classNames;if("string"===type)for(i=0,self=jQuery(this),classNames=value.match(rnotwhite)||[];className=classNames[i++];)self.hasClass(className)?self.removeClass(className):self.addClass(className);else void 0!==value&&"boolean"!==type||(className=getClass(this),className&&dataPriv.set(this,"__className__",className),this.setAttribute&&this.setAttribute("class",className||value===!1?"":dataPriv.get(this,"__className__")||""))})},hasClass:function(selector){var className,elem,i=0;for(className=" "+selector+" ";elem=this[i++];)if(1===elem.nodeType&&(" "+getClass(elem)+" ").replace(rclass," ").indexOf(className)>-1)return!0;return!1}});var rreturn=/\r/g,rspaces=/[\x20\t\r\n\f]+/g;jQuery.fn.extend({val:function(value){var hooks,ret,isFunction,elem=this[0];{if(arguments.length)return isFunction=jQuery.isFunction(value),this.each(function(i){var val;1===this.nodeType&&(val=isFunction?value.call(this,i,jQuery(this).val()):value,null==val?val="":"number"==typeof val?val+="":jQuery.isArray(val)&&(val=jQuery.map(val,function(value){return null==value?"":value+""})),hooks=jQuery.valHooks[this.type]||jQuery.valHooks[this.nodeName.toLowerCase()],hooks&&"set"in hooks&&void 0!==hooks.set(this,val,"value")||(this.value=val))});if(elem)return hooks=jQuery.valHooks[elem.type]||jQuery.valHooks[elem.nodeName.toLowerCase()],hooks&&"get"in hooks&&void 0!==(ret=hooks.get(elem,"value"))?ret:(ret=elem.value,"string"==typeof ret?ret.replace(rreturn,""):null==ret?"":ret)}}}),jQuery.extend({valHooks:{option:{get:function(elem){var val=jQuery.find.attr(elem,"value");return null!=val?val:jQuery.trim(jQuery.text(elem)).replace(rspaces," ")}},select:{get:function(elem){for(var value,option,options=elem.options,index=elem.selectedIndex,one="select-one"===elem.type,values=one?null:[],max=one?index+1:options.length,i=index<0?max:one?index:0;i-1)&&(optionSet=!0);return optionSet||(elem.selectedIndex=-1),values}}}}),jQuery.each(["radio","checkbox"],function(){jQuery.valHooks[this]={set:function(elem,value){if(jQuery.isArray(value))return elem.checked=jQuery.inArray(jQuery(elem).val(),value)>-1}},support.checkOn||(jQuery.valHooks[this].get=function(elem){return null===elem.getAttribute("value")?"on":elem.value})});var rfocusMorph=/^(?:focusinfocus|focusoutblur)$/;jQuery.extend(jQuery.event,{trigger:function(event,data,elem,onlyHandlers){var i,cur,tmp,bubbleType,ontype,handle,special,eventPath=[elem||document],type=hasOwn.call(event,"type")?event.type:event,namespaces=hasOwn.call(event,"namespace")?event.namespace.split("."):[];if(cur=tmp=elem=elem||document,3!==elem.nodeType&&8!==elem.nodeType&&!rfocusMorph.test(type+jQuery.event.triggered)&&(type.indexOf(".")>-1&&(namespaces=type.split("."),type=namespaces.shift(),namespaces.sort()),ontype=type.indexOf(":")<0&&"on"+type,event=event[jQuery.expando]?event:new jQuery.Event(type,"object"==typeof event&&event),event.isTrigger=onlyHandlers?2:3,event.namespace=namespaces.join("."),event.rnamespace=event.namespace?new RegExp("(^|\\.)"+namespaces.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,event.result=void 0,event.target||(event.target=elem),data=null==data?[event]:jQuery.makeArray(data,[event]),special=jQuery.event.special[type]||{},onlyHandlers||!special.trigger||special.trigger.apply(elem,data)!==!1)){if(!onlyHandlers&&!special.noBubble&&!jQuery.isWindow(elem)){for(bubbleType=special.delegateType||type,rfocusMorph.test(bubbleType+type)||(cur=cur.parentNode);cur;cur=cur.parentNode)eventPath.push(cur),tmp=cur;tmp===(elem.ownerDocument||document)&&eventPath.push(tmp.defaultView||tmp.parentWindow||window)}for(i=0;(cur=eventPath[i++])&&!event.isPropagationStopped();)event.type=i>1?bubbleType:special.bindType||type,handle=(dataPriv.get(cur,"events")||{})[event.type]&&dataPriv.get(cur,"handle"),handle&&handle.apply(cur,data),handle=ontype&&cur[ontype],handle&&handle.apply&&acceptData(cur)&&(event.result=handle.apply(cur,data),event.result===!1&&event.preventDefault());return event.type=type,onlyHandlers||event.isDefaultPrevented()||special._default&&special._default.apply(eventPath.pop(),data)!==!1||!acceptData(elem)||ontype&&jQuery.isFunction(elem[type])&&!jQuery.isWindow(elem)&&(tmp=elem[ontype],tmp&&(elem[ontype]=null),jQuery.event.triggered=type,elem[type](),jQuery.event.triggered=void 0,tmp&&(elem[ontype]=tmp)),event.result}},simulate:function(type,elem,event){var e=jQuery.extend(new jQuery.Event,event,{type:type,isSimulated:!0});jQuery.event.trigger(e,null,elem)}}),jQuery.fn.extend({trigger:function(type,data){return this.each(function(){jQuery.event.trigger(type,data,this)})},triggerHandler:function(type,data){var elem=this[0];if(elem)return jQuery.event.trigger(type,data,elem,!0)}}),jQuery.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(i,name){jQuery.fn[name]=function(data,fn){return arguments.length>0?this.on(name,null,data,fn):this.trigger(name)}}),jQuery.fn.extend({hover:function(fnOver,fnOut){return this.mouseenter(fnOver).mouseleave(fnOut||fnOver)}}),support.focusin="onfocusin"in window,support.focusin||jQuery.each({focus:"focusin",blur:"focusout"},function(orig,fix){var handler=function(event){jQuery.event.simulate(fix,event.target,jQuery.event.fix(event))};jQuery.event.special[fix]={setup:function(){var doc=this.ownerDocument||this,attaches=dataPriv.access(doc,fix);attaches||doc.addEventListener(orig,handler,!0),dataPriv.access(doc,fix,(attaches||0)+1)},teardown:function(){var doc=this.ownerDocument||this,attaches=dataPriv.access(doc,fix)-1;attaches?dataPriv.access(doc,fix,attaches):(doc.removeEventListener(orig,handler,!0),dataPriv.remove(doc,fix))}}});var location=window.location,nonce=jQuery.now(),rquery=/\?/;jQuery.parseXML=function(data){var xml;if(!data||"string"!=typeof data)return null;try{xml=(new window.DOMParser).parseFromString(data,"text/xml")}catch(e){xml=void 0}return xml&&!xml.getElementsByTagName("parsererror").length||jQuery.error("Invalid XML: "+data),xml};var rbracket=/\[\]$/,rCRLF=/\r?\n/g,rsubmitterTypes=/^(?:submit|button|image|reset|file)$/i,rsubmittable=/^(?:input|select|textarea|keygen)/i;jQuery.param=function(a,traditional){var prefix,s=[],add=function(key,valueOrFunction){var value=jQuery.isFunction(valueOrFunction)?valueOrFunction():valueOrFunction;s[s.length]=encodeURIComponent(key)+"="+encodeURIComponent(null==value?"":value)};if(jQuery.isArray(a)||a.jquery&&!jQuery.isPlainObject(a))jQuery.each(a,function(){add(this.name,this.value)});else for(prefix in a)buildParams(prefix,a[prefix],traditional,add);return s.join("&")},jQuery.fn.extend({serialize:function(){return jQuery.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var elements=jQuery.prop(this,"elements");return elements?jQuery.makeArray(elements):this}).filter(function(){var type=this.type;return this.name&&!jQuery(this).is(":disabled")&&rsubmittable.test(this.nodeName)&&!rsubmitterTypes.test(type)&&(this.checked||!rcheckableType.test(type))}).map(function(i,elem){var val=jQuery(this).val();return null==val?null:jQuery.isArray(val)?jQuery.map(val,function(val){return{name:elem.name,value:val.replace(rCRLF,"\r\n")}}):{name:elem.name,value:val.replace(rCRLF,"\r\n")}}).get()}});var r20=/%20/g,rhash=/#.*$/,rts=/([?&])_=[^&]*/,rheaders=/^(.*?):[ \t]*([^\r\n]*)$/gm,rlocalProtocol=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,rnoContent=/^(?:GET|HEAD)$/,rprotocol=/^\/\//,prefilters={},transports={},allTypes="*/".concat("*"),originAnchor=document.createElement("a");originAnchor.href=location.href,jQuery.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:location.href,type:"GET",isLocal:rlocalProtocol.test(location.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":allTypes,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":jQuery.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(target,settings){return settings?ajaxExtend(ajaxExtend(target,jQuery.ajaxSettings),settings):ajaxExtend(jQuery.ajaxSettings,target)},ajaxPrefilter:addToPrefiltersOrTransports(prefilters),ajaxTransport:addToPrefiltersOrTransports(transports),ajax:function(url,options){function done(status,nativeStatusText,responses,headers){var isSuccess,success,error,response,modified,statusText=nativeStatusText;completed||(completed=!0,timeoutTimer&&window.clearTimeout(timeoutTimer),transport=void 0,responseHeadersString=headers||"",jqXHR.readyState=status>0?4:0,isSuccess=status>=200&&status<300||304===status,responses&&(response=ajaxHandleResponses(s,jqXHR,responses)),response=ajaxConvert(s,response,jqXHR,isSuccess),isSuccess?(s.ifModified&&(modified=jqXHR.getResponseHeader("Last-Modified"),modified&&(jQuery.lastModified[cacheURL]=modified),modified=jqXHR.getResponseHeader("etag"),modified&&(jQuery.etag[cacheURL]=modified)),204===status||"HEAD"===s.type?statusText="nocontent":304===status?statusText="notmodified":(statusText=response.state,success=response.data,error=response.error,isSuccess=!error)):(error=statusText,!status&&statusText||(statusText="error",status<0&&(status=0))),jqXHR.status=status,jqXHR.statusText=(nativeStatusText||statusText)+"",isSuccess?deferred.resolveWith(callbackContext,[success,statusText,jqXHR]):deferred.rejectWith(callbackContext,[jqXHR,statusText,error]),jqXHR.statusCode(statusCode),statusCode=void 0,fireGlobals&&globalEventContext.trigger(isSuccess?"ajaxSuccess":"ajaxError",[jqXHR,s,isSuccess?success:error]),completeDeferred.fireWith(callbackContext,[jqXHR,statusText]),fireGlobals&&(globalEventContext.trigger("ajaxComplete",[jqXHR,s]),--jQuery.active||jQuery.event.trigger("ajaxStop")))}"object"==typeof url&&(options=url,url=void 0),options=options||{};var transport,cacheURL,responseHeadersString,responseHeaders,timeoutTimer,urlAnchor,completed,fireGlobals,i,uncached,s=jQuery.ajaxSetup({},options),callbackContext=s.context||s,globalEventContext=s.context&&(callbackContext.nodeType||callbackContext.jquery)?jQuery(callbackContext):jQuery.event,deferred=jQuery.Deferred(),completeDeferred=jQuery.Callbacks("once memory"),statusCode=s.statusCode||{},requestHeaders={},requestHeadersNames={},strAbort="canceled",jqXHR={readyState:0,getResponseHeader:function(key){var match;if(completed){if(!responseHeaders)for(responseHeaders={};match=rheaders.exec(responseHeadersString);)responseHeaders[match[1].toLowerCase()]=match[2];match=responseHeaders[key.toLowerCase()]}return null==match?null:match},getAllResponseHeaders:function(){return completed?responseHeadersString:null},setRequestHeader:function(name,value){return null==completed&&(name=requestHeadersNames[name.toLowerCase()]=requestHeadersNames[name.toLowerCase()]||name,requestHeaders[name]=value),this},overrideMimeType:function(type){return null==completed&&(s.mimeType=type),this},statusCode:function(map){var code;if(map)if(completed)jqXHR.always(map[jqXHR.status]);else for(code in map)statusCode[code]=[statusCode[code],map[code]];return this},abort:function(statusText){var finalText=statusText||strAbort;return transport&&transport.abort(finalText),done(0,finalText),this}};if(deferred.promise(jqXHR),s.url=((url||s.url||location.href)+"").replace(rprotocol,location.protocol+"//"),s.type=options.method||options.type||s.method||s.type,s.dataTypes=(s.dataType||"*").toLowerCase().match(rnotwhite)||[""],null==s.crossDomain){urlAnchor=document.createElement("a");try{urlAnchor.href=s.url,urlAnchor.href=urlAnchor.href,s.crossDomain=originAnchor.protocol+"//"+originAnchor.host!=urlAnchor.protocol+"//"+urlAnchor.host}catch(e){s.crossDomain=!0}}if(s.data&&s.processData&&"string"!=typeof s.data&&(s.data=jQuery.param(s.data,s.traditional)),inspectPrefiltersOrTransports(prefilters,s,options,jqXHR),completed)return jqXHR;fireGlobals=jQuery.event&&s.global,fireGlobals&&0===jQuery.active++&&jQuery.event.trigger("ajaxStart"),s.type=s.type.toUpperCase(),s.hasContent=!rnoContent.test(s.type),cacheURL=s.url.replace(rhash,""),s.hasContent?s.data&&s.processData&&0===(s.contentType||"").indexOf("application/x-www-form-urlencoded")&&(s.data=s.data.replace(r20,"+")):(uncached=s.url.slice(cacheURL.length),s.data&&(cacheURL+=(rquery.test(cacheURL)?"&":"?")+s.data,delete s.data),s.cache===!1&&(cacheURL=cacheURL.replace(rts,""),uncached=(rquery.test(cacheURL)?"&":"?")+"_="+nonce++ +uncached),s.url=cacheURL+uncached),s.ifModified&&(jQuery.lastModified[cacheURL]&&jqXHR.setRequestHeader("If-Modified-Since",jQuery.lastModified[cacheURL]),jQuery.etag[cacheURL]&&jqXHR.setRequestHeader("If-None-Match",jQuery.etag[cacheURL])),(s.data&&s.hasContent&&s.contentType!==!1||options.contentType)&&jqXHR.setRequestHeader("Content-Type",s.contentType),jqXHR.setRequestHeader("Accept",s.dataTypes[0]&&s.accepts[s.dataTypes[0]]?s.accepts[s.dataTypes[0]]+("*"!==s.dataTypes[0]?", "+allTypes+"; q=0.01":""):s.accepts["*"]);for(i in s.headers)jqXHR.setRequestHeader(i,s.headers[i]);if(s.beforeSend&&(s.beforeSend.call(callbackContext,jqXHR,s)===!1||completed))return jqXHR.abort();if(strAbort="abort",completeDeferred.add(s.complete),jqXHR.done(s.success),jqXHR.fail(s.error),transport=inspectPrefiltersOrTransports(transports,s,options,jqXHR)){if(jqXHR.readyState=1,fireGlobals&&globalEventContext.trigger("ajaxSend",[jqXHR,s]),completed)return jqXHR;s.async&&s.timeout>0&&(timeoutTimer=window.setTimeout(function(){jqXHR.abort("timeout")},s.timeout));try{completed=!1,transport.send(requestHeaders,done)}catch(e){if(completed)throw e;done(-1,e)}}else done(-1,"No Transport");return jqXHR},getJSON:function(url,data,callback){return jQuery.get(url,data,callback,"json")},getScript:function(url,callback){return jQuery.get(url,void 0,callback,"script")}}),jQuery.each(["get","post"],function(i,method){jQuery[method]=function(url,data,callback,type){return jQuery.isFunction(data)&&(type=type||callback,callback=data,data=void 0),jQuery.ajax(jQuery.extend({url:url,type:method,dataType:type,data:data,success:callback},jQuery.isPlainObject(url)&&url))}}),jQuery._evalUrl=function(url){return jQuery.ajax({url:url,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},jQuery.fn.extend({wrapAll:function(html){var wrap;return this[0]&&(jQuery.isFunction(html)&&(html=html.call(this[0])),wrap=jQuery(html,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&wrap.insertBefore(this[0]),wrap.map(function(){for(var elem=this;elem.firstElementChild;)elem=elem.firstElementChild;return elem}).append(this)),this},wrapInner:function(html){return jQuery.isFunction(html)?this.each(function(i){jQuery(this).wrapInner(html.call(this,i))}):this.each(function(){var self=jQuery(this),contents=self.contents();contents.length?contents.wrapAll(html):self.append(html)})},wrap:function(html){var isFunction=jQuery.isFunction(html);return this.each(function(i){jQuery(this).wrapAll(isFunction?html.call(this,i):html)})},unwrap:function(selector){return this.parent(selector).not("body").each(function(){jQuery(this).replaceWith(this.childNodes)}),this}}),jQuery.expr.pseudos.hidden=function(elem){return!jQuery.expr.pseudos.visible(elem)},jQuery.expr.pseudos.visible=function(elem){return!!(elem.offsetWidth||elem.offsetHeight||elem.getClientRects().length)},jQuery.ajaxSettings.xhr=function(){try{return new window.XMLHttpRequest}catch(e){}};var xhrSuccessStatus={0:200,1223:204},xhrSupported=jQuery.ajaxSettings.xhr();support.cors=!!xhrSupported&&"withCredentials"in xhrSupported,support.ajax=xhrSupported=!!xhrSupported,jQuery.ajaxTransport(function(options){var callback,errorCallback;if(support.cors||xhrSupported&&!options.crossDomain)return{send:function(headers,complete){var i,xhr=options.xhr();if(xhr.open(options.type,options.url,options.async,options.username,options.password),options.xhrFields)for(i in options.xhrFields)xhr[i]=options.xhrFields[i];options.mimeType&&xhr.overrideMimeType&&xhr.overrideMimeType(options.mimeType),options.crossDomain||headers["X-Requested-With"]||(headers["X-Requested-With"]="XMLHttpRequest");for(i in headers)xhr.setRequestHeader(i,headers[i]);callback=function(type){return function(){callback&&(callback=errorCallback=xhr.onload=xhr.onerror=xhr.onabort=xhr.onreadystatechange=null,"abort"===type?xhr.abort():"error"===type?"number"!=typeof xhr.status?complete(0,"error"):complete(xhr.status,xhr.statusText):complete(xhrSuccessStatus[xhr.status]||xhr.status,xhr.statusText,"text"!==(xhr.responseType||"text")||"string"!=typeof xhr.responseText?{binary:xhr.response}:{text:xhr.responseText},xhr.getAllResponseHeaders()))}},xhr.onload=callback(),errorCallback=xhr.onerror=callback("error"),void 0!==xhr.onabort?xhr.onabort=errorCallback:xhr.onreadystatechange=function(){4===xhr.readyState&&window.setTimeout(function(){callback&&errorCallback()})},callback=callback("abort");try{xhr.send(options.hasContent&&options.data||null)}catch(e){if(callback)throw e}},abort:function(){callback&&callback()}}}),jQuery.ajaxPrefilter(function(s){s.crossDomain&&(s.contents.script=!1)}),jQuery.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(text){return jQuery.globalEval(text),text}}}),jQuery.ajaxPrefilter("script",function(s){void 0===s.cache&&(s.cache=!1),s.crossDomain&&(s.type="GET")}),jQuery.ajaxTransport("script",function(s){if(s.crossDomain){var script,callback;return{send:function(_,complete){script=jQuery(" + + + + + +
    +
    +
    + + + diff --git a/infusion/development/lib/infusion/src/framework/preferences/html/SeparatedPanelPrefsEditorFrame-nativeHTML.html b/infusion/development/lib/infusion/src/framework/preferences/html/SeparatedPanelPrefsEditorFrame-nativeHTML.html new file mode 100644 index 00000000..9323eb7e --- /dev/null +++ b/infusion/development/lib/infusion/src/framework/preferences/html/SeparatedPanelPrefsEditorFrame-nativeHTML.html @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + Preferences Editor + + + +
    +
    +
    + + + diff --git a/infusion/development/lib/infusion/src/framework/preferences/images/default/separatedpanelbg.png b/infusion/development/lib/infusion/src/framework/preferences/images/default/separatedpanelbg.png new file mode 100644 index 0000000000000000000000000000000000000000..8ec84b2cf98f63f7d13bdb9bc0d9bd496d4fc36d GIT binary patch literal 7249 zcmZ8mWl$WSSxDzzE1_|!E3oO34y9M_IcY;F#2`suu2<~o+TaX|x-@W(U zdiAENr+d0ipYGFtCss>C2^)g~0{{SEt0>Fs{PoKJ7#iZ=dnuU-@2^7#DI0kL0GNdT z7y=+Sp9}y%uyNEg1RJWWiCF_(xh-vgR<_)}uAskY06@Z5>~H953$~>5b#-y`6!Vp2 z_!mO#Z~RZ1hk@>25U{f(gQ2<>-CLlCE!`XLH{84oQW$h}bP^smc49j6ivKD9`;ugE z0E0ndJUl)=KHNS6+&~X|9zIb~Q664?9)5nVzX&c*KR2+YFPEDqf`aX1o7~3^YZ+c`EQ}bUyWjK zJ!~z(Ko312&_zo2pC!<#xLVrV>eyP^_(|~mf5d-UO7Q$M$N!n@-=hDO{i|9E<8S5v zZcqw?a@QXR0H8=$k(bqTKvrKivf5UzkF-?1%r=_+WBw!XxMIy{cSGgZQ;^JrTe<4% za55YmycoJ&vB&-Om%r<}ecIjKKU|Y~ZfXf|adTOdtA+bcxU; z7wun7qe)1t^!9w~RM_*CfIuK(!5zK!=i685WA`3jr^N?ze}=@jxuvC~HHHXv2TjF9 zsc=?mcg((kg2kBq#3Uu9%5N?XJ#oKpxNBTMq{I=@j|4A&|MrFi{pIq71P0&U-#<^# z7F_MhJ?!0pK=InIh1hx5pn;<6rVTq!GBPxXL^6|Nw4W}4?s(-lkJk}2hUD_^^r(}A z8Wx}+NRU4yAlTfmYu(JuPzs`e9NvG2avx3V-3JOqu#EnD7;lIAsYwBnQqssiIM1hc zD;2LCi1^>pI!G)2yx6>Zj8L1=Ot!W5?0apQUFvhJvUD@wu)g9xPTD$Nv3^v*z(2(n z^m}BQd2s5_5DSC+1gZ1j)b;lKWTJT>y4| zG)>7c%OglNX&E3}d{vxE!J{A4Nq4^tyNX_-M@Q9uO;g1C9An4YUY?2+-ES%#Fp<*T zSJ2onIw%4GeGEM^^~=jC`#{S+1zY}udaZS5xq_QvqQ_75-A)@Go6|%}7@;Klj(>Cc zI!}ew+3m?ckkLr8NP|~37l}>-|3WHFK%$rn_CvdI#t8%*A#XX%=*KOBXldt@+^Y}h zq#5-;vpGQs`G3MUsi#L&`pzK0P!^0nB{%HOkP!#RoN!D5kGO8HC~|D2NsEJqv-O_f z7ZfrD1~ilb&IAuCD-Ausw{QDrpy=fZ%GHa7bb}^!;=TRAL3_^(h(%lScPaBb1kB)6?y=kEP@e-6-5T*CA7E zdql#Pw2LbyIWz&PrUxTNu6qYVc{CCA^MYF!FH&2@{81u_KQ> zNMJb3Bq4n8>u#)o_<%eh?~lTj{Omz&rjtKrVkoS4HOPX$`R5^op7 z{hT|hx~SXL&>&U9x7H%j`a^+hdr(k6CTplsV@Y(tZdaUA`}$rfQUW6zn_hQjiD$mtU8=U8_>2ibDB?v9ciHiqx1MCinP(*-|-nYaV7A0lF^s@f17!Uw6zNjeBk9I+hI$$8^GRomFPQJN=_wV%J6H>BZTa%w|%+*Ob~ zI$k0cB^^|&crDgZI~!YD;B@shq~RT=69K8IZ65 zTK&^%ZGx^ZvfsCGC)RMz-(-${dHrZ(_oG;5RaEcJ*BV@Ej z9c2RXlNk$$mqTqrqb9ARH^0(yiT4E3GjKtfUm86llze`yk?^aUHUBoaNYAeu$qw%k zmP$u868iE{S(Sc#ONgF9)1mt-n1HTy&|@t| z2he*p97ovHoxfE&;B}{R#ZihA#jP07cSH~s-0MwWGYRd}5yE95SLRL{ShUu7!sHKi z5Fi*(27`6ZNU+cqKT;VENT@Z(s&6Obu92^GwZX#@Mh~Ai@~P*(o>x8(9cG5plmlnl z_Ni(1p-j>fL)|Hc1}Bog#XQf)%U;VO^2Zbq4X*G*TT~$qz7$_kNe5RV71`F?6riqB z(vuBWii@U-49oD+@!vW-zCCSo^!T|ml0NemEG*4Uc>35IX#jlm`S1-(q>|bbp}5rS z)~f6i9^E8nsmgzdEl|pWa+R2nwDtmFsQ7w6s#!lPD=N72yym5-NYiJiaUUP z0utKfS4C`2{}3^4Cizupre!5L4n#3qxCyTt7}A{qfhKfi6=NIQkmu+5+ubzNjRhG+ zWC7ePD3?nQAD-XvRmj|; z-BG2KfYjM+z5~)1mOD7azu_`;nzM16{@;!9V-gm6Y|iQ z3Mwfyp769t8!0)1hh900ooDJ};j9kozZe*sCNV9`9Df8LN_?`iP*67iG2h|q-n#&| z&^JbY^G8_G1_+B9BMEb|cZ#p3t9Yf0;DcLy-!H}}9y+Az#phW2s#(#cqMyu>(xy>Q zIQddgqRrOvJu(t%dMM2VGB1cn$T#wh${R!kmGb@O_m6ibI74pk- zigUKsOyS?B1X;6dM>cjszl+In`)!|-*|0E9uYvT)tX+3y5yJ(G29bZt+t0ff`Y=+& z7L(Q}VaeFDhMmIaVU+>fHPJ*DA7|5eGxv8f zTsh58mq--j1os~3u>eNlPO6GyAR>YiGnDs5!$ZS^os{QlglI@aS`$Z8YGZl!K;%w) zy`Z?!KcMw>^(i;_kgPzSDNaZx(?~^6%_n|K$jBDP$AV}D!J5b1o2oq{JOO80mmZFf zCfaPQ;Ska1{GGCy*5!ptA&+q6Rza?kOH&38DVjQb}=sf|&SVS*CI z+-pKvuT;WLer20E6E(3V`^WN)7jQYPFokoqH44`C!WKP4IGk)z7%(R)(TLq>d>S}0 z%F%v?nVman0?u9am{$8ZxhunE3$RG25+~!|_m!j9vB#Hyqk7pQj%uU6eGW%?Xpqp8 z-eP(?V9Jh&e>DTIC7%}1W(D-UJYKzhRzZwooYQJY0sWy8LhUKK=6$@ikX;#+%Y(UU+)=Ae(%c%~* zP32}L5n*|Jdb%~&hpdye9a*nyUfG+qW}Wy!3jyV~YJfDA0zvI3pdHjgVw6*ZlRB9b zIxoQoia^Eh+b+k_l%4z);oIDxiOsv`UrQ7o6Y+-UR|F*QRl+Hz&;(U+wC}^2x4^sH zth8d6mB9TDwYwUya8t*|RLA|EE&1s+Qpe(jih?rImO~{J(*pL{lYiH>C)=*H73?kT zs+sSeWDP_(ZWXngAe-LH`|^JC4+FMT*D{y$_g8$hqFSO{#Dr=pZK;f32?-)~NZ(!+ zHz9Yb+!?GtCJsjBNdl$1Wgs&y%B2f3JAb4Hxo_XMy0|6H0y3@h>g`Xm`3p{BXI{ zXk$EDxS|M2cw^wRY{Twlm@=Z1<2|z*Qnl6ZFqfsOfXfX7t8~_)tuf!c(6AC_yKMwk znfPDrJ#NG(oyaZQUq{!Zs9mvVaP5zZ0fq~*eVHY{sRYm&<(yI+IRvh+_79z9n8=;4 zN{6IqRCL@)mCK>8_(1i-ubiR2q7Ir10WOr+CxZ!%fXqqhwASJC8;$lIP(L4G$hexr z3%o#{eY^1Tqt!AAaxpkIBg*Niw>b=%U22gOjnBCW-&o(eS=B+3ImZ|Y>q{}kJbpkX zwnZ_+u}9W)-j)>DpuSG=t)AC#t^<1Wq7>TgY2CA)YfHv=N9WTd4a{~zG$B>cohk{s z9z97owqdUob;k*kwiKc1z@<_~7a`&xHKGFSaVDURzmo>DGp?A;S`KLgda&(h)1Fb^pu0>JH52;ft6*k7ih9+~BEt}c* zKM8I2PGLdLeVY>=j+XRDW%wl+;ap|g(?3$=${fn7IQR9vT*k{0CCMhm?Q#D>M6e=Pcn|2gOjUl9q5s$hV5y6@4j9ak60R{ikQw#^9twDIl-E9B41 z1RFHo$#rQAesfsmfjFNP2i2KV=Nry)+t=o@rjdz zqR-}h;b-l3M|mkd^eTy@n|uz6oFzS}+4=3kwg~!Cw zp$fyQ(GSafdP=d!gDadh>Cee(t^5S-ceEkr?h?PQF6r)0Xu<_@mNDkI4*J_ooi7|6 z#QAFNMl@YH<;m$rvPb&0$Cogke+r{l;y1#-crEBd3%N1&7MK99Ng|$L)y#DiqhfxnJs?qDjp^AC5g)B1aDMC9LM?W_kInNsHna>>E`FEz89zO zArxQ9Vd-02RE>1L#=ZEa%dfL~s(Qm|!VW~=m=*D95;ej5afiZ7IxP)X$g8&^6Uzlo z7eMnbA7%S|UC)lstK!%z93^0g2%s#);h0#dsJSh>F-nX9$^3Pmawvfz^i*zJbm+7=`xh*Ibyn?=tz`Xp$|sy8!Z2TH1Nh zzGYnP#nd%K=J9q3)axnJ>8<3^jw=y_SW-k9py(Pr%F(hk<1Y<(QH=Umo%(ecl&N zRn^alh1`{^PO*eO41qaWMTz^5FDBOaG+&6W9zLm-)lHtCdWa*n(4Cl?=;Bit{n@#< znqFP1C70`y42-pg3PkgkcG=qOU0V>G*0T`ksIvB1jMp%;KVTTk&;`FdwCXaB z+P{@gRVtEjMJy19IwBclEF`r4oHP%>%Vb65Y;3q4KKSl3lIr)pdf%~)Ke^jUJBT=e zP?qv;dwE!n9-hhF3p1@9TMJ`(ROiyJ_B$@8PtXmS+EEyH;g@yfxYK{sjXp8zoI4e! zN8HfcY-CfG895uf7-2`?Q7FeA)s(ti&Rsl0XJ_^+G+=AH*GiOf2Ocq@JUEyLK5Thq z>6%A&5R0ZajsHoEIh-;XtF5umLvdtcV-iaB@1N=}ox`Qw;I9OqD6A6ORAn2uKu`+BsjkTSu;Xg~l66{x6*DQ>n-*zZWk2F~E@M`F5;u_V}5Izt2Qr=fN z?%yBGf|D%`1$A6-Z+A-~YhJDpK7%?U-}k7g8ow@;z+C3JCU>9E@XO|MCbj;-g}$yN z<^Hhv$a`cEzs5U!IY>g$W~l3?)2ml(Gbq~OPsVrxO&}8BIJl@{vZ^2TZob7<tD>hRZ0KNM$==&1WeiXKR9MGP(&EF z>-`qGP#&~*@AYe<2cwH^DM`w}cxE0G)_STN%)aFL?oSzsN)ddH8NqJeOIJ^N`EX)- z&QkwP!@5D|W0*)H4I!3#N~%&?$tj5ml89_)I(9Ph$MwbsZs0oABu(V0x^2%k4Q8|Q z1ng&zTT#PtE==HP)H`7K*Vc{F|*w5A^K_OUqq)vb4C_lk}I@q)V3 zmnPzYH~d~`T@cox%Fhb%P~)h?E^t!F?pRqu=X`%yjQB%8T_OxOKF^Hhgg*M&mA5+DO7gRu zD@B8Nk<1QEd$!eE_RuMn45=RshSBHjR%HFD!YX+xV~#N4XAWA3KqWP-X^KPmg*6_P zjmu(NOOedJOJ^PW{UN!?Z3=vf)YG)UeAz<#bt_0Wg4CT`9El>|sHIOvJa*MvQ9_T1 z*oJ=fS<#48Fw#)P_IXA*;wJ&^uUre|8ErTuu=S@;{DK2+=%HNxYxI5XZ?{~e|kD&AuGa}t*c=8YoAQ2jZk8k<9fSlF?Pg5#FK5&-+4Wusk=+c z?`=sD0nR1_ond9yxZ2=bMHO(p3nL0pU?T+ ziBLjFAU*_=lsRzVr&LahdormlJ$Qa^Tu-gRiGUUAjyS#-#~o{?+<{LJp^1f+`iS$q0zXkW(r&dlGYyW21UcyJbO^BE1Z z6TV|JAu;jOW{jQo?+5pcB&5R%+|!dV+|iJ2AAK_Jm(hmazZ10zCkT0?zvWZ8|8DSa zw=T7Otd3Mw;aE*Lb{2oQPqnt?37m?&bxC?&9VtJ_drki2A7y9w1Eh`wkusvdoko&K zM&Q;I@)hB6l^0ggF1VsnY*V;!KGNIs?~!rznu_DJyvQpAjuWmB?k6{~566QUR!O&h zLkFOwz>gzjS3gbc+ob`4KIPtM3^EWjojy+-zO7s*ORJV_JQlfB|B zGF@?$%%^L}N-lvEqxBJLNDZ#lg8G@Wc) zd-!nNe}a^7hk%pg0Y8fr<614lJv%3m)|>nkQZJutA}L%GiIdlIjvQ0;A=71i?y~U74SvS zhjF#7-(sB`f$NUw-*4BK0}rt{X8ke9W;x#g9)*lxTmzF6#;dF`dBK>~zP{4ed(VF^ zUk}H16{Dj(_uaifsQ;QQZ@}r@y)uz3Rc^xi0Y8%iUq8jyKg#5i$;LnSkXc!7?&@VZ z2L1m3?U}qYnPWUA)7dBYO!k=kx9_=`fO9?c#QE0W7!NR>XME>hTN|tmG#+vlFU+FR z=+o$z*j_0c=>Ktj`!tWj%*+emy5-kT_YEj^Q3AJ2lWFz!h7k7y>?rj>Gl&q6<0( zaw*H$apBE-~ zkMjKtS4@vFT;Z91TrpfLMv!AF9l4;g;d>^ot;AT&CHz9NRq5!DfRC7N*h1zDtAMjn zz{e=)Sjf4en238rdWmVy}WZVJ;3JXui{?F5M-6vq92%?i*txYWHQdi00uUP zJTGv??(xgR-F=&U5K;`UMsCa&(l`<>x3eUZ^~?sc#uJhWxaP}^Bi};r?NNup#xVZ? zegmfi-|0vWzlrQ6H>9JSB>Mu)Uno#~4*k2H5E{6#o3zHh?`@S*68ko1<#z%yT~DN2ML!O^I5>@OhizTerX) zYndp^3)92QrhvbcXJK1);GZh+;6fsBj+ z9FP(4sgvmjCZBD(?F8;)F#3At%YB=?13nWS!%qkMM*SPt2CcI_fNB3_cF@%XIO3^w&wTs3Ao{BjEaw3{x_F zyPQ~*jOR7L#bxjg#wjL(Za;$#tH?}dU;H@p^K$h3T{;?SEJoJ~5 zj9|7@_SG;SlyT?&|g8XKz{`7C$#H0?uYg=bk+r~9R3i-Bg*x*3uGlZ zEo)iCzlebe(Lvkm(KnGLL?lThhYTW%2=oDsrOC9CE~XFD-L#4ROk24yE{!|My~e%4 zea`*LQ=aG5yn%P}b^HVTZvFuO4*xIy10g^t6h;g83+shb!UaWO1dYguSQ+tJ#G4WS zjrc1v->$V=?Gg4UdyGBF?y~o^_qJ!+r`hM)7u)yRAGaTLC>()~Acx%%<%n@~b&QJQ zqQodelsPIiDk3UADkrKUYHakIw*;xRwWYNcklO)qE@>ohlXqz+>Y`PExRE{$h;MSi zGQ_U};*S6^X@htLAbya4lz)1c~Syu_U4~;`NBPB7OnH z#2#q3+3hmK$@X*~#PFNh_rl((Kln*6P-(){$g>-3|IKe-(G(A^7+puKtmOBLuDR0#O7vJl(287(fofu z`@h`PU%~NzsL^|tB9}yy(DKlbf${&*X*izYKl-PhR{YbIJI~7*Eu7*v@tgTA{8oM& zzn%QR?;t<&JIPP5(EsIkkze^nejWc1jRALeqH(k{ji+5`0_{o@X%g)Qj(5@SG=-)j z2I)c5X;0dV_NIMkUz$PPv>zQrb7@B!O-pDg9Y*h=Wz@s(rX%P`I*N{_6_A%IT205$ zv2+~2ht|*ubRwNZC(|i(Dy^l{=yW;*QO&({7M;yM%GJ;vbSG_~yJ#c7mw${tO83&o z=sx;5H-Vc-|3iPE*XWP*I{gW}{9pPD{gwVkf9EFA8}twE5pDywk=w*==C*KKxoz}M z`WL^Cdy{*Mdz(AYy~ADL-sRro{>5G7-sdiHA8;S?kMmFP+5CQvaFnm*r}5MI8T?HC zUVawWfnUpY=Tf+l+$cia1BaJ;%1TRy77r;ZEXdCroI5CIV0KpKfd2j58GZZo?$tBB zM_Ou1x1_|b30*qH#zc2?MmZvbEheKuAE4E!RZ3AI@Ej#w>`k;HtBH@co3bmNSYE?Lg(iY9xdy$PKVZ#G3YAWovvtdW8}EIM!LNt-EAYO z(cYW%W>YxrP3JS6_T#jCNEyDb&2)O~O+U)t^X2bCjC>G)1BU~5$WSq8?O9FPvuoOB zW|+g_N$4`DN$guwc_UyWfy2|6NORAi9qqFX?PFFWA z3+N_AWla?4Pt=DsWk29)GFH^ko&Z%|dUo;ProbV?%bK|8Y5kb(a)oQ@u04pZA0 zJmBvy6QBji0frq8hKBm%Zc>GVrX@qlyvKG@6?TNU6XQKiTm`#w+JD7b%C0Q&UunC& z!U@_A9$Hq{Bt#Dynod>P*T?9 z&IHEXl|ClPI-HbpD6rl0}fvY4#8vN7YDA}hki zK<>ub%fcK@ZVxEzah8qsFt!7R;;vvi{9#$(m6Ec-L!E<%l$U|34v&0=U0{zBqO
      !k&#U&i=je*`$nCp&5a2`7C4H{=MyGG>rI11B|9P zd)C-Y-#B)B$3t;j-N~F>Y5eq~@?|>=M)zE~~(w z1K2q)E`u4<+sm9|ogQb6y~$lv#!$r2BV*Zz3>oKMsthhEYk$-ZSwItU;IfQ4A2OS= zC)M zaI4&Ew~h+H|YXRz}b-t!_muXOfrqCph5FM-?@HBo$)3@>v)B<-PZgw+{;WR&tisni+2 zPH>-Amt;F4hZeU+7H5}57G*DwbmZ7e?UXN#%;8HT_}0k6{IbY`{Nl*`>>-h{u9(so zLvm!at7B=1E4WnY;!8!0$;&N_9GrV!WNvoP$Uv95RDt^iT#MwXfzRNd=6P`t9-ouF zEOKD>hDdF8ST>jTLN;}}qDnis!b*c&)>0ESlp0-zQiGw;z(pDs8+I8k7zBf1ouSph zi*O4{sf(1>lEvg{@)Hq^gf0o93VNJAbhu<_eEi_!%2rqsb3VeZ}T!o+rPH|;fQr?c0A#D-tng6Gslln$x#haPe+}Kx)60a>Srf) zZgK8)9(BIreBb%C^F~Ky$KZ~gJ8tawSjT5Op6ht2#|?-piK~d47PmC+;kX|<59nOdd2Hv|omX|<(s_U9 zqn%H6ez)_toqz4z8gGnu#3#h}h@Tn1B7S3hWBkGR7vo=#e?R_8m*6f%T`Idw@3OGV z>MmQm?C)~4%dLcg31ta233C(HBy3MO*wxx~Th}MMzR>lxt{1z0)%Ev8F)=7HHZd)6 zKw@EHMdGx?`H8C%wUN>qm2Uq{rpcX?=ed-w!>*TI7hPYuesi^U*K|+sKEC_X?)$sH+Px*E zOUlHQohheMT2qawA*r2Hd!^>5j!K=Dx*&C3>gLp4sV}9zn)*)a2dV!~%SaoTR+zRh zZDrcpv^Ub;OS_RK_2|cO8FHL_W{n7Mi($A*9pZ-nHK|PQ6{I%DJ zUeEV7_b%$axA%qKANEP=)1yyKpHKUI**B{1%)T#YXfyg{EXcU*&TwyVH}})`i|m)! zFQZ>kzp8$R`@P)X(!WFhj{Q^n_wB#C|DOYT3>Y+^d_diRhX;H<;OhZDW~OCkWImAj zV^&m_D{Fk#qghX8J(Kl9*4eDLvMy$Q3S%0d?aCgLy({~|K=r_qfqMpiozo+yA?K%@ zKL(WzdSTF~xz619+_||Q57rD09b7p0{=x6$De?mHlJk1z_0Oxxo0j)p-pBcx{G9x` z`9}+AL2<#Rf^Q153fC1j7O9GYizXCJFPd9aU-U@P??VcQ+%shSkU2vhAM(zS-;2fK zpyJr#9>uxEBZ{XKFDl+xe6aXv@jJyo4K)mP4J{d3H}urduS%jyR+Q{7dA_u?bY$t+ z($%F0OOKac8m1d|&#+hS>3+|1Wu3|%@F-!hDm~A5-t=7c{8?@&pILsO{N3UD;fceC z4}WF&jS&+@yfWg05#NoB92q|{ZDi%h)gup#e0${eQ5{E(A9Y~VucL!T&l~;LKmV&# zRn}C_tz25As2W&xtm?I@kE*_^`nj5`?omCv`u^%o)i=kKj@dKjud&=%?O4m$^sz-_ zE62_lyKL;kxI4xn?SJPL_;ARY*v0}!>nZnHUnbkAb-uvjRzOxR@HqD+i z`}~|Pa~kG+a$m@OQ}26Wu66FTxeMm5p8NJZ{k);`w$J-+evkRH=RY(5#)3Wz7A$ya zp>1K!!rvDyShRZ4hDGNV{jsQZaredZ7N1%oF3Dd~x8(Jurllj6o?I5RtZ>Xy|#QukQhvAUP)UakA6?)$o1 z^}71-`h@z7`l9-(`kD1B>o?WETz~xm@__k)2@kxyHfZgnwZ|V+Jvi{e!Uqqp3tLyW z?ze|ZA9`xNYJK_o$JhVyaNfh4AO7GG>m#!sS@_7s4IMWmZRourf5WH^(>5&Iuwlc# z4aYaUx#6=7*EjMTZ5!h@_S%@garDON8<%g~xbg9gCpW&k@w1KJZTxGKW>eUv_)UE_ z6>h5BG;`C+O`A9E-}J(!cQ<{t>G#dzX7lEV&7C)=ZXUR~Z1cp;3pPKvxpDK6&97|! zVDopITeg_CL~TjlGGNQlEn~LK+H(JvOB*G-FkKFkK01F9BULZb^X-lOql73_qy(xf*V6%PPgOo4GZ@H|#lkTd&b<`8iq= z=MGfycn%k!qg2E38gYn66G$@RNpOZaJ&`@qyVH3nlE*7_Ts6-FY-qwdkF$PQM)qBiMtYO_JF6*Pf?mZ0zmr6Ae_ip{QIg+jE5 z8V4V0$`*B5xA19(vk$oGiHTTed|6q3Vww=KY!(~^28i)iYrGgB*s$%Dn21#+ z;?E>69_}bm;r-55O67&)1V&-a7Ex(+ro_a=rUV7KOkKH@?x|@hE^ClY853&?3Q~4Q zmzqi~K{k^p@|RzIddP^6-Gkrrtbf4$V&jl=+Z<~TUuvAXXwAH}EyrgpnlqOkU-?AP zwePsNi18hhX>*sd`-UypZ#n&vI-|U=Mhfk}V_s=(Cn+vq0e5QH)EIiscpr8Rrni1C z3fLXgkRafs3-$*FyJM3Qx+ZpT*kTo0V$zx%u?dM{a<_=ios)RIJ~2s53|3i`p&diO zmH5XP-DP6!_5zt0$%14FawVI($2g-zg++8m#bAxD z`KGliH$U`1{T4b0r_Qi58`iGg^ho`hEmCvyr3yY?;7+_iXB~h3`Qu;w@ZZla|L4EW zpFRIPvai#hJMqO2zkYJ{yPx^ko4F7IP<=isD^_8@+)hxNM~1i)LV_*U9IFw9) z0~F~!Y@w!(f+aeUHwqR_h*^`8=g|lejyz9?1h#_BmNTalcaM)jQ462ya?si`S4O6EWE#^C<$Q@gi6`@nPbl|IAl6&Vjx&8jma z9(r=hdq2_FmRuSyg|D8QcA`_!v|S4pOq{Wt&a8WRa`C{`x$BgyO>cCzWm(J!%%V11QriRFHLx1*NF0=#lA^^Gu^K zGBI@`s}ipkVRsZuC+W|)LkC@?S7I|1x=2m*0UCCrtk}{`kZPtZjb<#BGa0EfhAZCw z@bnE0G^zHHZCp31rtcg&Cb?RP6fR9ZKwrgk`{22s`k%|I@mvvw1Ns0#efzmCJQ+Y4 zIaFMjj9jcM$V@-o{%|c#YS=KHJy`ln>iGoSK))8`r{)S_$BTdfxLejR}5~qx`9j} zfDHA(w8i`G3`}uYN6=3>Qe2GDdtk*fu_ve`!EP-kV1{OhM`XP21-DyLn$KMAVV0_Z z87bU{=$YFib5aMl4jYUdhnaYuGn0%Ac_OdiQ^+#6r{!`DXJ@7pH^3^*MEo2HDbyl{ z?&P+ZiB1$rNU++P?@=pxL%xTHN?~H=1=;r`BLoQCWp*W-sr(6+z!@R(hwEQo|MuFq zzcimd^6ZOGJ@w*?2e`}9V(CG;kj|!y=rn1$v`#uGy+DhwtCLBKq$a@s8UQ%}a5Tj3 z)`LWp>ay0_I>LG=#HJgC^f&P*Pig2m53Gb&=c312Z^MXkX}k=tpHN zQ;b#%r=(VgAT&>*EBCJGdvMKjkEcF&`P8S6oR!w_`ZBudz|p!ts` zCM^c-C>aIJ5aIBoN;YKo}~&oeBbIf+I>cRmrmYa;CVvU!p|7&Vc7HKKW47ap`;M=H-1Q z?~VBU-(P;#(0J_9Qx8lzI;~sj&-35>Oc=HLM5q{abj$gxL#w+aKlAAN9TiV)nDwCnlk z%`K4(qw9cCBlx5P>FJI%@?k-|Iw(Yl2q%I09;B3Pw$K8P&FdQ6iABb{UONwIPZoeS z=>K+j1Em9*vy;k&{D%fe-`$w^z72HU8mrPRdBMxA_yar2z0Sj8borb?Ls$kIg zKcpW`0eP=XIsfgi@BCY8rI+^}JGy<`(>2xmxmp@dSDv($g-JW4gH>bx^Uf8ig$}*- z&Z#F(mTxSmJ%1lCJO#9l1cpTt@3x94k0qRfS3w^sV4S!D4-e|f{20s>iyx&93f*a? zw16vbKF1$v*{c{H=Bl(glc%1~rws4*4G4KOpE%uZEEnk{~LXJox;XG}-Q_!mxVb-$F6-cW6lGQKDb|T;iWy(4h||j zdH=H?y?JK&tJ!(`XHVEQ?AF%0ExYR$Y%d*nkgub>X5YsdhIKgBRY__m`k4-6Pzz_ehP(O-gf56CrYrRZM z0-d6FrO?1I#PZUxQpOT7f^M^P`Fu@T{9OAVG}x#c^ybvJzWnR8hd!DmIU7zM+B5d) z@gpDSbEPZNf)k;`^agC3533k|<(o3Cu_AuG#k96;V*O^zB%3b=x@^FTiW8kt zU6~o zFZwKTsyWRY)vo}Xa+1*5>Jd4a;0^B7S5P>YJ0Q}i;0HkFrRd=*-NX?(~Qgr7+jS}mr+bo{L1 zVyQ;<6z+hSDmaA*h{eB!IM54nEuRK(@f_4fRMU;4rIgRT- ztR3ypwFawQi0dSThN4U~#%$IWdCWpg)DTaM-|uENDL4_9xxFj`JuF^I^ZU|18)UWU zIVBuzYg?=xJ$UT!oW75*F03nxp1QH{xqo%+H=>6-D{`hc{*Io%!&BJjzJkS@oUuho z_Hzd_$K5j|G1XI5sh2LvJ`aZ&sh7A%U6L^7OOq!wVHMzWBYMM<)U;nikxYCx7ZreYP@yv2e!5ChpQ#(zVGW z$BaF5=uJxFq@;+N3E#i)GVQqYHEF{&=_P4*$L`fdbUmb((5+t_k)D-yt$T=;Q)d{; z2syTCA)Hs71Q+T_Z?|1g=#(OKxQ?pSL{u6LI$luGJdcW{N|Zc2#Ws_D+Zh5bKvKm2 zsLyetkBJqP{JNGyZ%^m)`f=`=Ehg zhh0|sR@n=3A|K&3hz@93yUFOd0Mr%U#iywzf1d$lGh1XkDdiZN*k_REsin$)` zZ6T0NAaKMO0LAMB57RMbk1(mT>? z(!RuU7k!Y9y-Z7mk{f@$ z`6?gTGLUxdnq`XG!oijsZ?*iVQl?5|i*Td%& z-*!I`yLl(0DdTuYOBT1GWip#*!)P`OsHupPZ8E&ZKxHtZfl#Fo)`5f$hSw-)wZ=S; zRuF=K*xQ6H7RjCvjk*5k-LS?1J!15+Vy}=klA{M^7@aYnM8Q*+h+&F&Nc^26$DH}qP!f-AeWU2&m0+~n*g=Z zF``$&z+c8m>%z(`RHZn5Ggn&Y;|^gTo~9!y?hce_vJ?-fG;XCUe8MqWy-LgH4d*9QcsMc!gH!`tITt&-Oh zWH>Wi-mEOMGVP(2k>a4vAS;6y@Vd}}qzX;~{zd(3%tXX>Wx&4na zZM{_5t6Y-!w0o_wHCCPG)%=$20B!{ebClF3vomd z2&~ELmYNit^ce(3`f~h#K6vjNaA`ra^c4+nRnN^LQZ=^WaZtz&sk#8Qu+t zbQ{u=2(ffpC~Kq*nT*`!5d)XZ19Va3$ zk%n)tI{k5i&&B{WAO`;l1+%0gDQ7ypCiR;Mw`=_rsTX&kWf*spJK6FeH=`xnKVv#( zRFN)jE7JaOa8ybTezitT6jaGGLw^_g<%Az5fKVap8A%ULl|m*+wprXJ-rl^p4Rs%p=lKL3v^mrCeC z=@`wGPKq~2{dE>kxg%qZ@-!YE&fjFL1A*MdoO683zr9?>_zQa#m;Liok%#R;#+V74 z9M!d(--h{-(s#Hp@i72U^0nA!)L%$ykut8Ekgj0yeyrQfv6{er+lV~;K6663vxA1}-}yzUo4C;o%`sDpg1z9}~?Ht1e=Y$DoVU z!Hd@Eti)yc^Js(eRko&3HR(>zpF_h=4@{$8CG)QTuVasYlkPP zv~!n?LyDdw#}H@bVRy(%9PphY?Yt($V9@D!XOzY)!ZrcypllB@is3mPu^rIJJ<5vS zs|mdbPBzP15D3_n%onyOmB^Obpyz!tyOCS^)wjQXcJGN)b%(yyhrLH)aBee&Bqv)GbL7#he{E3iKKq7Yh!#n(vX^GGAZ2G;D3n>+iht{D#Ff7Q7at zq_r0Wdu|x$7U3Cz)c{cXW&K~E{bYo5Y;fNIz6OMV*#|R4v8rE)YQc9`uV1@*!vR32{3!iF$;YSv-TYtf z{Hc*^Cy&@Mf9Fd^u5qsgF9=~Pfu>8peN%MhT4;QEr*Oe|;p~f-K)rAv^pY3}>h*C) z23Rag4nhujw*~Q5EyP00G_S=%b37J<*Ib)e2n1~U=qcApFe!!#cBViaQrjpCJD%H0 zs^5I`k;lu+ZAFFmRzjP7-)!T*?-^b4`U_#hLe^{>3%!saSrBTKkT_V#46?*MP#4)# z=-#nwVCN7j1cpR*6#Kb_SY?M~gF~%UrVT<0yh8bqk`LgO%Ahzy@<5Nl5EK{NXOJh> z7{?9r#2JFR4Dtkp-4xa!jRtMzlb^{O8|@j}z2 zUM<&XK0SEL6=?8Y%Q_kI4x4 zOKoN8t2S%aPAxdRbq;b=Wnvn^WjC4lgLUiAK3iR_Q1&@dM`v(n_HI1)dCL>sStkQiHxiM|GmW87QXA$T&Ze*&Eqck^MTkn#hY+8d6<7 zJtNZTjLZ-+XxED5t_j`2hOG^fMSiXhIs=i4Srfnl3WJ^(QQ)Me8bS>UA4=uAAiqcL;~bbm*g|h;%~Kl}e;@4odvm1f zBh}SP`Z-r6CAF;QqW4G(MN9K<5?;WmF_)&nwg`m94bX4E0OiX35pG7u&qBvb=)sWI}#Y!B}@2@Jt< ztPhzt5@fWw6lRyaiE7^#qL7Z5VcjS9Qts-N*5-ZZjvhVt+R>wDIfryZx>QHG{n+G) zlP*d(uiUzI&H~9f106bP=0_$XScr7@$>efv7c-6qkv>Ts&`|JCUKPT;b z>By6olO?%jQk59Ly$LC|YtnDh$7O$BrkCHlW^et3;R#UcWXi}^G)Nr~pbO`9yu+?G z5m93Z2ovED!7>HjhLP!gKNqzD$w2fLJlI@mzT}Ju2uu9>tB~>!@NZ=m3@NxhTlK=^XIR>_wo*R0}vWnJP@E( zYc!nM6rdqm11vmK1YmAIL~U3DEm?lKJtK2fS%ra_gX)h|m*ACyEkcQYwCUPW#;dQ~ zSBZH_;K7t(9w&>XwIm!>b!M9o-O(FMXTvq*Rd=w>-LW(rhqhQcRxXTdvw7@L55B4wb zUsg~$E+eIMGN21-y~fQ|WWz%Daz_|+fq^PcrNI_ykY2Adpgz(JZ^ED;Ik$aRxromd z%t~;WsLQ*I(agsJi>ELn4Jxs$uqB9I8kLY+8ecPG1OhIFPZ(^wR|?J@49o(VUk zzlOCGEo3|22jFjUc<;nalH4|(QmLUPlg1JlpjDX-TB|I_K9TZ8XMWZIE&TDf*TG^U zOm%hZUw*Et#4JvPW4TtyXmRh|_{!&8*{w614$!q6tGdD;e-JZjA;E!gLDU)!icy24 zyBZ1@sK`i0CB<#!%barPUifmTTZ0bXD~%XOLwa-&KWYCTW6S7 z!Zx1b0G=O4^5C0=YSd;Eej&@MQX-$Dw}v7T=TVFhWYzNl0jdy_+CWsYl5(+d9A#uo zYj|ge-SPe>D=cgSIh9JbDHJHf66oz&WG;kVw{;Y)3BOcHZ%jPYCs6DacBTAMj!{(Q z>>DF}%zc=hH=vXGG!IA{5csTE_WzOtP~v8Xpx=} zm0A&4;k5!asI*=ny%E4|Ee|pel3MD91+PP(|}b9g{bgyS}-bS6>1ZTg@j-gG3W!K#eAmNTaL_T1Tq*VOs+sP zh`|=l3JPWE=*y*z`({E1vGeF}#z`T)iYDcyXZIZ7D##eB!>SvkZ>yG4!i~6P+BP}W zI?R|f_EQIg1F<__j+Osy><+Fs$gz8lhuKW8pV#K?cu@e}Xp7zX^5#Fel`RLj50U<_ z&)}aZ%V;iRv!Kq8t4Hh{PSV_=p&F#~P=%-Dl^Q-WB1EInYE8UgHhBYSRzTY3H_HAm zTe1S8Ze;@2JvIfqye4C`75<}%Rn1}_j;@@u?(AdV%$rPW>K2q$ReHk4jpc`L+Chh$ z7mB#5Y9w&u#d5{O8tKBaC03PX@q9o?JHWkS>W)pylHs&@ z#0W9uj~}s$9IRp!RuREg!CSOp2316a&0-7V?U91T5*Vlp3)P|w&bP_?H>;qms23F? zFuk!U%=EKW$;)uERnY=ZWu<3+{h_o*|l?N?EJ+Rm1W6t+HL$KMfvtk(w;Gu zT#;~IdV2fj;oR8qfU1_O!M=YVh;0{lF!l?Bc(Yz>UP5Zc#o{iJ7v1WB91#hDk*?75 z$*&k$>7!hGh{z@d1~16Qd~2vLreZ40>X`}7($ zHLOd|KJJQc?i_d?9N8zWp*hg%%u8i;??^oGya7~YA(IxhgFfp4YI?CLGcF|7dAma5 zLlnMSyu}gRYqwrjOlYf%xConZ9{JaBGTPlsrR>lFrqdQKL`JAl7l^z|llrv!UA16F z6>7MWgu#>d7{lygNnw0N*tD=EVSHFvxKbI8;ucm8HgdXmQ^{M^28XS^=7w9+-OMVj z+Zh!(WOh2OPOkjK`ST}=^~)cMynp-)Z@qDJ`Rb`Vb;U15(5N52qw$VI`_f8WzhArh zSI-eW-UclS5HobcF91c5LU(6D)xm%tTv4cW0oDl79!Uc90fn9pdc86*FgV{6s8k6` zrBL8evU)%{gz|NX{yI^geUVv_u{z9(%>1afGqsBZVQ%P->;gWnIehB;ix*#c?&Y(=Cangh+KgW?T=k%1_NfxKEZdV{{uqg;&lRd*S9 zqBNH!N{eWibchy9hbBl*W3T9G z8YC6Z;UYG#S@U4=G`h%{+&+DN1*EUMZl8hbU#01Ud4HlI(KG z8+AVY#57ck(DHQ)GRW8^Yvxx$t0j@Xq{y9+64p7QM@VnpETS%&7quZ_5z#7lMsMEA zr-UW&4z=1a$fG8X*g+l#)A8^@88h0_!F;z}0A_a>MOkUPud*F(ppSe|AqWNAs^Hq3 zwHR!Cq_N!&s5X>`A>dy>wrp6zTZf+B?Hs-;|NeEZ`<9%3=)|yLU%Wb^Vc4-vdk!Qo zUi|t)V>3216_>fUHV&!g6Nc8uBu*VNYo)s=D%3MLHLGvDd(F6~#&(`uylQ z;c5N)cOA55dcT64jJO%@zD2powrLEjMG70Ar#Opzw~4*sqt+|1wG?R9@kS+HQMvO4 z8YWEaU7TqD7g`i)ce^v_Lb+2+>Dp=7uwm>2I3#0QuZfw^PF504Qc!J|$m_dC#007I zfk6?9v{cMzGMcWKel}q%&Y+Fd{-kZy3V3xw8z}4X2F%*(VWuVTM@)BeQ@{2hf8LRoA|<8|2{Eia&%Sm zs@LhLH(7gG+Vk!OY0ue_hiTH0BQ){IlhXNTo1_azgv=KYoH!C+mhjC-@BY<&Xo9p^ zzD3&e<~eEKyBBErt4E~wj@aqF3vCQ{Jz5*+F$IBqhtTL4#=X=`acde#qZhYn}=V)r*F(cdx{MsAJ*~vma zfqw!S_5hOL4&p^k04HeGY9T-r^ad#7(RfRMX{=XnD=HsrQyU+s#E<>RT`^7RD@lE& zxA3bzseL4=kMt%sK-R=d8>LP0bXC~xugt%xrFucnHKTmO<+gLk28v21#3;2>Bq}l# zqZNx4>l9BbPAM)c)ObOP)eia$u~)YOa@b=iNof**=XiWcx(F~*iR- zy9}9}c5^!Mx{eZ-o9$D>WB9+AkvlhSc+I(~bbEfzk8}U^#Mq1L8k&XwlN-5DM|uuE zUN|>OnnP=(E&Q|v(kuTLKhoBlBC?y}I7lV-KafrRyZsMAy!9JPX)~KwkKaGK3fW~f z1WvcnjGusHZygvi)KqQ74qS%om67e=t%JhzC%Tv}YfD4cKecGlQ%@~gw!eJdJ;UbT z=P92fG_H93@f9l`-?wu3q6H&IEL;K_)}peAy(1FK!7{bngQ?&lfnQR%Ty7Siu(1pu zgoopFCYyklAM}x25VZpeXoxno0Es~jjI2a&zZ#(DsDqo;a{8BrqekXWp3-g3<^>Og zrVf>Ur>D5wf*w2LZYgGUqCPa*s0bn2NDHcD#ORK^ z#ZqV;ZLPKPT5FgU1(T`{j>rI&!>6h6Cf{vm)@#^N^eoprw<&w)?NLLAh8C3ElRsccLG~!b z!*}jbp@bD1iNX@~ojX+QeJXgYN+(@2XkF;qj!)HO3*Q$$pJeKO@E*3(W5~Yf5!Jww zyCdb88dk`r2@MGh)&(H44n|~c3o{}|X7tC_a&Yb43-$-tUfJ{#9Wuf8Fqq2stm-u`MfDxAcK*n;^brLtLB!yhE;S3qq6HN)38;`E0zy44kF9o;XXq7r z)LZG{prf9cdCPauok^V2B&$nfs>>l1kNIkhyZEEGKKYJ|l$ym8e`WJ7^UYh7{X8Do zgG&2M-i3sm2?lUE=8Z?r7iCyD#(txg7z2nHfQse-)IF;BFat@H{hT{yWQFX0qQ<7V z;Ha%xH8(RfqHjU*nUNL!pO8KuGge!s>Ct^u*r8d`m?IDV&I$NjYFOC-j^H-}wHg&~ z7vTgWkKj+Z`JyTI4vjLFjv7&=3%!tt?ePtqv-*D9ynGf@WW%;Jz_w_ahI5;Zcq0h! zRv=WAElMDMQT1-=#9NbIO9B~H7*W7T7j1kn4w6#Z7Cp$G&T^m z*9vdPJEgannV>1sX6Y?vCTI#LN^|1b@4&@NbHi?b1$}xUFES07iXroVBG3soE(6S= zU$S;jYrcK645eZ0Q(y{0Zlk zGr1V-IWs&AXnma)6V)@EQ4vGpQ~qYeY*=M^MDRb1po8(t%<_m1ca8}2&w{IhcSOjY zBdq=rWFm>g2+dKRiOe6t7p0R_-@YD}6;EQvL4Ntk z8?kr;UDve*Y~|c7r@8UBmeM0*~S81eIAuHQOy2?oJILW>ruSet#5BOK6By zRHCNaY*1z>M=NWU>y*2cr<6)9b~6OE+LY(P>l&;y7-c!_q!4>@cf_I0RzWMFyb)wX zTEJoV6=E~m-Y&*&Y`mi!8GKP}9SSC~C5nLOs?jA84&b2IWj(>Ot=zYdJBKpn|3=Vk~Ty6A@h`MtG zqk|WYiSjd;M0S#gq`*ea!T(PnOxO#p8sRpf$_hnR$m@<)FIHbx^J)^3$Tm8?A-#=a zwfMPEn#SeOtv#h0x~Zo$L7JFOH%b%I@fyPxc36{6x5yuKb5Ho5@=Ebb>w(CnI7z9y z8}=oT66|0h9W+Ft(iqHevT!O$aD*7lD%AZL14KT+G1wCz@FDFBSJ^KF$nTW555K*? z5C9r`6De}Vznnzjjj=SyWk=DbjmDsa(_7SfZP&2e@{_Er^}EK&Ikl&1>svxso@a%v zx6amcU#@)Pc5Ul@_w`!*I)0`U<*jqK^xk>_g^|6Uy!GouR^uwY{-mH8CmjSg$Q6Pz zt$X-roi0;>2KuRR_lVi#XYYuxe;5H;ulJ7dD$cf97$v>4Oq543iSiQLuUpe)NP5eV z%qDT(rLqff+K$q9N|AllAuQ&YZE764)ik+QIRDX2GK4p}`9z#L{ z67Z6cy{ko$ni3jgOzvt;j?3{R6QeDs%@Jj?{y#g(kZ_CF)UpjP@5_d8(tP0v(k!fa z!WSUOTg-CQ!k?)h(knc--^AewO%0=WCH8wfYsTDysf#Q6<>vN#V8!}9)fZkoc~&9R z*SZJAc1h}=Ft~csfE`apM@))Inlf?dyutU}H>~%Vp6Qi6M~TO4EZ+2T7#h-5YjVQ{_cKU}AS-<7W?-*H{>hHnOu7C$9lPrUQ` zS^sr1@l7Jz;1qcP;}b6g%l#v0(Z9SSI(bJxW-&r!`^ZegrIBUsK`G&!&K4nb?;fA1 zQU!)P(a0;s~zFj?=!rDCoTY}vqyQ9FUdv}F3*~seKLd;g9JysEmZBtg{CaY*v zD*IG*n>lW)k3qrA?erRxcPMd%9dDidPh!N*GN!C1i4{$;G<~}&IBNfYIC~GksLHH; z{J!_zxzl?~pCpq;LI@#*4jGUVNC*&PB$N;m4G=(#C`DueK>-mFQB*)h7STmTL>3jx zilSgabXg1QvWmT}1zp4>bNM~zy)%;u>i2#BKf5u>%;ddqIq&J`ITDhS6)Ru51h zmOOClmVJguj@*fN)So^Zul7zToYXC4QY=|cI-p+h?7P@c#Iq?64f}~?Qj+>?443+p zpY|Q6g>uk>B3$$UKdIE{NnQB<0w}?tgzP_fpH(2nkN3NEd0$5-t&QK(uAO6d?Hqxx z{ck*XDxbkm8a1kyaB5__=oqu{`qy!vSfGBaeZm^~#Q9es%PpOsfVAJLeZm?2#5Wk@ z3qB9+DJ}dH#G5?YOu%`r!F>goKD#cBo#~kp&Y{pMkcwDB01{-9T3s$8~N=)zq&gd4kR4H2qLAs1>h}6p>QcKmFC0hM2v@yh%;=)P1a5h$I+*x#tLfY^ zdv;e>v$ai4y?gWsUmb~iNyxoCCHF@sqON*GiYG|UHRp+I8^+AMvSU}3 z7-+m5**Ry*!>8+S-T$(drqkFuVA0*bQliex>-w(U^z+ec#Y2;R`S|&T;bGP7pdX&! z!0CfR!Jv-^>HH$s=6Bv-(9GXYiJtETf6pr5Lc`yucX^+mzczjg-lu!15eU~ADAvwr zFon-x!AE=qjRJ9R$y-#3d+QO>DdROkm*%qD9S&V)hDk7pPQj5ZB3DOr7?4Y9h^9CF zCRaz(7l>K&eBfAGkyB5hu4q0HOT0=&8qwditRkeX%|}Af&O?trENy;1nnc0zq*iAguUWf1AML8N?LBz)*7L8`UKg@%4+aSZYQ&`=t{wLZcRVJC%9zP zmEsd5y%jcAyHA>6jE8_1X#VuUiXnRzX(?&QR8=(p;IG(2q>M;4V?pbXFLC+>g zD={tPjjO|?7mzpJ4H{8PXpmsCC-vx&+sh}Ld>Oe=i9|sk(vR0mFoA6L++b1<$lats z5(I5hQZUyWgy0Q2-1#Hx+;N8hrWws6*Tih6H!G4Jsq=J3Q~Cm#N%P{B_P#K^yo+d+ zYSfCXY|wikO79np06iLEM*2k7AB+%@sgVm2n?nHS z!{@-piOJdsF-@G$L3a$FpgHK-IEK4L&q({DSyT$UwJ~D$;RWkpm0Ys3#OMgn({@UdVUM6)(QW45 z4%}wVV}&%W&OJi?G~H&dAF;6r7U3?&sD+QfZ?iT+m0;4&$##P!$~^X3_EybhLBY2vtw=5kg%@pnIl`FitGf<`9hTy*2{v9F0Ib z2SbTwQ63vZ9Y{6g+8DS4{aJwT+y%222bA%@8y@{ToSJ-wub%=C`c7**=AGesoqjh) zu84fXhFAg4H4`rtl!9O5pY9O6S8ixc4WZsL&}7UOLGnv>hsA7n7|jkBVpb*}(kjNF z#?|e1Fh5+9MSkY@I{+pQCuS^w#1-3wqD~x0vUw=hL4FPnIf7r{v2ybJgr9J$N*TT% zr<(HP$EmvfxV)}oxBL*Zsb}b`zWo5zn#*JA)f-r<`U(6z$)u}t4ZJSY%j$4T$cRoc z7>#CE3Tk3~Uav9HZMK+4*EuYfMCb`dZz5tqLZTxvJyA+T2?oFW9FQV<`Du<(J)BQ8 zE}uO@PGM*hw`vn&-a*DVYBbACb?|Z9k)>`cH&3IR6F2;{Dvq z#(juL7kNXY5MP8s&fkGgjN{rbw>$8OYdM85TlAzMrNwcaM`&Y=1^7~zyK?>?IN$S} zM`&Y=RUgyF(8rH4mU9Vhj4Jg%+89wT!N&-5TGz&?BG4J47CAb`By|{7`h$2dhM=$s z%_Q$~)nUL#CHk$@Uj33@CI72OPd7t*-nghISmP-;Nl+(CL7CW^qhxOk9ZEX6x!4E!dP@8qkRWnfSAQ^N1;ah>J!>} zqql>qB{Yjr>>K$+#3GE@HOJL~gc5)?^q^;o{e>0$nFrK?ROx`%i3=)Xe*|dwdZZ7r z9xJjYQvaa-ftjM^50QHjr8`Zv)KX0UFXay?Ab(YT2kXabBR=^eT7|ISd|g-C5Z2%% z^!i6I+i}__Kt1c|T&;MC$5pV-2=B%iw4PzKv(wdqERU}ee@ClV-{q@6PEXW5i9g1t z5!>p=4CnuhcopE98-2CU{3=3z!9SC)qM2p|Z8DUl2^ z3+Nd+@gIW&ADV{_wi;5YwA8~3p2=Wtfw%Dov&6d#4mYhR+|wi#<HfTr94yEuSxC zM)m{#cZzp$|GTh2INg;(HM^Y4FK(9$3mW)+?3CM}PoOerBXIhBJxZU5jg!p9-_d!F z|DETdch@HEc`*+!P6E7@HsSK6k8@7S2xfs5dRny zN;5&pBGXFHIi#dSi^t(d&aVmCDSE)WM36e7I2AFb%ZVS}FD)wVEWHpiLft)eU{(2# zaljD~Ko8Re01|Wyd0s#bs0Vf)0xiiN%qH0pNJCzu)9QCR86^dJ-B>f6X4OKeAz zSlVUOW8XtjkaBYMt;U#{4 zVl4WpjX>IpHbRw!j}X(xwGoKov=J_59*n>}DO?zlCC$g+G@y-fagF9{$>&5sI>UTkkY^l7A16NFCy{cx3--KJm znc=&{4INYF4jpm@Fg`wKi4Jxv96XcRdZz{tWOK=99O~ohQT1hY510zASs##VU@LS- z1?7xTUx$?2)9=qM_GOq%zSLZ~w6_BVY(3$_xAzS6gtgkUr(!M4x57|GrbSYgk_B?2 zD&nYDI6fPhFR#F0S9{S-o=kP0>25o7VyP z1VyZ$f6j|o#nO-3|NHqzzy9*;TQ8!RRpZg}CeD*eiAuqf8Z{b=*{;N`&vN>J50=62 z{~G5JU1TQEKR{y`Ax>rzU;%28@H+mEOA~l#fBQsmC7brdn3YLTD4kE#v&!>}Far3J z=9a}69Ls~xx=&=*5iPt&R14=7N_^I}+N|H@BNRqC+XW-Ait`cesMjBiz$)(MBNWF* zfCmbAB3K{hz`f_Nt1-74ypGx^ypAW+>%zDE^$VX^c|H<-j#)1k%$Zf*$e)-SeWD56 zAJ`xm8Tt!xc>_H!5&Mj4C%k$oJx}a^{yP3V6L@zn-y==isXQOiL(S0@Qk~Q;F16_| zA+?8NtAOO8A&@|G4rOquDC+cPn-0)F073@*lEGlnp^V7_K}>}aTCHTKY0dAmmd;E! zm?u$FA~j)@utxRX8R{0+tYMW%iPOR(#e>tt!5p(BTDO%76q!QgQCZM)C`B^ayeX+l zAkCgCpmHA!E&+HNA<=9=QMkdLfLgnRsOtz`(xe2(F`k~PT}W**+!jHySFDbUCPq16 zu?nwl8>0nXNc(wxV!c-6wNc#5`fG(<>XBOY!=;OOu@@_%eb=I+6vggGGzc1Q<#ZfL zTEHi`my_%H+>6Pof8^&G^Rn|1xP;I~7%S}3Mu_E3Xd{p(KpSCfkdF|P&)OVFerqFC zMJ0U9GpLO~5<(lHiu)3nJ4#d92=By37|%x_U#m6=k`S7=mf~*O7~?SpeL|ZCeL@?B zy^gp8x8k}*Zy*G|Za3#ru%5U@za1+Er;EkP@T(jb8wa0yOB*9L^Hw1vWY^;{D6$73n^5!ygm^6sPo^e?W?^hnL>-Cvr0v1%yyJlg z=7PNK^`|)00!Dlu-29C0b!68K4`ta!w>woZI1^KK=>Y^3fK)94NI~%dd)Jq&m{G?B zoYpuEC*p93V~H2yJrE;OBH5XswxZ*A@2tK&v2N6SRAZ`N+_L79zE#8aO0@&CZ+rD% zpf+{&wjC4OJGTDWJ;`+vJ)hFkIS2uH!n}h(;3Or zb9k!O?*dK~+#u|nza#+_K^%#OD>mfw!G3CcN*yoI2ZeIcA{8Y*0LT!~XFS{ku9ueS zD-Ew6E_R!LG<@gVSBRyDmAx0a36t(-8^ z(>{hh4`y({IkN_R4?6m@S9&*(oTP@NnZqh7hJ`9B-=BBCWAJt)i|MqO2zG`LZF&d; z;PqZbdo#3XU}-11O=(e&e0}+-9zFWmv1~DKxV;~OGZ1hE!Ay z98~o`BIzhCy>9DcE8JYFo}Pa7)zj;*Suj=G+6u@#EyI!X2{0KR={Uo0xtJQ|XgmXh z^NEKdpIFLoximC-%R6n7Es;-X8DvsnbPOIbJx*NO~othW)pbV17 zHF&jC@4~C_{W4YnY@}9TBUz~m3su093CZFnJ<1wQ@^UL0I8X&;%p0hQ1=@Vna0ZER zgREf4x^9ib_l&%@X-+FL(l6R~(V`a|m$zIsHEwhZjcyk7fW<<=0s!u;Mzel7z@9O9 z)DVbX5sb;9nEZH()VjO8v2xeQt7cB%4umgRQvce`Q+J4D=IEMi}8egIt#GTjv)`+eE=NPY!b0!v8E!O zcp>{jfy~T6NH;f%Ov2{NA4u8CO3cJhbBT6>@ETvRV+AD_%;k@WJUd3c_f~M~9a5p& z+m$ZimtaB}Jd*XGGlu{~B`W|MWs^+;SY|q4Z>~g5GE(so;g212aZi7ow5J_Vc0}a+ z`0`2RqoU!zoBEZtVpo%~mUmDAnuyUIKEKiAHzg7X>ELl}U(g&v(4swk)wbb++pPv~@?J>kz>1dHZ$SzIF8*%BpWxX;}x{tp2 z>T4m)kmGn#x(oD66>q3*u~<=NZ?HOL6ursIofpzC0$Cd8&GPV1&I953t~du?{}JT5 z7F4*W74V6+io9#QGkOg;87eCavHkR4-O`<#T)hvDLIofFqx+A4h?1M2fxvqX{h~%4 zaQ;rps&_&3^Q`&{YAL|a-pAjR1Nj}XxJmqP!mseZLGG>gH}nZzCI3W0*H75vJ|Vt> zPvpXvuupsPZ%2VI=pjBzFH8J$LtcIS0 zRlEs1ZoINz%waGXvGPk)n5u&1uaX$i0!vB9_EFU*(9f?2q>n3H7ZOK<^f?@!qSl-Lus~pcSRk* zYT`AnE^Qhu>*vm9!1IoLkILfN6KVi?~KRQVju~`NT8&a5KbnPDM+H$Rc!9M z+m-ry>;aec(D@beKWa24e}Q=rx~Y?DrgXqt1RS*ja8sZ!@`Kcbo5o0?qjL{}{6%xe z{$_Nst8Js!K9Sum<12)fg^@v39Iw&>%<(J{Ob2cZNih<-vxo!%IP_%$67PXGj%C7$ zL92_a&&R%ZRyl$^am?} z^5}Q?(-Do8{P3|R<=gTBCqCZBfB-GXR*-rb)XHeJKqNON&eK7=#siuRNet-%l8R-5 zJSatZF{Kk{m6W(qVT{7<0*OkJ<&qNdWOD%l3awMWKWuJx9a4X~>1L)pk=<KQdtn zxaN8sR5G%)(@~)&FpuAe^gBPm{E{VyMY0g|FZ0^;645=9YT-ZP>xe%E?nD9!kn0yK zgZ9gHC}dvYH(cbP)VDcV{Zc*E{Pp+#X8-qJHv_Tut7P^vO1X^e6E)-GccnW!X1)6{ z`w;EPeo@;oGw>nZX=pSV0_?ej6q6G0N;U-$Hi;=P!%`F@P-F?3Kf!1KSbZ|bl+`?3 zzvI;fe*rS1$K}T@$RHFWK=os;Xz>KfDedC|IF^*yuD<`*e}`XXciynEayu(H!uql) z=-99+{Q7$b)qm+)f#2T#vHF*1%j*}s)4uU2>#+l@=9RbA9lPtxA7k~OBaNXa(bNF& zm;bRgB}#X^e&vsCee(BjQ{by%f5N#atOo2KQHPSKeqN7Ur5gVJ_1gQ7a~nIB=gs3S z{QXth`vLxbEQ@Ftmqs+cCXH&iG=i0$5PbqZArI#A>NY;YC6KmUT4@?Sim5cj%5Ct_ zqXQ?tVzi)FT>Hl78`tmM4M_4Q zpKChv;en^-?w0X+`v zWOF9|`JQ##aFt)VBoxAe0BC_| zbC=M6(Nq5Qra=Yjz!}W4RHd7l)*|fiz<7 z3b=!~KL{W`RFr`PZLrHe4A?%lNW&I!@V(bPbI0_*E-Ae7zKiEBYk7Lt=278~PO2Rr zhzr+0c>5hwieG=^@fW2>>h8bn+O6FN)%MT7yryRUoN4QKUG^k~3_L1K>(0Z0IKGfYUWcqYY!Q%9x_$}KbW@U+>jjTWxf>2pmw#38$Dia(w zz^lc8TH~W>L>iHZ8b^Bel5>mu4I;ko-T*7YiYVn=^L%+S#O*i#W#^uIDwkie`kB{0 zKKI_6Pc+KEubj0grT5gaJ2rka$XK@bhHZiDno!I1BbfO@b)K{m z5%esIy}I0Puh*U_0oz2fr^q?kiHP6>VE~^4))bUjjgMX+YKeBCPe9fJ=may36vM!B z;`k!uMj9gZRWc5U$IxZ+)QSPCR^7d9K(Dfft9mbJdHbo7DK|X!<}5X=d%m{fTlFvM zr(0W>jZ4iKPP22mJMf|{WK(eW=>Rc(EtzmbzC5rpQmAVb;lV~ne&IV(T zI0whQwh8E8f!+^_!)~*i)A@XH%yfDih;6iIr3MnxdiK63>5+zHIlWFjDGz^O_Qm;@3TKbmtJ>EW6qv_2LZjJNEMe}n zcf%aLL!%v9!9uMk@Zy)i* zMDbq7R<-SBcHL&la_GLP3oC*-&C?g&c~4WX0r{SsSMI;{c)ls?mU%1xR$#0hSO4c` zLO9_02Z)y{q?=*Yhyu!lWay==DuV~$YZjZ!qx1VLUbo5Su%WE(H{gxDOgh5$NX|#& zdRoe1U(DUq4-UJQI8 zphu>9O)2OV19w`$mk6gJ;Ne_^!72eKI|hoXiDoX2qv<5rRI2R(wxQn-AJM)hQ0$A+yPXxV0DD2*)3N8pCmuii z*Kucm5S3rm4_WH302L3`9#v1j{mqxJv2I7dBYN^cpB;}GxrFW^zl3Uh8~Q)HMTZL| zeh6bLKnpx_=77;H|&zCoP{G!6J=y$(^F^ufu-2mbop z!K94FK-y29HmFG#hj+aC4^$U8mi=qZ)nDAIzK9Gx4VRWsUlX7TjS1xd!NHVn1yFh- z8rBH1TguK-;8bxSKi=U;w=xJC@W@!|3Tev_bCKJ_^)q4)*a2r2Qf>$Y0%F;Z)=EfL z@ra7v32lg2hI5E0E`>~PJ3793%$skq`YO zZu-}fQ)gY`ZbbgS`0sx8*W1l%p4{_|uh%UL*O*tJ)`Xq^7B|l%S8<%?Zs=U)^Cv6z zbS%c6E@dSo2K`B>u})O%iQt0(G#h0*}AU8+Y{hMqu4WUuHA22&!l z+2Mz_``jkGTS`ezLhDYuJsIgqyt=FN1Ry8k_MaCDM-BicB&P>hyE^a@oCl7E4ny*M z^o2jGp-lZm1w86`^}mh(dQ)+=^>Z@a*MB;-B%t0EJLuA*I93s0I$p^5DV>OMM z)k=1)X0>YXch>OmUFCN1X8b+8v%(I{0(NiAvgY})+&YI(6w$Na;9THrOyHm2!gG=e z|3tPS8IZ+*Fm!s7b%8V=kVAYvM4i0={;H^R0p1VTEunO6OIk1Bu}Nklh_S>%Q_<`C9sfl}^ z-2UXt*dtm2&uC!N`3e>Yle8$mR>Oh$!{f)h9VU{OQ38mZYz7Kea*_mC47&siSCVXA zFI+5M*#-xTEjE4LZs0=iZMq=Alj8clW{6-sM?8|D<7b6+XZGJ|iTI}aLp@Ta_g&Bv z5v$;tSjgN`D02(HU+B60KX_WA-RUp}vdzJRh4Wu2r*Upc;K8U94ha6_WT;Dm?3J=@ zwk-1P`Teq2PA2pZuToJ5ST09g_eU@=%^wME4HQGXOw-Yb5hFZ?GehUMNTNU=m&=X1 z3ZS-;RgaSmDyKU>LvrI4qpHU)XdKdaaL?gY!>0@pt6pmRH9Y3|*Isz`Uwhd@$3D>2 zs=DxbRh^eO#n;TtVhI3@mpmK(?EXjZzlBzT^VJ8j3Ku+gwV@)vEC4*)4!}*>U?JC? z$xgo07wm7@k@vt;J`GN*WN{hXX#N>-7<2e39Awl>851lKsY3a*+JeB*BK0AWRmgK+ z{IwkmIUFu(ZWiC3@%*bVJo~|3srcDrZ~RL<5iUfNy(QueZ9DIK4Aa#z)#$Fcp{WHF zv^lg`bygJ6dXdtNX`2pC;YKAZ})TIbE0iyt9B=dZYYAnb0^vU$ZgPYOggKm=r-@y4+qb9jy@sw5i+#< zqGj-64U|hw9&s~#CRZSt}YG?bdZh#iCIk?S$oOJkJ9Cx+0YCMAt?u2W=+(y0Y#C%Uc!^h^f@( z2QmyPeg;X8mSNQHj|{==3HFP?eZ2)8weAGfAXz;dV(hUuc%#i8Sr_jf;?>7Fj6KZW4YGMZMh7*#2JA ztlK}bidSq_)#`*dR?=qT>uoe*^RppsyXCX$%i+9FBB$RO;lfGcpE4M8bOIqg4_N@R z)oMfEEM_)2U>KWhPMzCjv`7k!7r}|H_ma(w&E%+nAWFhW?_}IGNAg!LRr) z^cEaA3yQ7bz01VPX0dWvc#nA1>hQMa@YdDhSK_hoAn`E&8W47fpM{g@3p1+*6)K26 zWK$P$(VHYVv2P}ChAuZpB&6+%I=c@i?(-Rf!PGHzLD;ad{(@1i)aiJP_bxefUKy4Z z&*SGFM&d=K5vGI$=G;EGT+&y7C8$(CQ`IvMOnblK=ohCyI(hmZuRVRoyn}NFyvB6L z{v$W29}iPTsh_-hx^`xdUXO0OYg@ziO-nbIjUB(`FfI4Brcf?K2n>rg{29Gxy6sciGlhx31PcxwEhByD9bG40;4(xcg z?c3;`KFe?HzQ~P@)J$lYWRba0w?mWA2e|UU4nQ^uKqi4QU@?n&Bv2W2aXsGR-Hn`~ zQ{ow&BR^7k)4FgWSl!=NhX;#ag%P6Dj*!+2i6T?|lUpbXB`^ULZFa#0$>1F#;cvtl z8Kcq@Bp#z4p4mpiqElM9Gvu8!!ryh9QZ}No;-X%IdtW+zet+>eq`{-%?W($TAjHA@ z;v4L>$PWA_mKclF;%;_{=|%1?I2i8g6LAWiR3ywLe=I~wyaIlb5*(Nd1!qK%2>e>@u=G%SN7I9ghSU5au{x}0KA$h{ zb(h!{IJRyj=4%#!@-H*av002`gMWi(6U)}Ton2TDTocGb?&R6q8r$~}%WhDMVmuo= z0#BJt(K9Fd>LiQQs>a|nxLu-bw-{s#+Ca+8fflTI2A8#5Z@@-$RAARHf8Eizu3lB7lOJ@A_pjZ-qRXrOVC{mpz$$sKrX5?-p(5m3iimVHf zVl;J(Hv1z*vx^fQkBf*QTAF_FueUXe_tO70F~mg?mvs7*7~igS|lw{SX) zs4TT*qOWbNORmPdyFQ05G~J=-!)PzjJC{FdTVvuSNju$JIzS+R_rV1#Nh0J1@I=rwoQ|(kBO_&|tIhyztW?vYp~*x$l4h_;>R$FF zOX4!`I7{d9?q_Jw;Uy&UCXuj%0!=%uJAhe9@UZ$x3cC%6g#)NufR>e*Ap0>h`7QK? zk})$`wun|7w#8mqXNk-!reejm(9j$^=SJ){Xh$IZ~j9%95{ZITV>} zU927w7@%`4QAHvZ561`#D4lXwN_tTdR4`M}Kc((h|EYeU?iba@=4Q6t%_^A(SbP=j zH!)LN8#AfD{CZA36X|xm0l7lFfj8?19A@fyd_;YSU4o9s15tfUJ&zH@l|G5w6!h>F z(96zjVxm(K0k@6TITB)+=;7-Lc*;EEJP>vskHIXu4Co+_Mz5NZ6*HdiO)3jZJAjbLz<9=a`q;_lg_SUb~y^Y#Spk6;Iv0d;1RX zWsXoHSHt2O4wftmOF$z*B^h3?Z0Z@6;ASBV-?;n<_009S{lw?}@Wa>zANGGzs95&+1&2Px<3TE^S;|P4+$kyUQFV?KW={#E zATpGa0*7z%s5*={)@&1<@nJpmWRMF45{xrZNV*`(-cW*0QF-Z%#g&rKfi2HH< zpx#`sNh_%otKfNKaA*s91sQ*6e+Zu^pI$^T5j!B^2V3CNCUF_HHN;we}?IpRevEzlt@-?^1 zqIu)b>Yjw}BAWg2zp-;Hzat>s5dK8Hi{wB2I2^x1A><3JPoWGz%#Z8!NGvfTy;K63 zIP4ay3@Ca#^m?7aDVlXi(n0!~-K4it><5J>q^tZ!uc!M>7rcv3Pg=gX@G^E{vD%Gw zEK_ZlskUXTO)Xf=PN2}_2hl-|hQ!?PN&ZzJdcr?oZo@IxzVQ6!P~_N|E!r|XMw=%o zTbGyX$j-^hMo2LykORWW$?==bI=H$W{xp=s#vI;pUY9t!;WU#TA^Tj4s-YD`gn$s# zDAlqFxUSDuvfMR)8h_Kc>^(d8J@w+^D^4A5d9448&6nK%z`gh0DYm>my*WErU3L4) z=Xxt?>*n0Kr(0%Iad7F?t#fKM+Tl0A4Bxy5C$2NXZ)eh>fw)1kDOx z{3R0peHrW_k0Rc%YMLBgg0Mr!cgLg;+Yd?BzjtKd$Z(qcj_J<80{=S>QxW?la-W=q z=b}WY7oL1gn-`cY8KF4qnWTp{uQS0Y6byD*PxBz5`#aiv%rGlKzoR8;qG-AytX_UO z4(&|%I2{%pAJLKL{8?!ip5%z=^LAh*AxD{c?Gi#tc0HO8(sTHQ{;fVQ#+*MOYH3%a zx-9L|wR3Y*-NDv%S>hn+6SNVY{*qymf}V+v$j#dGr=c6Ph>|^>j52K*#UEb5 zsUVUlI_)N%BeKV|xZn77L8sZ!rLolrq7nzEloE6e6ZZ~b{nys}iq*eQR8P1wJd;+k z0og5&Njcd3BW0^PI>e41%>z5Y7dk$I39sq2bjzvMJ`-C^7m1%VGnCh9fNb-SbIMGT z*{<+&=Sof&g+e=e(*8(?#?dE=`x+a=Rlti-gX~oMA<+{4nPW##6bc;;AuFo+9VRLu z{AHcIeLpaR|nHPZGm}jwjQ)O8O>OWeFqU<0e-74sk5p+Z6M!Ut4 ziZ)aTv|U)Hd_lN}L*#k{LNGuHZ*PIn6MO>o=E9-t5Pop>=_7xp{`lXE3r=IrS&j>_xsXf!XZt(F z&NkdeWJgj@Hmqo}b}r!kn>kg$mJ-c+a(bD}@O~L&J4*bzuzO6qtH{RXk68lp=BAF7 zP2$?d+la4&>H^Z~jsWOxC!Y8np5P{1N>4hC%Vh#LlPz{P@55&|8{Fs|@ITm6k&b+{ zFLV#MS;dqa*EQ~IXllCb(3KB94EnqMrfWxz2`>jpIpQT+YZd~!_ZES3t6M14sKrN1LDrsJn zO}wA4%LBc)2k;)a579`B1*+Bht?H~&aEWo;RFo=v4%~;?2fAFNmsG{E=+BI zW1}`b@P5p0!Gbx{!(U-q*t@9CM>8BA%0)2@W~ZlF{@&aS_V|hYfsGZ}u((Mj0^E`& zG`NXfdCQ&Az0xML=;}GsL7SvGEQIEegjwWRjK&1X>`H)zWk$vk^*6%FA?*SAT-3}{ zP!I$BJ)I$zazW4ru&dx{fL+CdtGQJ9Le>gvo^o&AvU?7HErxFwXF88P(Xu_Y-$NsQ zhKcf-C(S#h^w$#;Uw(a1oj*tYNc~m)2`!0epAe(`7V{(93fSAfv8^ymw4*PxjI*F3 z0LfdFyQM|AB{08OasdSCA6rS(2xc@N?B$MT|k+@NV-!Q$_&$i=3Kr2LU2&4k(v_9-_&?>sXdC;tiF;Qod z6a1ppiOb-08q5rx3rC@jJtBi}#B@#LOcQV&a(hGzD!B?xI1#uZnaZxEtbFqgM;>A? zG{PSIV&iRWn7aMCwd|dgyB6O5aQh+lDjRs^Tz0TEs@HOyN$9nxs=EMn7c`L!`9err z+32*^Ptxmy9)A*0Jsb{KVo=V_NpYkn0Tyg@o!{+F_X-YgI*?U_bVqu6IuQ5LyL6f+ zlQy#VG0-i|y&Z{cLGt|uZsoVoTQS&`wYU8Sfh!8WvXVF4?gGTsaRWzS!CjL|sg95x z<11e9BiH@xQQePZ_ZHAtGTi}(+l~BDS0d_79KaN?I|2^e0S9PbvGS(AAgllF4iLFR zS&rn8QWAJ16-^Q6|403iCH^?%{sE~2H}!n_A5M7j*NOjp>YimiHhYlJA|hkGSCW6C zH|g)sPdxck=@fqo&Ws~MaP6X&Ya0(?9fTYQ*9ZN6{u})MKOz|8Gm#$Q_?xkixgzPI z3Ouw}OFCkFJyT=>p?;%R);qj%W`^KLZ}=GJhUW$M->y#}?r25o6InJ<4VBxP2^V@V zxROSGAF}lkRf&3`$rg+7^PHem&r**)1$Mq&J(7Cq&GWL8J?U57l*4{z_AMLxU2}st zcf%I-Stzv&)cQlD)V?VO!pGI|^B0b}Bv<323Tas`;4;^Q3KMiN13X3mz*!;tq_kAG z*#U;mVuxsS+3Z$e#YY4oQ6@P8K&9~&+H}>T`M{WJ)Lw?vC$Z@6oc$4&d-%ZHN7XyR zX#6f#G_izRHubyaTJVA%w`{%t&!R1ShJI#$r#a7EQgLYx&N3NN6SoWJ@D)ExqRt(h zI{%?jXDX-87{-Z)3k%DIv_G<3*6{Z=Y#-7tpgWOH%Oi(6fZ~zA)DXnh`kAU-+6{^>?J*2}zxh^D?>egzb=>+l<7!3;0f#N*{T}R`r z4%!d*7X%tKhXEkUv6ra%iAPotE)qJlxN58p8UCy|WCb7;qec3#8P0~H zm3eU(59ovQCv7#RXhk%q1zr(Nw4lc);DDsLXed0`-)b~E+9Os&2SU#@1WZ5-7bEGK z$GWLhm=dh3CG?-GuGT)S|6f0?=by$JFgAS}wSCa$z)?EXIa1a66GE;q46|5=`QSVH z1tdH!Fmx4tB0Hy?fA=MqGr?H^+(}@&Nr#vPq+k&IAtN&wbg)U`|1aak#4tTE!`wbR zWk}!6lHOD>G;M@gI^?;M`6gek9-SCBf}W2+4OP%<6(d9`5E8|Yq*@HZ1WQHJ(A1Dq zcfh0m@_qvgUWHW*SAS(C!gq+mgQDB}2_=uii;CH%rk3;XZnyT`X4Ae~EZTRYu^i2} z3g{m}Bz0Yh9vf~lqKdD}N_;MVFh|Vod#`y!+R(hFAQpb9dbGKQIj{48dtom`)I#!_ z-pr80gz&J=V56E|0X+>dl-9{oO98>Mq8pPD{ed-GG8^-Ur46&IRdJiOh}kALswbK| zcdheTdiWjiETeh+?GCzir8=oZ%9iG2iC_ z3X&--n3a|3t$M2t8j&`y{-{3JW~RCNe=|jIbdu4T;sw#dX2hoJbW-D4K56xCCp(sK zWr8}Nt;aVuf@RaUd(k3$d@5EN#dBrG*@DU&1D|!?CbT`d-47E1DWtz_0oC z$fo^b!syWxs>{o(#c%5-*VkUsK=qqDpoRN|z3?w0#S!=2$soJH!=2Iz{=N15R|cwU zG;wXBJE~6!XJdM(q|du+@6I!igacHjZ!mm3yTI0HI$F)mzFj>KfkABvlaDJ ziV_SSeea~CAzA3_OrBBr*+^lBD+;)>kSASpB1l4WUO^QtS{(-3SdvA~D_S^yn$rPi zeV13^x%&NgPE2Yz)KuRviJjWK{)Rhmy?NbTY$0AcM6cYwe$D1h>(<_-c67YcAQgy( zoo}qZYtzkZ?~=uX&#-Hrdiv?7KK|y%e|`A%j~)Md`e}9*Ykl(I$KU+)&(mN2Amz5< zns*4DFaP*2yo`OlLE6P+UN4CVrS`k1)lVWh1Sg1&r|f0k$1Wvgl@v5Lk_>uXq|GUH z`zGE1mU%&6)A(+t7zN$%*umH+(EVhL!XiEJI!B4Lzheh~uiG8XZYT09sWLnV9ZTu- zWwx7UsUqu1q=>O3B!yt;>llho5Je@LryMr?kLRxhnK-!PoqDMN5k6vjm|3e-DBcA` zL6^`Y=&*58tS4~vTM|J&42x? z_)B=6I6Hg?TUxEY!wRb9{`KK|0ael2S3F0U8yaFjXCr?We0dJ|zZ_0)YK|c)Z% z4AG0(A{3<6sG=g0%r5$(D-@{-!w1+lwpG2nvjcgT9^_Ksz3S>{6Y`qs_p0|qnvm}! z4FpJEI?9moAd59eXbJU0?|PR$)0>ud;mGqg3`ZS%{m7JEIr|({%q-Ug$tCKS5)H0Gn zfC@<-S7$9tT9))!lC&&oL(=i2?~~3a>4YRl5;75zl6=|OSZ%i6=KzXSbj_Xqu~trQ zzd23fj$i>4+{St8y&l5LjGCK>5KB1HoYKDduPb7cO2Iv!c4KE%5&0vB)DdalJazlJ z3F}6Es(zKf{}EY!cwb;dgh-SZ8Sr!pMr%E~!wn~bq48I6s-&q3YMMh;rCDB+JCsm-%a9^^5LWI5? ziwqX0s7HRkn+Ke|aJ-9?9!{##ZC$qE#+mgkQ% zlcg4TYf^Gp+pTxree<*GC$;K{8?Te6%xYbO+oZQnx$ThKwVtvQE;o{e z!Xskb{HM;>5zQvHQcYBA;yNSP72uZ=nxis1?t~@SDDqP?J5Cuajm=U}F*J(b-FMUK zZTGIb>2B3`+4TC$n;Kp&U?+8sFR$*Xgfuz(-2cs2?hjhEmna^OaYR-l7yNr$>Ts7C>n_SoHn4;#GeWdRWh7y*M50Qm42mK5~@WpN^lnU>W-I-cU7-^azc6I$xXffJn_+MgPWM{o`=uhe2W@>K;2e4 za@LA&Tdxz>F>mRxYt*ku8}Na z`1I?zL-@2*75VfH{L|OKQ+na2OYv#yJDej9hOdrBUX0J`@wbEVx90t_BqGfwI`$-d zn&_Iw?iLvvHadJIW$>kR85?^`F+m%+Hc*_19#V~FvoA}M(B(caH#I5UDCqTQ;icE3 zXOL}VokuUAKakMX>CL4qZgbpjg9XF)4de$Bp3zJZ6r!f1VUV2L%jKpm=XEgb_ybR@ z{dnWC2E%Pz2d^q#zMS2#MLoaczVEx|-aKu=)AN>ljvaW6^||-siV@#_mXX+068=Cv ztCoB=1(`j{k`?RKv$vw^9{xLAX&~(&-@-%{fFdKfa#&2jmVy#yKx9>lr69u5h1qtw zlbA4NM?ytWScc#cjpIc}`<-IXQuR7%vATGmZb{q9{<`4Z?eEHIkafpZQD?)`c;r;j zBk=)tw;-qJkSqr5i5tOAePuwjB#SUmE-9jmvf26wZ4_blYn6VzsXM!eQBHDUk zgzWQY(2-^ZtajuoAT2}(lN2s7y#d)EvO!_M;sVzv(UCavJ7grCIs$ItKEcmDW^GiQazUE0!e>6rP02VE_jW?#E#?&CME z-aB{Ek{0^jFlYAcISU)6FIX^r`hv!5u5Q9k$>_6i5cWG-@`NmAug>X3zNOoyNAFw+ z#>nLXA4O)W-%Hnn@YN%wEly;lW%tbQ(S7>#4Yv*J+k5muc_UkCnPgeBtzCTOdEj2M zbmElr*g^Dv6A;(U6J~{Mk_~9E`Q7~4*@5c1YgT29_g~u3THasXFnD1770KNP3=Yw+U}V6%+J{x1!zyQlhDjhgr`}<*noYPbvK<}* z93nhyGQ!H$b>G9~Cp%B*n5nVR%AdM}O0f zL^EZiTuP1PUw$gS!j~wnt6ZYK%Ifb{jbhrZqnEM)>h>+Hjh#~8$!1D58(GbYbJere z>Oo#7KMxL?pnM2^QJ8b!-az;YUy5GY@CQM4(BwkrXEJ{OGsLmM=?Zl(fzuhm=~6_d z*U3h5_kdLZZp4J#99%#})QPfCc0qSVO*^LIPZl&v3)zds>?L(@F}qb=tFC1W#Sg_# z!ztkme4iWM6y5^429Y6c0Io=mFdE`aFI0-n+%~7zm&Lt4j$Vht-~ck;dfgf176aeV zWR?LzY_po=<@(>lTI5B&6do-R#i~2DStr_C=3Oz{GSMrayy5mMCfCnazrdJ0Rzp60 z3n4F<5Q4K=A?V{;7Z7LSdcQjwJwt(ml0Clfh(UKYEz{Z&=+fK1TYVd5xJ^DLHsT(l z8FI*k%qGcfGA_rRDNE|~x<>E+4(Q_5=T~A3 zAOpg>2L>dK0bom-3im?94Y4k!ZVsZ(dROlIG1ynV|C*6og4W%>Ch5B%+!0|%b_{FBpP zvR6N%XC;bb#Em*aYI6#R-s;UpuzDwwQB0ECWs~#@s%&*eyEEVvolZ%gCZ$Kbk7SdP zcF?IHKtCfRjWD<}O35b@EbZM_QJA=K#U!1A`J!zmx|4_~RgPMEKaLRhLgNZN`#m zA$-Ku4=%su!8SGc;#)y|-AxPcP)|;rd)eeEORkn$R_=NFz7s5E-1z>FuWr3leel|8 zlbbKEn7b6zBn-ys(7q_30~G%-1e0{|YYFM1L_VYVLKrs#EAuiy7O90|NWDWGBY7rX z)bSpqZVBJr*FjArb^C-;Qw@Gwp_Ge~Qky3uACfme!>NPTv5ozI#vLiGyxbqy+R3QbV)gdA-H*+ypFHQXk zAUj?pj6y!$WMQ^&wQ!xVR`_>l@|6wO&X}`c!R(3UHC0AaR(4*u;Uf%QFEZ1577rR6 z8fu_yTe9MOiAkwx>A}Jtz5DhXSYFjIWA?IDiR*5Cs3Gn6*C72o*(G)jqnHu55W3yLM& zgh6jMN=T?58uc5@psr(Dmjt3%`l6^azM?lQ|0x*DyCBI?!-`(ey~%pc{Z*Lvg3k8R-0*1TY(K5FW0Rkpi+}AeGDkMKG(~r!(vPbuUJ?GXRUoxymR({dI zF~!-FSbgu5g2dXTv*hPl&v}Oq%~Rhx^sC5t2wT=CNg_*=%W< z5-HS0++!1Wc#+dGN;+uIefbTBva0tJCnENT{u`cD&AZ|Rr6Z~TCw(uzLA zuN*T_{ZCo>=pmuelf*P``+$CNVoRYflk!6=o z?KtzqL5ICCnAwmf{>Ge76uaxVREYvwFuMN<9HTxe}`AA4-b zqJ`Ogi+vS=X;XW*%pRwTd;0a3{{GU2o$7PyTazYru+%Fqzvn^72>g?Q2mxEUPbe9= zb*P~;INiukM4_mFADk{73fYke%!PTQDlBmPSOQ#gB%dZ zyaUith7WZsiW@i^86pSgf`h+=b8<&-k6|*n@?894_^w5Bm+6`*Qu2WyI!&_O>D%2W%`}E^?tvYq;#?7ES z_!N~y{WZ|>fjEl{fCX#?5HBdhBAT;+K#$VQa~8%&KJhG$1)tE`ykiUj$?-tM#TZ$5 zM=wrBNh5if8p9{0O{nzY-HhpV0g)zv&xf(2AHjozZdSv|u9%{Z!`~U7ki;Z-B4Afw z*O#C|qVW6*?v+jppr!CjJQH;M+M)uT&J@*6CM7hvxuz43}88foM578))Gxy}YhL3*}_Kn6*9 zU{76|H9yc&+*>_6qj_0sR%%{)k3RCUCsw&G+B=7BoZ$&RS3+VSdnD}njS2d{+qk~IoMfF9$i5x;^D0In&W65uk@N!ckOoe!~>*o%U0TNj|^F}o*>n`t%8 zpFO+1hJapxYUBs>Rh!zbeio@(yMxuUschrt-dk>RZQ30?p#G@7qW*=|u)!!?n}D)4 ztb@FIPsv}v*FcD_86JzEw>zCFK*Z96D|sxE-4rsR63hh5uK2vr&ShwxEBI3An(=ku zI3j>pWRUQM#M1|Fq^|Yj`d~%*DCshbxw)abW7o_3_rH8(KYFQWz;E|Xv;)_sgf%z1 zZrzcy_QXf+?H`>!2d^i(ieUGH*!?6S6bb+Z4-R*?!(mEEmJ#MNR@O0QO>#b^I++fI*=ktuXy?KpK}-NmykmQB|K7PlSE-)DUN?%SX14jgyi ze2eSB#}dP>9qOkn^}MvFqw2&rUmTO3#mp#n7nILHM;jZ;F?j(u=hy4KEG^BOk)GhQ z1wtmz=sNUBGX(5DZ!-GqBuC^0PpH#o$i;-Vtq1`V!@@Kp%m~`f5E0a2Bc7TYQ903N z2k?n|8i$R|xZGk4Eu3ECQhGnR;MEtAvK-oZ$18BDUuzzA)fMg~H%@VOY}i~q@$jqE zVW;C}`J`%w9fXXicAlFQ9)wq(;jb)ce}Zm8#{~I<^JZws=+M;O2ei+^9{DNtGGzm7 z8q+?r1IFwd6sPte;T1{Cn!UswI_hN)nZ}#yCR|k2v#@vHIg53tZ_Zl0&)%gL$P_B- zk~2|Y%fpbU{MI7MB#`2yCLJu8p& z=tZx{9S_WCzT%0)|Gaq1jIwD(1;gi$`o~x5nP2AJQzch!o!6$GId^jO)k6!)rxeY; zzxK1r@u-Y5RI^!Z=pmN6IWw_7D@9$YKBR6`n+i%x3)oiH3NEoCHCUhJzg_+0CG}Z# zi>4Lmo`OV920~Z1O-N31>CmR$@38C1qP4sHN@|Kt5R!d%#qKicq-3N|`Vr;A%7{C} z0oh=+8dXCFM6a6?x6h55QMW{~pgyh$y5pI&Y}aEm)WtL3&YiAgPS~`o`R&`4eS7O) zdGB)3HnciNMcqjFZ!PNI$3DQ4*&E@%sgw2rZ?Y20FrFmd2Je}C23&&BcqWH>`7Hz& zkB-a=nlQr;0B4#DXhJw&(EwPX5FjxOD2+B49HQVrwYDP?rvvAJuTLutMYrbPW&{wH zke0a63x(b?6` zdFizyr{tCG?>w~g-c6C2H|mft1P<2_LRl@!+c9(CW0r*C<}&{*f%%p^_uz zLYB=o$!Y_rn_#n>QS}s?Paz%lgVV8Y?EXXLNYK}hOi|9Lf8>#B*n>WCs z9XsXM9=~~2<;HXo61I+S5i*K=A*?wW$b^4m@02$=6CNCe|8RtE59~T0V)2!zlw|j& zX$W2`Q~}84wWs^NHnb9OT1K_Zbgpr3K-o}KFoIK-e9kzG3n_rRn~qj=wOve-P<{x) zG;kJ&1x~NPYojcGuJsw?{qyA|edX3A9T9-DeB5&O>PI!E8IOz}YW)t}ropw3qL$>)Rz?C1;H@mS` z#}QAz1*e?UOdB#3d{&!V!y!8x4*Xbhb28JMIEzWO*wWqZG?eD2qf%+W88qJk%EC)- zLAohG(uWYi`uZ4sI+OTI@PUa(>idO5kB_zPFbZW>C%1~Sufb5IyX zcQ&=8Pta%SH|SgRy}Cu$-F}ZphOg2c$n-PHu_n+z(LkZQN@oG>hI^<*W@|V&nFh)> z@$6Y2T-Lhg!?q8Mr@+i@`_DvbaVS9v9LfHg|KO-LaWOTE7g@6=T!wWZ&}Ug<*#$pD zA+o&&FP(fZ^ z!KjuzinwwFhf1)Rian_xyU@qn&zigq+fDYN3OC}=Or|2(6y!|EQG-fOPRL`=2#DPLPzd$SLv$Rf=Q4Y09};9zsiqN(RR+7QvfCmD zprQ1tmb$g`*7aVsv}AVC@>LaA%v;-M>Y7=`eMlV`E6z|GCK=b*`kk}R*e#|knT&0G z{^Ui*HqmtP;sI8%bW*dCkSrUDt6{$ykybaJn&SzU2v|9CBw{WyBUl&;-8lzVKdQR_a=WXo0;n$$=(v{;vpl|MwT0?4UQ%Z~>%B$_a z7Y`DV539qjz1fJ1Pi|=Ih{*3$&YMLvp0U1nM+DNjRxSsjKTF7^bt)(w#$J4JV!X>v|bi2P2~l3p^haK!zZk-C8+>Kht{jcI9UM9;Q{5sh-BtSmCRC0f={CVK$xD#NF# ztSo25i0GJ>5o!*qdF3R!r8DRAxhm6U<6yKIg(fdmcUzPZ18zViHjYCeFP=M@!r_M4 zI$7X}$OLvao$VhIhIu^Eh|YYNZf0<`wtMbxH;&wS&4Gyv7K~jps`t4~6COL`*1Pt< z_4Q-M@Xpe0qh6YQ$^)a%z2uBl1IxqNq3U_VAAQNJf5a;@7aDw1{G`k&?){eV7p^`d6iJ zl8S*2w=Xllq{@48efT)*VP%rArDQLO;m&#(i1I{g(IJqM zEX)K38|>ypfei8rQ{W^X=bzcS;J-(~j2qWv4ZL#9k`>c09uO`M z(~8q)HNHN1_~@atPkSqN<@MY5|L)2z#WYSy3pHM;PhNh(B%p5i)ZU+=v_|ggxi|hY z!#iMbypK!HZ;QyT*|W}>pYESO@7!5jO91B@s3Q+D&6cu%C{e8#|GovLRcHS#vahnR z_pb<|^csrjzyPGL}=j9jIDzW_8^r zkaOb%PUfoqNb|$@zXWwesgV%y;Z6lq>*8^X)A$3tmR}pMq41U$pX{n*pZ@*xFaGiE zXJ7n7y{zs2htsXv>B2R~$gG`s?zsBl{fAbM9b6sAs-wDkVPR>Wl&(oysnV-FD<^0RA|?X!zqqi}0}H#9TI?lsCM+$o zI1_t;PTk1GLr|O?S}sD>;-wPOi72q*^--8C2xo{_#y$W)MxM?)#!JRmfzcxaXxjCX zs2732$k72*Q>!}`{NXS9`0@Hz|NQMdgPCYfx zxWL$pn&%INCX5RKANlA!FecQibVA5@l-9ZY_=9SzdI#1SG1nQ)DJ(&6CzrWSmr`EF z>qMAKv1Nn{OK6=XyyZ2&4gYbSNY18(z&VU)3#~502fwhnPV$ySc$rqU^_^$^qlTqF z{lVM&++)W2p8He#sx3GAM~w2{eAkv+0>g&}ZrLmseq($XY8oCAWncYGghOM-gp7B; zdj7jmQ&Zme`}Td8H)KdIGGJLR+lJUHr5Ix5Ez-q}BODp^)#E4h35O??#|JC9)!vqj zv@@o*3>$WeG~PSDV7%fOKfZ4C)yQslW6z@L{@(8Zre zO+bjQW=dELA(Hwi&P8`->XC^}%#Ze2@eF*~h@=Svg8xC$zms_OsJ|8xy^$MNTSL9k zfUt}bpwH}#8bC%2-$EvxeD{poMos?p%;(?UwdudO|F-V=M82YJPBK6uLe7P2hE5(@ z(yw9aytde^OP4MgGjLEtf6<1Den`Um&#pm)8s9daFg96lnKUQVkK-%B?EK>4!}?|w zc>0gF+vhIHu89&A@Lj=a;vbQ-Fi4sxt#2Gx-MeXIPK4^{rez?U+Na;hiD{E3O&mOU zKvUD$K2j8!0^aDiQN~gdN_@bQ#~DUNSr_ELok- zRlOdmh!wCzVh7;4BZ{1i9$+`Bvrn98D+NVNy8{$r*Ikhri1k6Ahl~77h#r(+^RO!+ z6ld#-KYe=oz2~i*SU7R?x@&iCTQL8;^R{ij^rCSS^CzyH`>RQxzj29YPFwx(M1V?! zT#HuUdTO{6{U!DA<9K%p>59tcihqCg^_N43e);v6KUOqXt~ZQFjPH#jmc10sLcV-v zhR)%vVSVd?ZHFU)ZH`UZhS*Tc20Xv0ad2koDbMRb2tI^?ULKW+@y2ji=b%RE?gzMCRyN`QxOL?Czj804r+wa3z>|li%?&;>jCJoOz zK7cqtIPs^}|9^65TUJhR*1gov8GpIfIbrJm%DHV*a~@oZ{~pZwsp&kVPhsw(e{JyN>5-T#+LMZ6zO3w-vl-MeI;fLv6(O4Wx_Z0ZEl=7ti zy9>%vUq#fl!~gjI{H^5JSvS<7R>03X$JI>}T(vL92|=z2;_9FGlv}nY(a}Etzx&Ju z*#O*sAV^i#sEVB36F^N>EyoW}tzUJbHn=lcEfnARl${TA%8Xuu-td#)nwmM1U?~m8 z-_RPXzsNnc|C~bOVdK{O#h}*{F4!$_!ai^OR_l0LybT}hf+J$`;|cF8zQt4-3^r9o zV+NANaqch^oe-SpedENb+z~BQmy2u-`jeQ489>4NDM$iuYD%u^xt0``JSw~C6ZM=3kOO4h=}%*TwYyu!dYh1 zR8;kG3LMh3qoWeEg@JD>V zf8u`QaJh*7%{W*g`aU;dzo@M=4tXsvlmQpB?mNWDYCs7n*}Hzs8umlVe&D0zyML-Mtss={jbQ539Vpt!;HeDO+}R z|C}K|p&Xe|`z$wNUz80CunrYeC!(A30_oGnelU$~@nM4oPny{>HK(kw$d&C+FRzRC znYEy8&Z!eekFhz^vy005)D0dsX5!SDa~62dKd-zfN9jXJbROv4KGk`>dzVx%m^w*m zOWtdn-#mNvwE3qFjw@s6UI@>P8Q;ID>6G!+^T&^$U#&R2Cx+VpJN5%Jy;Qhz6NU`DL;9|_c}M}q>E1eKhT%IbEswjJ_>T@A1nUB|4RLc z|An0#5&wVlGa9n{uc_zT##9eF#Wp%^|MW$+@ri#}&YClAiB)`W9aBB{6zdqv+4Rq2 z(Qf}#`*!Y@7TJ_DaUd-_k`(M8L=wrL`xzNYU$ zSVhy5e=F}LuabWoS^R5rr&ibZ88~%r8;Xk%udK1HviuSGwJtir0Uuv4obIfb&T8y0 ztag+_CtEw>;X=~WSp#k~Xi7Y6In+`{^{D+&S?Ke9r@^RT!h`5cH*(y-FH9y`Gtm43pVA_VD{c)#>BnGLiMt} zbuXNy`04Kt$5!~pkEmNawEY%uuSq$$z|MoJ!Y{QABdsRQYwVwwpBdB~jx@UkQ7F_- z@Y(FXU_PARd0T?pgEF}xs0w*bdZSlyTKs7Fs1;Gc=v0Mo-hpO+7<+|+o}CpsOde0L zI#@f=-JlvCeRMF1BZ#G!z#2yfF<5~}rWbv=-@%&eFSyL?c_904+2ow!p0{w}eCHG# zk4$txxQ{CQnOzVpyOyrIdBL<<^Kc}AI@oSdZ?$}fv!l5bc*$sP?cbxrfBiVrb$IAr*HZ93}B^D`%psdFGYz@h2H z=PRC!sUO<1rA^#tOc51Fk0uJCA9!ltpNzk#mrXu$1krRVhmLCTTQ|_2mg+_YtyJ|h zTRNw4aL-tJB4#eRg%f29Z~zFA^^a7MuL_Uap#F}Ir69EKmAZ!1&Dk$XP9H4B`;UYi za?UcS&?Br4>Le;)g;DWvma!#SWbjwN;xdC*|Hk5+*zqKV)zv2^3VXYfjH`1*l6pd* z-hD3c9z!uHgzc=VKU4A`6p2rqU(JKj>9nLNR;MH2%k_AW1%>qMG@mmUb?+%i0_MTI z&9D%>;N1T>WsQs2fzGw2NDMqWc;#b>^Bk)7*yXn5#2m4MbdaQcaO61%f zIsA3O@ps88qirtL_;A5yEJ0}|vqFaI!EqNm^pfPUH`w84M_W6KPeUUzY$}o@>B&C4 z6CmaR3CxNZsQLexF|uvT7NxM`R7IW9F;(6+L*7B>GLiAg)x%w=A5fk~wU;Fohr2v( zi-W3$Lj3Zz@!CvHbwdc9wty3b#hny0GTGte@8)Ed#M`NSm^jb4Y4+BwRCL^!(`;D9 z(Pr^?TJ<4AQa54MxyT5Lq*F159O3ZffEg`l!jR|;k(=Yol}EMYDoz~=nhvGn-JS0T zN2dH?kQ%HT^g@p>%8KTb6_or`h-24bT~#~!E;;vQQF6QSuYcdL__8(oUPoH(kLS)r zv9uW-JA<2zclX1;wXN^j{X`Y~g*H(f?3jT0QMETsc@q&g_$eEUd^R~VGfT3$s9K?l z8o#QVofXIiYO*~VDt4l2Y1c{im?2LP`-_yLl8s)PU!gL**VLzJl-eKWo^JNB;5eFmTs^nMtTYi^KS^6{a=DY<7?4PIDmk zu1Y>xqzBOXC=LD2f*B64UqM+9$wRG=d;y=Uh}rO|xn?i*WfQmm6s$x{8mQ?#G-h zD6ove**=`B_IuoVz)_Tj`t!-eq(llw_X_Xb=X}C^X%(qD@7vC6tvzX_cO%O4?N;p_ z-rb4D5bEQE+`iw#t7}u%Amf^HeTN~2iz@KAf7rY)eT%<|yEmvuKp8L2TbH`gcM3;X zP-zEggAR|^3bwR5(LxL73>`kS8k6AsO;Q8aN7t=jf&|>WCM<|ks!@BrTBx(uv`+3g z^jurp-SVJIJMN#sR)qRs2T}$)?03t}9kTT<;hI>M?he1Ckh&F*z5f|}V;eTx&YfH}ZSEoAmf zAj0HIb=xXKZN3|*Xcm6~F62GNO0j)I0u^Gm@h@Qj9cCp&syI)b%t}$i&H~3(n&kAM z(5l7m^dgdoFS$gnF2BR8>K@d~ImujT9(XZrUy)J^THwHtK%3(T6Gv=n7QU6J5Vn1t z@n-Ydv(J{F5Ce~hGGp?yXpJ-EZBcVoqAgET~Zvr(RWGT(#@iW56T1c2RDJpiK8hxV_GzUw~EeDp&T5NwTa>a$l zWN~=8F?+}CUs=Zd;SbG*&v;XAHTrbiD3{!AtWtl#{E+u$L1F~>dT?Wr(}f%OY~nPc z&E=++=`sofSey#__t|aKN6+MHWTK^}Lj)v5ft^_W))q3VED^?w@q~ErZh7$9jt3Ye z7W5J7l&NyEWWhyF3B6BHwgk-_@$E$40*C5$S)6EGprHx5Ent@3PQIE9kDdYr4q^KEAU8yDp#y+tX@{{OeK&7^+=LGF^=3>%^iQE&o^AkfPE&hxH2OiE)k?PS>zbQ878pVq#+yXTY%^L8p4`N8Ff& zKqi<6j229~!jPqi8_ zHyCESfrNIk#(@(T?1)nIIF&UrWMp&mE=0V0qmqVApkpUW72@rJ%6WIigi~>O>?kOM zw%1C+j52fLU`chg6HLv5yjsXeClbWn#@^0`3(f7p1Pa)avY|^HGTcTtmS?%Cp%sE7 z?sT;vUxNjozFPKSK0=qN^?=s$f-gw6N4H;FH@ReFbY0%^#%}O=8bLorV z#j&?QR<6#j>nD!0eg?hb|Q;sDq!?=v#DUAvrH5Aln`ZJ_Z!zFSsMoUT&h;(ljEeU<^UNCuoOS#2##@`ja8Z8g_?*$_8`zQxOXk>^x!Ggdsbhwq5a7*71v>>t%+*i8UCNXy5^0=8F#erIIwr; zPN!P&VRAVwMS{0=Xa*s7He5L24N!gwv5yD5bC#jWNe<;Xiqvil1@ib@rg_pobt4`QvOO- zzg%m1g~)1CjZFCD8#+SQ&%bi9{4rLScr)zkQH^Di;>NBRo+B?(jU8zo3j&pHRFX&M z1}C}@tLRN2Jg~6o)hDq?=sN?003wGOu)7HQf@?*fnCFA%8Chb0v45WN9L`zLVN<1` zea+CB$PL*za{!K+((a3U#K4+t#J?sS(`~5 zU7D$+Y@))1uCFcZf($z{w_k2GUKX|8kkV|-7q>Qd#|pS=Dcc3Z8zZ#WaJf;U1*O$6 z6Q|n-+ra8UrDT_;*#B4C4H%AOpkTM*J$rV&F~MkBB)&FISt70xH!d&+n6|+K9nJDl zc~8gn^5PCKyO84GKRdr})Uw3JZ;71K$>Y^ZIlD%-#n0osb9>U|fxpofLV zAH&o<68q0~7# zrlA2eOQK~W;{k7$)2N0!EYUQV1>0PYqX&mX(O--ig(c%;{+6o?}eSeT<1fD>% zHj$yFWgtRqQ@uFrg9D9zKQit;J$T~hXVj%Tkg2mcN?EHXI|MCjUEZTdP{MfZ)+dPj zy=LKC)_`Vm7AsO8C7{ZhrsQPLvM#ho<<>q`&%6cm|D;!$K` zuaQ(Ui4PdEs&Q_dEvxCNZ8WPK`pOrgoe|k6DP)q(iyUfh7W?py<{)>A^)!#X{^(@55`q%#|9(ICL**W7NG$aH1;F@L|`?a>1`R&1q} zsOW%gM`NcfO8{k!0s(hg7A*6Ga-><)lwk zM_XslX4Vo5uD)p41Ox8vj`p!bAKq$QK{nDLyav2&1$SG_J+}KCIk=O(}Gf%0@k#-^lp``}#I?6w) zL)HY6Cj!XvB_k2l&@vW}B@R4%ekjhy7kcPve;UVLC^sbrO*e9G`6bQH!Xghf6)kvwmNC_0dL*Vih1G;#NtZG*uu|-oSS6ixqY6K~Rv5gnegkIFU0SJCLGZY+rc}xQtMPAn^)jsW z#*Cx;_kP&^5BcCT)2};s+NPCT_PFJ{wx){$xH6WVc}iuh-x}-3!fJf~`Gk+Y&aRkR z7E--$KK0a_L_cUxqF*5*_UASZD)nZENNm$ZQGPC6Tk_{yw zVM$50Gq=cDL_`ds{9S^Krdo&RI-w6vPRaj5OK?o_|A?BiI}YdmPl##UBhIXmuRVdD z(9=XuT00^xCBf1RoS*SnTz1)F&j?}dT8SlC62#`#Q<7f-l9rSd`b3ehsHw&0#mOqv z?kptB{(rt|#2L}D;XhC}oFs2(_EWE)oV>GgO!}e+-Ps|L@#TLeF>F}$1d-F(hDARQ z)26i!vQ2;|cRP$2n_MRy7Bi@3hA(;k8wnwnG2GAcH9Uc?Fc^Y<&PmXu*Wi^uh;ME# z_TdqHNZ{ecbHeKMVPBh@jo6AK8%fU&VUh8*@W7$xNo;J{JSBt?vv+g3@|S{L*{Ewu ziAmi98=@8```%pJF{-W#3Ca_VZ;xNGc>R)>{)EuR=Nry|GAx(h>KNlhI`7M<({exU z!+VKzM4y~+Vv&`gDecgUx%5rOjJ3p!HT3bJ3EOa#!)C*LJtE*nzNEY7e1Cqrm~1-d z9(Q&uEwZ7f<80Z!(#R79qNsJ(MXS$<&KZ9F?SK7b+5{+29R4x#jlUY-{{Gly{m;rR z`^V=Wf0d0{BFbT*TK7Tt+lm!gMcFZwX%U_b*^-rMZkLpz4EXsnlx`iVDcnc;92O-j z5z~a@aD5@#0Ad4aR^LK}@>?(QT9`)T8BSg7?S=lmX9nNxBp1=J08wx-|0M{5ap_@x%1P@%4bN zczp^EoGM)@+0FT5epE^z$%!&{KE$5+0|*OL{q6^&eay0^^%uQ%FySEFXgq4{4&4f=5@dCEjh^w$xEJZ&J6E56=DC+&X!;3D#Cyj+HNG>B*R>9M=RNUPY6`_z+F-c` zSn^1xHTHH{OkOfQsImin8~?8^)UKS>i7IBPpK+tIg|5DUS$U+>8)J4Gc~Ko!(~oL% zV=n*y9H}%T6I*632T_pmbjQt0FHbmA3q>MZL)JQeVEjSlPO~>#hN6`;Z)(lQeO|15E2Sv6JLI1ML`Guv|1} zk3B;g?-|nEUBiPvJD)Cl26JXT_6*Bs_uMm3Q!a5xY)kbPg%{qs16T?oYST-1dp$wP zfi4R!J9ZCNhYQg@B)w+HiVwXnC9BU{mAHjPJ71(mf;s)dTcj}u^+Wqk8&E3I{AW&k5Vle+W(CLO*3&8r^05nTVw}C zC!`FBAl$>&bW3)Y6wrJ=haB*@(S)z_oSze@nC z#Bk;hRbJLS^~oiV&k-X<%dN(z`;b-rsajiP6nr9dcYFW8SmuvBt0H8qFgAWVu(>1|tE-=8#?hd){lyfXR?_ z>?T~gUB1DXC4BYh#E0_}wPw3gI;K+R$A+a44MTqXn{X_9``TwdRNV5*ds{ZnpL*Nc zJD>J;%(@4qF5fqPdeHdkYLWK&gd^YN_L>^WKlbfw`<{3U{KHrzYQswiegU;_Pf)ue zMQxK3ptk&HqJ%X6bCcSYNotdK5jG%3F>OGMa+pWydK%8O0x^nUD^QvbE0E92rAC>E z9TAE^;tAvm&|Hpxo*1PrH5cw4Prd0VZ-Ad!jF;0madRBVFpWd?-!tLsjHG8GN!zd3 z{eet~F4~nzK7<@_vX0Iklj&nk1Cw-R4Qt+|NQ-Dx68F1er2%|{nK-Y-kY>w)&sw~?bpq6oW0EX@O{pQe#xf3 zK4@#6Em4WwU^c2+;CO=sTah|hHb_W;gIhd1n3;(ULnitVqs)KuydTYtCTV`?d(KnE zJbM_BsMtxqH^dgh!hZ3`*B{<6^}eZ(zW%`%7o&sBO2s91D(}8^^T*4FwN(_q{rH0q zPml*q8A-N1c^rPQUIA?HAZ&}V5}k5{?e0%XDc5eY)Z&TPi8sX9O1ACIex=C~n5H}e zIAddirUfaQnqv@6c?@YjN>30)O;M+ll&An@*+iq@Oqt20`*;*ZE=!F9E`@I$qaaV5 zxfG#p(n;kh{^C)nbA`Oxj5W}2Al6`&*YLknZ=s*FESPUmm0l;lg?@)*f#0Gk6{)uj z$Eb^V#V?qn9RDe?;!cU;PR7i|e=$c{Z?3p=6sn53lQI7kjRMS9nwZZ?V&3ev3Cx?l zHpSRG8S^I6fHNL}=fNWY^YkSkymsQu9D{I%G-_H+Vji71Ge^NWS7FX$lC&T(N_h$= zJPMt2P0VBx$Vl($mBI;8_&T1;J`*R>AfkIFRiJ*Z8Owidm3hMSoJ-6RsX|JhQ9w5T*0Yo=wSX$E@V`HNW|s z&v%k>kpzhVK<5YkXUE+ouj%--wH5tHo7*|yWAeUb7q5DMV%6XBs#T?v0>F&L$E*G< z@yxBP&r~InT6Z+D?rh5cwV=^GN|DM=-Itza&COBL1K1Eto7-b}wUzYdi7=4{f%(XG1QZHnqN2Wn}is&aBAY-_KnV znC83q*3Rrm%(j*_+|0(f%@5NHhLhW$o`K0)GJ^QbaVq)v;LIQrB!j{9tSlq}W_i+) zrj{N^^THbauM-9>dA=O#N2$={mNYfvWCrE3X;TM8DkH7SJ2NTIO3pZyQHg!BdKG^! z#$k6O+)_r6QtGf%*8PE?-Htp(Po__GXHXGVH*(J0W+~P#)5ON>B=MJ$?o*?jokUp3 z2UPOJ#+?`(O3qL29w6$B4`oW2XSzLrL^xRlGtoN*DU2DJn5U9~HpysD>&XlRY$M>R zcIqQqod0#6iCKvgr@OCPtZ3R9Jm-4j0mPBIhK!O^rce^tnCt;{95AX&BOA+|X%;k} zbaSZDrFwLMeh^N-&!y=S>IR`)pX7mK$4P0GiR3Ky^L09OOltcJP27P=36Eh>h|(O! z`H7fXn}`~Ziuab9===b|od$V1ht{r|+L6PkBmqP1Zb{h>?$ogdsY=aEMHJNK(d~&@ zjl`^?_z2IG&WHb-rsqLcWpa8rXKcEhx_d}YoZm_jHttJ=+8!3=2uQA2!l)BVjKlIQ zafBjnM&ZPc?>Gd9ss`v0g86+9%xSP|`#0ukejHH1<|UBsa3Ukc0dIr@t#TCwRrHjE zt}|mLWYUrtCqx6K&CG69K$m&Swotiljxp`aAKQwEA@LG0TRm6B3SK(EEz?pE?0?igPLY5%Ejx8l;UtuvU|N@yEPj#vtnkj zI_!!wUqTNqRPRFd1=E$8nje+gfG0Plml2>MF}Bb|iwkMy=y*`a#Xw1*t^P0yCNACT4#tNL}8}r*=Uw>En>(9OZp}g)Gj`rQU5uE|@cfY)A zm;9x%W7EBx*P9kN`lY19s;YqZqTJ&v%S5_SIArsMl*-<4rw23D%xn}MkkCp=@;Xbh zQQ{|%4O857Hz&R&jN2~JoutmhVJh^j!`#i8(gjUEOolp6lLsl!gjNNMQ69E%OWbOm zebJQ*E@|C<-%mrV3;y}>H(!6e;}L;447$3{n6-L^xZ>E=zrTOuW--EenJ^GCi`|un6yT5>oVc}Y%sQFhxCld;b%Cm#A)i1mJ*+rJh-i3vw-VCG>AZ5!V zH^}%Z$THRm=apA24UKLo?P~0HwIZ23W;!G@621sXhR58^1BP4`lZ%MMbPn=qog}SF z;e-}Do_+R(gAZIeXUD?&g>S5W_Weya{`S^1=d$%HmbY!+_RQ}cwwL4=X5Dr3>RSel zpD?lM`QKc(Gv8YByL*0jK7oL0l!8=GsC&1d9g*{UR?ZNYl%Cj zELvSbL5U|otHXCh?u|1SaEN(JLQO3tCv2X$`gf`bH8C51H9FU17WzyrDG$|1^aKI1 zGslwFZCH5S&6i%d^3IY8znXII?%A^z&GWkAQ>TC3`oPu;t{I!|xm-?fo;!Q`{HBTF zikq)EV`b2qxomOk!aky}Nxvc2U330STGK>)V`hP3MN&&+Uu;O64woG%U5KaUp{^m$ z>G-iN@%S73AeZ0oDo86Tz-PQbb=gO?Aj!LnQIpI$>t^>utUxW~?$E9VOCT2wogV2% zKC}~2-n-+L-`<4C^T(gQ`tchtJ$}o=C(o&WNmvg4O`Ub!BL&v*wqK$82h1X|@mIg( zx<`#;Cfsp=R?v*^`rV*P0eNq{?t(0&n#m{&fWlcgBj(L7C_r?opddRfvnb7iovk-J zFrp@8J7H8Gd1lU2=JH?5+$t-GR0oIXQ3@RBO4>g8FdGcdTn$26c|cWbtypK0u&1O1?iAr8jSO_ zgvufRG)`2W%tKA;vlEwHJm)X2xZ-HrWB2d=UHc!ASX((qEdAw8qCk93ivGnvh>6`Y zY@rut0ehL?(Mru_@e61wmp_P^3B*##bDqerO%rKoM4agf2E0f!@+Nf0f0&=?K__jP z)DUpPK+518-q>m^ySVjt_io?bu>czYBP>4Xs51`Tb`xRnsRIXI-q1m%Hi0?XVa|mX z2;tkFpDQwuX=Fz&**pnq85;qo6UX(OswHboi>14g?sQnOnT~8mxT*NGzgd%*LtKS1 zAM!R^Wh)#$?-(c~_o$foVcW;Qh)j5KmhmBK;Fbx;Kff^Asj(Dc{ z7$#@R>4tDlWKv{m>yI!v2s@ zt{OIF$iF}R^k3o%nicIvQS}e8BXpW1`bvt+uVw_&(!9tC6ma(m#S4w;O<|9Vr>4FE zB*}ixLh8Y8np$WSuDb5qww-rBxr-74+sl7_GvfR(C!YMn{#TTD=NN*Or!UUi|vyLVvpY z(ZAgBY{&cCp8xWv_h0*F`)$TgsDJ;}i#xYHs7^ljp&92-J?D;f8*ZO<|6R9jZa#bb z;pcC9p}-n?7`EjMQ~{q%-WG8wY)j~8c-nJ7ORD8xn(s%eK(E8=^Jn8@Qh<`h1wJp- zvR5%xbPy#egI)G92{oMxQ4+892u#z$H+S$z#zV4(VCg$C^_`^?TD5(J8*> zx1^gM?lDniSdYkMa+b@wM=#s+Q!@m1C1X#wz7%uRC)lUeYV7IOmtu|zW}@fW%l|Qa zHfEflP5l_Y3B&=HBPj1g~UbnDXICaN{v(4eH@!LHJ??faS|T;)VeyyS)CfE z$GW!QD~hP9Z0kYyg}A?$>Hg2e6Y#lX3}H`= zVeH||DjtJ)N`d5pW9~Kfh;qa&&;uI3LH7sn{k6s(%O<{$s0iJ+v?h6z;~I&Iir`ta zoxwO}e1qnQ=V^|X`Q~bKQ>z6H>UoY6%_r2I<~mcoI?OSMBX|sDxy6hJprUp+&Z=jQ z;8DO?z%FxEQHlaR$GPx-FwTWPHx6@_IiD4&acX+ZhjhLtKwYa!OsbhdDH;h>+f5_MvuFfq*?i_rGnjOe5r%RM2i$80UrsW@ zQ0(~ebEFrVIt$do9Kbo|96C8C^#wEM0BeEgKw2%qIVnwQjsdM^j)667G1p;=ZgLi+ z)y#E>iGSl+m`p?KF!oUYCv$`z{EmJ~=I_z{1iwEG`H)$6_XCDWKB`#`9suTLwE_Gv z#k{X><@@MxWRY2h@jS~%oM+gncOL+zWtI>8COx4(jS(Qj!6c@*OA=G-Op{s?#eDEY zaZ<)Gh9%6@BF+G{+IWPNCh0lCP}GO!5mHjxbA+M4;SmbE&w;4La{#px>o5~IfJt)% zq84*!=Q>gpH)lcA;xRCTMdmD06z4IRTD%T1@gF>k)K?7Hx1wK^IYM{rQ@1Ab-ApYL z`((k=*{D*9&PEXx7co^5r-g8z^d(Vo^6|f84fs#3XKLYjro}pQhN;d(W?YgiSo|hG z(HFl2TBNj@IR<@cc?^7M6WxtcRgdkhqz z3gZ|gbtsNoa6ker+-%{Fch0_K=p`*JmkhgZx{!KBt5!{&Gt~0U6|23|Crz5}y>iu% zx~5-vSJ21o*qfOD(_P==cDkLu|M(so-iRXO8NsgaxpnB0ajT+e+}Pzc6VE!|+dQ;? zVl_*xKVnavFBLYT%L_W|nkT4TJkf z^UI2ACeJX=>RhgM(K(^hE=wzllw@0*>`l*ht{JmfinV@V^8%wq(xAq)+#;_XRZ=}g zLZXA10nOV~B%$Czk&^F^!bhw4_vUBw)TVQRunJUP_daiWmy4=oobu&*Y~)Wy+C2_b zcA2749vRWtKYK#fNcXgHky9J`heij-q|Lme%S;EAMa$Nnxi}JytU3F<@m(g0nO=pN z?y&BY(lFO>qtD@yg&dFrR$vS*;`dt3M&1=TiV{W35NwN!QiZjwolUPhHg#l7bWfi$ zWx8iVp7Byqb!=71!ir()J3pL0di3c(h(NC~)AiaFCB$#ZH#*EW`aMnrB%H!)r8ipl zdNq?qoo`IBw9@6>9fybYT3o!Uy0ogc%d0IPl&q}QXVecg{%XEC`95^F(y`l)Hs;Jy z7pihjx+h(z>1ukWmhXvr8c+*+FDhgcbD+=|uT`&}j@73412m|mb0=NrU{tKJ4%Y@Z zv_>LD{U*%V&}AalRp(?@Oic@yHh?)s8KKl{OwOk{I7uE1 zI%UP0Ul1*5C{PNL=%1df1PH#U#-C_+Iw(DO1j1>xb|c9-J$a4{wzM%FwH0uT#EGf`?gGaw$3h2kBT&t5dS^(rZ=WD)KUZ^&N;9SD z#}OmXxUH?ZUqw-$bAD`E)UfRO(`S1pJ8A5`$m1L(%|OkFoW?Y#Y{#)t4X0vJF%t3G zMA)%!A844a{+2%`-4^LHQhtj6$73~sJ;U%IX%f1tJK#$d&NQ1tP-=*IDv9O>3P22y zO-nt@EfJiR4YxWy1;%^*#r4f<`Hh=Axu1;?$m%!yGUi|(pC)BUWsT`N_u-^|?PFUU z5ydmMMafEe(-N^(5SELnb9*?HjwatGN6XZlACJ8KuOHug?}zs1AKM}3@80?QU2CddiMr#Sqc12G6xK`XWQ9gY6 z{Ut*;HHlnvG-U@?k|_;rMAbgDlagIN)LT+fQZ&P(jcxHn;x@Fnp*BF15iGz9>w zg!3{pQ!6daAKOwI(Y#|@w2~CMJG(S=3ww2qdL@$cI9_~0=!;dsUBA6y`)=yjd1Tw< z!_z+a@RRp9Z`t+cL)R|Yxv=jqzFqm!`-<(#C$g;>J8wVu@ub2MR;^kjX14>3*vZg(56q6`xP>*h-b+uBWHFM!kt2 zODI4G?BbgNhj2U$w5qe(XLRWDn-{hl+uZixSsm>q#${sFQ00gAkhoFwdcF4z9Z}%& zQsWj?QD-7T1kb!z$;r?%G8M#!B>z}==B-Ho8P^glwYtW(Si9q|(+LT#HM{2VNrfcF zKx4|2QtD*qSHfj{@xy}Whn#!g%)MXy`PoaaAJ|{s+p)QFlbreI10Nr)D4P?nc=@4w zo`^)`J7;yYhhUFg2HQAH*>%)83iFH__bVS`o>r12^cDm9sOLRWJ>+pM3VCSglnHsr zJL3grnj%DMYWsd=N5@v+4 z`NL+Cdkyt|#8EA?S~-_eC{?|;8AlGzol>!);NK$C>m2#gc`twR(+fAez0?SA-t+L? zXa8=_^xueoqEN=gPh>Z{J>qQ9JZsKJuf8wvi|>osZ$AF;&Z)PIUHZxrtSy9)%79eo zTU(+tt}IQHKd?--?8BL|7$m1xMO9U0tf*HxY(@>8sH~{66zNrItEtZPmsRyDilAnI zQ2JC9m#NSh)zxoIM`iq2%*!2wI}h_fBSOk)t)2QB9|Jl@1~Ey+0fKq5P{Kj*DRqd% zU-2*!yl+`~&EVN{cMe#z@E7anUUYi?gc+wc4>)he=pwP@1FJf5)dxpbHLKQ7ln16Q z${$y_VnF}0NXz(fXBUnstc%9_l^53xHw<~!AB?&3;f}lI868n^-Jy=HL|+Y6uujpv<+Q01axI4amg>;^m0lI; z=$ji%&p{_O7dn#^;}ntCf)oK1OzDhsF1e@Iq+s;W$Nef4DruxC>=BbxWNdq>d*pg3tgC~ME!aT1=j58iHpHP#lIRzHgEaFFcLb8g}Wa7qW zvG$?1{M7G_mrReLNS#}tELH4dCG+=eQl+dCA0K}kzj=*Sqx(otu!+eX2aew+*>(uK zght>rc7hhNmEMSd{||8S|KxXizIPpF`X=qHP29kjnb`Z=lepOnkK~XPZm=g;nt>zw zPe{_Pm?TD8FF~cW#<#rF8jo~-^uJ8EC zql|%eh6X{{Gr)#?Iz1y#p=ab4nu9!xephbg`}6sFG5>T4!&S$>#!uJq{dEklV0ab7 z>lp4}$XqJF%GZbZci&<7F0Dm=kFVe7>ks()L%#lqpZ_yof6DM%zVjW!?+GdndS21^ zI*qTLe9io$`1no+-^pf}!!VcchZyG3N|k)RF5v4zzAobHFkhE2Eaf{9zAoeIa=z}x z*A;x-o3AVRx{9x(eBFny`|@>+udDgGhOg^*R{a?EXE=~yBf}vKhcO(*a16t73|TKJ ztdW#vzB7g4REEqiPaqR81m{s!60#HHkE; zCXq(f;DaVe8dZ}>qiPaqR81mY)g+QN4c(v#l1A0wi6clFRg*}gY7%KwO(Kn|Nu*IV zi8QJvkw(=d(x{q58dZ}>qiPaqR81m{s!60#HHkE;hI}@Hq)|1AG^!?%M%5(JsG39? zRg*}rHHkE;CXq(fB+{swL>g6-NTX^JX;h6hswPOIYJxPXCP<@dtWh;V8dVddQ8hst zRTHF9H9;Cx6Qof!K^j$Kjj9RKsG1;+stMAlnjnpe+G-3*qiTXQswPOIYOGN;K^j$K zjjFLm)mWoytWh=AsG1;+stMAlnjnp;3DT&VAdRZAM%4sqR85dZ)dXo&O^`;_1Zh-F zkVe%6X;e*+M%4sqR85dZ)dXo&O^`;_1Zh-FkVe%6X;e*+M%4sUnKh~=NTX_kX~7y* z6Qof!!I)=_s)?`o4rx?PkVe%6X;e*+M%4sqR85dZ)mWoytWh=As2XcjjWw#q8da0$ z(>O9|R81z0s>!5LHP)z_Od3^_Nuz2qX;e)njjG9{Q8k&llr^d*lSb8K(x{qD8dYPB zs>!5LHJLQ3CX+_hWYVabOd3^_Nuz2qX;e)njjGAt6J(95u}0Mt(x{q38WkH^hNMw7 zg*2+BkVe%M(x{q38dXzBqoM`{VVgCorjSO}6w;`gLK;<5NTX^BX;e)ijjAc6Q8k4$ zs-}=e)fCdGnnD^?Q%Iv~3TaeLA&sgjq)|16G^(bMM%5J3sG33=RZ~c#Y6@voO(Bh{ zDWp*~g*2+BkVe%M(x{q38dXzBqiPCiR81j`swu3OSfgsJQ8k4$s-}=e)fCdGnnD^? zQ%Iv~tWh=As2XcjO(Bh{DWp*~g*2+BkVe%M(x@71R81j`swt#V)1*piH+fEv-vQW* zVT@r7!#LLEk@|sN9;qI0^hmTKk3=i-NLTSQH#5A2;jIjBV|Y8mI~e|oN7%&hPKKKq z-o@kmfuDJa;VTSZW%wb(j~M=$;im+Jo1vGXk6}8)Vw$ZeW!Q_x7rhx)G3>)I#;}GV zQOYBTQXawU5+it=Hqg-{7BF1Iqb=rVmhexP^7Vxb*YP-a@-uhwPq*>)ZoYn!;U2#8 zG>^9L_%w`6`q?Ai=bwJeFobRk>cqPND8D7iqetNt70AK%};Uf$m<@>w%n!Y<8`EiC%@%^Xy{xkf>y?me7 zB0tO5`x(B#@C|;3z9Sy_@BCZ;VE9jl9sE;Xo#LWr6sD#^UkZ=HG*trhq!Og}Dw%ve zlHq8EV;PQTcpAe=41dA!bcQVq&tN#6A!AQr>?yMehsxOu=P;bd@EnE<7@p7bS;TM& z!wr~^SBis=V9)`~|Bu(fQr18A+{d5PIr|U=gdKX_m#n(^M zHCByhuxh%duZhmGsk3bA63M16k! zl1*JA+0-SHOl1*JA+0-SHOGloP*U65?*f@D(%#xPr!OMWbOAlcLf$)+wyHg!R=sSA=#on=#J+0$@nmQ7udZ0evLJxQ{u3zAJ;5cldVn>x#;&a$bqZ0anVx=gaEvux@z$)+xoZ0a(} zrY@6g>N3fuE|YBPGRdY64#9j_Hg%a~QN3fuE|YBPGRdYc^XgbOb(T$?WfN6^=oywx zon=#J+0+%1Og=AA#NH%qaWK&m2Hg$z$Q&&hfbx6u0c-1WoHHM{lvKUfBuu@>>0NJ5y z;;v$ronlDM!?^CxkiKZekQ(~w%?xj0cq_x(7~anC4u&Kh#gGnq{w0R5FnpCE**wLN z4uWL!6hk@yAsqz041EmK8Ip7qvvd@L^D!&t{9@+(VsJkF)=|FS&d?yp99S&d=yzqZ zmx{rMcoGyLIGW*DhT|EY#&8nDUobqKVGF}E7*1zsjzf4ZW;_=&o{JgJC6WhkFOhVH z#dy91_2!ySs2y;b*xgvsHHvKMfMTEH`!dwwyu83f7OZSN@ zBFq&L=86b&MTEH`!dwwyu80VJ3v)#Tdqesy;))2Qi6C)B1o|A1xgx?`5n--~$ix*9 z=86b&MFhJExE5$qQT5?4g9M<7UC5rNjiTbL^%%oP#liZWQ> zD`AO~{ZkI?5iG)=a>ijf>wUqN(%6Tp2yq0oaOF6HloYzv$Ybocol=E7un3JoRldG7Mt5~mAF(+3s zCs#2iS1~77F(+3sCs#2iS1~77F(+3sCs#2iS1~77F(+3sCs#2iS1~7}$r4sk#hhHl zoLt46T*aJR#hhHloLt46T*aJR#hhHloLt46T*aJR#hhHloLt46T*aIm#dl;HI&5hS zNoJ$G(kQPq$}5e6x9L7VQ z@J@!C8Q#U?ki173OHsyBl(7_LEJYbhQN~h~u@q%2MHx#`#!{5A6osT<97qbmUNkVW_UKkISl79L>@kVx`5&NG#^MA z!6ghgU_LR{PADSyG8khSjIj*HSUbg7JH=Q##aKJVSUbg7JH=Q##aKJVSY~6aonow=VyvBFtes-4 zonow=VyvBFEYUHR=om|Mj3qk85*=fSjlF^4hC; z?bW>YYOEdiWjnn^b~2nocd$Bw`3wsgh8dPHj4&)`Si!K8VU%HChSh*IO#K?BehpK< zhN)k})URRc*YLV(nEExmx*Dc_4O72{sb9m?uVL!fF!gJg`ZY}b8m4{?Q@@6(U&GX| zVd~c~^=p{=HH?88#y|~YpoXbm!_==~>en#!Ynb{qO#K?BehpKK znEEwL{Tilz4O72{sb9m?uVL!fF!gJg`ZY}b8m4{?Q@@6(9|zvn!Q1YI)Wm^3x~6Ya z95`GANctqsx-rhWG0wU%j(haXFld7~yz%tp2!>4zM=_iLy2K^gBgEm2r)OxV5QjIO zu4%szhc}+yNSqLt$m)noQyG%&5tpVhoX&G2Uws^uB6vAN^3}&dDT3sykF!pWvrdk) zPL8uqjhd-a-Zy7$w@F9jf8PeV@ z4u3wu#~AKr_yj}RhsNR0C-@XY+ReqKXLxnw)sMrgPndk3ulMuy0lt2Lujv~Rhi{*r zq@73{9)7we`!EhaKV6fR7>Bo?t`9T(BSVVc#o_HINM77Hy!`|}U`SSF96o=#L$+lc zo`1Tg9Zekmf4csZuRr7Kqcn42WoT#UVo1B5xbV<3{B4R0ov+CvjSD|tlU*7Y0lp6M zZ)GtI5f30bK#-yXagGke5gnj+k-WzR$$MOoyrak@!&-*)jgE_f#35oZ!$yV_BZwnL z0IVWLK#;y}aYPE}K6z#1;uzoQASlc9Te8AXWk{A)oGq(3JneWd9|tH*X4ZOi?7K$9annu zHF>Aw@J`bRQNHfO*M0dq#@FPXj>9`m&(!gCKZgAo4rJKKa0tU;3~3h`S6Ev43y$vK ze4q9Rab+A|(@r7IU-P)aQq14cS*2`=Q{BF}a|=&rW_b%w>T4f;W!6GXNi z;N=Y0F(7hN96el=^?trEQ^BER03^OcY7-5KW^LVC$VI{*T z!@dlw0qZf(I{Tq4{mSl1R#&KU(*kk!o zFVqm1w4#ZbWI-v3^YHi~Y)w`UVbz6FDrq!`O@R%1i(+ZApcf;1bU9wxxbjGHFT2J!=T&kuCl%0NBFBwkWtEm;6tSE!~Pg{68mA$wb&(2oL4j00;a%LFb%fx zWINaac7k1CH`oJyi(I}9_Jaf9AUFgb0lxzdgGa$*U=|z&Pl8?}-6iETo(9LjGvt^9 z$3gw)j-HvK%;$K`_HSdq2m5Z&vBWM#EPgV? zelNCH@OG&OIei=U2e7we-;3?l<6Vkp{EXLCb}6c{{rlLS%k0wkIHTuiyYxNI_y^#J zKEP;9?P>+OSGe2YXNT41G z)FXjkA$K!r@M9uMP;^KyM&@LqtzpUdL&SfgcNl|DOQh! z;x41rBcZsXFdC3!~K|fqEoRk3?YgNN63vX!S^-9tqSVfqEoRk3?Yg zNT42x!0M3*tR9KL>XAS_5~xQ4^+=!|3DhHjdL&Sf1nQAMJrbx#0`*9s9tqSVfqEoR zj|A$G&=@LiQI7=bkw85XikFl->XAS_5~xQ4^+;%rqhBdrQoR%}*|vHl6fZf&>XAS_ z5}Nhcwt6H`j|A$G&fe+-K^*_wq5ILYF$mOtEqLhw6RC&9|pY>pjz5!^oUT+{;_Il<2l(6 zk?#Ft)zU^k?_m5SVxg^z6NaxrLwt(JUQ!RxwdXG&tY*)i}HEdVIb~S8Q z!*(@nS4$zC*SEobZ~z}r0#!*J%jyy>{;wru;;K}#eNO^0eAsi1TTV@ z!Kq}5VL;~U@)!5@Kdf;Ye)gWj1|Erm3CXIixs(s+meDuq-{X^quVNZW3c)lx{? zZkg3mNZa1ARxO1zI<~2nLK?kGty&6c^e(k(DWuW6)T*VBM#me~nt>V}byQ0;#i2CQ zZ>GJ`{;Q>#PWg!6EX~w2(oEwcevdTMw!fcN(^IOYnYO*JvRay{ze+QeBF(h@TiBjE zS4%UU{vPbR!8j@RV29Z6#eN_5`?0rSe*k+s_Py9Uuzv^JdlIUpna<_+v8%wHU;?ZL z{{Z|DNZsk_)zVDA;Q=!v&9wa|*mc++#eNW^-=P52QTiP^P%X{$udD{u(oEZqORJ@s zwyg}+(oEa*N@=ET&oQf|nYQ2N(0fy>rI|+Wq^g!?8oiUMTAF#TY>(7qS?I`WkJQ8X z`=H~TJ;XVCh;#N3=jhdsm$dx#eHF#7Ld+~329zlX7Y52N`W z#_>IBpUOoo)95ID52NQEMxQ;5J9`*$_Au7$VXWE1D6@z0We+3E9>$bCj3#>+NA@s+ z{NL;c`$K&JS=QNCzif>BBKQvBeWc$<`hBd(-N%aDePw3&K33%JlkWLRuV394d=RX5 zirT;N55P^*OGe&*UxfEFfB&%l`{BK1AJ(o?q3)tJzC*Z|-1n0EUUJ_{?t967FS+j} z_r2u4m)!TN_br$0CHKALzL&L~y@7MzOYVEgeJ{EHk#he+*&iu)p>j9AL-+u>KS1se z@T&*-RUNT(U75$PI*k`bN6vM`%yq=Hb;PT6#H)40t98Vyb;PT6#H)40t98Vyb;PT6 z#H)40t93-1bz0f;n;l`+5nI*~ThbFEVb;LGxQEIJT>2%M4>WE(Ih+FE2 zSn7yX>WEVQ6h8kHKK~Rx{}etSB>h3sA0+)j(jOvSCppQR58?fX@cu)1{~^5p5Z-?X z?>~h1AHw?&;r)m3{zG{GA-w+(?|vB<(FpdrQ*ZlC-xZ?JY@rOVZwww6`SfElGPzG6PC7 z_enDANzww7w7?`SFi8tc(gKsTz$7g&NefKU0+Y1BBrPz>ye7$vCdphT$t)&G%S_TT zleEkvEi=iSBFUU0Nh?jNKZ-H+N23)!NxMxlQ%EvLNHRM}G9ySvLqEeTAW8h6B=S!Z z^CyY+lNz)9jN|+yEk8-iPtx*}wEQG3KS|3^((;qE{3IW-rxn%Hit1@a z^|YdTT2Vc%sGe3-Pb;dY71h&<>S;yww3&L^Og(L;o;FiYo2jSG)YE3_X*2b-nR?nx zJ#D6*woy;psHbhz(>Cg95A}Gz9^cjDyLxtH*cs_^uw`)#JNIVf#_o*4|t3uN`xsee@`7KMLEA!uF%E{YggECTUAUS(CKI z=s8G}q6nk+r!|%RF1A}^QTCgg69-Gr{FmS&nb9L!E*|pQ}CRE=M+4r;5h})DR@r7a|)hQ z@SK9@6g;QkIR(!tcuv7{3Z7H&oPy_8cy5K~R@!qbJh#GgD?GQtb1OWz(wz=QKR0;W-V@X?RYp8+C7^?rqe)jk>o{_crR@M%~+}dmD9cqwZg& zj{gmO7W^CVxiZIQ&y_hgdrqsqi$d>4eok#^S(pHKlkW9_=gRhgO{6q~Eno_41=C=L zC#SIUV8N)iq4%q87_0n@+J=$5*zxroJHDO^YDll;SKf{MoZ5`>U%;Om)n<&2_Man$ zd@kZIiO*@3&-k05cOyTiH9h0q;631b!S{n70Ph8V2mC$oDZgKB#`rYoJ?ic7)(&s& z@YW7*?eNwPZ|!B~tzA8FS!mwcwaV=j^VZHzxpsESwQH5zDdw$RJ<(5^w{~{QwX;*M z9p2jEtsUOl;jJCs+TpDo-rC`)&p-n@YVxwJ@D28 zZ$0qV18+U>)&p-n@YVxwJ@D28Z$0qV18+U>)&p-n@YVxwJ@D28Z$0qV18+U>)&p-n z@YVxwJ@D28Z$0qV18+U>)&p-n@YVxwJ@EE|cv~!cLA)975+^T+6Js;j0;a%LFbz(D zd9Ywq?Sv}7-lOsxy#wb3mEZWApm%(|pz<5<2JZpi3%(!pPOukLexrASy`b_hmmQ{@ zhbiY_%6XV_9;Td!+c_XCLM4qnv$|vyXE2QO-Wf*+)71C}$t#?4z80l(Ua=_EFA0 z%GpOb`zU805BBQS)M(>fx=qriQdn7Vi-!^)W zM20;Q8Le;I_8y6h*0+t`BavZ`M20;Q8TLqI*dvi)k3@z&5*hYLWaLMe*?S~1@}_O? zk;urWw!KFp!>lT!6>{6&BazWMxoz)}$Y{0Pw)aS6v}SJGdn7ViGdFsVL`G}oM(>fx zXwBT{JrbER?~%x`MCh#7K z470gR;5`x<=5(3Bdn7W<>@tD(NMr)i41!rGVGDa1l}W&3A{%l z6L^nAhCLD)_DE#(1x@AA7c`^yNMzU}kztQShWTTLJrWuANMzJ6^o;t2(R(B^>K(Sd zM42yFZNen!1Ue`SwEMt#S&_ef;agKT?`L`MC{w)aS6^cBe|-XoETdXGd# zeag1?NMzKrYk3>e_ER5bGkOB$}=FS=B&Y39vju~_&O21+HOE&i~QHvi}JowE9;(+YzVtlip8yKk5CX50E}U`T*$zqz{rlNcte@gQO3U zK1BKu=|iLslRixPFyE$!`8GYwx9MTNO%L;JdYEt1!+e__=G*iz-=>H8Ha*O@>0!Q2 z5A*)vx8KjV>7(Rwlw6LI%TaPUN-jsqk`y93_{d z*OZF2~5_7`YrHmt*8|j9jwhk|mcc zxn#*DODE+@$41i73b zmlNc2f?Q6J%L#HhK`tlA-dlw3y1Wt3b-$z_yW zM#*KATt>-dlw3y1Wt3b-$>k)uoFtc%aydyZC&}d`xtt`IljL%eTuze9 zNpd+!E+@(5B)Oa-7oA?OUUQ0EPLazgaydmVr^w|Lxtt=GQ{-}rTuzb8DRMbQE~m)l z6uF!tm($8+QKwt|vQd9EzC$=h?qlRWM($(eK1S|iFH^RcDcj4G?PbdL zGG%+2vb{{%UZ!kQDqDk20rq#ODdNK^;=?J{?Wc$mr-%}#G&l4!{th*zxuMbDp{9u9 zrdV^HV$FGqHRmbToTpfGo?^{;O0z;g@9)=BL`PG^MN>pXQ$#pZ#5PkzHB+oSPZ6<9 z5vxoQrA!f@OldBu@@Ot;^!Mwjz~8T@G?z5q?_4xzbh^J^Pif95)SOX&6?^)X*fTn! zm|{epVl19w6rN)Ionri*V&t7-%$;JionoAwVuYPyY@K3Mor?PV^;Fc~uctI;H2V9s zPRCTg(3x#Ue0L7t<>5aM|9SY&!+#$B^YEXC|2+KX;Xe=mdHB!6e;)qx@SlhOJpAY3 zKM((T_|L1^6$(e*yjr@Lz!c0{j=?zX1OQ_%FbJ0saf{Ux5Dt z{1@QA0RIK}FTj5R{tNJ5fd2yg7vR4D{{{Fjz<&Y$3-Din{{s9M;J*O>1^6$(|1|th z!~Zn=Ps4u^&WmtfgzX}17h$yst3_BX!fFv#i?CXR)gpWr;j;*zMffbjXAwS&@L7b< zB77F%vk0F>_$6k%hA+RaeA8EQ8} z?PjRm47Hn~b~Ds&hT6?gyBTUXL+xg$-3+yxp>{LWZid>;P`epwH$&}asND>;o1u0y z)NY2_%}~1;YBxjeW~ki^wVR=KGt_Q|+RaeA8EQ8}?PjRmEVY}ZcC*xOmfFoyyIE>C zOYLT<-7K}6rFOH_ZkF23QoC7dH%skisogBKo27QM)NYpA%~HErYBx*mW~tpQwVS1O zv(#>u+RakCS!y>+?PjUnEVY}ZcC*xOmfFoyyE$q%NA2dQ-5j->qjq!DZjRc`QM);6 zH%IN}sNEd3o1=Df)NYR2%~88KYBxvi=BV8qwVR`MbJT8*+RahBIchgY?dGW69JQOH zc5~Ejj@r#pyE$q%NA2dQ-5j->qjvK|2=hb;^P0^qmd%%W?RUP+Yrpf-H>1A^&P(NN zd+m2#vplExo8Y`wb&UR&I&_mA|FVv-UgB+V6beZ-VpEF{5Lxc_Nwlh`*)IYo2KIx72yf6OHcy z{VjDq>TiPcn(rI^O>kawe51dm&TC$8^f$qI>6qRx9W(k{>O5<|uMuUvMwIoM?yUQI z*=vfg`h|aheV_hY;I*;`z&h}w;N$%DCidTJ=lN^IW3Lg3E#QjqU#Gp*B6McFA!Z{AiBOlbbW#7 z`U27Q1)}QUtol~zzB7L==y(=mrj>gOVByTpjTQJ$!n3k7RhUoycWr8 zk-QekYmvMb$!n3k7RhUoycWr8k-T0fuZ!e$k-RQauZ!e$k-RRF*G2NWNM0Ao>mqqw zB(IC)b&neF&C9kXGb(OrXlGj!8x=LPG$?Gb4 zT_vxp+AquX9xH?JHXf30lv--@O5^8ud@SuogLuo>;PY92lzTWz}MLUzRnKt zb#{QSmtCeLSB-(cpsfe~g0>#~D(L@PS!W0MIy=DE*#W-J4)FD8!henWf9}@V0lv-- z@O7=GI>rCDvd#|h^=KV7wT^xa+yA$+&JOVPsQ=$~J?j6{UuOsSIy=BO;B5omHsEc8 zo%0*;wgGP&@U{VO8}POPZyWHo0dE`dwgGP&@U{VO8}POPZyWHo0dE`dwgGP&@U{VO z8}POPZyWHoQD)vY;B5omHsEa|FmD_1wgGP&@U{VO8}POPZyWHo0dE`dwgGP&@U{VO z8&UJN0dE`ZoZo=A4S3stw+(pPfVWNcvPa7{)ys@={dSX{wMoy~q-SkvEOWZY`b~{! zw(ZSLjb-PA{sy#3zuTnWZPM>H>35s-yG{DtCa3Cca;n~@&NTMh`aqwmw@I(uq*rdz zD>vztoAk;}dgUg)a+6-UNw3_bS8mcPH|dp|8W~j{jf}?k`Td-#w;625_NjWCI@8$b z{}9~N=;ePfPf;q{v5Q!>1*DTEeF#d|JY%C45@KrzLz^!lxyC zTEeF#d|JY%C45@KrzLz^!lxyCTEeF#d|J{e$||!?Q8wDArKo*cQluo_@M#I3mJ}&1 zmg(*-wKv^K2fA%<;nOXAx`j`-@aYyl-NL6^_;d@OZsF4{e7c2CxA5r}KHb8nTljPf zpKjsPEquC#Pq*;t7Czm=r(5`R3!iS`(=B|ug-^He=@vfS!lzsKbPJzu;nOXAx`j`- z@aYyl-NL6^_;d@OZsF4{e7c2CxA5r}KHb8nTljPfpKjsPEquC#Pq*;t7Czm=r(5`R z3!iS`(=B|ug-^He=@vfS!lzsKbPJzu;nOXAx`j`-@aYyl-NL6^_;d@OZsF4{e7a?y z>S8kekC;&ZZz$AEMEKjFW+JjR6A@}ABGgPosF{dRGZCR?BErA7?U{&B|9=+*ZYM&u z6QSCPQ2)&&{9RE0Un5(3E|i`NrRPHFxlnp8l%5OqO<$;Q`a*rv7wVh7P~Y^0J>Uzx z;V>vYSGx3EsJ<^$-xul|x=>%wh5BwT)OT>9P6-g|+qdwB(d|U2vt)%8;JZNSxl*W$ z+llOLp!8g}`o2(lE|i`NrRPHFxlnp8l%5Nv=R)bZP<=lL+)jkjbD{KHC_NWSfrG&9 zMEC%x|9qGIQSd=6WRX{C_R_0zAseY7pm_I)%S(! z`$FltPT87_%w=7qxdw6 zPowxW>b|e{*r!qVeW86C#ivnx8pWqkd>X~4QG6Q3r%`+w#ivnx8pWqkd>VD%52Eh- zLi;p|PowxW>b|cO`!tGAqxdw6PowxWich2XG>T87_%w=7qxdw6PowxWich2XG>T87 z_%!OiA4KtK)O}yJeHwM&7uu&$d>X~4QG6Q3r%`+w#ivpCeLZQPM)7GBpGNU%6rV=% zX%wGE@u_Ze*Ym$5p9)o4qrO(_3Tu6n66%|j&@9~{&z=)%RY$0m7NJ&kgj&@RYE?(5 zRUM&Lb%ZUTR&`{zf@x4Yy_KR>9bq0U808DSU%oJERYz!LxI;V}cZ1{-XjMlkTGbJ1 zRY$l1{tKv8o!}1fZ`7)eP~XmkTGa{e@JfPEt2#oh>Ik)}Bh*TQ@E%aBIIGtAMu(c&mW73V5r4w+eWx zfVT>GtAMu(c&mW73V5r4w+eWxfVT>GtAMu(c&mW73V5r4w+eWxfVT>GtAMu(c&mW7 z3V5r4w+eWxfVT>GtAMu(c&mW73V5r4w+eWxfVT>GtAMu(czc&uLV`OP!S7@QztblM zDCNVTN1Qu74;6kyyxr;9sPJRpx4>_M{onvN2o8Zq!0&*=;8E}xm<30{li(@vyWnYX z3_J&Z51a=74*Wj&3ivAc8u$b70=NiX1U2_p`89_XUZ+Ms1m6UIYz+R5{~G*T@K?cK z17XG|2I#MFLd0?>5zC!EF(A0pGvDA&pBNzgE%3L&I2eMCWbTY^1Gj@ZB}^%fZSK?# zE~7{PJ3V(6I;y$Tb7!G;uL(Z{Ql98Xu>Tm;nuGp|kD~a`#I& zZ6)5X#QT+azY_0Pmf8E2c)t?wSK|FjykF_H2>sRGuk?8lLVLf`=S2wZ{Ysw~A++}^ zyS4?kdw6>_VM!E&MP~-Vf@GYo+K^ zXQ9qu7d{B;^k&)nuyuN~>?F3%V3)0Zl|t+1U1ip&ySxG~bX&bkEATFx&R`en40d4) zm;zhDG}y-T?O+Gk33h?qU=OG>*!3Qr!7kJp?7{(1XRyoG8SFxx!7kJp?80I2D5x{o zm7+7)g*t;>s597wI)h#KT~KGR%hnm}LY=`b%z-+CUAE3(7fwEVj;ISNa_GtJpe&T`4+)U8pnIg^QrhV3(~k*o8WSUFbRN zUFr+A-@w)x?6QA^tuxqV-@yJc_J&Iy{44O6z+VCH@H6T=dY)O*UFt!$D@fNF?6Tj5 ztuxqV-^s5kLG7AWiuOngbq2docU}v%dse93vqJ5j6>9gaP`hV^{{j3U@6;LWO3@kY zLY=`b)EVqT+Nb)gIAor6mwK+#bq2d|li!w%5uL#ut=%?oxku$`k&p;xyUn`}(V*HQPFaU8pnIg*t;>s597wcY`{EUG_cLI)h!d&R`en z40hrBv2_N!Y@NX_)EVr;d$Dx}yKJ4oF4P(9LY=`b)EVqToxv{D8SFxx!7kJp>_VNv zF4P(9!aoH6$aR;7IOPFsoxv{qPq1|cyX=o*KM2x`nO)u`h4EjLr0WcJ*^gku67$Ww zq&ZHfFH3oB{~6Ed40hRGRk%wkWczInKLwKqz)ypp0skEQEcl=KmCj%f?$*d<)Jbl^ z-BM$tPI6Q0v8Kh*v^bg;N7LeH8uw)BuO5ZtXj&Xii=%0AG%b#%#Weyp=oz<}IGPqm z)8c4aT%)1Wt!Z(MiMFk2@iJ>#98HU(X>l|yj;6)Yv^bg;N7LeHS{zM_Yxd#ySkvN~ zeHg82+}v^bg;*NE&CYg!yli=%0AG%cHosL)|1w>IGPqm)8c4a98HU( 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 !}#gv~NV!5|5YF|kE)J0y^zWbk4>=%|6F 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 literal 0 HcmV?d00001 diff --git a/infusion/development/lib/infusion/src/lib/fonts/OpenSans-Semibold.ttf b/infusion/development/lib/infusion/src/lib/fonts/OpenSans-Semibold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..1a7679e3949fb045f152f456bc4adad31e8b9f55 GIT binary patch literal 221328 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%0DJH?LFC28_mTUAZOar9j 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

      MAzfu-#(7W5VH7%hxxNU1% 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 0 && j < len ? [ this[ j ] ] : [] ); + }, + + end: function() { + return this.prevObject || this.constructor(); + }, + + // For internal use only. + // Behaves like an Array's method, not like a jQuery method. + push: push, + sort: arr.sort, + splice: arr.splice +}; + +jQuery.extend = jQuery.fn.extend = function() { + var options, name, src, copy, copyIsArray, clone, + target = arguments[ 0 ] || {}, + i = 1, + length = arguments.length, + deep = false; + + // Handle a deep copy situation + if ( typeof target === "boolean" ) { + deep = target; + + // Skip the boolean and the target + target = arguments[ i ] || {}; + i++; + } + + // Handle case when target is a string or something (possible in deep copy) + if ( typeof target !== "object" && !jQuery.isFunction( target ) ) { + target = {}; + } + + // Extend jQuery itself if only one argument is passed + if ( i === length ) { + target = this; + i--; + } + + for ( ; i < length; i++ ) { + + // Only deal with non-null/undefined values + if ( ( options = arguments[ i ] ) != null ) { + + // Extend the base object + for ( name in options ) { + src = target[ name ]; + copy = options[ name ]; + + // Prevent never-ending loop + if ( target === copy ) { + continue; + } + + // Recurse if we're merging plain objects or arrays + if ( deep && copy && ( jQuery.isPlainObject( copy ) || + ( copyIsArray = jQuery.isArray( copy ) ) ) ) { + + if ( copyIsArray ) { + copyIsArray = false; + clone = src && jQuery.isArray( src ) ? src : []; + + } else { + clone = src && jQuery.isPlainObject( src ) ? src : {}; + } + + // Never move original objects, clone them + target[ name ] = jQuery.extend( deep, clone, copy ); + + // Don't bring in undefined values + } else if ( copy !== undefined ) { + target[ name ] = copy; + } + } + } + } + + // Return the modified object + return target; +}; + +jQuery.extend( { + + // Unique for each copy of jQuery on the page + expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), + + // Assume jQuery is ready without the ready module + isReady: true, + + error: function( msg ) { + throw new Error( msg ); + }, + + noop: function() {}, + + isFunction: function( obj ) { + return jQuery.type( obj ) === "function"; + }, + + isArray: Array.isArray, + + isWindow: function( obj ) { + return obj != null && obj === obj.window; + }, + + isNumeric: function( obj ) { + + // As of jQuery 3.0, isNumeric is limited to + // strings and numbers (primitives or objects) + // that can be coerced to finite numbers (gh-2662) + var type = jQuery.type( obj ); + return ( type === "number" || type === "string" ) && + + // parseFloat NaNs numeric-cast false positives ("") + // ...but misinterprets leading-number strings, particularly hex literals ("0x...") + // subtraction forces infinities to NaN + !isNaN( obj - parseFloat( obj ) ); + }, + + isPlainObject: function( obj ) { + var proto, Ctor; + + // Detect obvious negatives + // Use toString instead of jQuery.type to catch host objects + if ( !obj || toString.call( obj ) !== "[object Object]" ) { + return false; + } + + proto = getProto( obj ); + + // Objects with no prototype (e.g., `Object.create( null )`) are plain + if ( !proto ) { + return true; + } + + // Objects with prototype are plain iff they were constructed by a global Object function + Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor; + return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString; + }, + + isEmptyObject: function( obj ) { + + /* eslint-disable no-unused-vars */ + // See https://github.com/eslint/eslint/issues/6125 + var name; + + for ( name in obj ) { + return false; + } + return true; + }, + + type: function( obj ) { + if ( obj == null ) { + return obj + ""; + } + + // Support: Android <=2.3 only (functionish RegExp) + return typeof obj === "object" || typeof obj === "function" ? + class2type[ toString.call( obj ) ] || "object" : + typeof obj; + }, + + // Evaluates a script in a global context + globalEval: function( code ) { + DOMEval( code ); + }, + + // Convert dashed to camelCase; used by the css and data modules + // Support: IE <=9 - 11, Edge 12 - 13 + // Microsoft forgot to hump their vendor prefix (#9572) + camelCase: function( string ) { + return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); + }, + + nodeName: function( elem, name ) { + return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); + }, + + each: function( obj, callback ) { + var length, i = 0; + + if ( isArrayLike( obj ) ) { + length = obj.length; + for ( ; i < length; i++ ) { + if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { + break; + } + } + } else { + for ( i in obj ) { + if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { + break; + } + } + } + + return obj; + }, + + // Support: Android <=4.0 only + trim: function( text ) { + return text == null ? + "" : + ( text + "" ).replace( rtrim, "" ); + }, + + // results is for internal usage only + makeArray: function( arr, results ) { + var ret = results || []; + + if ( arr != null ) { + if ( isArrayLike( Object( arr ) ) ) { + jQuery.merge( ret, + typeof arr === "string" ? + [ arr ] : arr + ); + } else { + push.call( ret, arr ); + } + } + + return ret; + }, + + inArray: function( elem, arr, i ) { + return arr == null ? -1 : indexOf.call( arr, elem, i ); + }, + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + merge: function( first, second ) { + var len = +second.length, + j = 0, + i = first.length; + + for ( ; j < len; j++ ) { + first[ i++ ] = second[ j ]; + } + + first.length = i; + + return first; + }, + + grep: function( elems, callback, invert ) { + var callbackInverse, + matches = [], + i = 0, + length = elems.length, + callbackExpect = !invert; + + // Go through the array, only saving the items + // that pass the validator function + for ( ; i < length; i++ ) { + callbackInverse = !callback( elems[ i ], i ); + if ( callbackInverse !== callbackExpect ) { + matches.push( elems[ i ] ); + } + } + + return matches; + }, + + // arg is for internal usage only + map: function( elems, callback, arg ) { + var length, value, + i = 0, + ret = []; + + // Go through the array, translating each of the items to their new values + if ( isArrayLike( elems ) ) { + length = elems.length; + for ( ; i < length; i++ ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + + // Go through every key on the object, + } else { + for ( i in elems ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + } + + // Flatten any nested arrays + return concat.apply( [], ret ); + }, + + // A global GUID counter for objects + guid: 1, + + // Bind a function to a context, optionally partially applying any + // arguments. + proxy: function( fn, context ) { + var tmp, args, proxy; + + if ( typeof context === "string" ) { + tmp = fn[ context ]; + context = fn; + fn = tmp; + } + + // Quick check to determine if target is callable, in the spec + // this throws a TypeError, but we will just return undefined. + if ( !jQuery.isFunction( fn ) ) { + return undefined; + } + + // Simulated bind + args = slice.call( arguments, 2 ); + proxy = function() { + return fn.apply( context || this, args.concat( slice.call( arguments ) ) ); + }; + + // Set the guid of unique handler to the same of original handler, so it can be removed + proxy.guid = fn.guid = fn.guid || jQuery.guid++; + + return proxy; + }, + + now: Date.now, + + // jQuery.support is not used in Core but other projects attach their + // properties to it so it needs to exist. + support: support +} ); + +if ( typeof Symbol === "function" ) { + jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ]; +} + +// Populate the class2type map +jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), +function( i, name ) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); +} ); + +function isArrayLike( obj ) { + + // Support: real iOS 8.2 only (not reproducible in simulator) + // `in` check used to prevent JIT error (gh-2145) + // hasOwn isn't used here due to false negatives + // regarding Nodelist length in IE + var length = !!obj && "length" in obj && obj.length, + type = jQuery.type( obj ); + + if ( type === "function" || jQuery.isWindow( obj ) ) { + return false; + } + + return type === "array" || length === 0 || + typeof length === "number" && length > 0 && ( length - 1 ) in obj; +} +var Sizzle = +/*! + * Sizzle CSS Selector Engine v2.3.0 + * https://sizzlejs.com/ + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license + * http://jquery.org/license + * + * Date: 2016-01-04 + */ +(function( window ) { + +var i, + support, + Expr, + getText, + isXML, + tokenize, + compile, + select, + outermostContext, + sortInput, + hasDuplicate, + + // Local document vars + setDocument, + document, + docElem, + documentIsHTML, + rbuggyQSA, + rbuggyMatches, + matches, + contains, + + // Instance-specific data + expando = "sizzle" + 1 * new Date(), + preferredDoc = window.document, + dirruns = 0, + done = 0, + classCache = createCache(), + tokenCache = createCache(), + compilerCache = createCache(), + sortOrder = function( a, b ) { + if ( a === b ) { + hasDuplicate = true; + } + return 0; + }, + + // Instance methods + hasOwn = ({}).hasOwnProperty, + arr = [], + pop = arr.pop, + push_native = arr.push, + push = arr.push, + slice = arr.slice, + // Use a stripped-down indexOf as it's faster than native + // https://jsperf.com/thor-indexof-vs-for/5 + indexOf = function( list, elem ) { + var i = 0, + len = list.length; + for ( ; i < len; i++ ) { + if ( list[i] === elem ) { + return i; + } + } + return -1; + }, + + booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", + + // Regular expressions + + // http://www.w3.org/TR/css3-selectors/#whitespace + whitespace = "[\\x20\\t\\r\\n\\f]", + + // http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier + identifier = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+", + + // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors + attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace + + // Operator (capture 2) + "*([*^$|!~]?=)" + whitespace + + // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]" + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace + + "*\\]", + + pseudos = ":(" + identifier + ")(?:\\((" + + // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: + // 1. quoted (capture 3; capture 4 or capture 5) + "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + + // 2. simple (capture 6) + "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + + // 3. anything else (capture 2) + ".*" + + ")\\)|)", + + // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter + rwhitespace = new RegExp( whitespace + "+", "g" ), + rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), + + rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), + rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ), + + rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ), + + rpseudo = new RegExp( pseudos ), + ridentifier = new RegExp( "^" + identifier + "$" ), + + matchExpr = { + "ID": new RegExp( "^#(" + identifier + ")" ), + "CLASS": new RegExp( "^\\.(" + identifier + ")" ), + "TAG": new RegExp( "^(" + identifier + "|[*])" ), + "ATTR": new RegExp( "^" + attributes ), + "PSEUDO": new RegExp( "^" + pseudos ), + "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), + "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), + // For use in libraries implementing .is() + // We use this for POS matching in `select` + "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + + whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) + }, + + rinputs = /^(?:input|select|textarea|button)$/i, + rheader = /^h\d$/i, + + rnative = /^[^{]+\{\s*\[native \w/, + + // Easily-parseable/retrievable ID or TAG or CLASS selectors + rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, + + rsibling = /[+~]/, + + // CSS escapes + // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters + runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ), + funescape = function( _, escaped, escapedWhitespace ) { + var high = "0x" + escaped - 0x10000; + // NaN means non-codepoint + // Support: Firefox<24 + // Workaround erroneous numeric interpretation of +"0x" + return high !== high || escapedWhitespace ? + escaped : + high < 0 ? + // BMP codepoint + String.fromCharCode( high + 0x10000 ) : + // Supplemental Plane codepoint (surrogate pair) + String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); + }, + + // CSS string/identifier serialization + // https://drafts.csswg.org/cssom/#common-serializing-idioms + rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g, + fcssescape = function( ch, asCodePoint ) { + if ( asCodePoint ) { + + // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER + if ( ch === "\0" ) { + return "\uFFFD"; + } + + // Control characters and (dependent upon position) numbers get escaped as code points + return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " "; + } + + // Other potentially-special ASCII characters get backslash-escaped + return "\\" + ch; + }, + + // Used for iframes + // See setDocument() + // Removing the function wrapper causes a "Permission Denied" + // error in IE + unloadHandler = function() { + setDocument(); + }, + + disabledAncestor = addCombinator( + function( elem ) { + return elem.disabled === true; + }, + { dir: "parentNode", next: "legend" } + ); + +// Optimize for push.apply( _, NodeList ) +try { + push.apply( + (arr = slice.call( preferredDoc.childNodes )), + preferredDoc.childNodes + ); + // Support: Android<4.0 + // Detect silently failing push.apply + arr[ preferredDoc.childNodes.length ].nodeType; +} catch ( e ) { + push = { apply: arr.length ? + + // Leverage slice if possible + function( target, els ) { + push_native.apply( target, slice.call(els) ); + } : + + // Support: IE<9 + // Otherwise append directly + function( target, els ) { + var j = target.length, + i = 0; + // Can't trust NodeList.length + while ( (target[j++] = els[i++]) ) {} + target.length = j - 1; + } + }; +} + +function Sizzle( selector, context, results, seed ) { + var m, i, elem, nid, match, groups, newSelector, + newContext = context && context.ownerDocument, + + // nodeType defaults to 9, since context defaults to document + nodeType = context ? context.nodeType : 9; + + results = results || []; + + // Return early from calls with invalid selector or context + if ( typeof selector !== "string" || !selector || + nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) { + + return results; + } + + // Try to shortcut find operations (as opposed to filters) in HTML documents + if ( !seed ) { + + if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { + setDocument( context ); + } + context = context || document; + + if ( documentIsHTML ) { + + // If the selector is sufficiently simple, try using a "get*By*" DOM method + // (excepting DocumentFragment context, where the methods don't exist) + if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) { + + // ID selector + if ( (m = match[1]) ) { + + // Document context + if ( nodeType === 9 ) { + if ( (elem = context.getElementById( m )) ) { + + // Support: IE, Opera, Webkit + // TODO: identify versions + // getElementById can match elements by name instead of ID + if ( elem.id === m ) { + results.push( elem ); + return results; + } + } else { + return results; + } + + // Element context + } else { + + // Support: IE, Opera, Webkit + // TODO: identify versions + // getElementById can match elements by name instead of ID + if ( newContext && (elem = newContext.getElementById( m )) && + contains( context, elem ) && + elem.id === m ) { + + results.push( elem ); + return results; + } + } + + // Type selector + } else if ( match[2] ) { + push.apply( results, context.getElementsByTagName( selector ) ); + return results; + + // Class selector + } else if ( (m = match[3]) && support.getElementsByClassName && + context.getElementsByClassName ) { + + push.apply( results, context.getElementsByClassName( m ) ); + return results; + } + } + + // Take advantage of querySelectorAll + if ( support.qsa && + !compilerCache[ selector + " " ] && + (!rbuggyQSA || !rbuggyQSA.test( selector )) ) { + + if ( nodeType !== 1 ) { + newContext = context; + newSelector = selector; + + // qSA looks outside Element context, which is not what we want + // Thanks to Andrew Dupont for this workaround technique + // Support: IE <=8 + // Exclude object elements + } else if ( context.nodeName.toLowerCase() !== "object" ) { + + // Capture the context ID, setting it first if necessary + if ( (nid = context.getAttribute( "id" )) ) { + nid = nid.replace( rcssescape, fcssescape ); + } else { + context.setAttribute( "id", (nid = expando) ); + } + + // Prefix every selector in the list + groups = tokenize( selector ); + i = groups.length; + while ( i-- ) { + groups[i] = "#" + nid + " " + toSelector( groups[i] ); + } + newSelector = groups.join( "," ); + + // Expand context for sibling selectors + newContext = rsibling.test( selector ) && testContext( context.parentNode ) || + context; + } + + if ( newSelector ) { + try { + push.apply( results, + newContext.querySelectorAll( newSelector ) + ); + return results; + } catch ( qsaError ) { + } finally { + if ( nid === expando ) { + context.removeAttribute( "id" ); + } + } + } + } + } + } + + // All others + return select( selector.replace( rtrim, "$1" ), context, results, seed ); +} + +/** + * Create key-value caches of limited size + * @returns {function(string, object)} Returns the Object data after storing it on itself with + * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) + * deleting the oldest entry + */ +function createCache() { + var keys = []; + + function cache( key, value ) { + // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) + if ( keys.push( key + " " ) > Expr.cacheLength ) { + // Only keep the most recent entries + delete cache[ keys.shift() ]; + } + return (cache[ key + " " ] = value); + } + return cache; +} + +/** + * Mark a function for special use by Sizzle + * @param {Function} fn The function to mark + */ +function markFunction( fn ) { + fn[ expando ] = true; + return fn; +} + +/** + * Support testing using an element + * @param {Function} fn Passed the created element and returns a boolean result + */ +function assert( fn ) { + var el = document.createElement("fieldset"); + + try { + return !!fn( el ); + } catch (e) { + return false; + } finally { + // Remove from its parent by default + if ( el.parentNode ) { + el.parentNode.removeChild( el ); + } + // release memory in IE + el = null; + } +} + +/** + * Adds the same handler for all of the specified attrs + * @param {String} attrs Pipe-separated list of attributes + * @param {Function} handler The method that will be applied + */ +function addHandle( attrs, handler ) { + var arr = attrs.split("|"), + i = arr.length; + + while ( i-- ) { + Expr.attrHandle[ arr[i] ] = handler; + } +} + +/** + * Checks document order of two siblings + * @param {Element} a + * @param {Element} b + * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b + */ +function siblingCheck( a, b ) { + var cur = b && a, + diff = cur && a.nodeType === 1 && b.nodeType === 1 && + a.sourceIndex - b.sourceIndex; + + // Use IE sourceIndex if available on both nodes + if ( diff ) { + return diff; + } + + // Check if b follows a + if ( cur ) { + while ( (cur = cur.nextSibling) ) { + if ( cur === b ) { + return -1; + } + } + } + + return a ? 1 : -1; +} + +/** + * Returns a function to use in pseudos for input types + * @param {String} type + */ +function createInputPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for buttons + * @param {String} type + */ +function createButtonPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return (name === "input" || name === "button") && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for :enabled/:disabled + * @param {Boolean} disabled true for :disabled; false for :enabled + */ +function createDisabledPseudo( disabled ) { + // Known :disabled false positives: + // IE: *[disabled]:not(button, input, select, textarea, optgroup, option, menuitem, fieldset) + // not IE: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable + return function( elem ) { + + // Check form elements and option elements for explicit disabling + return "label" in elem && elem.disabled === disabled || + "form" in elem && elem.disabled === disabled || + + // Check non-disabled form elements for fieldset[disabled] ancestors + "form" in elem && elem.disabled === false && ( + // Support: IE6-11+ + // Ancestry is covered for us + elem.isDisabled === disabled || + + // Otherwise, assume any non-" + + ""; + + // Support: IE8, Opera 11-12.16 + // Nothing should be selected when empty strings follow ^= or $= or *= + // The test attribute must be unknown in Opera but "safe" for WinRT + // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section + if ( el.querySelectorAll("[msallowcapture^='']").length ) { + rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); + } + + // Support: IE8 + // Boolean attributes and "value" are not treated correctly + if ( !el.querySelectorAll("[selected]").length ) { + rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); + } + + // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+ + if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) { + rbuggyQSA.push("~="); + } + + // Webkit/Opera - :checked should return selected option elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + // IE8 throws error here and will not see later tests + if ( !el.querySelectorAll(":checked").length ) { + rbuggyQSA.push(":checked"); + } + + // Support: Safari 8+, iOS 8+ + // https://bugs.webkit.org/show_bug.cgi?id=136851 + // In-page `selector#id sibling-combinator selector` fails + if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) { + rbuggyQSA.push(".#.+[+~]"); + } + }); + + assert(function( el ) { + el.innerHTML = "" + + ""; + + // Support: Windows 8 Native Apps + // The type and name attributes are restricted during .innerHTML assignment + var input = document.createElement("input"); + input.setAttribute( "type", "hidden" ); + el.appendChild( input ).setAttribute( "name", "D" ); + + // Support: IE8 + // Enforce case-sensitivity of name attribute + if ( el.querySelectorAll("[name=d]").length ) { + rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" ); + } + + // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) + // IE8 throws error here and will not see later tests + if ( el.querySelectorAll(":enabled").length !== 2 ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Support: IE9-11+ + // IE's :disabled selector does not pick up the children of disabled fieldsets + docElem.appendChild( el ).disabled = true; + if ( el.querySelectorAll(":disabled").length !== 2 ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Opera 10-11 does not throw on post-comma invalid pseudos + el.querySelectorAll("*,:x"); + rbuggyQSA.push(",.*:"); + }); + } + + if ( (support.matchesSelector = rnative.test( (matches = docElem.matches || + docElem.webkitMatchesSelector || + docElem.mozMatchesSelector || + docElem.oMatchesSelector || + docElem.msMatchesSelector) )) ) { + + assert(function( el ) { + // Check to see if it's possible to do matchesSelector + // on a disconnected node (IE 9) + support.disconnectedMatch = matches.call( el, "*" ); + + // This should fail with an exception + // Gecko does not error, returns false instead + matches.call( el, "[s!='']:x" ); + rbuggyMatches.push( "!=", pseudos ); + }); + } + + rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") ); + rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") ); + + /* Contains + ---------------------------------------------------------------------- */ + hasCompare = rnative.test( docElem.compareDocumentPosition ); + + // Element contains another + // Purposefully self-exclusive + // As in, an element does not contain itself + contains = hasCompare || rnative.test( docElem.contains ) ? + function( a, b ) { + var adown = a.nodeType === 9 ? a.documentElement : a, + bup = b && b.parentNode; + return a === bup || !!( bup && bup.nodeType === 1 && ( + adown.contains ? + adown.contains( bup ) : + a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 + )); + } : + function( a, b ) { + if ( b ) { + while ( (b = b.parentNode) ) { + if ( b === a ) { + return true; + } + } + } + return false; + }; + + /* Sorting + ---------------------------------------------------------------------- */ + + // Document order sorting + sortOrder = hasCompare ? + function( a, b ) { + + // Flag for duplicate removal + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + // Sort on method existence if only one input has compareDocumentPosition + var compare = !a.compareDocumentPosition - !b.compareDocumentPosition; + if ( compare ) { + return compare; + } + + // Calculate position if both inputs belong to the same document + compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ? + a.compareDocumentPosition( b ) : + + // Otherwise we know they are disconnected + 1; + + // Disconnected nodes + if ( compare & 1 || + (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) { + + // Choose the first element that is related to our preferred document + if ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) { + return -1; + } + if ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) { + return 1; + } + + // Maintain original order + return sortInput ? + ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : + 0; + } + + return compare & 4 ? -1 : 1; + } : + function( a, b ) { + // Exit early if the nodes are identical + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + var cur, + i = 0, + aup = a.parentNode, + bup = b.parentNode, + ap = [ a ], + bp = [ b ]; + + // Parentless nodes are either documents or disconnected + if ( !aup || !bup ) { + return a === document ? -1 : + b === document ? 1 : + aup ? -1 : + bup ? 1 : + sortInput ? + ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : + 0; + + // If the nodes are siblings, we can do a quick check + } else if ( aup === bup ) { + return siblingCheck( a, b ); + } + + // Otherwise we need full lists of their ancestors for comparison + cur = a; + while ( (cur = cur.parentNode) ) { + ap.unshift( cur ); + } + cur = b; + while ( (cur = cur.parentNode) ) { + bp.unshift( cur ); + } + + // Walk down the tree looking for a discrepancy + while ( ap[i] === bp[i] ) { + i++; + } + + return i ? + // Do a sibling check if the nodes have a common ancestor + siblingCheck( ap[i], bp[i] ) : + + // Otherwise nodes in our document sort first + ap[i] === preferredDoc ? -1 : + bp[i] === preferredDoc ? 1 : + 0; + }; + + return document; +}; + +Sizzle.matches = function( expr, elements ) { + return Sizzle( expr, null, null, elements ); +}; + +Sizzle.matchesSelector = function( elem, expr ) { + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } + + // Make sure that attribute selectors are quoted + expr = expr.replace( rattributeQuotes, "='$1']" ); + + if ( support.matchesSelector && documentIsHTML && + !compilerCache[ expr + " " ] && + ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) && + ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { + + try { + var ret = matches.call( elem, expr ); + + // IE 9's matchesSelector returns false on disconnected nodes + if ( ret || support.disconnectedMatch || + // As well, disconnected nodes are said to be in a document + // fragment in IE 9 + elem.document && elem.document.nodeType !== 11 ) { + return ret; + } + } catch (e) {} + } + + return Sizzle( expr, document, null, [ elem ] ).length > 0; +}; + +Sizzle.contains = function( context, elem ) { + // Set document vars if needed + if ( ( context.ownerDocument || context ) !== document ) { + setDocument( context ); + } + return contains( context, elem ); +}; + +Sizzle.attr = function( elem, name ) { + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } + + var fn = Expr.attrHandle[ name.toLowerCase() ], + // Don't get fooled by Object.prototype properties (jQuery #13807) + val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? + fn( elem, name, !documentIsHTML ) : + undefined; + + return val !== undefined ? + val : + support.attributes || !documentIsHTML ? + elem.getAttribute( name ) : + (val = elem.getAttributeNode(name)) && val.specified ? + val.value : + null; +}; + +Sizzle.escape = function( sel ) { + return (sel + "").replace( rcssescape, fcssescape ); +}; + +Sizzle.error = function( msg ) { + throw new Error( "Syntax error, unrecognized expression: " + msg ); +}; + +/** + * Document sorting and removing duplicates + * @param {ArrayLike} results + */ +Sizzle.uniqueSort = function( results ) { + var elem, + duplicates = [], + j = 0, + i = 0; + + // Unless we *know* we can detect duplicates, assume their presence + hasDuplicate = !support.detectDuplicates; + sortInput = !support.sortStable && results.slice( 0 ); + results.sort( sortOrder ); + + if ( hasDuplicate ) { + while ( (elem = results[i++]) ) { + if ( elem === results[ i ] ) { + j = duplicates.push( i ); + } + } + while ( j-- ) { + results.splice( duplicates[ j ], 1 ); + } + } + + // Clear input after sorting to release objects + // See https://github.com/jquery/sizzle/pull/225 + sortInput = null; + + return results; +}; + +/** + * Utility function for retrieving the text value of an array of DOM nodes + * @param {Array|Element} elem + */ +getText = Sizzle.getText = function( elem ) { + var node, + ret = "", + i = 0, + nodeType = elem.nodeType; + + if ( !nodeType ) { + // If no nodeType, this is expected to be an array + while ( (node = elem[i++]) ) { + // Do not traverse comment nodes + ret += getText( node ); + } + } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { + // Use textContent for elements + // innerText usage removed for consistency of new lines (jQuery #11153) + if ( typeof elem.textContent === "string" ) { + return elem.textContent; + } else { + // Traverse its children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + ret += getText( elem ); + } + } + } else if ( nodeType === 3 || nodeType === 4 ) { + return elem.nodeValue; + } + // Do not include comment or processing instruction nodes + + return ret; +}; + +Expr = Sizzle.selectors = { + + // Can be adjusted by the user + cacheLength: 50, + + createPseudo: markFunction, + + match: matchExpr, + + attrHandle: {}, + + find: {}, + + relative: { + ">": { dir: "parentNode", first: true }, + " ": { dir: "parentNode" }, + "+": { dir: "previousSibling", first: true }, + "~": { dir: "previousSibling" } + }, + + preFilter: { + "ATTR": function( match ) { + match[1] = match[1].replace( runescape, funescape ); + + // Move the given value to match[3] whether quoted or unquoted + match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape ); + + if ( match[2] === "~=" ) { + match[3] = " " + match[3] + " "; + } + + return match.slice( 0, 4 ); + }, + + "CHILD": function( match ) { + /* matches from matchExpr["CHILD"] + 1 type (only|nth|...) + 2 what (child|of-type) + 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) + 4 xn-component of xn+y argument ([+-]?\d*n|) + 5 sign of xn-component + 6 x of xn-component + 7 sign of y-component + 8 y of y-component + */ + match[1] = match[1].toLowerCase(); + + if ( match[1].slice( 0, 3 ) === "nth" ) { + // nth-* requires argument + if ( !match[3] ) { + Sizzle.error( match[0] ); + } + + // numeric x and y parameters for Expr.filter.CHILD + // remember that false/true cast respectively to 0/1 + match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) ); + match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" ); + + // other types prohibit arguments + } else if ( match[3] ) { + Sizzle.error( match[0] ); + } + + return match; + }, + + "PSEUDO": function( match ) { + var excess, + unquoted = !match[6] && match[2]; + + if ( matchExpr["CHILD"].test( match[0] ) ) { + return null; + } + + // Accept quoted arguments as-is + if ( match[3] ) { + match[2] = match[4] || match[5] || ""; + + // Strip excess characters from unquoted arguments + } else if ( unquoted && rpseudo.test( unquoted ) && + // Get excess from tokenize (recursively) + (excess = tokenize( unquoted, true )) && + // advance to the next closing parenthesis + (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) { + + // excess is a negative index + match[0] = match[0].slice( 0, excess ); + match[2] = unquoted.slice( 0, excess ); + } + + // Return only captures needed by the pseudo filter method (type and argument) + return match.slice( 0, 3 ); + } + }, + + filter: { + + "TAG": function( nodeNameSelector ) { + var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); + return nodeNameSelector === "*" ? + function() { return true; } : + function( elem ) { + return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; + }; + }, + + "CLASS": function( className ) { + var pattern = classCache[ className + " " ]; + + return pattern || + (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && + classCache( className, function( elem ) { + return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" ); + }); + }, + + "ATTR": function( name, operator, check ) { + return function( elem ) { + var result = Sizzle.attr( elem, name ); + + if ( result == null ) { + return operator === "!="; + } + if ( !operator ) { + return true; + } + + result += ""; + + return operator === "=" ? result === check : + operator === "!=" ? result !== check : + operator === "^=" ? check && result.indexOf( check ) === 0 : + operator === "*=" ? check && result.indexOf( check ) > -1 : + operator === "$=" ? check && result.slice( -check.length ) === check : + operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 : + operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : + false; + }; + }, + + "CHILD": function( type, what, argument, first, last ) { + var simple = type.slice( 0, 3 ) !== "nth", + forward = type.slice( -4 ) !== "last", + ofType = what === "of-type"; + + return first === 1 && last === 0 ? + + // Shortcut for :nth-*(n) + function( elem ) { + return !!elem.parentNode; + } : + + function( elem, context, xml ) { + var cache, uniqueCache, outerCache, node, nodeIndex, start, + dir = simple !== forward ? "nextSibling" : "previousSibling", + parent = elem.parentNode, + name = ofType && elem.nodeName.toLowerCase(), + useCache = !xml && !ofType, + diff = false; + + if ( parent ) { + + // :(first|last|only)-(child|of-type) + if ( simple ) { + while ( dir ) { + node = elem; + while ( (node = node[ dir ]) ) { + if ( ofType ? + node.nodeName.toLowerCase() === name : + node.nodeType === 1 ) { + + return false; + } + } + // Reverse direction for :only-* (if we haven't yet done so) + start = dir = type === "only" && !start && "nextSibling"; + } + return true; + } + + start = [ forward ? parent.firstChild : parent.lastChild ]; + + // non-xml :nth-child(...) stores cache data on `parent` + if ( forward && useCache ) { + + // Seek `elem` from a previously-cached index + + // ...in a gzip-friendly way + node = parent; + outerCache = node[ expando ] || (node[ expando ] = {}); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ node.uniqueID ] || + (outerCache[ node.uniqueID ] = {}); + + cache = uniqueCache[ type ] || []; + nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; + diff = nodeIndex && cache[ 2 ]; + node = nodeIndex && parent.childNodes[ nodeIndex ]; + + while ( (node = ++nodeIndex && node && node[ dir ] || + + // Fallback to seeking `elem` from the start + (diff = nodeIndex = 0) || start.pop()) ) { + + // When found, cache indexes on `parent` and break + if ( node.nodeType === 1 && ++diff && node === elem ) { + uniqueCache[ type ] = [ dirruns, nodeIndex, diff ]; + break; + } + } + + } else { + // Use previously-cached element index if available + if ( useCache ) { + // ...in a gzip-friendly way + node = elem; + outerCache = node[ expando ] || (node[ expando ] = {}); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ node.uniqueID ] || + (outerCache[ node.uniqueID ] = {}); + + cache = uniqueCache[ type ] || []; + nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; + diff = nodeIndex; + } + + // xml :nth-child(...) + // or :nth-last-child(...) or :nth(-last)?-of-type(...) + if ( diff === false ) { + // Use the same loop as above to seek `elem` from the start + while ( (node = ++nodeIndex && node && node[ dir ] || + (diff = nodeIndex = 0) || start.pop()) ) { + + if ( ( ofType ? + node.nodeName.toLowerCase() === name : + node.nodeType === 1 ) && + ++diff ) { + + // Cache the index of each encountered element + if ( useCache ) { + outerCache = node[ expando ] || (node[ expando ] = {}); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ node.uniqueID ] || + (outerCache[ node.uniqueID ] = {}); + + uniqueCache[ type ] = [ dirruns, diff ]; + } + + if ( node === elem ) { + break; + } + } + } + } + } + + // Incorporate the offset, then check against cycle size + diff -= last; + return diff === first || ( diff % first === 0 && diff / first >= 0 ); + } + }; + }, + + "PSEUDO": function( pseudo, argument ) { + // pseudo-class names are case-insensitive + // http://www.w3.org/TR/selectors/#pseudo-classes + // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters + // Remember that setFilters inherits from pseudos + var args, + fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || + Sizzle.error( "unsupported pseudo: " + pseudo ); + + // The user may use createPseudo to indicate that + // arguments are needed to create the filter function + // just as Sizzle does + if ( fn[ expando ] ) { + return fn( argument ); + } + + // But maintain support for old signatures + if ( fn.length > 1 ) { + args = [ pseudo, pseudo, "", argument ]; + return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? + markFunction(function( seed, matches ) { + var idx, + matched = fn( seed, argument ), + i = matched.length; + while ( i-- ) { + idx = indexOf( seed, matched[i] ); + seed[ idx ] = !( matches[ idx ] = matched[i] ); + } + }) : + function( elem ) { + return fn( elem, 0, args ); + }; + } + + return fn; + } + }, + + pseudos: { + // Potentially complex pseudos + "not": markFunction(function( selector ) { + // Trim the selector passed to compile + // to avoid treating leading and trailing + // spaces as combinators + var input = [], + results = [], + matcher = compile( selector.replace( rtrim, "$1" ) ); + + return matcher[ expando ] ? + markFunction(function( seed, matches, context, xml ) { + var elem, + unmatched = matcher( seed, null, xml, [] ), + i = seed.length; + + // Match elements unmatched by `matcher` + while ( i-- ) { + if ( (elem = unmatched[i]) ) { + seed[i] = !(matches[i] = elem); + } + } + }) : + function( elem, context, xml ) { + input[0] = elem; + matcher( input, null, xml, results ); + // Don't keep the element (issue #299) + input[0] = null; + return !results.pop(); + }; + }), + + "has": markFunction(function( selector ) { + return function( elem ) { + return Sizzle( selector, elem ).length > 0; + }; + }), + + "contains": markFunction(function( text ) { + text = text.replace( runescape, funescape ); + return function( elem ) { + return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1; + }; + }), + + // "Whether an element is represented by a :lang() selector + // is based solely on the element's language value + // being equal to the identifier C, + // or beginning with the identifier C immediately followed by "-". + // The matching of C against the element's language value is performed case-insensitively. + // The identifier C does not have to be a valid language name." + // http://www.w3.org/TR/selectors/#lang-pseudo + "lang": markFunction( function( lang ) { + // lang value must be a valid identifier + if ( !ridentifier.test(lang || "") ) { + Sizzle.error( "unsupported lang: " + lang ); + } + lang = lang.replace( runescape, funescape ).toLowerCase(); + return function( elem ) { + var elemLang; + do { + if ( (elemLang = documentIsHTML ? + elem.lang : + elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) { + + elemLang = elemLang.toLowerCase(); + return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; + } + } while ( (elem = elem.parentNode) && elem.nodeType === 1 ); + return false; + }; + }), + + // Miscellaneous + "target": function( elem ) { + var hash = window.location && window.location.hash; + return hash && hash.slice( 1 ) === elem.id; + }, + + "root": function( elem ) { + return elem === docElem; + }, + + "focus": function( elem ) { + return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); + }, + + // Boolean properties + "enabled": createDisabledPseudo( false ), + "disabled": createDisabledPseudo( true ), + + "checked": function( elem ) { + // In CSS3, :checked should return both checked and selected elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + var nodeName = elem.nodeName.toLowerCase(); + return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected); + }, + + "selected": function( elem ) { + // Accessing this property makes selected-by-default + // options in Safari work properly + if ( elem.parentNode ) { + elem.parentNode.selectedIndex; + } + + return elem.selected === true; + }, + + // Contents + "empty": function( elem ) { + // http://www.w3.org/TR/selectors/#empty-pseudo + // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), + // but not by others (comment: 8; processing instruction: 7; etc.) + // nodeType < 6 works because attributes (2) do not appear as children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + if ( elem.nodeType < 6 ) { + return false; + } + } + return true; + }, + + "parent": function( elem ) { + return !Expr.pseudos["empty"]( elem ); + }, + + // Element/input types + "header": function( elem ) { + return rheader.test( elem.nodeName ); + }, + + "input": function( elem ) { + return rinputs.test( elem.nodeName ); + }, + + "button": function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === "button" || name === "button"; + }, + + "text": function( elem ) { + var attr; + return elem.nodeName.toLowerCase() === "input" && + elem.type === "text" && + + // Support: IE<8 + // New HTML5 attribute values (e.g., "search") appear with elem.type === "text" + ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" ); + }, + + // Position-in-collection + "first": createPositionalPseudo(function() { + return [ 0 ]; + }), + + "last": createPositionalPseudo(function( matchIndexes, length ) { + return [ length - 1 ]; + }), + + "eq": createPositionalPseudo(function( matchIndexes, length, argument ) { + return [ argument < 0 ? argument + length : argument ]; + }), + + "even": createPositionalPseudo(function( matchIndexes, length ) { + var i = 0; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "odd": createPositionalPseudo(function( matchIndexes, length ) { + var i = 1; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "lt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; --i >= 0; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "gt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; ++i < length; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }) + } +}; + +Expr.pseudos["nth"] = Expr.pseudos["eq"]; + +// Add button/input type pseudos +for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { + Expr.pseudos[ i ] = createInputPseudo( i ); +} +for ( i in { submit: true, reset: true } ) { + Expr.pseudos[ i ] = createButtonPseudo( i ); +} + +// Easy API for creating new setFilters +function setFilters() {} +setFilters.prototype = Expr.filters = Expr.pseudos; +Expr.setFilters = new setFilters(); + +tokenize = Sizzle.tokenize = function( selector, parseOnly ) { + var matched, match, tokens, type, + soFar, groups, preFilters, + cached = tokenCache[ selector + " " ]; + + if ( cached ) { + return parseOnly ? 0 : cached.slice( 0 ); + } + + soFar = selector; + groups = []; + preFilters = Expr.preFilter; + + while ( soFar ) { + + // Comma and first run + if ( !matched || (match = rcomma.exec( soFar )) ) { + if ( match ) { + // Don't consume trailing commas as valid + soFar = soFar.slice( match[0].length ) || soFar; + } + groups.push( (tokens = []) ); + } + + matched = false; + + // Combinators + if ( (match = rcombinators.exec( soFar )) ) { + matched = match.shift(); + tokens.push({ + value: matched, + // Cast descendant combinators to space + type: match[0].replace( rtrim, " " ) + }); + soFar = soFar.slice( matched.length ); + } + + // Filters + for ( type in Expr.filter ) { + if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] || + (match = preFilters[ type ]( match ))) ) { + matched = match.shift(); + tokens.push({ + value: matched, + type: type, + matches: match + }); + soFar = soFar.slice( matched.length ); + } + } + + if ( !matched ) { + break; + } + } + + // Return the length of the invalid excess + // if we're just parsing + // Otherwise, throw an error or return tokens + return parseOnly ? + soFar.length : + soFar ? + Sizzle.error( selector ) : + // Cache the tokens + tokenCache( selector, groups ).slice( 0 ); +}; + +function toSelector( tokens ) { + var i = 0, + len = tokens.length, + selector = ""; + for ( ; i < len; i++ ) { + selector += tokens[i].value; + } + return selector; +} + +function addCombinator( matcher, combinator, base ) { + var dir = combinator.dir, + skip = combinator.next, + key = skip || dir, + checkNonElements = base && key === "parentNode", + doneName = done++; + + return combinator.first ? + // Check against closest ancestor/preceding element + function( elem, context, xml ) { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + return matcher( elem, context, xml ); + } + } + } : + + // Check against all ancestor/preceding elements + function( elem, context, xml ) { + var oldCache, uniqueCache, outerCache, + newCache = [ dirruns, doneName ]; + + // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching + if ( xml ) { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + if ( matcher( elem, context, xml ) ) { + return true; + } + } + } + } else { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + outerCache = elem[ expando ] || (elem[ expando ] = {}); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {}); + + if ( skip && skip === elem.nodeName.toLowerCase() ) { + elem = elem[ dir ] || elem; + } else if ( (oldCache = uniqueCache[ key ]) && + oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { + + // Assign to newCache so results back-propagate to previous elements + return (newCache[ 2 ] = oldCache[ 2 ]); + } else { + // Reuse newcache so results back-propagate to previous elements + uniqueCache[ key ] = newCache; + + // A match means we're done; a fail means we have to keep checking + if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) { + return true; + } + } + } + } + } + }; +} + +function elementMatcher( matchers ) { + return matchers.length > 1 ? + function( elem, context, xml ) { + var i = matchers.length; + while ( i-- ) { + if ( !matchers[i]( elem, context, xml ) ) { + return false; + } + } + return true; + } : + matchers[0]; +} + +function multipleContexts( selector, contexts, results ) { + var i = 0, + len = contexts.length; + for ( ; i < len; i++ ) { + Sizzle( selector, contexts[i], results ); + } + return results; +} + +function condense( unmatched, map, filter, context, xml ) { + var elem, + newUnmatched = [], + i = 0, + len = unmatched.length, + mapped = map != null; + + for ( ; i < len; i++ ) { + if ( (elem = unmatched[i]) ) { + if ( !filter || filter( elem, context, xml ) ) { + newUnmatched.push( elem ); + if ( mapped ) { + map.push( i ); + } + } + } + } + + return newUnmatched; +} + +function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { + if ( postFilter && !postFilter[ expando ] ) { + postFilter = setMatcher( postFilter ); + } + if ( postFinder && !postFinder[ expando ] ) { + postFinder = setMatcher( postFinder, postSelector ); + } + return markFunction(function( seed, results, context, xml ) { + var temp, i, elem, + preMap = [], + postMap = [], + preexisting = results.length, + + // Get initial elements from seed or context + elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ), + + // Prefilter to get matcher input, preserving a map for seed-results synchronization + matcherIn = preFilter && ( seed || !selector ) ? + condense( elems, preMap, preFilter, context, xml ) : + elems, + + matcherOut = matcher ? + // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, + postFinder || ( seed ? preFilter : preexisting || postFilter ) ? + + // ...intermediate processing is necessary + [] : + + // ...otherwise use results directly + results : + matcherIn; + + // Find primary matches + if ( matcher ) { + matcher( matcherIn, matcherOut, context, xml ); + } + + // Apply postFilter + if ( postFilter ) { + temp = condense( matcherOut, postMap ); + postFilter( temp, [], context, xml ); + + // Un-match failing elements by moving them back to matcherIn + i = temp.length; + while ( i-- ) { + if ( (elem = temp[i]) ) { + matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem); + } + } + } + + if ( seed ) { + if ( postFinder || preFilter ) { + if ( postFinder ) { + // Get the final matcherOut by condensing this intermediate into postFinder contexts + temp = []; + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) ) { + // Restore matcherIn since elem is not yet a final match + temp.push( (matcherIn[i] = elem) ); + } + } + postFinder( null, (matcherOut = []), temp, xml ); + } + + // Move matched elements from seed to results to keep them synchronized + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) && + (temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) { + + seed[temp] = !(results[temp] = elem); + } + } + } + + // Add elements to results, through postFinder if defined + } else { + matcherOut = condense( + matcherOut === results ? + matcherOut.splice( preexisting, matcherOut.length ) : + matcherOut + ); + if ( postFinder ) { + postFinder( null, results, matcherOut, xml ); + } else { + push.apply( results, matcherOut ); + } + } + }); +} + +function matcherFromTokens( tokens ) { + var checkContext, matcher, j, + len = tokens.length, + leadingRelative = Expr.relative[ tokens[0].type ], + implicitRelative = leadingRelative || Expr.relative[" "], + i = leadingRelative ? 1 : 0, + + // The foundational matcher ensures that elements are reachable from top-level context(s) + matchContext = addCombinator( function( elem ) { + return elem === checkContext; + }, implicitRelative, true ), + matchAnyContext = addCombinator( function( elem ) { + return indexOf( checkContext, elem ) > -1; + }, implicitRelative, true ), + matchers = [ function( elem, context, xml ) { + var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( + (checkContext = context).nodeType ? + matchContext( elem, context, xml ) : + matchAnyContext( elem, context, xml ) ); + // Avoid hanging onto element (issue #299) + checkContext = null; + return ret; + } ]; + + for ( ; i < len; i++ ) { + if ( (matcher = Expr.relative[ tokens[i].type ]) ) { + matchers = [ addCombinator(elementMatcher( matchers ), matcher) ]; + } else { + matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches ); + + // Return special upon seeing a positional matcher + if ( matcher[ expando ] ) { + // Find the next relative operator (if any) for proper handling + j = ++i; + for ( ; j < len; j++ ) { + if ( Expr.relative[ tokens[j].type ] ) { + break; + } + } + return setMatcher( + i > 1 && elementMatcher( matchers ), + i > 1 && toSelector( + // If the preceding token was a descendant combinator, insert an implicit any-element `*` + tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" }) + ).replace( rtrim, "$1" ), + matcher, + i < j && matcherFromTokens( tokens.slice( i, j ) ), + j < len && matcherFromTokens( (tokens = tokens.slice( j )) ), + j < len && toSelector( tokens ) + ); + } + matchers.push( matcher ); + } + } + + return elementMatcher( matchers ); +} + +function matcherFromGroupMatchers( elementMatchers, setMatchers ) { + var bySet = setMatchers.length > 0, + byElement = elementMatchers.length > 0, + superMatcher = function( seed, context, xml, results, outermost ) { + var elem, j, matcher, + matchedCount = 0, + i = "0", + unmatched = seed && [], + setMatched = [], + contextBackup = outermostContext, + // We must always have either seed elements or outermost context + elems = seed || byElement && Expr.find["TAG"]( "*", outermost ), + // Use integer dirruns iff this is the outermost matcher + dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1), + len = elems.length; + + if ( outermost ) { + outermostContext = context === document || context || outermost; + } + + // Add elements passing elementMatchers directly to results + // Support: IE<9, Safari + // Tolerate NodeList properties (IE: "length"; Safari: ) matching elements by id + for ( ; i !== len && (elem = elems[i]) != null; i++ ) { + if ( byElement && elem ) { + j = 0; + if ( !context && elem.ownerDocument !== document ) { + setDocument( elem ); + xml = !documentIsHTML; + } + while ( (matcher = elementMatchers[j++]) ) { + if ( matcher( elem, context || document, xml) ) { + results.push( elem ); + break; + } + } + if ( outermost ) { + dirruns = dirrunsUnique; + } + } + + // Track unmatched elements for set filters + if ( bySet ) { + // They will have gone through all possible matchers + if ( (elem = !matcher && elem) ) { + matchedCount--; + } + + // Lengthen the array for every element, matched or not + if ( seed ) { + unmatched.push( elem ); + } + } + } + + // `i` is now the count of elements visited above, and adding it to `matchedCount` + // makes the latter nonnegative. + matchedCount += i; + + // Apply set filters to unmatched elements + // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount` + // equals `i`), unless we didn't visit _any_ elements in the above loop because we have + // no element matchers and no seed. + // Incrementing an initially-string "0" `i` allows `i` to remain a string only in that + // case, which will result in a "00" `matchedCount` that differs from `i` but is also + // numerically zero. + if ( bySet && i !== matchedCount ) { + j = 0; + while ( (matcher = setMatchers[j++]) ) { + matcher( unmatched, setMatched, context, xml ); + } + + if ( seed ) { + // Reintegrate element matches to eliminate the need for sorting + if ( matchedCount > 0 ) { + while ( i-- ) { + if ( !(unmatched[i] || setMatched[i]) ) { + setMatched[i] = pop.call( results ); + } + } + } + + // Discard index placeholder values to get only actual matches + setMatched = condense( setMatched ); + } + + // Add matches to results + push.apply( results, setMatched ); + + // Seedless set matches succeeding multiple successful matchers stipulate sorting + if ( outermost && !seed && setMatched.length > 0 && + ( matchedCount + setMatchers.length ) > 1 ) { + + Sizzle.uniqueSort( results ); + } + } + + // Override manipulation of globals by nested matchers + if ( outermost ) { + dirruns = dirrunsUnique; + outermostContext = contextBackup; + } + + return unmatched; + }; + + return bySet ? + markFunction( superMatcher ) : + superMatcher; +} + +compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { + var i, + setMatchers = [], + elementMatchers = [], + cached = compilerCache[ selector + " " ]; + + if ( !cached ) { + // Generate a function of recursive functions that can be used to check each element + if ( !match ) { + match = tokenize( selector ); + } + i = match.length; + while ( i-- ) { + cached = matcherFromTokens( match[i] ); + if ( cached[ expando ] ) { + setMatchers.push( cached ); + } else { + elementMatchers.push( cached ); + } + } + + // Cache the compiled function + cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); + + // Save selector and tokenization + cached.selector = selector; + } + return cached; +}; + +/** + * A low-level selection function that works with Sizzle's compiled + * selector functions + * @param {String|Function} selector A selector or a pre-compiled + * selector function built with Sizzle.compile + * @param {Element} context + * @param {Array} [results] + * @param {Array} [seed] A set of elements to match against + */ +select = Sizzle.select = function( selector, context, results, seed ) { + var i, tokens, token, type, find, + compiled = typeof selector === "function" && selector, + match = !seed && tokenize( (selector = compiled.selector || selector) ); + + results = results || []; + + // Try to minimize operations if there is only one selector in the list and no seed + // (the latter of which guarantees us context) + if ( match.length === 1 ) { + + // Reduce context if the leading compound selector is an ID + tokens = match[0] = match[0].slice( 0 ); + if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && + support.getById && context.nodeType === 9 && documentIsHTML && + Expr.relative[ tokens[1].type ] ) { + + context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0]; + if ( !context ) { + return results; + + // Precompiled matchers will still verify ancestry, so step up a level + } else if ( compiled ) { + context = context.parentNode; + } + + selector = selector.slice( tokens.shift().value.length ); + } + + // Fetch a seed set for right-to-left matching + i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length; + while ( i-- ) { + token = tokens[i]; + + // Abort if we hit a combinator + if ( Expr.relative[ (type = token.type) ] ) { + break; + } + if ( (find = Expr.find[ type ]) ) { + // Search, expanding context for leading sibling combinators + if ( (seed = find( + token.matches[0].replace( runescape, funescape ), + rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context + )) ) { + + // If seed is empty or no tokens remain, we can return early + tokens.splice( i, 1 ); + selector = seed.length && toSelector( tokens ); + if ( !selector ) { + push.apply( results, seed ); + return results; + } + + break; + } + } + } + } + + // Compile and execute a filtering function if one is not provided + // Provide `match` to avoid retokenization if we modified the selector above + ( compiled || compile( selector, match ) )( + seed, + context, + !documentIsHTML, + results, + !context || rsibling.test( selector ) && testContext( context.parentNode ) || context + ); + return results; +}; + +// One-time assignments + +// Sort stability +support.sortStable = expando.split("").sort( sortOrder ).join("") === expando; + +// Support: Chrome 14-35+ +// Always assume duplicates if they aren't passed to the comparison function +support.detectDuplicates = !!hasDuplicate; + +// Initialize against the default document +setDocument(); + +// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) +// Detached nodes confoundingly follow *each other* +support.sortDetached = assert(function( el ) { + // Should return 1, but returns 4 (following) + return el.compareDocumentPosition( document.createElement("fieldset") ) & 1; +}); + +// Support: IE<8 +// Prevent attribute/property "interpolation" +// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx +if ( !assert(function( el ) { + el.innerHTML = ""; + return el.firstChild.getAttribute("href") === "#" ; +}) ) { + addHandle( "type|href|height|width", function( elem, name, isXML ) { + if ( !isXML ) { + return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); + } + }); +} + +// Support: IE<9 +// Use defaultValue in place of getAttribute("value") +if ( !support.attributes || !assert(function( el ) { + el.innerHTML = ""; + el.firstChild.setAttribute( "value", "" ); + return el.firstChild.getAttribute( "value" ) === ""; +}) ) { + addHandle( "value", function( elem, name, isXML ) { + if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { + return elem.defaultValue; + } + }); +} + +// Support: IE<9 +// Use getAttributeNode to fetch booleans when getAttribute lies +if ( !assert(function( el ) { + return el.getAttribute("disabled") == null; +}) ) { + addHandle( booleans, function( elem, name, isXML ) { + var val; + if ( !isXML ) { + return elem[ name ] === true ? name.toLowerCase() : + (val = elem.getAttributeNode( name )) && val.specified ? + val.value : + null; + } + }); +} + +return Sizzle; + +})( window ); + + + +jQuery.find = Sizzle; +jQuery.expr = Sizzle.selectors; + +// Deprecated +jQuery.expr[ ":" ] = jQuery.expr.pseudos; +jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort; +jQuery.text = Sizzle.getText; +jQuery.isXMLDoc = Sizzle.isXML; +jQuery.contains = Sizzle.contains; +jQuery.escapeSelector = Sizzle.escape; + + + + +var dir = function( elem, dir, until ) { + var matched = [], + truncate = until !== undefined; + + while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) { + if ( elem.nodeType === 1 ) { + if ( truncate && jQuery( elem ).is( until ) ) { + break; + } + matched.push( elem ); + } + } + return matched; +}; + + +var siblings = function( n, elem ) { + var matched = []; + + for ( ; n; n = n.nextSibling ) { + if ( n.nodeType === 1 && n !== elem ) { + matched.push( n ); + } + } + + return matched; +}; + + +var rneedsContext = jQuery.expr.match.needsContext; + +var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i ); + + + +var risSimple = /^.[^:#\[\.,]*$/; + +// Implement the identical functionality for filter and not +function winnow( elements, qualifier, not ) { + if ( jQuery.isFunction( qualifier ) ) { + return jQuery.grep( elements, function( elem, i ) { + return !!qualifier.call( elem, i, elem ) !== not; + } ); + + } + + if ( qualifier.nodeType ) { + return jQuery.grep( elements, function( elem ) { + return ( elem === qualifier ) !== not; + } ); + + } + + if ( typeof qualifier === "string" ) { + if ( risSimple.test( qualifier ) ) { + return jQuery.filter( qualifier, elements, not ); + } + + qualifier = jQuery.filter( qualifier, elements ); + } + + return jQuery.grep( elements, function( elem ) { + return ( indexOf.call( qualifier, elem ) > -1 ) !== not && elem.nodeType === 1; + } ); +} + +jQuery.filter = function( expr, elems, not ) { + var elem = elems[ 0 ]; + + if ( not ) { + expr = ":not(" + expr + ")"; + } + + return elems.length === 1 && elem.nodeType === 1 ? + jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [] : + jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) { + return elem.nodeType === 1; + } ) ); +}; + +jQuery.fn.extend( { + find: function( selector ) { + var i, ret, + len = this.length, + self = this; + + if ( typeof selector !== "string" ) { + return this.pushStack( jQuery( selector ).filter( function() { + for ( i = 0; i < len; i++ ) { + if ( jQuery.contains( self[ i ], this ) ) { + return true; + } + } + } ) ); + } + + ret = this.pushStack( [] ); + + for ( i = 0; i < len; i++ ) { + jQuery.find( selector, self[ i ], ret ); + } + + return len > 1 ? jQuery.uniqueSort( ret ) : ret; + }, + filter: function( selector ) { + return this.pushStack( winnow( this, selector || [], false ) ); + }, + not: function( selector ) { + return this.pushStack( winnow( this, selector || [], true ) ); + }, + is: function( selector ) { + return !!winnow( + this, + + // If this is a positional/relative selector, check membership in the returned set + // so $("p:first").is("p:last") won't return true for a doc with two "p". + typeof selector === "string" && rneedsContext.test( selector ) ? + jQuery( selector ) : + selector || [], + false + ).length; + } +} ); + + +// Initialize a jQuery object + + +// A central reference to the root jQuery(document) +var rootjQuery, + + // A simple way to check for HTML strings + // Prioritize #id over to avoid XSS via location.hash (#9521) + // Strict HTML recognition (#11290: must start with <) + // Shortcut simple #id case for speed + rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/, + + init = jQuery.fn.init = function( selector, context, root ) { + var match, elem; + + // HANDLE: $(""), $(null), $(undefined), $(false) + if ( !selector ) { + return this; + } + + // Method init() accepts an alternate rootjQuery + // so migrate can support jQuery.sub (gh-2101) + root = root || rootjQuery; + + // Handle HTML strings + if ( typeof selector === "string" ) { + if ( selector[ 0 ] === "<" && + selector[ selector.length - 1 ] === ">" && + selector.length >= 3 ) { + + // Assume that strings that start and end with <> are HTML and skip the regex check + match = [ null, selector, null ]; + + } else { + match = rquickExpr.exec( selector ); + } + + // Match html or make sure no context is specified for #id + if ( match && ( match[ 1 ] || !context ) ) { + + // HANDLE: $(html) -> $(array) + if ( match[ 1 ] ) { + context = context instanceof jQuery ? context[ 0 ] : context; + + // Option to run scripts is true for back-compat + // Intentionally let the error be thrown if parseHTML is not present + jQuery.merge( this, jQuery.parseHTML( + match[ 1 ], + context && context.nodeType ? context.ownerDocument || context : document, + true + ) ); + + // HANDLE: $(html, props) + if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) { + for ( match in context ) { + + // Properties of context are called as methods if possible + if ( jQuery.isFunction( this[ match ] ) ) { + this[ match ]( context[ match ] ); + + // ...and otherwise set as attributes + } else { + this.attr( match, context[ match ] ); + } + } + } + + return this; + + // HANDLE: $(#id) + } else { + elem = document.getElementById( match[ 2 ] ); + + if ( elem ) { + + // Inject the element directly into the jQuery object + this[ 0 ] = elem; + this.length = 1; + } + return this; + } + + // HANDLE: $(expr, $(...)) + } else if ( !context || context.jquery ) { + return ( context || root ).find( selector ); + + // HANDLE: $(expr, context) + // (which is just equivalent to: $(context).find(expr) + } else { + return this.constructor( context ).find( selector ); + } + + // HANDLE: $(DOMElement) + } else if ( selector.nodeType ) { + this[ 0 ] = selector; + this.length = 1; + return this; + + // HANDLE: $(function) + // Shortcut for document ready + } else if ( jQuery.isFunction( selector ) ) { + return root.ready !== undefined ? + root.ready( selector ) : + + // Execute immediately if ready is not present + selector( jQuery ); + } + + return jQuery.makeArray( selector, this ); + }; + +// Give the init function the jQuery prototype for later instantiation +init.prototype = jQuery.fn; + +// Initialize central reference +rootjQuery = jQuery( document ); + + +var rparentsprev = /^(?:parents|prev(?:Until|All))/, + + // Methods guaranteed to produce a unique set when starting from a unique set + guaranteedUnique = { + children: true, + contents: true, + next: true, + prev: true + }; + +jQuery.fn.extend( { + has: function( target ) { + var targets = jQuery( target, this ), + l = targets.length; + + return this.filter( function() { + var i = 0; + for ( ; i < l; i++ ) { + if ( jQuery.contains( this, targets[ i ] ) ) { + return true; + } + } + } ); + }, + + closest: function( selectors, context ) { + var cur, + i = 0, + l = this.length, + matched = [], + targets = typeof selectors !== "string" && jQuery( selectors ); + + // Positional selectors never match, since there's no _selection_ context + if ( !rneedsContext.test( selectors ) ) { + for ( ; i < l; i++ ) { + for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) { + + // Always skip document fragments + if ( cur.nodeType < 11 && ( targets ? + targets.index( cur ) > -1 : + + // Don't pass non-elements to Sizzle + cur.nodeType === 1 && + jQuery.find.matchesSelector( cur, selectors ) ) ) { + + matched.push( cur ); + break; + } + } + } + } + + return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched ); + }, + + // Determine the position of an element within the set + index: function( elem ) { + + // No argument, return index in parent + if ( !elem ) { + return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1; + } + + // Index in selector + if ( typeof elem === "string" ) { + return indexOf.call( jQuery( elem ), this[ 0 ] ); + } + + // Locate the position of the desired element + return indexOf.call( this, + + // If it receives a jQuery object, the first element is used + elem.jquery ? elem[ 0 ] : elem + ); + }, + + add: function( selector, context ) { + return this.pushStack( + jQuery.uniqueSort( + jQuery.merge( this.get(), jQuery( selector, context ) ) + ) + ); + }, + + addBack: function( selector ) { + return this.add( selector == null ? + this.prevObject : this.prevObject.filter( selector ) + ); + } +} ); + +function sibling( cur, dir ) { + while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {} + return cur; +} + +jQuery.each( { + parent: function( elem ) { + var parent = elem.parentNode; + return parent && parent.nodeType !== 11 ? parent : null; + }, + parents: function( elem ) { + return dir( elem, "parentNode" ); + }, + parentsUntil: function( elem, i, until ) { + return dir( elem, "parentNode", until ); + }, + next: function( elem ) { + return sibling( elem, "nextSibling" ); + }, + prev: function( elem ) { + return sibling( elem, "previousSibling" ); + }, + nextAll: function( elem ) { + return dir( elem, "nextSibling" ); + }, + prevAll: function( elem ) { + return dir( elem, "previousSibling" ); + }, + nextUntil: function( elem, i, until ) { + return dir( elem, "nextSibling", until ); + }, + prevUntil: function( elem, i, until ) { + return dir( elem, "previousSibling", until ); + }, + siblings: function( elem ) { + return siblings( ( elem.parentNode || {} ).firstChild, elem ); + }, + children: function( elem ) { + return siblings( elem.firstChild ); + }, + contents: function( elem ) { + return elem.contentDocument || jQuery.merge( [], elem.childNodes ); + } +}, function( name, fn ) { + jQuery.fn[ name ] = function( until, selector ) { + var matched = jQuery.map( this, fn, until ); + + if ( name.slice( -5 ) !== "Until" ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + matched = jQuery.filter( selector, matched ); + } + + if ( this.length > 1 ) { + + // Remove duplicates + if ( !guaranteedUnique[ name ] ) { + jQuery.uniqueSort( matched ); + } + + // Reverse order for parents* and prev-derivatives + if ( rparentsprev.test( name ) ) { + matched.reverse(); + } + } + + return this.pushStack( matched ); + }; +} ); +var rnotwhite = ( /\S+/g ); + + + +// Convert String-formatted options into Object-formatted ones +function createOptions( options ) { + var object = {}; + jQuery.each( options.match( rnotwhite ) || [], function( _, flag ) { + object[ flag ] = true; + } ); + return object; +} + +/* + * Create a callback list using the following parameters: + * + * options: an optional list of space-separated options that will change how + * the callback list behaves or a more traditional option object + * + * By default a callback list will act like an event callback list and can be + * "fired" multiple times. + * + * Possible options: + * + * once: will ensure the callback list can only be fired once (like a Deferred) + * + * memory: will keep track of previous values and will call any callback added + * after the list has been fired right away with the latest "memorized" + * values (like a Deferred) + * + * unique: will ensure a callback can only be added once (no duplicate in the list) + * + * stopOnFalse: interrupt callings when a callback returns false + * + */ +jQuery.Callbacks = function( options ) { + + // Convert options from String-formatted to Object-formatted if needed + // (we check in cache first) + options = typeof options === "string" ? + createOptions( options ) : + jQuery.extend( {}, options ); + + var // Flag to know if list is currently firing + firing, + + // Last fire value for non-forgettable lists + memory, + + // Flag to know if list was already fired + fired, + + // Flag to prevent firing + locked, + + // Actual callback list + list = [], + + // Queue of execution data for repeatable lists + queue = [], + + // Index of currently firing callback (modified by add/remove as needed) + firingIndex = -1, + + // Fire callbacks + fire = function() { + + // Enforce single-firing + locked = options.once; + + // Execute callbacks for all pending executions, + // respecting firingIndex overrides and runtime changes + fired = firing = true; + for ( ; queue.length; firingIndex = -1 ) { + memory = queue.shift(); + while ( ++firingIndex < list.length ) { + + // Run callback and check for early termination + if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false && + options.stopOnFalse ) { + + // Jump to end and forget the data so .add doesn't re-fire + firingIndex = list.length; + memory = false; + } + } + } + + // Forget the data if we're done with it + if ( !options.memory ) { + memory = false; + } + + firing = false; + + // Clean up if we're done firing for good + if ( locked ) { + + // Keep an empty list if we have data for future add calls + if ( memory ) { + list = []; + + // Otherwise, this object is spent + } else { + list = ""; + } + } + }, + + // Actual Callbacks object + self = { + + // Add a callback or a collection of callbacks to the list + add: function() { + if ( list ) { + + // If we have memory from a past run, we should fire after adding + if ( memory && !firing ) { + firingIndex = list.length - 1; + queue.push( memory ); + } + + ( function add( args ) { + jQuery.each( args, function( _, arg ) { + if ( jQuery.isFunction( arg ) ) { + if ( !options.unique || !self.has( arg ) ) { + list.push( arg ); + } + } else if ( arg && arg.length && jQuery.type( arg ) !== "string" ) { + + // Inspect recursively + add( arg ); + } + } ); + } )( arguments ); + + if ( memory && !firing ) { + fire(); + } + } + return this; + }, + + // Remove a callback from the list + remove: function() { + jQuery.each( arguments, function( _, arg ) { + var index; + while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { + list.splice( index, 1 ); + + // Handle firing indexes + if ( index <= firingIndex ) { + firingIndex--; + } + } + } ); + return this; + }, + + // Check if a given callback is in the list. + // If no argument is given, return whether or not list has callbacks attached. + has: function( fn ) { + return fn ? + jQuery.inArray( fn, list ) > -1 : + list.length > 0; + }, + + // Remove all callbacks from the list + empty: function() { + if ( list ) { + list = []; + } + return this; + }, + + // Disable .fire and .add + // Abort any current/pending executions + // Clear all callbacks and values + disable: function() { + locked = queue = []; + list = memory = ""; + return this; + }, + disabled: function() { + return !list; + }, + + // Disable .fire + // Also disable .add unless we have memory (since it would have no effect) + // Abort any pending executions + lock: function() { + locked = queue = []; + if ( !memory && !firing ) { + list = memory = ""; + } + return this; + }, + locked: function() { + return !!locked; + }, + + // Call all callbacks with the given context and arguments + fireWith: function( context, args ) { + if ( !locked ) { + args = args || []; + args = [ context, args.slice ? args.slice() : args ]; + queue.push( args ); + if ( !firing ) { + fire(); + } + } + return this; + }, + + // Call all the callbacks with the given arguments + fire: function() { + self.fireWith( this, arguments ); + return this; + }, + + // To know if the callbacks have already been called at least once + fired: function() { + return !!fired; + } + }; + + return self; +}; + + +function Identity( v ) { + return v; +} +function Thrower( ex ) { + throw ex; +} + +function adoptValue( value, resolve, reject ) { + var method; + + try { + + // Check for promise aspect first to privilege synchronous behavior + if ( value && jQuery.isFunction( ( method = value.promise ) ) ) { + method.call( value ).done( resolve ).fail( reject ); + + // Other thenables + } else if ( value && jQuery.isFunction( ( method = value.then ) ) ) { + method.call( value, resolve, reject ); + + // Other non-thenables + } else { + + // Support: Android 4.0 only + // Strict mode functions invoked without .call/.apply get global-object context + resolve.call( undefined, value ); + } + + // For Promises/A+, convert exceptions into rejections + // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in + // Deferred#then to conditionally suppress rejection. + } catch ( value ) { + + // Support: Android 4.0 only + // Strict mode functions invoked without .call/.apply get global-object context + reject.call( undefined, value ); + } +} + +jQuery.extend( { + + Deferred: function( func ) { + var tuples = [ + + // action, add listener, callbacks, + // ... .then handlers, argument index, [final state] + [ "notify", "progress", jQuery.Callbacks( "memory" ), + jQuery.Callbacks( "memory" ), 2 ], + [ "resolve", "done", jQuery.Callbacks( "once memory" ), + jQuery.Callbacks( "once memory" ), 0, "resolved" ], + [ "reject", "fail", jQuery.Callbacks( "once memory" ), + jQuery.Callbacks( "once memory" ), 1, "rejected" ] + ], + state = "pending", + promise = { + state: function() { + return state; + }, + always: function() { + deferred.done( arguments ).fail( arguments ); + return this; + }, + "catch": function( fn ) { + return promise.then( null, fn ); + }, + + // Keep pipe for back-compat + pipe: function( /* fnDone, fnFail, fnProgress */ ) { + var fns = arguments; + + return jQuery.Deferred( function( newDefer ) { + jQuery.each( tuples, function( i, tuple ) { + + // Map tuples (progress, done, fail) to arguments (done, fail, progress) + var fn = jQuery.isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ]; + + // deferred.progress(function() { bind to newDefer or newDefer.notify }) + // deferred.done(function() { bind to newDefer or newDefer.resolve }) + // deferred.fail(function() { bind to newDefer or newDefer.reject }) + deferred[ tuple[ 1 ] ]( function() { + var returned = fn && fn.apply( this, arguments ); + if ( returned && jQuery.isFunction( returned.promise ) ) { + returned.promise() + .progress( newDefer.notify ) + .done( newDefer.resolve ) + .fail( newDefer.reject ); + } else { + newDefer[ tuple[ 0 ] + "With" ]( + this, + fn ? [ returned ] : arguments + ); + } + } ); + } ); + fns = null; + } ).promise(); + }, + then: function( onFulfilled, onRejected, onProgress ) { + var maxDepth = 0; + function resolve( depth, deferred, handler, special ) { + return function() { + var that = this, + args = arguments, + mightThrow = function() { + var returned, then; + + // Support: Promises/A+ section 2.3.3.3.3 + // https://promisesaplus.com/#point-59 + // Ignore double-resolution attempts + if ( depth < maxDepth ) { + return; + } + + returned = handler.apply( that, args ); + + // Support: Promises/A+ section 2.3.1 + // https://promisesaplus.com/#point-48 + if ( returned === deferred.promise() ) { + throw new TypeError( "Thenable self-resolution" ); + } + + // Support: Promises/A+ sections 2.3.3.1, 3.5 + // https://promisesaplus.com/#point-54 + // https://promisesaplus.com/#point-75 + // Retrieve `then` only once + then = returned && + + // Support: Promises/A+ section 2.3.4 + // https://promisesaplus.com/#point-64 + // Only check objects and functions for thenability + ( typeof returned === "object" || + typeof returned === "function" ) && + returned.then; + + // Handle a returned thenable + if ( jQuery.isFunction( then ) ) { + + // Special processors (notify) just wait for resolution + if ( special ) { + then.call( + returned, + resolve( maxDepth, deferred, Identity, special ), + resolve( maxDepth, deferred, Thrower, special ) + ); + + // Normal processors (resolve) also hook into progress + } else { + + // ...and disregard older resolution values + maxDepth++; + + then.call( + returned, + resolve( maxDepth, deferred, Identity, special ), + resolve( maxDepth, deferred, Thrower, special ), + resolve( maxDepth, deferred, Identity, + deferred.notifyWith ) + ); + } + + // Handle all other returned values + } else { + + // Only substitute handlers pass on context + // and multiple values (non-spec behavior) + if ( handler !== Identity ) { + that = undefined; + args = [ returned ]; + } + + // Process the value(s) + // Default process is resolve + ( special || deferred.resolveWith )( that, args ); + } + }, + + // Only normal processors (resolve) catch and reject exceptions + process = special ? + mightThrow : + function() { + try { + mightThrow(); + } catch ( e ) { + + if ( jQuery.Deferred.exceptionHook ) { + jQuery.Deferred.exceptionHook( e, + process.stackTrace ); + } + + // Support: Promises/A+ section 2.3.3.3.4.1 + // https://promisesaplus.com/#point-61 + // Ignore post-resolution exceptions + if ( depth + 1 >= maxDepth ) { + + // Only substitute handlers pass on context + // and multiple values (non-spec behavior) + if ( handler !== Thrower ) { + that = undefined; + args = [ e ]; + } + + deferred.rejectWith( that, args ); + } + } + }; + + // Support: Promises/A+ section 2.3.3.3.1 + // https://promisesaplus.com/#point-57 + // Re-resolve promises immediately to dodge false rejection from + // subsequent errors + if ( depth ) { + process(); + } else { + + // Call an optional hook to record the stack, in case of exception + // since it's otherwise lost when execution goes async + if ( jQuery.Deferred.getStackHook ) { + process.stackTrace = jQuery.Deferred.getStackHook(); + } + window.setTimeout( process ); + } + }; + } + + return jQuery.Deferred( function( newDefer ) { + + // progress_handlers.add( ... ) + tuples[ 0 ][ 3 ].add( + resolve( + 0, + newDefer, + jQuery.isFunction( onProgress ) ? + onProgress : + Identity, + newDefer.notifyWith + ) + ); + + // fulfilled_handlers.add( ... ) + tuples[ 1 ][ 3 ].add( + resolve( + 0, + newDefer, + jQuery.isFunction( onFulfilled ) ? + onFulfilled : + Identity + ) + ); + + // rejected_handlers.add( ... ) + tuples[ 2 ][ 3 ].add( + resolve( + 0, + newDefer, + jQuery.isFunction( onRejected ) ? + onRejected : + Thrower + ) + ); + } ).promise(); + }, + + // Get a promise for this deferred + // If obj is provided, the promise aspect is added to the object + promise: function( obj ) { + return obj != null ? jQuery.extend( obj, promise ) : promise; + } + }, + deferred = {}; + + // Add list-specific methods + jQuery.each( tuples, function( i, tuple ) { + var list = tuple[ 2 ], + stateString = tuple[ 5 ]; + + // promise.progress = list.add + // promise.done = list.add + // promise.fail = list.add + promise[ tuple[ 1 ] ] = list.add; + + // Handle state + if ( stateString ) { + list.add( + function() { + + // state = "resolved" (i.e., fulfilled) + // state = "rejected" + state = stateString; + }, + + // rejected_callbacks.disable + // fulfilled_callbacks.disable + tuples[ 3 - i ][ 2 ].disable, + + // progress_callbacks.lock + tuples[ 0 ][ 2 ].lock + ); + } + + // progress_handlers.fire + // fulfilled_handlers.fire + // rejected_handlers.fire + list.add( tuple[ 3 ].fire ); + + // deferred.notify = function() { deferred.notifyWith(...) } + // deferred.resolve = function() { deferred.resolveWith(...) } + // deferred.reject = function() { deferred.rejectWith(...) } + deferred[ tuple[ 0 ] ] = function() { + deferred[ tuple[ 0 ] + "With" ]( this === deferred ? undefined : this, arguments ); + return this; + }; + + // deferred.notifyWith = list.fireWith + // deferred.resolveWith = list.fireWith + // deferred.rejectWith = list.fireWith + deferred[ tuple[ 0 ] + "With" ] = list.fireWith; + } ); + + // Make the deferred a promise + promise.promise( deferred ); + + // Call given func if any + if ( func ) { + func.call( deferred, deferred ); + } + + // All done! + return deferred; + }, + + // Deferred helper + when: function( singleValue ) { + var + + // count of uncompleted subordinates + remaining = arguments.length, + + // count of unprocessed arguments + i = remaining, + + // subordinate fulfillment data + resolveContexts = Array( i ), + resolveValues = slice.call( arguments ), + + // the master Deferred + master = jQuery.Deferred(), + + // subordinate callback factory + updateFunc = function( i ) { + return function( value ) { + resolveContexts[ i ] = this; + resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; + if ( !( --remaining ) ) { + master.resolveWith( resolveContexts, resolveValues ); + } + }; + }; + + // Single- and empty arguments are adopted like Promise.resolve + if ( remaining <= 1 ) { + adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject ); + + // Use .then() to unwrap secondary thenables (cf. gh-3000) + if ( master.state() === "pending" || + jQuery.isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) { + + return master.then(); + } + } + + // Multiple arguments are aggregated like Promise.all array elements + while ( i-- ) { + adoptValue( resolveValues[ i ], updateFunc( i ), master.reject ); + } + + return master.promise(); + } +} ); + + +// These usually indicate a programmer mistake during development, +// warn about them ASAP rather than swallowing them by default. +var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; + +jQuery.Deferred.exceptionHook = function( error, stack ) { + + // Support: IE 8 - 9 only + // Console exists when dev tools are open, which can happen at any time + if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) { + window.console.warn( "jQuery.Deferred exception: " + error.message, error.stack, stack ); + } +}; + + + + +jQuery.readyException = function( error ) { + window.setTimeout( function() { + throw error; + } ); +}; + + + + +// The deferred used on DOM ready +var readyList = jQuery.Deferred(); + +jQuery.fn.ready = function( fn ) { + + readyList + .then( fn ) + + // Wrap jQuery.readyException in a function so that the lookup + // happens at the time of error handling instead of callback + // registration. + .catch( function( error ) { + jQuery.readyException( error ); + } ); + + return this; +}; + +jQuery.extend( { + + // Is the DOM ready to be used? Set to true once it occurs. + isReady: false, + + // A counter to track how many items to wait for before + // the ready event fires. See #6781 + readyWait: 1, + + // Hold (or release) the ready event + holdReady: function( hold ) { + if ( hold ) { + jQuery.readyWait++; + } else { + jQuery.ready( true ); + } + }, + + // Handle when the DOM is ready + ready: function( wait ) { + + // Abort if there are pending holds or we're already ready + if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { + return; + } + + // Remember that the DOM is ready + jQuery.isReady = true; + + // If a normal DOM Ready event fired, decrement, and wait if need be + if ( wait !== true && --jQuery.readyWait > 0 ) { + return; + } + + // If there are functions bound, to execute + readyList.resolveWith( document, [ jQuery ] ); + } +} ); + +jQuery.ready.then = readyList.then; + +// The ready event handler and self cleanup method +function completed() { + document.removeEventListener( "DOMContentLoaded", completed ); + window.removeEventListener( "load", completed ); + jQuery.ready(); +} + +// Catch cases where $(document).ready() is called +// after the browser event has already occurred. +// Support: IE <=9 - 10 only +// Older IE sometimes signals "interactive" too soon +if ( document.readyState === "complete" || + ( document.readyState !== "loading" && !document.documentElement.doScroll ) ) { + + // Handle it asynchronously to allow scripts the opportunity to delay ready + window.setTimeout( jQuery.ready ); + +} else { + + // Use the handy event callback + document.addEventListener( "DOMContentLoaded", completed ); + + // A fallback to window.onload, that will always work + window.addEventListener( "load", completed ); +} + + + + +// Multifunctional method to get and set values of a collection +// The value/s can optionally be executed if it's a function +var access = function( elems, fn, key, value, chainable, emptyGet, raw ) { + var i = 0, + len = elems.length, + bulk = key == null; + + // Sets many values + if ( jQuery.type( key ) === "object" ) { + chainable = true; + for ( i in key ) { + access( elems, fn, i, key[ i ], true, emptyGet, raw ); + } + + // Sets one value + } else if ( value !== undefined ) { + chainable = true; + + if ( !jQuery.isFunction( value ) ) { + raw = true; + } + + if ( bulk ) { + + // Bulk operations run against the entire set + if ( raw ) { + fn.call( elems, value ); + fn = null; + + // ...except when executing function values + } else { + bulk = fn; + fn = function( elem, key, value ) { + return bulk.call( jQuery( elem ), value ); + }; + } + } + + if ( fn ) { + for ( ; i < len; i++ ) { + fn( + elems[ i ], key, raw ? + value : + value.call( elems[ i ], i, fn( elems[ i ], key ) ) + ); + } + } + } + + return chainable ? + elems : + + // Gets + bulk ? + fn.call( elems ) : + len ? fn( elems[ 0 ], key ) : emptyGet; +}; +var acceptData = function( owner ) { + + // Accepts only: + // - Node + // - Node.ELEMENT_NODE + // - Node.DOCUMENT_NODE + // - Object + // - Any + return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType ); +}; + + + + +function Data() { + this.expando = jQuery.expando + Data.uid++; +} + +Data.uid = 1; + +Data.prototype = { + + cache: function( owner ) { + + // Check if the owner object already has a cache + var value = owner[ this.expando ]; + + // If not, create one + if ( !value ) { + value = {}; + + // We can accept data for non-element nodes in modern browsers, + // but we should not, see #8335. + // Always return an empty object. + if ( acceptData( owner ) ) { + + // If it is a node unlikely to be stringify-ed or looped over + // use plain assignment + if ( owner.nodeType ) { + owner[ this.expando ] = value; + + // Otherwise secure it in a non-enumerable property + // configurable must be true to allow the property to be + // deleted when data is removed + } else { + Object.defineProperty( owner, this.expando, { + value: value, + configurable: true + } ); + } + } + } + + return value; + }, + set: function( owner, data, value ) { + var prop, + cache = this.cache( owner ); + + // Handle: [ owner, key, value ] args + // Always use camelCase key (gh-2257) + if ( typeof data === "string" ) { + cache[ jQuery.camelCase( data ) ] = value; + + // Handle: [ owner, { properties } ] args + } else { + + // Copy the properties one-by-one to the cache object + for ( prop in data ) { + cache[ jQuery.camelCase( prop ) ] = data[ prop ]; + } + } + return cache; + }, + get: function( owner, key ) { + return key === undefined ? + this.cache( owner ) : + + // Always use camelCase key (gh-2257) + owner[ this.expando ] && owner[ this.expando ][ jQuery.camelCase( key ) ]; + }, + access: function( owner, key, value ) { + + // In cases where either: + // + // 1. No key was specified + // 2. A string key was specified, but no value provided + // + // Take the "read" path and allow the get method to determine + // which value to return, respectively either: + // + // 1. The entire cache object + // 2. The data stored at the key + // + if ( key === undefined || + ( ( key && typeof key === "string" ) && value === undefined ) ) { + + return this.get( owner, key ); + } + + // When the key is not a string, or both a key and value + // are specified, set or extend (existing objects) with either: + // + // 1. An object of properties + // 2. A key and value + // + this.set( owner, key, value ); + + // Since the "set" path can have two possible entry points + // return the expected data based on which path was taken[*] + return value !== undefined ? value : key; + }, + remove: function( owner, key ) { + var i, + cache = owner[ this.expando ]; + + if ( cache === undefined ) { + return; + } + + if ( key !== undefined ) { + + // Support array or space separated string of keys + if ( jQuery.isArray( key ) ) { + + // If key is an array of keys... + // We always set camelCase keys, so remove that. + key = key.map( jQuery.camelCase ); + } else { + key = jQuery.camelCase( key ); + + // If a key with the spaces exists, use it. + // Otherwise, create an array by matching non-whitespace + key = key in cache ? + [ key ] : + ( key.match( rnotwhite ) || [] ); + } + + i = key.length; + + while ( i-- ) { + delete cache[ key[ i ] ]; + } + } + + // Remove the expando if there's no more data + if ( key === undefined || jQuery.isEmptyObject( cache ) ) { + + // Support: Chrome <=35 - 45 + // Webkit & Blink performance suffers when deleting properties + // from DOM nodes, so set to undefined instead + // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted) + if ( owner.nodeType ) { + owner[ this.expando ] = undefined; + } else { + delete owner[ this.expando ]; + } + } + }, + hasData: function( owner ) { + var cache = owner[ this.expando ]; + return cache !== undefined && !jQuery.isEmptyObject( cache ); + } +}; +var dataPriv = new Data(); + +var dataUser = new Data(); + + + +// Implementation Summary +// +// 1. Enforce API surface and semantic compatibility with 1.9.x branch +// 2. Improve the module's maintainability by reducing the storage +// paths to a single mechanism. +// 3. Use the same single mechanism to support "private" and "user" data. +// 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData) +// 5. Avoid exposing implementation details on user objects (eg. expando properties) +// 6. Provide a clear path for implementation upgrade to WeakMap in 2014 + +var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, + rmultiDash = /[A-Z]/g; + +function dataAttr( elem, key, data ) { + var name; + + // If nothing was found internally, try to fetch any + // data from the HTML5 data-* attribute + if ( data === undefined && elem.nodeType === 1 ) { + name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase(); + data = elem.getAttribute( name ); + + if ( typeof data === "string" ) { + try { + data = data === "true" ? true : + data === "false" ? false : + data === "null" ? null : + + // Only convert to a number if it doesn't change the string + +data + "" === data ? +data : + rbrace.test( data ) ? JSON.parse( data ) : + data; + } catch ( e ) {} + + // Make sure we set the data so it isn't changed later + dataUser.set( elem, key, data ); + } else { + data = undefined; + } + } + return data; +} + +jQuery.extend( { + hasData: function( elem ) { + return dataUser.hasData( elem ) || dataPriv.hasData( elem ); + }, + + data: function( elem, name, data ) { + return dataUser.access( elem, name, data ); + }, + + removeData: function( elem, name ) { + dataUser.remove( elem, name ); + }, + + // TODO: Now that all calls to _data and _removeData have been replaced + // with direct calls to dataPriv methods, these can be deprecated. + _data: function( elem, name, data ) { + return dataPriv.access( elem, name, data ); + }, + + _removeData: function( elem, name ) { + dataPriv.remove( elem, name ); + } +} ); + +jQuery.fn.extend( { + data: function( key, value ) { + var i, name, data, + elem = this[ 0 ], + attrs = elem && elem.attributes; + + // Gets all values + if ( key === undefined ) { + if ( this.length ) { + data = dataUser.get( elem ); + + if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) { + i = attrs.length; + while ( i-- ) { + + // Support: IE 11 only + // The attrs elements can be null (#14894) + if ( attrs[ i ] ) { + name = attrs[ i ].name; + if ( name.indexOf( "data-" ) === 0 ) { + name = jQuery.camelCase( name.slice( 5 ) ); + dataAttr( elem, name, data[ name ] ); + } + } + } + dataPriv.set( elem, "hasDataAttrs", true ); + } + } + + return data; + } + + // Sets multiple values + if ( typeof key === "object" ) { + return this.each( function() { + dataUser.set( this, key ); + } ); + } + + return access( this, function( value ) { + var data; + + // The calling jQuery object (element matches) is not empty + // (and therefore has an element appears at this[ 0 ]) and the + // `value` parameter was not undefined. An empty jQuery object + // will result in `undefined` for elem = this[ 0 ] which will + // throw an exception if an attempt to read a data cache is made. + if ( elem && value === undefined ) { + + // Attempt to get data from the cache + // The key will always be camelCased in Data + data = dataUser.get( elem, key ); + if ( data !== undefined ) { + return data; + } + + // Attempt to "discover" the data in + // HTML5 custom data-* attrs + data = dataAttr( elem, key ); + if ( data !== undefined ) { + return data; + } + + // We tried really hard, but the data doesn't exist. + return; + } + + // Set the data... + this.each( function() { + + // We always store the camelCased key + dataUser.set( this, key, value ); + } ); + }, null, value, arguments.length > 1, null, true ); + }, + + removeData: function( key ) { + return this.each( function() { + dataUser.remove( this, key ); + } ); + } +} ); + + +jQuery.extend( { + queue: function( elem, type, data ) { + var queue; + + if ( elem ) { + type = ( type || "fx" ) + "queue"; + queue = dataPriv.get( elem, type ); + + // Speed up dequeue by getting out quickly if this is just a lookup + if ( data ) { + if ( !queue || jQuery.isArray( data ) ) { + queue = dataPriv.access( elem, type, jQuery.makeArray( data ) ); + } else { + queue.push( data ); + } + } + return queue || []; + } + }, + + dequeue: function( elem, type ) { + type = type || "fx"; + + var queue = jQuery.queue( elem, type ), + startLength = queue.length, + fn = queue.shift(), + hooks = jQuery._queueHooks( elem, type ), + next = function() { + jQuery.dequeue( elem, type ); + }; + + // If the fx queue is dequeued, always remove the progress sentinel + if ( fn === "inprogress" ) { + fn = queue.shift(); + startLength--; + } + + if ( fn ) { + + // Add a progress sentinel to prevent the fx queue from being + // automatically dequeued + if ( type === "fx" ) { + queue.unshift( "inprogress" ); + } + + // Clear up the last queue stop function + delete hooks.stop; + fn.call( elem, next, hooks ); + } + + if ( !startLength && hooks ) { + hooks.empty.fire(); + } + }, + + // Not public - generate a queueHooks object, or return the current one + _queueHooks: function( elem, type ) { + var key = type + "queueHooks"; + return dataPriv.get( elem, key ) || dataPriv.access( elem, key, { + empty: jQuery.Callbacks( "once memory" ).add( function() { + dataPriv.remove( elem, [ type + "queue", key ] ); + } ) + } ); + } +} ); + +jQuery.fn.extend( { + queue: function( type, data ) { + var setter = 2; + + if ( typeof type !== "string" ) { + data = type; + type = "fx"; + setter--; + } + + if ( arguments.length < setter ) { + return jQuery.queue( this[ 0 ], type ); + } + + return data === undefined ? + this : + this.each( function() { + var queue = jQuery.queue( this, type, data ); + + // Ensure a hooks for this queue + jQuery._queueHooks( this, type ); + + if ( type === "fx" && queue[ 0 ] !== "inprogress" ) { + jQuery.dequeue( this, type ); + } + } ); + }, + dequeue: function( type ) { + return this.each( function() { + jQuery.dequeue( this, type ); + } ); + }, + clearQueue: function( type ) { + return this.queue( type || "fx", [] ); + }, + + // Get a promise resolved when queues of a certain type + // are emptied (fx is the type by default) + promise: function( type, obj ) { + var tmp, + count = 1, + defer = jQuery.Deferred(), + elements = this, + i = this.length, + resolve = function() { + if ( !( --count ) ) { + defer.resolveWith( elements, [ elements ] ); + } + }; + + if ( typeof type !== "string" ) { + obj = type; + type = undefined; + } + type = type || "fx"; + + while ( i-- ) { + tmp = dataPriv.get( elements[ i ], type + "queueHooks" ); + if ( tmp && tmp.empty ) { + count++; + tmp.empty.add( resolve ); + } + } + resolve(); + return defer.promise( obj ); + } +} ); +var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source; + +var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" ); + + +var cssExpand = [ "Top", "Right", "Bottom", "Left" ]; + +var isHiddenWithinTree = function( elem, el ) { + + // isHiddenWithinTree might be called from jQuery#filter function; + // in that case, element will be second argument + elem = el || elem; + + // Inline style trumps all + return elem.style.display === "none" || + elem.style.display === "" && + + // Otherwise, check computed style + // Support: Firefox <=43 - 45 + // Disconnected elements can have computed display: none, so first confirm that elem is + // in the document. + jQuery.contains( elem.ownerDocument, elem ) && + + jQuery.css( elem, "display" ) === "none"; + }; + +var swap = function( elem, options, callback, args ) { + var ret, name, + old = {}; + + // Remember the old values, and insert the new ones + for ( name in options ) { + old[ name ] = elem.style[ name ]; + elem.style[ name ] = options[ name ]; + } + + ret = callback.apply( elem, args || [] ); + + // Revert the old values + for ( name in options ) { + elem.style[ name ] = old[ name ]; + } + + return ret; +}; + + + + +function adjustCSS( elem, prop, valueParts, tween ) { + var adjusted, + scale = 1, + maxIterations = 20, + currentValue = tween ? + function() { + return tween.cur(); + } : + function() { + return jQuery.css( elem, prop, "" ); + }, + initial = currentValue(), + unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ), + + // Starting value computation is required for potential unit mismatches + initialInUnit = ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) && + rcssNum.exec( jQuery.css( elem, prop ) ); + + if ( initialInUnit && initialInUnit[ 3 ] !== unit ) { + + // Trust units reported by jQuery.css + unit = unit || initialInUnit[ 3 ]; + + // Make sure we update the tween properties later on + valueParts = valueParts || []; + + // Iteratively approximate from a nonzero starting point + initialInUnit = +initial || 1; + + do { + + // If previous iteration zeroed out, double until we get *something*. + // Use string for doubling so we don't accidentally see scale as unchanged below + scale = scale || ".5"; + + // Adjust and apply + initialInUnit = initialInUnit / scale; + jQuery.style( elem, prop, initialInUnit + unit ); + + // Update scale, tolerating zero or NaN from tween.cur() + // Break the loop if scale is unchanged or perfect, or if we've just had enough. + } while ( + scale !== ( scale = currentValue() / initial ) && scale !== 1 && --maxIterations + ); + } + + if ( valueParts ) { + initialInUnit = +initialInUnit || +initial || 0; + + // Apply relative offset (+=/-=) if specified + adjusted = valueParts[ 1 ] ? + initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] : + +valueParts[ 2 ]; + if ( tween ) { + tween.unit = unit; + tween.start = initialInUnit; + tween.end = adjusted; + } + } + return adjusted; +} + + +var defaultDisplayMap = {}; + +function getDefaultDisplay( elem ) { + var temp, + doc = elem.ownerDocument, + nodeName = elem.nodeName, + display = defaultDisplayMap[ nodeName ]; + + if ( display ) { + return display; + } + + temp = doc.body.appendChild( doc.createElement( nodeName ) ), + display = jQuery.css( temp, "display" ); + + temp.parentNode.removeChild( temp ); + + if ( display === "none" ) { + display = "block"; + } + defaultDisplayMap[ nodeName ] = display; + + return display; +} + +function showHide( elements, show ) { + var display, elem, + values = [], + index = 0, + length = elements.length; + + // Determine new display value for elements that need to change + for ( ; index < length; index++ ) { + elem = elements[ index ]; + if ( !elem.style ) { + continue; + } + + display = elem.style.display; + if ( show ) { + + // Since we force visibility upon cascade-hidden elements, an immediate (and slow) + // check is required in this first loop unless we have a nonempty display value (either + // inline or about-to-be-restored) + if ( display === "none" ) { + values[ index ] = dataPriv.get( elem, "display" ) || null; + if ( !values[ index ] ) { + elem.style.display = ""; + } + } + if ( elem.style.display === "" && isHiddenWithinTree( elem ) ) { + values[ index ] = getDefaultDisplay( elem ); + } + } else { + if ( display !== "none" ) { + values[ index ] = "none"; + + // Remember what we're overwriting + dataPriv.set( elem, "display", display ); + } + } + } + + // Set the display of the elements in a second loop to avoid constant reflow + for ( index = 0; index < length; index++ ) { + if ( values[ index ] != null ) { + elements[ index ].style.display = values[ index ]; + } + } + + return elements; +} + +jQuery.fn.extend( { + show: function() { + return showHide( this, true ); + }, + hide: function() { + return showHide( this ); + }, + toggle: function( state ) { + if ( typeof state === "boolean" ) { + return state ? this.show() : this.hide(); + } + + return this.each( function() { + if ( isHiddenWithinTree( this ) ) { + jQuery( this ).show(); + } else { + jQuery( this ).hide(); + } + } ); + } +} ); +var rcheckableType = ( /^(?:checkbox|radio)$/i ); + +var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]+)/i ); + +var rscriptType = ( /^$|\/(?:java|ecma)script/i ); + + + +// We have to close these tags to support XHTML (#13200) +var wrapMap = { + + // Support: IE <=9 only + option: [ 1, "" ], + + // XHTML parsers do not magically insert elements in the + // same way that tag soup parsers do. So we cannot shorten + // this by omitting or other required elements. + thead: [ 1, "", "
      " ], + col: [ 2, "", "
      " ], + tr: [ 2, "", "
      " ], + td: [ 3, "", "
      " ], + + _default: [ 0, "", "" ] +}; + +// Support: IE <=9 only +wrapMap.optgroup = wrapMap.option; + +wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; +wrapMap.th = wrapMap.td; + + +function getAll( context, tag ) { + + // Support: IE <=9 - 11 only + // Use typeof to avoid zero-argument method invocation on host objects (#15151) + var ret = typeof context.getElementsByTagName !== "undefined" ? + context.getElementsByTagName( tag || "*" ) : + typeof context.querySelectorAll !== "undefined" ? + context.querySelectorAll( tag || "*" ) : + []; + + return tag === undefined || tag && jQuery.nodeName( context, tag ) ? + jQuery.merge( [ context ], ret ) : + ret; +} + + +// Mark scripts as having already been evaluated +function setGlobalEval( elems, refElements ) { + var i = 0, + l = elems.length; + + for ( ; i < l; i++ ) { + dataPriv.set( + elems[ i ], + "globalEval", + !refElements || dataPriv.get( refElements[ i ], "globalEval" ) + ); + } +} + + +var rhtml = /<|&#?\w+;/; + +function buildFragment( elems, context, scripts, selection, ignored ) { + var elem, tmp, tag, wrap, contains, j, + fragment = context.createDocumentFragment(), + nodes = [], + i = 0, + l = elems.length; + + for ( ; i < l; i++ ) { + elem = elems[ i ]; + + if ( elem || elem === 0 ) { + + // Add nodes directly + if ( jQuery.type( elem ) === "object" ) { + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); + + // Convert non-html into a text node + } else if ( !rhtml.test( elem ) ) { + nodes.push( context.createTextNode( elem ) ); + + // Convert html into DOM nodes + } else { + tmp = tmp || fragment.appendChild( context.createElement( "div" ) ); + + // Deserialize a standard representation + tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase(); + wrap = wrapMap[ tag ] || wrapMap._default; + tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ]; + + // Descend through wrappers to the right content + j = wrap[ 0 ]; + while ( j-- ) { + tmp = tmp.lastChild; + } + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( nodes, tmp.childNodes ); + + // Remember the top-level container + tmp = fragment.firstChild; + + // Ensure the created nodes are orphaned (#12392) + tmp.textContent = ""; + } + } + } + + // Remove wrapper from fragment + fragment.textContent = ""; + + i = 0; + while ( ( elem = nodes[ i++ ] ) ) { + + // Skip elements already in the context collection (trac-4087) + if ( selection && jQuery.inArray( elem, selection ) > -1 ) { + if ( ignored ) { + ignored.push( elem ); + } + continue; + } + + contains = jQuery.contains( elem.ownerDocument, elem ); + + // Append to fragment + tmp = getAll( fragment.appendChild( elem ), "script" ); + + // Preserve script evaluation history + if ( contains ) { + setGlobalEval( tmp ); + } + + // Capture executables + if ( scripts ) { + j = 0; + while ( ( elem = tmp[ j++ ] ) ) { + if ( rscriptType.test( elem.type || "" ) ) { + scripts.push( elem ); + } + } + } + } + + return fragment; +} + + +( function() { + var fragment = document.createDocumentFragment(), + div = fragment.appendChild( document.createElement( "div" ) ), + input = document.createElement( "input" ); + + // Support: Android 4.0 - 4.3 only + // Check state lost if the name is set (#11217) + // Support: Windows Web Apps (WWA) + // `name` and `type` must use .setAttribute for WWA (#14901) + input.setAttribute( "type", "radio" ); + input.setAttribute( "checked", "checked" ); + input.setAttribute( "name", "t" ); + + div.appendChild( input ); + + // Support: Android <=4.1 only + // Older WebKit doesn't clone checked state correctly in fragments + support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; + + // Support: IE <=11 only + // Make sure textarea (and checkbox) defaultValue is properly cloned + div.innerHTML = ""; + support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; +} )(); +var documentElement = document.documentElement; + + + +var + rkeyEvent = /^key/, + rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, + rtypenamespace = /^([^.]*)(?:\.(.+)|)/; + +function returnTrue() { + return true; +} + +function returnFalse() { + return false; +} + +// Support: IE <=9 only +// See #13393 for more info +function safeActiveElement() { + try { + return document.activeElement; + } catch ( err ) { } +} + +function on( elem, types, selector, data, fn, one ) { + var origFn, type; + + // Types can be a map of types/handlers + if ( typeof types === "object" ) { + + // ( types-Object, selector, data ) + if ( typeof selector !== "string" ) { + + // ( types-Object, data ) + data = data || selector; + selector = undefined; + } + for ( type in types ) { + on( elem, type, selector, data, types[ type ], one ); + } + return elem; + } + + if ( data == null && fn == null ) { + + // ( types, fn ) + fn = selector; + data = selector = undefined; + } else if ( fn == null ) { + if ( typeof selector === "string" ) { + + // ( types, selector, fn ) + fn = data; + data = undefined; + } else { + + // ( types, data, fn ) + fn = data; + data = selector; + selector = undefined; + } + } + if ( fn === false ) { + fn = returnFalse; + } else if ( !fn ) { + return elem; + } + + if ( one === 1 ) { + origFn = fn; + fn = function( event ) { + + // Can use an empty set, since event contains the info + jQuery().off( event ); + return origFn.apply( this, arguments ); + }; + + // Use same guid so caller can remove using origFn + fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); + } + return elem.each( function() { + jQuery.event.add( this, types, fn, data, selector ); + } ); +} + +/* + * Helper functions for managing events -- not part of the public interface. + * Props to Dean Edwards' addEvent library for many of the ideas. + */ +jQuery.event = { + + global: {}, + + add: function( elem, types, handler, data, selector ) { + + var handleObjIn, eventHandle, tmp, + events, t, handleObj, + special, handlers, type, namespaces, origType, + elemData = dataPriv.get( elem ); + + // Don't attach events to noData or text/comment nodes (but allow plain objects) + if ( !elemData ) { + return; + } + + // Caller can pass in an object of custom data in lieu of the handler + if ( handler.handler ) { + handleObjIn = handler; + handler = handleObjIn.handler; + selector = handleObjIn.selector; + } + + // Ensure that invalid selectors throw exceptions at attach time + // Evaluate against documentElement in case elem is a non-element node (e.g., document) + if ( selector ) { + jQuery.find.matchesSelector( documentElement, selector ); + } + + // Make sure that the handler has a unique ID, used to find/remove it later + if ( !handler.guid ) { + handler.guid = jQuery.guid++; + } + + // Init the element's event structure and main handler, if this is the first + if ( !( events = elemData.events ) ) { + events = elemData.events = {}; + } + if ( !( eventHandle = elemData.handle ) ) { + eventHandle = elemData.handle = function( e ) { + + // Discard the second event of a jQuery.event.trigger() and + // when an event is called after a page has unloaded + return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ? + jQuery.event.dispatch.apply( elem, arguments ) : undefined; + }; + } + + // Handle multiple events separated by a space + types = ( types || "" ).match( rnotwhite ) || [ "" ]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[ t ] ) || []; + type = origType = tmp[ 1 ]; + namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); + + // There *must* be a type, no attaching namespace-only handlers + if ( !type ) { + continue; + } + + // If event changes its type, use the special event handlers for the changed type + special = jQuery.event.special[ type ] || {}; + + // If selector defined, determine special event api type, otherwise given type + type = ( selector ? special.delegateType : special.bindType ) || type; + + // Update special based on newly reset type + special = jQuery.event.special[ type ] || {}; + + // handleObj is passed to all event handlers + handleObj = jQuery.extend( { + type: type, + origType: origType, + data: data, + handler: handler, + guid: handler.guid, + selector: selector, + needsContext: selector && jQuery.expr.match.needsContext.test( selector ), + namespace: namespaces.join( "." ) + }, handleObjIn ); + + // Init the event handler queue if we're the first + if ( !( handlers = events[ type ] ) ) { + handlers = events[ type ] = []; + handlers.delegateCount = 0; + + // Only use addEventListener if the special events handler returns false + if ( !special.setup || + special.setup.call( elem, data, namespaces, eventHandle ) === false ) { + + if ( elem.addEventListener ) { + elem.addEventListener( type, eventHandle ); + } + } + } + + if ( special.add ) { + special.add.call( elem, handleObj ); + + if ( !handleObj.handler.guid ) { + handleObj.handler.guid = handler.guid; + } + } + + // Add to the element's handler list, delegates in front + if ( selector ) { + handlers.splice( handlers.delegateCount++, 0, handleObj ); + } else { + handlers.push( handleObj ); + } + + // Keep track of which events have ever been used, for event optimization + jQuery.event.global[ type ] = true; + } + + }, + + // Detach an event or set of events from an element + remove: function( elem, types, handler, selector, mappedTypes ) { + + var j, origCount, tmp, + events, t, handleObj, + special, handlers, type, namespaces, origType, + elemData = dataPriv.hasData( elem ) && dataPriv.get( elem ); + + if ( !elemData || !( events = elemData.events ) ) { + return; + } + + // Once for each type.namespace in types; type may be omitted + types = ( types || "" ).match( rnotwhite ) || [ "" ]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[ t ] ) || []; + type = origType = tmp[ 1 ]; + namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); + + // Unbind all events (on this namespace, if provided) for the element + if ( !type ) { + for ( type in events ) { + jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); + } + continue; + } + + special = jQuery.event.special[ type ] || {}; + type = ( selector ? special.delegateType : special.bindType ) || type; + handlers = events[ type ] || []; + tmp = tmp[ 2 ] && + new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ); + + // Remove matching events + origCount = j = handlers.length; + while ( j-- ) { + handleObj = handlers[ j ]; + + if ( ( mappedTypes || origType === handleObj.origType ) && + ( !handler || handler.guid === handleObj.guid ) && + ( !tmp || tmp.test( handleObj.namespace ) ) && + ( !selector || selector === handleObj.selector || + selector === "**" && handleObj.selector ) ) { + handlers.splice( j, 1 ); + + if ( handleObj.selector ) { + handlers.delegateCount--; + } + if ( special.remove ) { + special.remove.call( elem, handleObj ); + } + } + } + + // Remove generic event handler if we removed something and no more handlers exist + // (avoids potential for endless recursion during removal of special event handlers) + if ( origCount && !handlers.length ) { + if ( !special.teardown || + special.teardown.call( elem, namespaces, elemData.handle ) === false ) { + + jQuery.removeEvent( elem, type, elemData.handle ); + } + + delete events[ type ]; + } + } + + // Remove data and the expando if it's no longer used + if ( jQuery.isEmptyObject( events ) ) { + dataPriv.remove( elem, "handle events" ); + } + }, + + dispatch: function( nativeEvent ) { + + // Make a writable jQuery.Event from the native event object + var event = jQuery.event.fix( nativeEvent ); + + var i, j, ret, matched, handleObj, handlerQueue, + args = new Array( arguments.length ), + handlers = ( dataPriv.get( this, "events" ) || {} )[ event.type ] || [], + special = jQuery.event.special[ event.type ] || {}; + + // Use the fix-ed jQuery.Event rather than the (read-only) native event + args[ 0 ] = event; + + for ( i = 1; i < arguments.length; i++ ) { + args[ i ] = arguments[ i ]; + } + + event.delegateTarget = this; + + // Call the preDispatch hook for the mapped type, and let it bail if desired + if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { + return; + } + + // Determine handlers + handlerQueue = jQuery.event.handlers.call( this, event, handlers ); + + // Run delegates first; they may want to stop propagation beneath us + i = 0; + while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) { + event.currentTarget = matched.elem; + + j = 0; + while ( ( handleObj = matched.handlers[ j++ ] ) && + !event.isImmediatePropagationStopped() ) { + + // Triggered event must either 1) have no namespace, or 2) have namespace(s) + // a subset or equal to those in the bound event (both can have no namespace). + if ( !event.rnamespace || event.rnamespace.test( handleObj.namespace ) ) { + + event.handleObj = handleObj; + event.data = handleObj.data; + + ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle || + handleObj.handler ).apply( matched.elem, args ); + + if ( ret !== undefined ) { + if ( ( event.result = ret ) === false ) { + event.preventDefault(); + event.stopPropagation(); + } + } + } + } + } + + // Call the postDispatch hook for the mapped type + if ( special.postDispatch ) { + special.postDispatch.call( this, event ); + } + + return event.result; + }, + + handlers: function( event, handlers ) { + var i, matches, sel, handleObj, + handlerQueue = [], + delegateCount = handlers.delegateCount, + cur = event.target; + + // Support: IE <=9 + // Find delegate handlers + // Black-hole SVG instance trees (#13180) + // + // Support: Firefox <=42 + // Avoid non-left-click in FF but don't block IE radio events (#3861, gh-2343) + if ( delegateCount && cur.nodeType && + ( event.type !== "click" || isNaN( event.button ) || event.button < 1 ) ) { + + for ( ; cur !== this; cur = cur.parentNode || this ) { + + // Don't check non-elements (#13208) + // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) + if ( cur.nodeType === 1 && ( cur.disabled !== true || event.type !== "click" ) ) { + matches = []; + for ( i = 0; i < delegateCount; i++ ) { + handleObj = handlers[ i ]; + + // Don't conflict with Object.prototype properties (#13203) + sel = handleObj.selector + " "; + + if ( matches[ sel ] === undefined ) { + matches[ sel ] = handleObj.needsContext ? + jQuery( sel, this ).index( cur ) > -1 : + jQuery.find( sel, this, null, [ cur ] ).length; + } + if ( matches[ sel ] ) { + matches.push( handleObj ); + } + } + if ( matches.length ) { + handlerQueue.push( { elem: cur, handlers: matches } ); + } + } + } + } + + // Add the remaining (directly-bound) handlers + if ( delegateCount < handlers.length ) { + handlerQueue.push( { elem: this, handlers: handlers.slice( delegateCount ) } ); + } + + return handlerQueue; + }, + + addProp: function( name, hook ) { + Object.defineProperty( jQuery.Event.prototype, name, { + enumerable: true, + configurable: true, + + get: jQuery.isFunction( hook ) ? + function() { + if ( this.originalEvent ) { + return hook( this.originalEvent ); + } + } : + function() { + if ( this.originalEvent ) { + return this.originalEvent[ name ]; + } + }, + + set: function( value ) { + Object.defineProperty( this, name, { + enumerable: true, + configurable: true, + writable: true, + value: value + } ); + } + } ); + }, + + fix: function( originalEvent ) { + return originalEvent[ jQuery.expando ] ? + originalEvent : + new jQuery.Event( originalEvent ); + }, + + special: { + load: { + + // Prevent triggered image.load events from bubbling to window.load + noBubble: true + }, + focus: { + + // Fire native event if possible so blur/focus sequence is correct + trigger: function() { + if ( this !== safeActiveElement() && this.focus ) { + this.focus(); + return false; + } + }, + delegateType: "focusin" + }, + blur: { + trigger: function() { + if ( this === safeActiveElement() && this.blur ) { + this.blur(); + return false; + } + }, + delegateType: "focusout" + }, + click: { + + // For checkbox, fire native event so checked state will be right + trigger: function() { + if ( this.type === "checkbox" && this.click && jQuery.nodeName( this, "input" ) ) { + this.click(); + return false; + } + }, + + // For cross-browser consistency, don't fire native .click() on links + _default: function( event ) { + return jQuery.nodeName( event.target, "a" ); + } + }, + + beforeunload: { + postDispatch: function( event ) { + + // Support: Firefox 20+ + // Firefox doesn't alert if the returnValue field is not set. + if ( event.result !== undefined && event.originalEvent ) { + event.originalEvent.returnValue = event.result; + } + } + } + } +}; + +jQuery.removeEvent = function( elem, type, handle ) { + + // This "if" is needed for plain objects + if ( elem.removeEventListener ) { + elem.removeEventListener( type, handle ); + } +}; + +jQuery.Event = function( src, props ) { + + // Allow instantiation without the 'new' keyword + if ( !( this instanceof jQuery.Event ) ) { + return new jQuery.Event( src, props ); + } + + // Event object + if ( src && src.type ) { + this.originalEvent = src; + this.type = src.type; + + // Events bubbling up the document may have been marked as prevented + // by a handler lower down the tree; reflect the correct value. + this.isDefaultPrevented = src.defaultPrevented || + src.defaultPrevented === undefined && + + // Support: Android <=2.3 only + src.returnValue === false ? + returnTrue : + returnFalse; + + // Create target properties + // Support: Safari <=6 - 7 only + // Target should not be a text node (#504, #13143) + this.target = ( src.target && src.target.nodeType === 3 ) ? + src.target.parentNode : + src.target; + + this.currentTarget = src.currentTarget; + this.relatedTarget = src.relatedTarget; + + // Event type + } else { + this.type = src; + } + + // Put explicitly provided properties onto the event object + if ( props ) { + jQuery.extend( this, props ); + } + + // Create a timestamp if incoming event doesn't have one + this.timeStamp = src && src.timeStamp || jQuery.now(); + + // Mark it as fixed + this[ jQuery.expando ] = true; +}; + +// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding +// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html +jQuery.Event.prototype = { + constructor: jQuery.Event, + isDefaultPrevented: returnFalse, + isPropagationStopped: returnFalse, + isImmediatePropagationStopped: returnFalse, + isSimulated: false, + + preventDefault: function() { + var e = this.originalEvent; + + this.isDefaultPrevented = returnTrue; + + if ( e && !this.isSimulated ) { + e.preventDefault(); + } + }, + stopPropagation: function() { + var e = this.originalEvent; + + this.isPropagationStopped = returnTrue; + + if ( e && !this.isSimulated ) { + e.stopPropagation(); + } + }, + stopImmediatePropagation: function() { + var e = this.originalEvent; + + this.isImmediatePropagationStopped = returnTrue; + + if ( e && !this.isSimulated ) { + e.stopImmediatePropagation(); + } + + this.stopPropagation(); + } +}; + +// Includes all common event props including KeyEvent and MouseEvent specific props +jQuery.each( { + altKey: true, + bubbles: true, + cancelable: true, + changedTouches: true, + ctrlKey: true, + detail: true, + eventPhase: true, + metaKey: true, + pageX: true, + pageY: true, + shiftKey: true, + view: true, + "char": true, + charCode: true, + key: true, + keyCode: true, + button: true, + buttons: true, + clientX: true, + clientY: true, + offsetX: true, + offsetY: true, + pointerId: true, + pointerType: true, + screenX: true, + screenY: true, + targetTouches: true, + toElement: true, + touches: true, + + which: function( event ) { + var button = event.button; + + // Add which for key events + if ( event.which == null && rkeyEvent.test( event.type ) ) { + return event.charCode != null ? event.charCode : event.keyCode; + } + + // Add which for click: 1 === left; 2 === middle; 3 === right + if ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) { + return ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) ); + } + + return event.which; + } +}, jQuery.event.addProp ); + +// Create mouseenter/leave events using mouseover/out and event-time checks +// so that event delegation works in jQuery. +// Do the same for pointerenter/pointerleave and pointerover/pointerout +// +// Support: Safari 7 only +// Safari sends mouseenter too often; see: +// https://bugs.chromium.org/p/chromium/issues/detail?id=470258 +// for the description of the bug (it existed in older Chrome versions as well). +jQuery.each( { + mouseenter: "mouseover", + mouseleave: "mouseout", + pointerenter: "pointerover", + pointerleave: "pointerout" +}, function( orig, fix ) { + jQuery.event.special[ orig ] = { + delegateType: fix, + bindType: fix, + + handle: function( event ) { + var ret, + target = this, + related = event.relatedTarget, + handleObj = event.handleObj; + + // For mouseenter/leave call the handler if related is outside the target. + // NB: No relatedTarget if the mouse left/entered the browser window + if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) { + event.type = handleObj.origType; + ret = handleObj.handler.apply( this, arguments ); + event.type = fix; + } + return ret; + } + }; +} ); + +jQuery.fn.extend( { + + on: function( types, selector, data, fn ) { + return on( this, types, selector, data, fn ); + }, + one: function( types, selector, data, fn ) { + return on( this, types, selector, data, fn, 1 ); + }, + off: function( types, selector, fn ) { + var handleObj, type; + if ( types && types.preventDefault && types.handleObj ) { + + // ( event ) dispatched jQuery.Event + handleObj = types.handleObj; + jQuery( types.delegateTarget ).off( + handleObj.namespace ? + handleObj.origType + "." + handleObj.namespace : + handleObj.origType, + handleObj.selector, + handleObj.handler + ); + return this; + } + if ( typeof types === "object" ) { + + // ( types-object [, selector] ) + for ( type in types ) { + this.off( type, selector, types[ type ] ); + } + return this; + } + if ( selector === false || typeof selector === "function" ) { + + // ( types [, fn] ) + fn = selector; + selector = undefined; + } + if ( fn === false ) { + fn = returnFalse; + } + return this.each( function() { + jQuery.event.remove( this, types, fn, selector ); + } ); + } +} ); + + +var + + /* eslint-disable max-len */ + + // See https://github.com/eslint/eslint/issues/3229 + rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi, + + /* eslint-enable */ + + // Support: IE <=10 - 11, Edge 12 - 13 + // In IE/Edge using regex groups here causes severe slowdowns. + // See https://connect.microsoft.com/IE/feedback/details/1736512/ + rnoInnerhtml = /\s*$/g; + +function manipulationTarget( elem, content ) { + if ( jQuery.nodeName( elem, "table" ) && + jQuery.nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) { + + return elem.getElementsByTagName( "tbody" )[ 0 ] || elem; + } + + return elem; +} + +// Replace/restore the type attribute of script elements for safe DOM manipulation +function disableScript( elem ) { + elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type; + return elem; +} +function restoreScript( elem ) { + var match = rscriptTypeMasked.exec( elem.type ); + + if ( match ) { + elem.type = match[ 1 ]; + } else { + elem.removeAttribute( "type" ); + } + + return elem; +} + +function cloneCopyEvent( src, dest ) { + var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events; + + if ( dest.nodeType !== 1 ) { + return; + } + + // 1. Copy private data: events, handlers, etc. + if ( dataPriv.hasData( src ) ) { + pdataOld = dataPriv.access( src ); + pdataCur = dataPriv.set( dest, pdataOld ); + events = pdataOld.events; + + if ( events ) { + delete pdataCur.handle; + pdataCur.events = {}; + + for ( type in events ) { + for ( i = 0, l = events[ type ].length; i < l; i++ ) { + jQuery.event.add( dest, type, events[ type ][ i ] ); + } + } + } + } + + // 2. Copy user data + if ( dataUser.hasData( src ) ) { + udataOld = dataUser.access( src ); + udataCur = jQuery.extend( {}, udataOld ); + + dataUser.set( dest, udataCur ); + } +} + +// Fix IE bugs, see support tests +function fixInput( src, dest ) { + var nodeName = dest.nodeName.toLowerCase(); + + // Fails to persist the checked state of a cloned checkbox or radio button. + if ( nodeName === "input" && rcheckableType.test( src.type ) ) { + dest.checked = src.checked; + + // Fails to return the selected option to the default selected state when cloning options + } else if ( nodeName === "input" || nodeName === "textarea" ) { + dest.defaultValue = src.defaultValue; + } +} + +function domManip( collection, args, callback, ignored ) { + + // Flatten any nested arrays + args = concat.apply( [], args ); + + var fragment, first, scripts, hasScripts, node, doc, + i = 0, + l = collection.length, + iNoClone = l - 1, + value = args[ 0 ], + isFunction = jQuery.isFunction( value ); + + // We can't cloneNode fragments that contain checked, in WebKit + if ( isFunction || + ( l > 1 && typeof value === "string" && + !support.checkClone && rchecked.test( value ) ) ) { + return collection.each( function( index ) { + var self = collection.eq( index ); + if ( isFunction ) { + args[ 0 ] = value.call( this, index, self.html() ); + } + domManip( self, args, callback, ignored ); + } ); + } + + if ( l ) { + fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored ); + first = fragment.firstChild; + + if ( fragment.childNodes.length === 1 ) { + fragment = first; + } + + // Require either new content or an interest in ignored elements to invoke the callback + if ( first || ignored ) { + scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); + hasScripts = scripts.length; + + // Use the original fragment for the last item + // instead of the first because it can end up + // being emptied incorrectly in certain situations (#8070). + for ( ; i < l; i++ ) { + node = fragment; + + if ( i !== iNoClone ) { + node = jQuery.clone( node, true, true ); + + // Keep references to cloned scripts for later restoration + if ( hasScripts ) { + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( scripts, getAll( node, "script" ) ); + } + } + + callback.call( collection[ i ], node, i ); + } + + if ( hasScripts ) { + doc = scripts[ scripts.length - 1 ].ownerDocument; + + // Reenable scripts + jQuery.map( scripts, restoreScript ); + + // Evaluate executable scripts on first document insertion + for ( i = 0; i < hasScripts; i++ ) { + node = scripts[ i ]; + if ( rscriptType.test( node.type || "" ) && + !dataPriv.access( node, "globalEval" ) && + jQuery.contains( doc, node ) ) { + + if ( node.src ) { + + // Optional AJAX dependency, but won't run scripts if not present + if ( jQuery._evalUrl ) { + jQuery._evalUrl( node.src ); + } + } else { + DOMEval( node.textContent.replace( rcleanScript, "" ), doc ); + } + } + } + } + } + } + + return collection; +} + +function remove( elem, selector, keepData ) { + var node, + nodes = selector ? jQuery.filter( selector, elem ) : elem, + i = 0; + + for ( ; ( node = nodes[ i ] ) != null; i++ ) { + if ( !keepData && node.nodeType === 1 ) { + jQuery.cleanData( getAll( node ) ); + } + + if ( node.parentNode ) { + if ( keepData && jQuery.contains( node.ownerDocument, node ) ) { + setGlobalEval( getAll( node, "script" ) ); + } + node.parentNode.removeChild( node ); + } + } + + return elem; +} + +jQuery.extend( { + htmlPrefilter: function( html ) { + return html.replace( rxhtmlTag, "<$1>" ); + }, + + clone: function( elem, dataAndEvents, deepDataAndEvents ) { + var i, l, srcElements, destElements, + clone = elem.cloneNode( true ), + inPage = jQuery.contains( elem.ownerDocument, elem ); + + // Fix IE cloning issues + if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) && + !jQuery.isXMLDoc( elem ) ) { + + // We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2 + destElements = getAll( clone ); + srcElements = getAll( elem ); + + for ( i = 0, l = srcElements.length; i < l; i++ ) { + fixInput( srcElements[ i ], destElements[ i ] ); + } + } + + // Copy the events from the original to the clone + if ( dataAndEvents ) { + if ( deepDataAndEvents ) { + srcElements = srcElements || getAll( elem ); + destElements = destElements || getAll( clone ); + + for ( i = 0, l = srcElements.length; i < l; i++ ) { + cloneCopyEvent( srcElements[ i ], destElements[ i ] ); + } + } else { + cloneCopyEvent( elem, clone ); + } + } + + // Preserve script evaluation history + destElements = getAll( clone, "script" ); + if ( destElements.length > 0 ) { + setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); + } + + // Return the cloned set + return clone; + }, + + cleanData: function( elems ) { + var data, elem, type, + special = jQuery.event.special, + i = 0; + + for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) { + if ( acceptData( elem ) ) { + if ( ( data = elem[ dataPriv.expando ] ) ) { + if ( data.events ) { + for ( type in data.events ) { + if ( special[ type ] ) { + jQuery.event.remove( elem, type ); + + // This is a shortcut to avoid jQuery.event.remove's overhead + } else { + jQuery.removeEvent( elem, type, data.handle ); + } + } + } + + // Support: Chrome <=35 - 45+ + // Assign undefined instead of using delete, see Data#remove + elem[ dataPriv.expando ] = undefined; + } + if ( elem[ dataUser.expando ] ) { + + // Support: Chrome <=35 - 45+ + // Assign undefined instead of using delete, see Data#remove + elem[ dataUser.expando ] = undefined; + } + } + } + } +} ); + +jQuery.fn.extend( { + detach: function( selector ) { + return remove( this, selector, true ); + }, + + remove: function( selector ) { + return remove( this, selector ); + }, + + text: function( value ) { + return access( this, function( value ) { + return value === undefined ? + jQuery.text( this ) : + this.empty().each( function() { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + this.textContent = value; + } + } ); + }, null, value, arguments.length ); + }, + + append: function() { + return domManip( this, arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.appendChild( elem ); + } + } ); + }, + + prepend: function() { + return domManip( this, arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.insertBefore( elem, target.firstChild ); + } + } ); + }, + + before: function() { + return domManip( this, arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this ); + } + } ); + }, + + after: function() { + return domManip( this, arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this.nextSibling ); + } + } ); + }, + + empty: function() { + var elem, + i = 0; + + for ( ; ( elem = this[ i ] ) != null; i++ ) { + if ( elem.nodeType === 1 ) { + + // Prevent memory leaks + jQuery.cleanData( getAll( elem, false ) ); + + // Remove any remaining nodes + elem.textContent = ""; + } + } + + return this; + }, + + clone: function( dataAndEvents, deepDataAndEvents ) { + dataAndEvents = dataAndEvents == null ? false : dataAndEvents; + deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; + + return this.map( function() { + return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); + } ); + }, + + html: function( value ) { + return access( this, function( value ) { + var elem = this[ 0 ] || {}, + i = 0, + l = this.length; + + if ( value === undefined && elem.nodeType === 1 ) { + return elem.innerHTML; + } + + // See if we can take a shortcut and just use innerHTML + if ( typeof value === "string" && !rnoInnerhtml.test( value ) && + !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) { + + value = jQuery.htmlPrefilter( value ); + + try { + for ( ; i < l; i++ ) { + elem = this[ i ] || {}; + + // Remove element nodes and prevent memory leaks + if ( elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem, false ) ); + elem.innerHTML = value; + } + } + + elem = 0; + + // If using innerHTML throws an exception, use the fallback method + } catch ( e ) {} + } + + if ( elem ) { + this.empty().append( value ); + } + }, null, value, arguments.length ); + }, + + replaceWith: function() { + var ignored = []; + + // Make the changes, replacing each non-ignored context element with the new content + return domManip( this, arguments, function( elem ) { + var parent = this.parentNode; + + if ( jQuery.inArray( this, ignored ) < 0 ) { + jQuery.cleanData( getAll( this ) ); + if ( parent ) { + parent.replaceChild( elem, this ); + } + } + + // Force callback invocation + }, ignored ); + } +} ); + +jQuery.each( { + appendTo: "append", + prependTo: "prepend", + insertBefore: "before", + insertAfter: "after", + replaceAll: "replaceWith" +}, function( name, original ) { + jQuery.fn[ name ] = function( selector ) { + var elems, + ret = [], + insert = jQuery( selector ), + last = insert.length - 1, + i = 0; + + for ( ; i <= last; i++ ) { + elems = i === last ? this : this.clone( true ); + jQuery( insert[ i ] )[ original ]( elems ); + + // Support: Android <=4.0 only, PhantomJS 1 only + // .get() because push.apply(_, arraylike) throws on ancient WebKit + push.apply( ret, elems.get() ); + } + + return this.pushStack( ret ); + }; +} ); +var rmargin = ( /^margin/ ); + +var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" ); + +var getStyles = function( elem ) { + + // Support: IE <=11 only, Firefox <=30 (#15098, #14150) + // IE throws on elements created in popups + // FF meanwhile throws on frame elements through "defaultView.getComputedStyle" + var view = elem.ownerDocument.defaultView; + + if ( !view || !view.opener ) { + view = window; + } + + return view.getComputedStyle( elem ); + }; + + + +( function() { + + // Executing both pixelPosition & boxSizingReliable tests require only one layout + // so they're executed at the same time to save the second computation. + function computeStyleTests() { + + // This is a singleton, we need to execute it only once + if ( !div ) { + return; + } + + div.style.cssText = + "box-sizing:border-box;" + + "position:relative;display:block;" + + "margin:auto;border:1px;padding:1px;" + + "top:1%;width:50%"; + div.innerHTML = ""; + documentElement.appendChild( container ); + + var divStyle = window.getComputedStyle( div ); + pixelPositionVal = divStyle.top !== "1%"; + + // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44 + reliableMarginLeftVal = divStyle.marginLeft === "2px"; + boxSizingReliableVal = divStyle.width === "4px"; + + // Support: Android 4.0 - 4.3 only + // Some styles come back with percentage values, even though they shouldn't + div.style.marginRight = "50%"; + pixelMarginRightVal = divStyle.marginRight === "4px"; + + documentElement.removeChild( container ); + + // Nullify the div so it wouldn't be stored in the memory and + // it will also be a sign that checks already performed + div = null; + } + + var pixelPositionVal, boxSizingReliableVal, pixelMarginRightVal, reliableMarginLeftVal, + container = document.createElement( "div" ), + div = document.createElement( "div" ); + + // Finish early in limited (non-browser) environments + if ( !div.style ) { + return; + } + + // Support: IE <=9 - 11 only + // Style of cloned element affects source element cloned (#8908) + div.style.backgroundClip = "content-box"; + div.cloneNode( true ).style.backgroundClip = ""; + support.clearCloneStyle = div.style.backgroundClip === "content-box"; + + container.style.cssText = "border:0;width:8px;height:0;top:0;left:-9999px;" + + "padding:0;margin-top:1px;position:absolute"; + container.appendChild( div ); + + jQuery.extend( support, { + pixelPosition: function() { + computeStyleTests(); + return pixelPositionVal; + }, + boxSizingReliable: function() { + computeStyleTests(); + return boxSizingReliableVal; + }, + pixelMarginRight: function() { + computeStyleTests(); + return pixelMarginRightVal; + }, + reliableMarginLeft: function() { + computeStyleTests(); + return reliableMarginLeftVal; + } + } ); +} )(); + + +function curCSS( elem, name, computed ) { + var width, minWidth, maxWidth, ret, + style = elem.style; + + computed = computed || getStyles( elem ); + + // Support: IE <=9 only + // getPropertyValue is only needed for .css('filter') (#12537) + if ( computed ) { + ret = computed.getPropertyValue( name ) || computed[ name ]; + + if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) { + ret = jQuery.style( elem, name ); + } + + // A tribute to the "awesome hack by Dean Edwards" + // Android Browser returns percentage for some values, + // but width seems to be reliably pixels. + // This is against the CSSOM draft spec: + // https://drafts.csswg.org/cssom/#resolved-values + if ( !support.pixelMarginRight() && rnumnonpx.test( ret ) && rmargin.test( name ) ) { + + // Remember the original values + width = style.width; + minWidth = style.minWidth; + maxWidth = style.maxWidth; + + // Put in the new values to get a computed value out + style.minWidth = style.maxWidth = style.width = ret; + ret = computed.width; + + // Revert the changed values + style.width = width; + style.minWidth = minWidth; + style.maxWidth = maxWidth; + } + } + + return ret !== undefined ? + + // Support: IE <=9 - 11 only + // IE returns zIndex value as an integer. + ret + "" : + ret; +} + + +function addGetHookIf( conditionFn, hookFn ) { + + // Define the hook, we'll check on the first run if it's really needed. + return { + get: function() { + if ( conditionFn() ) { + + // Hook not needed (or it's not possible to use it due + // to missing dependency), remove it. + delete this.get; + return; + } + + // Hook needed; redefine it so that the support test is not executed again. + return ( this.get = hookFn ).apply( this, arguments ); + } + }; +} + + +var + + // Swappable if display is none or starts with table + // except "table", "table-cell", or "table-caption" + // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display + rdisplayswap = /^(none|table(?!-c[ea]).+)/, + cssShow = { position: "absolute", visibility: "hidden", display: "block" }, + cssNormalTransform = { + letterSpacing: "0", + fontWeight: "400" + }, + + cssPrefixes = [ "Webkit", "Moz", "ms" ], + emptyStyle = document.createElement( "div" ).style; + +// Return a css property mapped to a potentially vendor prefixed property +function vendorPropName( name ) { + + // Shortcut for names that are not vendor prefixed + if ( name in emptyStyle ) { + return name; + } + + // Check for vendor prefixed names + var capName = name[ 0 ].toUpperCase() + name.slice( 1 ), + i = cssPrefixes.length; + + while ( i-- ) { + name = cssPrefixes[ i ] + capName; + if ( name in emptyStyle ) { + return name; + } + } +} + +function setPositiveNumber( elem, value, subtract ) { + + // Any relative (+/-) values have already been + // normalized at this point + var matches = rcssNum.exec( value ); + return matches ? + + // Guard against undefined "subtract", e.g., when used as in cssHooks + Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) : + value; +} + +function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) { + var i = extra === ( isBorderBox ? "border" : "content" ) ? + + // If we already have the right measurement, avoid augmentation + 4 : + + // Otherwise initialize for horizontal or vertical properties + name === "width" ? 1 : 0, + + val = 0; + + for ( ; i < 4; i += 2 ) { + + // Both box models exclude margin, so add it if we want it + if ( extra === "margin" ) { + val += jQuery.css( elem, extra + cssExpand[ i ], true, styles ); + } + + if ( isBorderBox ) { + + // border-box includes padding, so remove it if we want content + if ( extra === "content" ) { + val -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + } + + // At this point, extra isn't border nor margin, so remove border + if ( extra !== "margin" ) { + val -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + } else { + + // At this point, extra isn't content, so add padding + val += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + + // At this point, extra isn't content nor padding, so add border + if ( extra !== "padding" ) { + val += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + } + } + + return val; +} + +function getWidthOrHeight( elem, name, extra ) { + + // Start with offset property, which is equivalent to the border-box value + var val, + valueIsBorderBox = true, + styles = getStyles( elem ), + isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; + + // Support: IE <=11 only + // Running getBoundingClientRect on a disconnected node + // in IE throws an error. + if ( elem.getClientRects().length ) { + val = elem.getBoundingClientRect()[ name ]; + } + + // Some non-html elements return undefined for offsetWidth, so check for null/undefined + // svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285 + // MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668 + if ( val <= 0 || val == null ) { + + // Fall back to computed then uncomputed css if necessary + val = curCSS( elem, name, styles ); + if ( val < 0 || val == null ) { + val = elem.style[ name ]; + } + + // Computed unit is not pixels. Stop here and return. + if ( rnumnonpx.test( val ) ) { + return val; + } + + // Check for style in case a browser which returns unreliable values + // for getComputedStyle silently falls back to the reliable elem.style + valueIsBorderBox = isBorderBox && + ( support.boxSizingReliable() || val === elem.style[ name ] ); + + // Normalize "", auto, and prepare for extra + val = parseFloat( val ) || 0; + } + + // Use the active box-sizing model to add/subtract irrelevant styles + return ( val + + augmentWidthOrHeight( + elem, + name, + extra || ( isBorderBox ? "border" : "content" ), + valueIsBorderBox, + styles + ) + ) + "px"; +} + +jQuery.extend( { + + // Add in style property hooks for overriding the default + // behavior of getting and setting a style property + cssHooks: { + opacity: { + get: function( elem, computed ) { + if ( computed ) { + + // We should always get a number back from opacity + var ret = curCSS( elem, "opacity" ); + return ret === "" ? "1" : ret; + } + } + } + }, + + // Don't automatically add "px" to these possibly-unitless properties + cssNumber: { + "animationIterationCount": true, + "columnCount": true, + "fillOpacity": true, + "flexGrow": true, + "flexShrink": true, + "fontWeight": true, + "lineHeight": true, + "opacity": true, + "order": true, + "orphans": true, + "widows": true, + "zIndex": true, + "zoom": true + }, + + // Add in properties whose names you wish to fix before + // setting or getting the value + cssProps: { + "float": "cssFloat" + }, + + // Get and set the style property on a DOM Node + style: function( elem, name, value, extra ) { + + // Don't set styles on text and comment nodes + if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { + return; + } + + // Make sure that we're working with the right name + var ret, type, hooks, + origName = jQuery.camelCase( name ), + style = elem.style; + + name = jQuery.cssProps[ origName ] || + ( jQuery.cssProps[ origName ] = vendorPropName( origName ) || origName ); + + // Gets hook for the prefixed version, then unprefixed version + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // Check if we're setting a value + if ( value !== undefined ) { + type = typeof value; + + // Convert "+=" or "-=" to relative numbers (#7345) + if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) { + value = adjustCSS( elem, name, ret ); + + // Fixes bug #9237 + type = "number"; + } + + // Make sure that null and NaN values aren't set (#7116) + if ( value == null || value !== value ) { + return; + } + + // If a number was passed in, add the unit (except for certain CSS properties) + if ( type === "number" ) { + value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" ); + } + + // background-* props affect original clone's values + if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) { + style[ name ] = "inherit"; + } + + // If a hook was provided, use that value, otherwise just set the specified value + if ( !hooks || !( "set" in hooks ) || + ( value = hooks.set( elem, value, extra ) ) !== undefined ) { + + style[ name ] = value; + } + + } else { + + // If a hook was provided get the non-computed value from there + if ( hooks && "get" in hooks && + ( ret = hooks.get( elem, false, extra ) ) !== undefined ) { + + return ret; + } + + // Otherwise just get the value from the style object + return style[ name ]; + } + }, + + css: function( elem, name, extra, styles ) { + var val, num, hooks, + origName = jQuery.camelCase( name ); + + // Make sure that we're working with the right name + name = jQuery.cssProps[ origName ] || + ( jQuery.cssProps[ origName ] = vendorPropName( origName ) || origName ); + + // Try prefixed name followed by the unprefixed name + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // If a hook was provided get the computed value from there + if ( hooks && "get" in hooks ) { + val = hooks.get( elem, true, extra ); + } + + // Otherwise, if a way to get the computed value exists, use that + if ( val === undefined ) { + val = curCSS( elem, name, styles ); + } + + // Convert "normal" to computed value + if ( val === "normal" && name in cssNormalTransform ) { + val = cssNormalTransform[ name ]; + } + + // Make numeric if forced or a qualifier was provided and val looks numeric + if ( extra === "" || extra ) { + num = parseFloat( val ); + return extra === true || isFinite( num ) ? num || 0 : val; + } + return val; + } +} ); + +jQuery.each( [ "height", "width" ], function( i, name ) { + jQuery.cssHooks[ name ] = { + get: function( elem, computed, extra ) { + if ( computed ) { + + // Certain elements can have dimension info if we invisibly show them + // but it must have a current display style that would benefit + return rdisplayswap.test( jQuery.css( elem, "display" ) ) && + + // Support: Safari 8+ + // Table columns in Safari have non-zero offsetWidth & zero + // getBoundingClientRect().width unless display is changed. + // Support: IE <=11 only + // Running getBoundingClientRect on a disconnected node + // in IE throws an error. + ( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ? + swap( elem, cssShow, function() { + return getWidthOrHeight( elem, name, extra ); + } ) : + getWidthOrHeight( elem, name, extra ); + } + }, + + set: function( elem, value, extra ) { + var matches, + styles = extra && getStyles( elem ), + subtract = extra && augmentWidthOrHeight( + elem, + name, + extra, + jQuery.css( elem, "boxSizing", false, styles ) === "border-box", + styles + ); + + // Convert to pixels if value adjustment is needed + if ( subtract && ( matches = rcssNum.exec( value ) ) && + ( matches[ 3 ] || "px" ) !== "px" ) { + + elem.style[ name ] = value; + value = jQuery.css( elem, name ); + } + + return setPositiveNumber( elem, value, subtract ); + } + }; +} ); + +jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft, + function( elem, computed ) { + if ( computed ) { + return ( parseFloat( curCSS( elem, "marginLeft" ) ) || + elem.getBoundingClientRect().left - + swap( elem, { marginLeft: 0 }, function() { + return elem.getBoundingClientRect().left; + } ) + ) + "px"; + } + } +); + +// These hooks are used by animate to expand properties +jQuery.each( { + margin: "", + padding: "", + border: "Width" +}, function( prefix, suffix ) { + jQuery.cssHooks[ prefix + suffix ] = { + expand: function( value ) { + var i = 0, + expanded = {}, + + // Assumes a single number if not a string + parts = typeof value === "string" ? value.split( " " ) : [ value ]; + + for ( ; i < 4; i++ ) { + expanded[ prefix + cssExpand[ i ] + suffix ] = + parts[ i ] || parts[ i - 2 ] || parts[ 0 ]; + } + + return expanded; + } + }; + + if ( !rmargin.test( prefix ) ) { + jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber; + } +} ); + +jQuery.fn.extend( { + css: function( name, value ) { + return access( this, function( elem, name, value ) { + var styles, len, + map = {}, + i = 0; + + if ( jQuery.isArray( name ) ) { + styles = getStyles( elem ); + len = name.length; + + for ( ; i < len; i++ ) { + map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles ); + } + + return map; + } + + return value !== undefined ? + jQuery.style( elem, name, value ) : + jQuery.css( elem, name ); + }, name, value, arguments.length > 1 ); + } +} ); + + +function Tween( elem, options, prop, end, easing ) { + return new Tween.prototype.init( elem, options, prop, end, easing ); +} +jQuery.Tween = Tween; + +Tween.prototype = { + constructor: Tween, + init: function( elem, options, prop, end, easing, unit ) { + this.elem = elem; + this.prop = prop; + this.easing = easing || jQuery.easing._default; + this.options = options; + this.start = this.now = this.cur(); + this.end = end; + this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" ); + }, + cur: function() { + var hooks = Tween.propHooks[ this.prop ]; + + return hooks && hooks.get ? + hooks.get( this ) : + Tween.propHooks._default.get( this ); + }, + run: function( percent ) { + var eased, + hooks = Tween.propHooks[ this.prop ]; + + if ( this.options.duration ) { + this.pos = eased = jQuery.easing[ this.easing ]( + percent, this.options.duration * percent, 0, 1, this.options.duration + ); + } else { + this.pos = eased = percent; + } + this.now = ( this.end - this.start ) * eased + this.start; + + if ( this.options.step ) { + this.options.step.call( this.elem, this.now, this ); + } + + if ( hooks && hooks.set ) { + hooks.set( this ); + } else { + Tween.propHooks._default.set( this ); + } + return this; + } +}; + +Tween.prototype.init.prototype = Tween.prototype; + +Tween.propHooks = { + _default: { + get: function( tween ) { + var result; + + // Use a property on the element directly when it is not a DOM element, + // or when there is no matching style property that exists. + if ( tween.elem.nodeType !== 1 || + tween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) { + return tween.elem[ tween.prop ]; + } + + // Passing an empty string as a 3rd parameter to .css will automatically + // attempt a parseFloat and fallback to a string if the parse fails. + // Simple values such as "10px" are parsed to Float; + // complex values such as "rotate(1rad)" are returned as-is. + result = jQuery.css( tween.elem, tween.prop, "" ); + + // Empty strings, null, undefined and "auto" are converted to 0. + return !result || result === "auto" ? 0 : result; + }, + set: function( tween ) { + + // Use step hook for back compat. + // Use cssHook if its there. + // Use .style if available and use plain properties where available. + if ( jQuery.fx.step[ tween.prop ] ) { + jQuery.fx.step[ tween.prop ]( tween ); + } else if ( tween.elem.nodeType === 1 && + ( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null || + jQuery.cssHooks[ tween.prop ] ) ) { + jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); + } else { + tween.elem[ tween.prop ] = tween.now; + } + } + } +}; + +// Support: IE <=9 only +// Panic based approach to setting things on disconnected nodes +Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = { + set: function( tween ) { + if ( tween.elem.nodeType && tween.elem.parentNode ) { + tween.elem[ tween.prop ] = tween.now; + } + } +}; + +jQuery.easing = { + linear: function( p ) { + return p; + }, + swing: function( p ) { + return 0.5 - Math.cos( p * Math.PI ) / 2; + }, + _default: "swing" +}; + +jQuery.fx = Tween.prototype.init; + +// Back compat <1.8 extension point +jQuery.fx.step = {}; + + + + +var + fxNow, timerId, + rfxtypes = /^(?:toggle|show|hide)$/, + rrun = /queueHooks$/; + +function raf() { + if ( timerId ) { + window.requestAnimationFrame( raf ); + jQuery.fx.tick(); + } +} + +// Animations created synchronously will run synchronously +function createFxNow() { + window.setTimeout( function() { + fxNow = undefined; + } ); + return ( fxNow = jQuery.now() ); +} + +// Generate parameters to create a standard animation +function genFx( type, includeWidth ) { + var which, + i = 0, + attrs = { height: type }; + + // If we include width, step value is 1 to do all cssExpand values, + // otherwise step value is 2 to skip over Left and Right + includeWidth = includeWidth ? 1 : 0; + for ( ; i < 4; i += 2 - includeWidth ) { + which = cssExpand[ i ]; + attrs[ "margin" + which ] = attrs[ "padding" + which ] = type; + } + + if ( includeWidth ) { + attrs.opacity = attrs.width = type; + } + + return attrs; +} + +function createTween( value, prop, animation ) { + var tween, + collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ), + index = 0, + length = collection.length; + for ( ; index < length; index++ ) { + if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) { + + // We're done with this property + return tween; + } + } +} + +function defaultPrefilter( elem, props, opts ) { + var prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display, + isBox = "width" in props || "height" in props, + anim = this, + orig = {}, + style = elem.style, + hidden = elem.nodeType && isHiddenWithinTree( elem ), + dataShow = dataPriv.get( elem, "fxshow" ); + + // Queue-skipping animations hijack the fx hooks + if ( !opts.queue ) { + hooks = jQuery._queueHooks( elem, "fx" ); + if ( hooks.unqueued == null ) { + hooks.unqueued = 0; + oldfire = hooks.empty.fire; + hooks.empty.fire = function() { + if ( !hooks.unqueued ) { + oldfire(); + } + }; + } + hooks.unqueued++; + + anim.always( function() { + + // Ensure the complete handler is called before this completes + anim.always( function() { + hooks.unqueued--; + if ( !jQuery.queue( elem, "fx" ).length ) { + hooks.empty.fire(); + } + } ); + } ); + } + + // Detect show/hide animations + for ( prop in props ) { + value = props[ prop ]; + if ( rfxtypes.test( value ) ) { + delete props[ prop ]; + toggle = toggle || value === "toggle"; + if ( value === ( hidden ? "hide" : "show" ) ) { + + // Pretend to be hidden if this is a "show" and + // there is still data from a stopped show/hide + if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) { + hidden = true; + + // Ignore all other no-op show/hide data + } else { + continue; + } + } + orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop ); + } + } + + // Bail out if this is a no-op like .hide().hide() + propTween = !jQuery.isEmptyObject( props ); + if ( !propTween && jQuery.isEmptyObject( orig ) ) { + return; + } + + // Restrict "overflow" and "display" styles during box animations + if ( isBox && elem.nodeType === 1 ) { + + // Support: IE <=9 - 11, Edge 12 - 13 + // Record all 3 overflow attributes because IE does not infer the shorthand + // from identically-valued overflowX and overflowY + opts.overflow = [ style.overflow, style.overflowX, style.overflowY ]; + + // Identify a display type, preferring old show/hide data over the CSS cascade + restoreDisplay = dataShow && dataShow.display; + if ( restoreDisplay == null ) { + restoreDisplay = dataPriv.get( elem, "display" ); + } + display = jQuery.css( elem, "display" ); + if ( display === "none" ) { + if ( restoreDisplay ) { + display = restoreDisplay; + } else { + + // Get nonempty value(s) by temporarily forcing visibility + showHide( [ elem ], true ); + restoreDisplay = elem.style.display || restoreDisplay; + display = jQuery.css( elem, "display" ); + showHide( [ elem ] ); + } + } + + // Animate inline elements as inline-block + if ( display === "inline" || display === "inline-block" && restoreDisplay != null ) { + if ( jQuery.css( elem, "float" ) === "none" ) { + + // Restore the original display value at the end of pure show/hide animations + if ( !propTween ) { + anim.done( function() { + style.display = restoreDisplay; + } ); + if ( restoreDisplay == null ) { + display = style.display; + restoreDisplay = display === "none" ? "" : display; + } + } + style.display = "inline-block"; + } + } + } + + if ( opts.overflow ) { + style.overflow = "hidden"; + anim.always( function() { + style.overflow = opts.overflow[ 0 ]; + style.overflowX = opts.overflow[ 1 ]; + style.overflowY = opts.overflow[ 2 ]; + } ); + } + + // Implement show/hide animations + propTween = false; + for ( prop in orig ) { + + // General show/hide setup for this element animation + if ( !propTween ) { + if ( dataShow ) { + if ( "hidden" in dataShow ) { + hidden = dataShow.hidden; + } + } else { + dataShow = dataPriv.access( elem, "fxshow", { display: restoreDisplay } ); + } + + // Store hidden/visible for toggle so `.stop().toggle()` "reverses" + if ( toggle ) { + dataShow.hidden = !hidden; + } + + // Show elements before animating them + if ( hidden ) { + showHide( [ elem ], true ); + } + + /* eslint-disable no-loop-func */ + + anim.done( function() { + + /* eslint-enable no-loop-func */ + + // The final step of a "hide" animation is actually hiding the element + if ( !hidden ) { + showHide( [ elem ] ); + } + dataPriv.remove( elem, "fxshow" ); + for ( prop in orig ) { + jQuery.style( elem, prop, orig[ prop ] ); + } + } ); + } + + // Per-property setup + propTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim ); + if ( !( prop in dataShow ) ) { + dataShow[ prop ] = propTween.start; + if ( hidden ) { + propTween.end = propTween.start; + propTween.start = 0; + } + } + } +} + +function propFilter( props, specialEasing ) { + var index, name, easing, value, hooks; + + // camelCase, specialEasing and expand cssHook pass + for ( index in props ) { + name = jQuery.camelCase( index ); + easing = specialEasing[ name ]; + value = props[ index ]; + if ( jQuery.isArray( value ) ) { + easing = value[ 1 ]; + value = props[ index ] = value[ 0 ]; + } + + if ( index !== name ) { + props[ name ] = value; + delete props[ index ]; + } + + hooks = jQuery.cssHooks[ name ]; + if ( hooks && "expand" in hooks ) { + value = hooks.expand( value ); + delete props[ name ]; + + // Not quite $.extend, this won't overwrite existing keys. + // Reusing 'index' because we have the correct "name" + for ( index in value ) { + if ( !( index in props ) ) { + props[ index ] = value[ index ]; + specialEasing[ index ] = easing; + } + } + } else { + specialEasing[ name ] = easing; + } + } +} + +function Animation( elem, properties, options ) { + var result, + stopped, + index = 0, + length = Animation.prefilters.length, + deferred = jQuery.Deferred().always( function() { + + // Don't match elem in the :animated selector + delete tick.elem; + } ), + tick = function() { + if ( stopped ) { + return false; + } + var currentTime = fxNow || createFxNow(), + remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ), + + // Support: Android 2.3 only + // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497) + temp = remaining / animation.duration || 0, + percent = 1 - temp, + index = 0, + length = animation.tweens.length; + + for ( ; index < length; index++ ) { + animation.tweens[ index ].run( percent ); + } + + deferred.notifyWith( elem, [ animation, percent, remaining ] ); + + if ( percent < 1 && length ) { + return remaining; + } else { + deferred.resolveWith( elem, [ animation ] ); + return false; + } + }, + animation = deferred.promise( { + elem: elem, + props: jQuery.extend( {}, properties ), + opts: jQuery.extend( true, { + specialEasing: {}, + easing: jQuery.easing._default + }, options ), + originalProperties: properties, + originalOptions: options, + startTime: fxNow || createFxNow(), + duration: options.duration, + tweens: [], + createTween: function( prop, end ) { + var tween = jQuery.Tween( elem, animation.opts, prop, end, + animation.opts.specialEasing[ prop ] || animation.opts.easing ); + animation.tweens.push( tween ); + return tween; + }, + stop: function( gotoEnd ) { + var index = 0, + + // If we are going to the end, we want to run all the tweens + // otherwise we skip this part + length = gotoEnd ? animation.tweens.length : 0; + if ( stopped ) { + return this; + } + stopped = true; + for ( ; index < length; index++ ) { + animation.tweens[ index ].run( 1 ); + } + + // Resolve when we played the last frame; otherwise, reject + if ( gotoEnd ) { + deferred.notifyWith( elem, [ animation, 1, 0 ] ); + deferred.resolveWith( elem, [ animation, gotoEnd ] ); + } else { + deferred.rejectWith( elem, [ animation, gotoEnd ] ); + } + return this; + } + } ), + props = animation.props; + + propFilter( props, animation.opts.specialEasing ); + + for ( ; index < length; index++ ) { + result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts ); + if ( result ) { + if ( jQuery.isFunction( result.stop ) ) { + jQuery._queueHooks( animation.elem, animation.opts.queue ).stop = + jQuery.proxy( result.stop, result ); + } + return result; + } + } + + jQuery.map( props, createTween, animation ); + + if ( jQuery.isFunction( animation.opts.start ) ) { + animation.opts.start.call( elem, animation ); + } + + jQuery.fx.timer( + jQuery.extend( tick, { + elem: elem, + anim: animation, + queue: animation.opts.queue + } ) + ); + + // attach callbacks from options + return animation.progress( animation.opts.progress ) + .done( animation.opts.done, animation.opts.complete ) + .fail( animation.opts.fail ) + .always( animation.opts.always ); +} + +jQuery.Animation = jQuery.extend( Animation, { + + tweeners: { + "*": [ function( prop, value ) { + var tween = this.createTween( prop, value ); + adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween ); + return tween; + } ] + }, + + tweener: function( props, callback ) { + if ( jQuery.isFunction( props ) ) { + callback = props; + props = [ "*" ]; + } else { + props = props.match( rnotwhite ); + } + + var prop, + index = 0, + length = props.length; + + for ( ; index < length; index++ ) { + prop = props[ index ]; + Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || []; + Animation.tweeners[ prop ].unshift( callback ); + } + }, + + prefilters: [ defaultPrefilter ], + + prefilter: function( callback, prepend ) { + if ( prepend ) { + Animation.prefilters.unshift( callback ); + } else { + Animation.prefilters.push( callback ); + } + } +} ); + +jQuery.speed = function( speed, easing, fn ) { + var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : { + complete: fn || !fn && easing || + jQuery.isFunction( speed ) && speed, + duration: speed, + easing: fn && easing || easing && !jQuery.isFunction( easing ) && easing + }; + + // Go to the end state if fx are off or if document is hidden + if ( jQuery.fx.off || document.hidden ) { + opt.duration = 0; + + } else { + opt.duration = typeof opt.duration === "number" ? + opt.duration : opt.duration in jQuery.fx.speeds ? + jQuery.fx.speeds[ opt.duration ] : jQuery.fx.speeds._default; + } + + // Normalize opt.queue - true/undefined/null -> "fx" + if ( opt.queue == null || opt.queue === true ) { + opt.queue = "fx"; + } + + // Queueing + opt.old = opt.complete; + + opt.complete = function() { + if ( jQuery.isFunction( opt.old ) ) { + opt.old.call( this ); + } + + if ( opt.queue ) { + jQuery.dequeue( this, opt.queue ); + } + }; + + return opt; +}; + +jQuery.fn.extend( { + fadeTo: function( speed, to, easing, callback ) { + + // Show any hidden elements after setting opacity to 0 + return this.filter( isHiddenWithinTree ).css( "opacity", 0 ).show() + + // Animate to the value specified + .end().animate( { opacity: to }, speed, easing, callback ); + }, + animate: function( prop, speed, easing, callback ) { + var empty = jQuery.isEmptyObject( prop ), + optall = jQuery.speed( speed, easing, callback ), + doAnimation = function() { + + // Operate on a copy of prop so per-property easing won't be lost + var anim = Animation( this, jQuery.extend( {}, prop ), optall ); + + // Empty animations, or finishing resolves immediately + if ( empty || dataPriv.get( this, "finish" ) ) { + anim.stop( true ); + } + }; + doAnimation.finish = doAnimation; + + return empty || optall.queue === false ? + this.each( doAnimation ) : + this.queue( optall.queue, doAnimation ); + }, + stop: function( type, clearQueue, gotoEnd ) { + var stopQueue = function( hooks ) { + var stop = hooks.stop; + delete hooks.stop; + stop( gotoEnd ); + }; + + if ( typeof type !== "string" ) { + gotoEnd = clearQueue; + clearQueue = type; + type = undefined; + } + if ( clearQueue && type !== false ) { + this.queue( type || "fx", [] ); + } + + return this.each( function() { + var dequeue = true, + index = type != null && type + "queueHooks", + timers = jQuery.timers, + data = dataPriv.get( this ); + + if ( index ) { + if ( data[ index ] && data[ index ].stop ) { + stopQueue( data[ index ] ); + } + } else { + for ( index in data ) { + if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) { + stopQueue( data[ index ] ); + } + } + } + + for ( index = timers.length; index--; ) { + if ( timers[ index ].elem === this && + ( type == null || timers[ index ].queue === type ) ) { + + timers[ index ].anim.stop( gotoEnd ); + dequeue = false; + timers.splice( index, 1 ); + } + } + + // Start the next in the queue if the last step wasn't forced. + // Timers currently will call their complete callbacks, which + // will dequeue but only if they were gotoEnd. + if ( dequeue || !gotoEnd ) { + jQuery.dequeue( this, type ); + } + } ); + }, + finish: function( type ) { + if ( type !== false ) { + type = type || "fx"; + } + return this.each( function() { + var index, + data = dataPriv.get( this ), + queue = data[ type + "queue" ], + hooks = data[ type + "queueHooks" ], + timers = jQuery.timers, + length = queue ? queue.length : 0; + + // Enable finishing flag on private data + data.finish = true; + + // Empty the queue first + jQuery.queue( this, type, [] ); + + if ( hooks && hooks.stop ) { + hooks.stop.call( this, true ); + } + + // Look for any active animations, and finish them + for ( index = timers.length; index--; ) { + if ( timers[ index ].elem === this && timers[ index ].queue === type ) { + timers[ index ].anim.stop( true ); + timers.splice( index, 1 ); + } + } + + // Look for any animations in the old queue and finish them + for ( index = 0; index < length; index++ ) { + if ( queue[ index ] && queue[ index ].finish ) { + queue[ index ].finish.call( this ); + } + } + + // Turn off finishing flag + delete data.finish; + } ); + } +} ); + +jQuery.each( [ "toggle", "show", "hide" ], function( i, name ) { + var cssFn = jQuery.fn[ name ]; + jQuery.fn[ name ] = function( speed, easing, callback ) { + return speed == null || typeof speed === "boolean" ? + cssFn.apply( this, arguments ) : + this.animate( genFx( name, true ), speed, easing, callback ); + }; +} ); + +// Generate shortcuts for custom animations +jQuery.each( { + slideDown: genFx( "show" ), + slideUp: genFx( "hide" ), + slideToggle: genFx( "toggle" ), + fadeIn: { opacity: "show" }, + fadeOut: { opacity: "hide" }, + fadeToggle: { opacity: "toggle" } +}, function( name, props ) { + jQuery.fn[ name ] = function( speed, easing, callback ) { + return this.animate( props, speed, easing, callback ); + }; +} ); + +jQuery.timers = []; +jQuery.fx.tick = function() { + var timer, + i = 0, + timers = jQuery.timers; + + fxNow = jQuery.now(); + + for ( ; i < timers.length; i++ ) { + timer = timers[ i ]; + + // Checks the timer has not already been removed + if ( !timer() && timers[ i ] === timer ) { + timers.splice( i--, 1 ); + } + } + + if ( !timers.length ) { + jQuery.fx.stop(); + } + fxNow = undefined; +}; + +jQuery.fx.timer = function( timer ) { + jQuery.timers.push( timer ); + if ( timer() ) { + jQuery.fx.start(); + } else { + jQuery.timers.pop(); + } +}; + +jQuery.fx.interval = 13; +jQuery.fx.start = function() { + if ( !timerId ) { + timerId = window.requestAnimationFrame ? + window.requestAnimationFrame( raf ) : + window.setInterval( jQuery.fx.tick, jQuery.fx.interval ); + } +}; + +jQuery.fx.stop = function() { + if ( window.cancelAnimationFrame ) { + window.cancelAnimationFrame( timerId ); + } else { + window.clearInterval( timerId ); + } + + timerId = null; +}; + +jQuery.fx.speeds = { + slow: 600, + fast: 200, + + // Default speed + _default: 400 +}; + + +// Based off of the plugin by Clint Helfers, with permission. +// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/ +jQuery.fn.delay = function( time, type ) { + time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; + type = type || "fx"; + + return this.queue( type, function( next, hooks ) { + var timeout = window.setTimeout( next, time ); + hooks.stop = function() { + window.clearTimeout( timeout ); + }; + } ); +}; + + +( function() { + var input = document.createElement( "input" ), + select = document.createElement( "select" ), + opt = select.appendChild( document.createElement( "option" ) ); + + input.type = "checkbox"; + + // Support: Android <=4.3 only + // Default value for a checkbox should be "on" + support.checkOn = input.value !== ""; + + // Support: IE <=11 only + // Must access selectedIndex to make default options select + support.optSelected = opt.selected; + + // Support: IE <=11 only + // An input loses its value after becoming a radio + input = document.createElement( "input" ); + input.value = "t"; + input.type = "radio"; + support.radioValue = input.value === "t"; +} )(); + + +var boolHook, + attrHandle = jQuery.expr.attrHandle; + +jQuery.fn.extend( { + attr: function( name, value ) { + return access( this, jQuery.attr, name, value, arguments.length > 1 ); + }, + + removeAttr: function( name ) { + return this.each( function() { + jQuery.removeAttr( this, name ); + } ); + } +} ); + +jQuery.extend( { + attr: function( elem, name, value ) { + var ret, hooks, + nType = elem.nodeType; + + // Don't get/set attributes on text, comment and attribute nodes + if ( nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + // Fallback to prop when attributes are not supported + if ( typeof elem.getAttribute === "undefined" ) { + return jQuery.prop( elem, name, value ); + } + + // Attribute hooks are determined by the lowercase version + // Grab necessary hook if one is defined + if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { + hooks = jQuery.attrHooks[ name.toLowerCase() ] || + ( jQuery.expr.match.bool.test( name ) ? boolHook : undefined ); + } + + if ( value !== undefined ) { + if ( value === null ) { + jQuery.removeAttr( elem, name ); + return; + } + + if ( hooks && "set" in hooks && + ( ret = hooks.set( elem, value, name ) ) !== undefined ) { + return ret; + } + + elem.setAttribute( name, value + "" ); + return value; + } + + if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { + return ret; + } + + ret = jQuery.find.attr( elem, name ); + + // Non-existent attributes return null, we normalize to undefined + return ret == null ? undefined : ret; + }, + + attrHooks: { + type: { + set: function( elem, value ) { + if ( !support.radioValue && value === "radio" && + jQuery.nodeName( elem, "input" ) ) { + var val = elem.value; + elem.setAttribute( "type", value ); + if ( val ) { + elem.value = val; + } + return value; + } + } + } + }, + + removeAttr: function( elem, value ) { + var name, + i = 0, + attrNames = value && value.match( rnotwhite ); + + if ( attrNames && elem.nodeType === 1 ) { + while ( ( name = attrNames[ i++ ] ) ) { + elem.removeAttribute( name ); + } + } + } +} ); + +// Hooks for boolean attributes +boolHook = { + set: function( elem, value, name ) { + if ( value === false ) { + + // Remove boolean attributes when set to false + jQuery.removeAttr( elem, name ); + } else { + elem.setAttribute( name, name ); + } + return name; + } +}; + +jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) { + var getter = attrHandle[ name ] || jQuery.find.attr; + + attrHandle[ name ] = function( elem, name, isXML ) { + var ret, handle, + lowercaseName = name.toLowerCase(); + + if ( !isXML ) { + + // Avoid an infinite loop by temporarily removing this function from the getter + handle = attrHandle[ lowercaseName ]; + attrHandle[ lowercaseName ] = ret; + ret = getter( elem, name, isXML ) != null ? + lowercaseName : + null; + attrHandle[ lowercaseName ] = handle; + } + return ret; + }; +} ); + + + + +var rfocusable = /^(?:input|select|textarea|button)$/i, + rclickable = /^(?:a|area)$/i; + +jQuery.fn.extend( { + prop: function( name, value ) { + return access( this, jQuery.prop, name, value, arguments.length > 1 ); + }, + + removeProp: function( name ) { + return this.each( function() { + delete this[ jQuery.propFix[ name ] || name ]; + } ); + } +} ); + +jQuery.extend( { + prop: function( elem, name, value ) { + var ret, hooks, + nType = elem.nodeType; + + // Don't get/set properties on text, comment and attribute nodes + if ( nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { + + // Fix name and attach hooks + name = jQuery.propFix[ name ] || name; + hooks = jQuery.propHooks[ name ]; + } + + if ( value !== undefined ) { + if ( hooks && "set" in hooks && + ( ret = hooks.set( elem, value, name ) ) !== undefined ) { + return ret; + } + + return ( elem[ name ] = value ); + } + + if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { + return ret; + } + + return elem[ name ]; + }, + + propHooks: { + tabIndex: { + get: function( elem ) { + + // Support: IE <=9 - 11 only + // elem.tabIndex doesn't always return the + // correct value when it hasn't been explicitly set + // https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ + // Use proper attribute retrieval(#12072) + var tabindex = jQuery.find.attr( elem, "tabindex" ); + + return tabindex ? + parseInt( tabindex, 10 ) : + rfocusable.test( elem.nodeName ) || + rclickable.test( elem.nodeName ) && elem.href ? + 0 : + -1; + } + } + }, + + propFix: { + "for": "htmlFor", + "class": "className" + } +} ); + +// Support: IE <=11 only +// Accessing the selectedIndex property +// forces the browser to respect setting selected +// on the option +// The getter ensures a default option is selected +// when in an optgroup +if ( !support.optSelected ) { + jQuery.propHooks.selected = { + get: function( elem ) { + var parent = elem.parentNode; + if ( parent && parent.parentNode ) { + parent.parentNode.selectedIndex; + } + return null; + }, + set: function( elem ) { + var parent = elem.parentNode; + if ( parent ) { + parent.selectedIndex; + + if ( parent.parentNode ) { + parent.parentNode.selectedIndex; + } + } + } + }; +} + +jQuery.each( [ + "tabIndex", + "readOnly", + "maxLength", + "cellSpacing", + "cellPadding", + "rowSpan", + "colSpan", + "useMap", + "frameBorder", + "contentEditable" +], function() { + jQuery.propFix[ this.toLowerCase() ] = this; +} ); + + + + +var rclass = /[\t\r\n\f]/g; + +function getClass( elem ) { + return elem.getAttribute && elem.getAttribute( "class" ) || ""; +} + +jQuery.fn.extend( { + addClass: function( value ) { + var classes, elem, cur, curValue, clazz, j, finalValue, + i = 0; + + if ( jQuery.isFunction( value ) ) { + return this.each( function( j ) { + jQuery( this ).addClass( value.call( this, j, getClass( this ) ) ); + } ); + } + + if ( typeof value === "string" && value ) { + classes = value.match( rnotwhite ) || []; + + while ( ( elem = this[ i++ ] ) ) { + curValue = getClass( elem ); + cur = elem.nodeType === 1 && + ( " " + curValue + " " ).replace( rclass, " " ); + + if ( cur ) { + j = 0; + while ( ( clazz = classes[ j++ ] ) ) { + if ( cur.indexOf( " " + clazz + " " ) < 0 ) { + cur += clazz + " "; + } + } + + // Only assign if different to avoid unneeded rendering. + finalValue = jQuery.trim( cur ); + if ( curValue !== finalValue ) { + elem.setAttribute( "class", finalValue ); + } + } + } + } + + return this; + }, + + removeClass: function( value ) { + var classes, elem, cur, curValue, clazz, j, finalValue, + i = 0; + + if ( jQuery.isFunction( value ) ) { + return this.each( function( j ) { + jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) ); + } ); + } + + if ( !arguments.length ) { + return this.attr( "class", "" ); + } + + if ( typeof value === "string" && value ) { + classes = value.match( rnotwhite ) || []; + + while ( ( elem = this[ i++ ] ) ) { + curValue = getClass( elem ); + + // This expression is here for better compressibility (see addClass) + cur = elem.nodeType === 1 && + ( " " + curValue + " " ).replace( rclass, " " ); + + if ( cur ) { + j = 0; + while ( ( clazz = classes[ j++ ] ) ) { + + // Remove *all* instances + while ( cur.indexOf( " " + clazz + " " ) > -1 ) { + cur = cur.replace( " " + clazz + " ", " " ); + } + } + + // Only assign if different to avoid unneeded rendering. + finalValue = jQuery.trim( cur ); + if ( curValue !== finalValue ) { + elem.setAttribute( "class", finalValue ); + } + } + } + } + + return this; + }, + + toggleClass: function( value, stateVal ) { + var type = typeof value; + + if ( typeof stateVal === "boolean" && type === "string" ) { + return stateVal ? this.addClass( value ) : this.removeClass( value ); + } + + if ( jQuery.isFunction( value ) ) { + return this.each( function( i ) { + jQuery( this ).toggleClass( + value.call( this, i, getClass( this ), stateVal ), + stateVal + ); + } ); + } + + return this.each( function() { + var className, i, self, classNames; + + if ( type === "string" ) { + + // Toggle individual class names + i = 0; + self = jQuery( this ); + classNames = value.match( rnotwhite ) || []; + + while ( ( className = classNames[ i++ ] ) ) { + + // Check each className given, space separated list + if ( self.hasClass( className ) ) { + self.removeClass( className ); + } else { + self.addClass( className ); + } + } + + // Toggle whole class name + } else if ( value === undefined || type === "boolean" ) { + className = getClass( this ); + if ( className ) { + + // Store className if set + dataPriv.set( this, "__className__", className ); + } + + // If the element has a class name or if we're passed `false`, + // then remove the whole classname (if there was one, the above saved it). + // Otherwise bring back whatever was previously saved (if anything), + // falling back to the empty string if nothing was stored. + if ( this.setAttribute ) { + this.setAttribute( "class", + className || value === false ? + "" : + dataPriv.get( this, "__className__" ) || "" + ); + } + } + } ); + }, + + hasClass: function( selector ) { + var className, elem, + i = 0; + + className = " " + selector + " "; + while ( ( elem = this[ i++ ] ) ) { + if ( elem.nodeType === 1 && + ( " " + getClass( elem ) + " " ).replace( rclass, " " ) + .indexOf( className ) > -1 + ) { + return true; + } + } + + return false; + } +} ); + + + + +var rreturn = /\r/g, + rspaces = /[\x20\t\r\n\f]+/g; + +jQuery.fn.extend( { + val: function( value ) { + var hooks, ret, isFunction, + elem = this[ 0 ]; + + if ( !arguments.length ) { + if ( elem ) { + hooks = jQuery.valHooks[ elem.type ] || + jQuery.valHooks[ elem.nodeName.toLowerCase() ]; + + if ( hooks && + "get" in hooks && + ( ret = hooks.get( elem, "value" ) ) !== undefined + ) { + return ret; + } + + ret = elem.value; + + return typeof ret === "string" ? + + // Handle most common string cases + ret.replace( rreturn, "" ) : + + // Handle cases where value is null/undef or number + ret == null ? "" : ret; + } + + return; + } + + isFunction = jQuery.isFunction( value ); + + return this.each( function( i ) { + var val; + + if ( this.nodeType !== 1 ) { + return; + } + + if ( isFunction ) { + val = value.call( this, i, jQuery( this ).val() ); + } else { + val = value; + } + + // Treat null/undefined as ""; convert numbers to string + if ( val == null ) { + val = ""; + + } else if ( typeof val === "number" ) { + val += ""; + + } else if ( jQuery.isArray( val ) ) { + val = jQuery.map( val, function( value ) { + return value == null ? "" : value + ""; + } ); + } + + hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; + + // If set returns undefined, fall back to normal setting + if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) { + this.value = val; + } + } ); + } +} ); + +jQuery.extend( { + valHooks: { + option: { + get: function( elem ) { + + var val = jQuery.find.attr( elem, "value" ); + return val != null ? + val : + + // Support: IE <=10 - 11 only + // option.text throws exceptions (#14686, #14858) + // Strip and collapse whitespace + // https://html.spec.whatwg.org/#strip-and-collapse-whitespace + jQuery.trim( jQuery.text( elem ) ).replace( rspaces, " " ); + } + }, + select: { + get: function( elem ) { + var value, option, + options = elem.options, + index = elem.selectedIndex, + one = elem.type === "select-one", + values = one ? null : [], + max = one ? index + 1 : options.length, + i = index < 0 ? + max : + one ? index : 0; + + // Loop through all the selected options + for ( ; i < max; i++ ) { + option = options[ i ]; + + // Support: IE <=9 only + // IE8-9 doesn't update selected after form reset (#2551) + if ( ( option.selected || i === index ) && + + // Don't return options that are disabled or in a disabled optgroup + !option.disabled && + ( !option.parentNode.disabled || + !jQuery.nodeName( option.parentNode, "optgroup" ) ) ) { + + // Get the specific value for the option + value = jQuery( option ).val(); + + // We don't need an array for one selects + if ( one ) { + return value; + } + + // Multi-Selects return an array + values.push( value ); + } + } + + return values; + }, + + set: function( elem, value ) { + var optionSet, option, + options = elem.options, + values = jQuery.makeArray( value ), + i = options.length; + + while ( i-- ) { + option = options[ i ]; + + /* eslint-disable no-cond-assign */ + + if ( option.selected = + jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1 + ) { + optionSet = true; + } + + /* eslint-enable no-cond-assign */ + } + + // Force browsers to behave consistently when non-matching value is set + if ( !optionSet ) { + elem.selectedIndex = -1; + } + return values; + } + } + } +} ); + +// Radios and checkboxes getter/setter +jQuery.each( [ "radio", "checkbox" ], function() { + jQuery.valHooks[ this ] = { + set: function( elem, value ) { + if ( jQuery.isArray( value ) ) { + return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 ); + } + } + }; + if ( !support.checkOn ) { + jQuery.valHooks[ this ].get = function( elem ) { + return elem.getAttribute( "value" ) === null ? "on" : elem.value; + }; + } +} ); + + + + +// Return jQuery for attributes-only inclusion + + +var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/; + +jQuery.extend( jQuery.event, { + + trigger: function( event, data, elem, onlyHandlers ) { + + var i, cur, tmp, bubbleType, ontype, handle, special, + eventPath = [ elem || document ], + type = hasOwn.call( event, "type" ) ? event.type : event, + namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : []; + + cur = tmp = elem = elem || document; + + // Don't do events on text and comment nodes + if ( elem.nodeType === 3 || elem.nodeType === 8 ) { + return; + } + + // focus/blur morphs to focusin/out; ensure we're not firing them right now + if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { + return; + } + + if ( type.indexOf( "." ) > -1 ) { + + // Namespaced trigger; create a regexp to match event type in handle() + namespaces = type.split( "." ); + type = namespaces.shift(); + namespaces.sort(); + } + ontype = type.indexOf( ":" ) < 0 && "on" + type; + + // Caller can pass in a jQuery.Event object, Object, or just an event type string + event = event[ jQuery.expando ] ? + event : + new jQuery.Event( type, typeof event === "object" && event ); + + // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) + event.isTrigger = onlyHandlers ? 2 : 3; + event.namespace = namespaces.join( "." ); + event.rnamespace = event.namespace ? + new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) : + null; + + // Clean up the event in case it is being reused + event.result = undefined; + if ( !event.target ) { + event.target = elem; + } + + // Clone any incoming data and prepend the event, creating the handler arg list + data = data == null ? + [ event ] : + jQuery.makeArray( data, [ event ] ); + + // Allow special events to draw outside the lines + special = jQuery.event.special[ type ] || {}; + if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { + return; + } + + // Determine event propagation path in advance, per W3C events spec (#9951) + // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) + if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) { + + bubbleType = special.delegateType || type; + if ( !rfocusMorph.test( bubbleType + type ) ) { + cur = cur.parentNode; + } + for ( ; cur; cur = cur.parentNode ) { + eventPath.push( cur ); + tmp = cur; + } + + // Only add window if we got to document (e.g., not plain obj or detached DOM) + if ( tmp === ( elem.ownerDocument || document ) ) { + eventPath.push( tmp.defaultView || tmp.parentWindow || window ); + } + } + + // Fire handlers on the event path + i = 0; + while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) { + + event.type = i > 1 ? + bubbleType : + special.bindType || type; + + // jQuery handler + handle = ( dataPriv.get( cur, "events" ) || {} )[ event.type ] && + dataPriv.get( cur, "handle" ); + if ( handle ) { + handle.apply( cur, data ); + } + + // Native handler + handle = ontype && cur[ ontype ]; + if ( handle && handle.apply && acceptData( cur ) ) { + event.result = handle.apply( cur, data ); + if ( event.result === false ) { + event.preventDefault(); + } + } + } + event.type = type; + + // If nobody prevented the default action, do it now + if ( !onlyHandlers && !event.isDefaultPrevented() ) { + + if ( ( !special._default || + special._default.apply( eventPath.pop(), data ) === false ) && + acceptData( elem ) ) { + + // Call a native DOM method on the target with the same name as the event. + // Don't do default actions on window, that's where global variables be (#6170) + if ( ontype && jQuery.isFunction( elem[ type ] ) && !jQuery.isWindow( elem ) ) { + + // Don't re-trigger an onFOO event when we call its FOO() method + tmp = elem[ ontype ]; + + if ( tmp ) { + elem[ ontype ] = null; + } + + // Prevent re-triggering of the same event, since we already bubbled it above + jQuery.event.triggered = type; + elem[ type ](); + jQuery.event.triggered = undefined; + + if ( tmp ) { + elem[ ontype ] = tmp; + } + } + } + } + + return event.result; + }, + + // Piggyback on a donor event to simulate a different one + // Used only for `focus(in | out)` events + simulate: function( type, elem, event ) { + var e = jQuery.extend( + new jQuery.Event(), + event, + { + type: type, + isSimulated: true + } + ); + + jQuery.event.trigger( e, null, elem ); + } + +} ); + +jQuery.fn.extend( { + + trigger: function( type, data ) { + return this.each( function() { + jQuery.event.trigger( type, data, this ); + } ); + }, + triggerHandler: function( type, data ) { + var elem = this[ 0 ]; + if ( elem ) { + return jQuery.event.trigger( type, data, elem, true ); + } + } +} ); + + +jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " + + "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + + "change select submit keydown keypress keyup contextmenu" ).split( " " ), + function( i, name ) { + + // Handle event binding + jQuery.fn[ name ] = function( data, fn ) { + return arguments.length > 0 ? + this.on( name, null, data, fn ) : + this.trigger( name ); + }; +} ); + +jQuery.fn.extend( { + hover: function( fnOver, fnOut ) { + return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver ); + } +} ); + + + + +support.focusin = "onfocusin" in window; + + +// Support: Firefox <=44 +// Firefox doesn't have focus(in | out) events +// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787 +// +// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1 +// focus(in | out) events fire after focus & blur events, +// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order +// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857 +if ( !support.focusin ) { + jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) { + + // Attach a single capturing handler on the document while someone wants focusin/focusout + var handler = function( event ) { + jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) ); + }; + + jQuery.event.special[ fix ] = { + setup: function() { + var doc = this.ownerDocument || this, + attaches = dataPriv.access( doc, fix ); + + if ( !attaches ) { + doc.addEventListener( orig, handler, true ); + } + dataPriv.access( doc, fix, ( attaches || 0 ) + 1 ); + }, + teardown: function() { + var doc = this.ownerDocument || this, + attaches = dataPriv.access( doc, fix ) - 1; + + if ( !attaches ) { + doc.removeEventListener( orig, handler, true ); + dataPriv.remove( doc, fix ); + + } else { + dataPriv.access( doc, fix, attaches ); + } + } + }; + } ); +} +var location = window.location; + +var nonce = jQuery.now(); + +var rquery = ( /\?/ ); + + + +// Cross-browser xml parsing +jQuery.parseXML = function( data ) { + var xml; + if ( !data || typeof data !== "string" ) { + return null; + } + + // Support: IE 9 - 11 only + // IE throws on parseFromString with invalid input. + try { + xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" ); + } catch ( e ) { + xml = undefined; + } + + if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) { + jQuery.error( "Invalid XML: " + data ); + } + return xml; +}; + + +var + rbracket = /\[\]$/, + rCRLF = /\r?\n/g, + rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i, + rsubmittable = /^(?:input|select|textarea|keygen)/i; + +function buildParams( prefix, obj, traditional, add ) { + var name; + + if ( jQuery.isArray( obj ) ) { + + // Serialize array item. + jQuery.each( obj, function( i, v ) { + if ( traditional || rbracket.test( prefix ) ) { + + // Treat each array item as a scalar. + add( prefix, v ); + + } else { + + // Item is non-scalar (array or object), encode its numeric index. + buildParams( + prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]", + v, + traditional, + add + ); + } + } ); + + } else if ( !traditional && jQuery.type( obj ) === "object" ) { + + // Serialize object item. + for ( name in obj ) { + buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add ); + } + + } else { + + // Serialize scalar item. + add( prefix, obj ); + } +} + +// Serialize an array of form elements or a set of +// key/values into a query string +jQuery.param = function( a, traditional ) { + var prefix, + s = [], + add = function( key, valueOrFunction ) { + + // If value is a function, invoke it and use its return value + var value = jQuery.isFunction( valueOrFunction ) ? + valueOrFunction() : + valueOrFunction; + + s[ s.length ] = encodeURIComponent( key ) + "=" + + encodeURIComponent( value == null ? "" : value ); + }; + + // If an array was passed in, assume that it is an array of form elements. + if ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) { + + // Serialize the form elements + jQuery.each( a, function() { + add( this.name, this.value ); + } ); + + } else { + + // If traditional, encode the "old" way (the way 1.3.2 or older + // did it), otherwise encode params recursively. + for ( prefix in a ) { + buildParams( prefix, a[ prefix ], traditional, add ); + } + } + + // Return the resulting serialization + return s.join( "&" ); +}; + +jQuery.fn.extend( { + serialize: function() { + return jQuery.param( this.serializeArray() ); + }, + serializeArray: function() { + return this.map( function() { + + // Can add propHook for "elements" to filter or add form elements + var elements = jQuery.prop( this, "elements" ); + return elements ? jQuery.makeArray( elements ) : this; + } ) + .filter( function() { + var type = this.type; + + // Use .is( ":disabled" ) so that fieldset[disabled] works + return this.name && !jQuery( this ).is( ":disabled" ) && + rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) && + ( this.checked || !rcheckableType.test( type ) ); + } ) + .map( function( i, elem ) { + var val = jQuery( this ).val(); + + return val == null ? + null : + jQuery.isArray( val ) ? + jQuery.map( val, function( val ) { + return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + } ) : + { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + } ).get(); + } +} ); + + +var + r20 = /%20/g, + rhash = /#.*$/, + rts = /([?&])_=[^&]*/, + rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg, + + // #7653, #8125, #8152: local protocol detection + rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, + rnoContent = /^(?:GET|HEAD)$/, + rprotocol = /^\/\//, + + /* Prefilters + * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example) + * 2) These are called: + * - BEFORE asking for a transport + * - AFTER param serialization (s.data is a string if s.processData is true) + * 3) key is the dataType + * 4) the catchall symbol "*" can be used + * 5) execution will start with transport dataType and THEN continue down to "*" if needed + */ + prefilters = {}, + + /* Transports bindings + * 1) key is the dataType + * 2) the catchall symbol "*" can be used + * 3) selection will start with transport dataType and THEN go to "*" if needed + */ + transports = {}, + + // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression + allTypes = "*/".concat( "*" ), + + // Anchor tag for parsing the document origin + originAnchor = document.createElement( "a" ); + originAnchor.href = location.href; + +// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport +function addToPrefiltersOrTransports( structure ) { + + // dataTypeExpression is optional and defaults to "*" + return function( dataTypeExpression, func ) { + + if ( typeof dataTypeExpression !== "string" ) { + func = dataTypeExpression; + dataTypeExpression = "*"; + } + + var dataType, + i = 0, + dataTypes = dataTypeExpression.toLowerCase().match( rnotwhite ) || []; + + if ( jQuery.isFunction( func ) ) { + + // For each dataType in the dataTypeExpression + while ( ( dataType = dataTypes[ i++ ] ) ) { + + // Prepend if requested + if ( dataType[ 0 ] === "+" ) { + dataType = dataType.slice( 1 ) || "*"; + ( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func ); + + // Otherwise append + } else { + ( structure[ dataType ] = structure[ dataType ] || [] ).push( func ); + } + } + } + }; +} + +// Base inspection function for prefilters and transports +function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) { + + var inspected = {}, + seekingTransport = ( structure === transports ); + + function inspect( dataType ) { + var selected; + inspected[ dataType ] = true; + jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) { + var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR ); + if ( typeof dataTypeOrTransport === "string" && + !seekingTransport && !inspected[ dataTypeOrTransport ] ) { + + options.dataTypes.unshift( dataTypeOrTransport ); + inspect( dataTypeOrTransport ); + return false; + } else if ( seekingTransport ) { + return !( selected = dataTypeOrTransport ); + } + } ); + return selected; + } + + return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" ); +} + +// A special extend for ajax options +// that takes "flat" options (not to be deep extended) +// Fixes #9887 +function ajaxExtend( target, src ) { + var key, deep, + flatOptions = jQuery.ajaxSettings.flatOptions || {}; + + for ( key in src ) { + if ( src[ key ] !== undefined ) { + ( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ]; + } + } + if ( deep ) { + jQuery.extend( true, target, deep ); + } + + return target; +} + +/* Handles responses to an ajax request: + * - finds the right dataType (mediates between content-type and expected dataType) + * - returns the corresponding response + */ +function ajaxHandleResponses( s, jqXHR, responses ) { + + var ct, type, finalDataType, firstDataType, + contents = s.contents, + dataTypes = s.dataTypes; + + // Remove auto dataType and get content-type in the process + while ( dataTypes[ 0 ] === "*" ) { + dataTypes.shift(); + if ( ct === undefined ) { + ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" ); + } + } + + // Check if we're dealing with a known content-type + if ( ct ) { + for ( type in contents ) { + if ( contents[ type ] && contents[ type ].test( ct ) ) { + dataTypes.unshift( type ); + break; + } + } + } + + // Check to see if we have a response for the expected dataType + if ( dataTypes[ 0 ] in responses ) { + finalDataType = dataTypes[ 0 ]; + } else { + + // Try convertible dataTypes + for ( type in responses ) { + if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) { + finalDataType = type; + break; + } + if ( !firstDataType ) { + firstDataType = type; + } + } + + // Or just use first one + finalDataType = finalDataType || firstDataType; + } + + // If we found a dataType + // We add the dataType to the list if needed + // and return the corresponding response + if ( finalDataType ) { + if ( finalDataType !== dataTypes[ 0 ] ) { + dataTypes.unshift( finalDataType ); + } + return responses[ finalDataType ]; + } +} + +/* Chain conversions given the request and the original response + * Also sets the responseXXX fields on the jqXHR instance + */ +function ajaxConvert( s, response, jqXHR, isSuccess ) { + var conv2, current, conv, tmp, prev, + converters = {}, + + // Work with a copy of dataTypes in case we need to modify it for conversion + dataTypes = s.dataTypes.slice(); + + // Create converters map with lowercased keys + if ( dataTypes[ 1 ] ) { + for ( conv in s.converters ) { + converters[ conv.toLowerCase() ] = s.converters[ conv ]; + } + } + + current = dataTypes.shift(); + + // Convert to each sequential dataType + while ( current ) { + + if ( s.responseFields[ current ] ) { + jqXHR[ s.responseFields[ current ] ] = response; + } + + // Apply the dataFilter if provided + if ( !prev && isSuccess && s.dataFilter ) { + response = s.dataFilter( response, s.dataType ); + } + + prev = current; + current = dataTypes.shift(); + + if ( current ) { + + // There's only work to do if current dataType is non-auto + if ( current === "*" ) { + + current = prev; + + // Convert response if prev dataType is non-auto and differs from current + } else if ( prev !== "*" && prev !== current ) { + + // Seek a direct converter + conv = converters[ prev + " " + current ] || converters[ "* " + current ]; + + // If none found, seek a pair + if ( !conv ) { + for ( conv2 in converters ) { + + // If conv2 outputs current + tmp = conv2.split( " " ); + if ( tmp[ 1 ] === current ) { + + // If prev can be converted to accepted input + conv = converters[ prev + " " + tmp[ 0 ] ] || + converters[ "* " + tmp[ 0 ] ]; + if ( conv ) { + + // Condense equivalence converters + if ( conv === true ) { + conv = converters[ conv2 ]; + + // Otherwise, insert the intermediate dataType + } else if ( converters[ conv2 ] !== true ) { + current = tmp[ 0 ]; + dataTypes.unshift( tmp[ 1 ] ); + } + break; + } + } + } + } + + // Apply converter (if not an equivalence) + if ( conv !== true ) { + + // Unless errors are allowed to bubble, catch and return them + if ( conv && s.throws ) { + response = conv( response ); + } else { + try { + response = conv( response ); + } catch ( e ) { + return { + state: "parsererror", + error: conv ? e : "No conversion from " + prev + " to " + current + }; + } + } + } + } + } + } + + return { state: "success", data: response }; +} + +jQuery.extend( { + + // Counter for holding the number of active queries + active: 0, + + // Last-Modified header cache for next request + lastModified: {}, + etag: {}, + + ajaxSettings: { + url: location.href, + type: "GET", + isLocal: rlocalProtocol.test( location.protocol ), + global: true, + processData: true, + async: true, + contentType: "application/x-www-form-urlencoded; charset=UTF-8", + + /* + timeout: 0, + data: null, + dataType: null, + username: null, + password: null, + cache: null, + throws: false, + traditional: false, + headers: {}, + */ + + accepts: { + "*": allTypes, + text: "text/plain", + html: "text/html", + xml: "application/xml, text/xml", + json: "application/json, text/javascript" + }, + + contents: { + xml: /\bxml\b/, + html: /\bhtml/, + json: /\bjson\b/ + }, + + responseFields: { + xml: "responseXML", + text: "responseText", + json: "responseJSON" + }, + + // Data converters + // Keys separate source (or catchall "*") and destination types with a single space + converters: { + + // Convert anything to text + "* text": String, + + // Text to html (true = no transformation) + "text html": true, + + // Evaluate text as a json expression + "text json": JSON.parse, + + // Parse text as xml + "text xml": jQuery.parseXML + }, + + // For options that shouldn't be deep extended: + // you can add your own custom options here if + // and when you create one that shouldn't be + // deep extended (see ajaxExtend) + flatOptions: { + url: true, + context: true + } + }, + + // Creates a full fledged settings object into target + // with both ajaxSettings and settings fields. + // If target is omitted, writes into ajaxSettings. + ajaxSetup: function( target, settings ) { + return settings ? + + // Building a settings object + ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) : + + // Extending ajaxSettings + ajaxExtend( jQuery.ajaxSettings, target ); + }, + + ajaxPrefilter: addToPrefiltersOrTransports( prefilters ), + ajaxTransport: addToPrefiltersOrTransports( transports ), + + // Main method + ajax: function( url, options ) { + + // If url is an object, simulate pre-1.5 signature + if ( typeof url === "object" ) { + options = url; + url = undefined; + } + + // Force options to be an object + options = options || {}; + + var transport, + + // URL without anti-cache param + cacheURL, + + // Response headers + responseHeadersString, + responseHeaders, + + // timeout handle + timeoutTimer, + + // Url cleanup var + urlAnchor, + + // Request state (becomes false upon send and true upon completion) + completed, + + // To know if global events are to be dispatched + fireGlobals, + + // Loop variable + i, + + // uncached part of the url + uncached, + + // Create the final options object + s = jQuery.ajaxSetup( {}, options ), + + // Callbacks context + callbackContext = s.context || s, + + // Context for global events is callbackContext if it is a DOM node or jQuery collection + globalEventContext = s.context && + ( callbackContext.nodeType || callbackContext.jquery ) ? + jQuery( callbackContext ) : + jQuery.event, + + // Deferreds + deferred = jQuery.Deferred(), + completeDeferred = jQuery.Callbacks( "once memory" ), + + // Status-dependent callbacks + statusCode = s.statusCode || {}, + + // Headers (they are sent all at once) + requestHeaders = {}, + requestHeadersNames = {}, + + // Default abort message + strAbort = "canceled", + + // Fake xhr + jqXHR = { + readyState: 0, + + // Builds headers hashtable if needed + getResponseHeader: function( key ) { + var match; + if ( completed ) { + if ( !responseHeaders ) { + responseHeaders = {}; + while ( ( match = rheaders.exec( responseHeadersString ) ) ) { + responseHeaders[ match[ 1 ].toLowerCase() ] = match[ 2 ]; + } + } + match = responseHeaders[ key.toLowerCase() ]; + } + return match == null ? null : match; + }, + + // Raw string + getAllResponseHeaders: function() { + return completed ? responseHeadersString : null; + }, + + // Caches the header + setRequestHeader: function( name, value ) { + if ( completed == null ) { + name = requestHeadersNames[ name.toLowerCase() ] = + requestHeadersNames[ name.toLowerCase() ] || name; + requestHeaders[ name ] = value; + } + return this; + }, + + // Overrides response content-type header + overrideMimeType: function( type ) { + if ( completed == null ) { + s.mimeType = type; + } + return this; + }, + + // Status-dependent callbacks + statusCode: function( map ) { + var code; + if ( map ) { + if ( completed ) { + + // Execute the appropriate callbacks + jqXHR.always( map[ jqXHR.status ] ); + } else { + + // Lazy-add the new callbacks in a way that preserves old ones + for ( code in map ) { + statusCode[ code ] = [ statusCode[ code ], map[ code ] ]; + } + } + } + return this; + }, + + // Cancel the request + abort: function( statusText ) { + var finalText = statusText || strAbort; + if ( transport ) { + transport.abort( finalText ); + } + done( 0, finalText ); + return this; + } + }; + + // Attach deferreds + deferred.promise( jqXHR ); + + // Add protocol if not provided (prefilters might expect it) + // Handle falsy url in the settings object (#10093: consistency with old signature) + // We also use the url parameter if available + s.url = ( ( url || s.url || location.href ) + "" ) + .replace( rprotocol, location.protocol + "//" ); + + // Alias method option to type as per ticket #12004 + s.type = options.method || options.type || s.method || s.type; + + // Extract dataTypes list + s.dataTypes = ( s.dataType || "*" ).toLowerCase().match( rnotwhite ) || [ "" ]; + + // A cross-domain request is in order when the origin doesn't match the current origin. + if ( s.crossDomain == null ) { + urlAnchor = document.createElement( "a" ); + + // Support: IE <=8 - 11, Edge 12 - 13 + // IE throws exception on accessing the href property if url is malformed, + // e.g. http://example.com:80x/ + try { + urlAnchor.href = s.url; + + // Support: IE <=8 - 11 only + // Anchor's host property isn't correctly set when s.url is relative + urlAnchor.href = urlAnchor.href; + s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !== + urlAnchor.protocol + "//" + urlAnchor.host; + } catch ( e ) { + + // If there is an error parsing the URL, assume it is crossDomain, + // it can be rejected by the transport if it is invalid + s.crossDomain = true; + } + } + + // Convert data if not already a string + if ( s.data && s.processData && typeof s.data !== "string" ) { + s.data = jQuery.param( s.data, s.traditional ); + } + + // Apply prefilters + inspectPrefiltersOrTransports( prefilters, s, options, jqXHR ); + + // If request was aborted inside a prefilter, stop there + if ( completed ) { + return jqXHR; + } + + // We can fire global events as of now if asked to + // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118) + fireGlobals = jQuery.event && s.global; + + // Watch for a new set of requests + if ( fireGlobals && jQuery.active++ === 0 ) { + jQuery.event.trigger( "ajaxStart" ); + } + + // Uppercase the type + s.type = s.type.toUpperCase(); + + // Determine if request has content + s.hasContent = !rnoContent.test( s.type ); + + // Save the URL in case we're toying with the If-Modified-Since + // and/or If-None-Match header later on + // Remove hash to simplify url manipulation + cacheURL = s.url.replace( rhash, "" ); + + // More options handling for requests with no content + if ( !s.hasContent ) { + + // Remember the hash so we can put it back + uncached = s.url.slice( cacheURL.length ); + + // If data is available, append data to url + if ( s.data ) { + cacheURL += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data; + + // #9682: remove data so that it's not used in an eventual retry + delete s.data; + } + + // Add anti-cache in uncached url if needed + if ( s.cache === false ) { + cacheURL = cacheURL.replace( rts, "" ); + uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce++ ) + uncached; + } + + // Put hash and anti-cache on the URL that will be requested (gh-1732) + s.url = cacheURL + uncached; + + // Change '%20' to '+' if this is encoded form body content (gh-2658) + } else if ( s.data && s.processData && + ( s.contentType || "" ).indexOf( "application/x-www-form-urlencoded" ) === 0 ) { + s.data = s.data.replace( r20, "+" ); + } + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if ( s.ifModified ) { + if ( jQuery.lastModified[ cacheURL ] ) { + jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] ); + } + if ( jQuery.etag[ cacheURL ] ) { + jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] ); + } + } + + // Set the correct header, if data is being sent + if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) { + jqXHR.setRequestHeader( "Content-Type", s.contentType ); + } + + // Set the Accepts header for the server, depending on the dataType + jqXHR.setRequestHeader( + "Accept", + s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ? + s.accepts[ s.dataTypes[ 0 ] ] + + ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) : + s.accepts[ "*" ] + ); + + // Check for headers option + for ( i in s.headers ) { + jqXHR.setRequestHeader( i, s.headers[ i ] ); + } + + // Allow custom headers/mimetypes and early abort + if ( s.beforeSend && + ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) { + + // Abort if not done already and return + return jqXHR.abort(); + } + + // Aborting is no longer a cancellation + strAbort = "abort"; + + // Install callbacks on deferreds + completeDeferred.add( s.complete ); + jqXHR.done( s.success ); + jqXHR.fail( s.error ); + + // Get transport + transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR ); + + // If no transport, we auto-abort + if ( !transport ) { + done( -1, "No Transport" ); + } else { + jqXHR.readyState = 1; + + // Send global event + if ( fireGlobals ) { + globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] ); + } + + // If request was aborted inside ajaxSend, stop there + if ( completed ) { + return jqXHR; + } + + // Timeout + if ( s.async && s.timeout > 0 ) { + timeoutTimer = window.setTimeout( function() { + jqXHR.abort( "timeout" ); + }, s.timeout ); + } + + try { + completed = false; + transport.send( requestHeaders, done ); + } catch ( e ) { + + // Rethrow post-completion exceptions + if ( completed ) { + throw e; + } + + // Propagate others as results + done( -1, e ); + } + } + + // Callback for when everything is done + function done( status, nativeStatusText, responses, headers ) { + var isSuccess, success, error, response, modified, + statusText = nativeStatusText; + + // Ignore repeat invocations + if ( completed ) { + return; + } + + completed = true; + + // Clear timeout if it exists + if ( timeoutTimer ) { + window.clearTimeout( timeoutTimer ); + } + + // Dereference transport for early garbage collection + // (no matter how long the jqXHR object will be used) + transport = undefined; + + // Cache response headers + responseHeadersString = headers || ""; + + // Set readyState + jqXHR.readyState = status > 0 ? 4 : 0; + + // Determine if successful + isSuccess = status >= 200 && status < 300 || status === 304; + + // Get response data + if ( responses ) { + response = ajaxHandleResponses( s, jqXHR, responses ); + } + + // Convert no matter what (that way responseXXX fields are always set) + response = ajaxConvert( s, response, jqXHR, isSuccess ); + + // If successful, handle type chaining + if ( isSuccess ) { + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if ( s.ifModified ) { + modified = jqXHR.getResponseHeader( "Last-Modified" ); + if ( modified ) { + jQuery.lastModified[ cacheURL ] = modified; + } + modified = jqXHR.getResponseHeader( "etag" ); + if ( modified ) { + jQuery.etag[ cacheURL ] = modified; + } + } + + // if no content + if ( status === 204 || s.type === "HEAD" ) { + statusText = "nocontent"; + + // if not modified + } else if ( status === 304 ) { + statusText = "notmodified"; + + // If we have data, let's convert it + } else { + statusText = response.state; + success = response.data; + error = response.error; + isSuccess = !error; + } + } else { + + // Extract error from statusText and normalize for non-aborts + error = statusText; + if ( status || !statusText ) { + statusText = "error"; + if ( status < 0 ) { + status = 0; + } + } + } + + // Set data for the fake xhr object + jqXHR.status = status; + jqXHR.statusText = ( nativeStatusText || statusText ) + ""; + + // Success/Error + if ( isSuccess ) { + deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] ); + } else { + deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] ); + } + + // Status-dependent callbacks + jqXHR.statusCode( statusCode ); + statusCode = undefined; + + if ( fireGlobals ) { + globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError", + [ jqXHR, s, isSuccess ? success : error ] ); + } + + // Complete + completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] ); + + if ( fireGlobals ) { + globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] ); + + // Handle the global AJAX counter + if ( !( --jQuery.active ) ) { + jQuery.event.trigger( "ajaxStop" ); + } + } + } + + return jqXHR; + }, + + getJSON: function( url, data, callback ) { + return jQuery.get( url, data, callback, "json" ); + }, + + getScript: function( url, callback ) { + return jQuery.get( url, undefined, callback, "script" ); + } +} ); + +jQuery.each( [ "get", "post" ], function( i, method ) { + jQuery[ method ] = function( url, data, callback, type ) { + + // Shift arguments if data argument was omitted + if ( jQuery.isFunction( data ) ) { + type = type || callback; + callback = data; + data = undefined; + } + + // The url can be an options object (which then must have .url) + return jQuery.ajax( jQuery.extend( { + url: url, + type: method, + dataType: type, + data: data, + success: callback + }, jQuery.isPlainObject( url ) && url ) ); + }; +} ); + + +jQuery._evalUrl = function( url ) { + return jQuery.ajax( { + url: url, + + // Make this explicit, since user can override this through ajaxSetup (#11264) + type: "GET", + dataType: "script", + cache: true, + async: false, + global: false, + "throws": true + } ); +}; + + +jQuery.fn.extend( { + wrapAll: function( html ) { + var wrap; + + if ( this[ 0 ] ) { + if ( jQuery.isFunction( html ) ) { + html = html.call( this[ 0 ] ); + } + + // The elements to wrap the target around + wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true ); + + if ( this[ 0 ].parentNode ) { + wrap.insertBefore( this[ 0 ] ); + } + + wrap.map( function() { + var elem = this; + + while ( elem.firstElementChild ) { + elem = elem.firstElementChild; + } + + return elem; + } ).append( this ); + } + + return this; + }, + + wrapInner: function( html ) { + if ( jQuery.isFunction( html ) ) { + return this.each( function( i ) { + jQuery( this ).wrapInner( html.call( this, i ) ); + } ); + } + + return this.each( function() { + var self = jQuery( this ), + contents = self.contents(); + + if ( contents.length ) { + contents.wrapAll( html ); + + } else { + self.append( html ); + } + } ); + }, + + wrap: function( html ) { + var isFunction = jQuery.isFunction( html ); + + return this.each( function( i ) { + jQuery( this ).wrapAll( isFunction ? html.call( this, i ) : html ); + } ); + }, + + unwrap: function( selector ) { + this.parent( selector ).not( "body" ).each( function() { + jQuery( this ).replaceWith( this.childNodes ); + } ); + return this; + } +} ); + + +jQuery.expr.pseudos.hidden = function( elem ) { + return !jQuery.expr.pseudos.visible( elem ); +}; +jQuery.expr.pseudos.visible = function( elem ) { + return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length ); +}; + + + + +jQuery.ajaxSettings.xhr = function() { + try { + return new window.XMLHttpRequest(); + } catch ( e ) {} +}; + +var xhrSuccessStatus = { + + // File protocol always yields status code 0, assume 200 + 0: 200, + + // Support: IE <=9 only + // #1450: sometimes IE returns 1223 when it should be 204 + 1223: 204 + }, + xhrSupported = jQuery.ajaxSettings.xhr(); + +support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported ); +support.ajax = xhrSupported = !!xhrSupported; + +jQuery.ajaxTransport( function( options ) { + var callback, errorCallback; + + // Cross domain only allowed if supported through XMLHttpRequest + if ( support.cors || xhrSupported && !options.crossDomain ) { + return { + send: function( headers, complete ) { + var i, + xhr = options.xhr(); + + xhr.open( + options.type, + options.url, + options.async, + options.username, + options.password + ); + + // Apply custom fields if provided + if ( options.xhrFields ) { + for ( i in options.xhrFields ) { + xhr[ i ] = options.xhrFields[ i ]; + } + } + + // Override mime type if needed + if ( options.mimeType && xhr.overrideMimeType ) { + xhr.overrideMimeType( options.mimeType ); + } + + // X-Requested-With header + // For cross-domain requests, seeing as conditions for a preflight are + // akin to a jigsaw puzzle, we simply never set it to be sure. + // (it can always be set on a per-request basis or even using ajaxSetup) + // For same-domain requests, won't change header if already provided. + if ( !options.crossDomain && !headers[ "X-Requested-With" ] ) { + headers[ "X-Requested-With" ] = "XMLHttpRequest"; + } + + // Set headers + for ( i in headers ) { + xhr.setRequestHeader( i, headers[ i ] ); + } + + // Callback + callback = function( type ) { + return function() { + if ( callback ) { + callback = errorCallback = xhr.onload = + xhr.onerror = xhr.onabort = xhr.onreadystatechange = null; + + if ( type === "abort" ) { + xhr.abort(); + } else if ( type === "error" ) { + + // Support: IE <=9 only + // On a manual native abort, IE9 throws + // errors on any property access that is not readyState + if ( typeof xhr.status !== "number" ) { + complete( 0, "error" ); + } else { + complete( + + // File: protocol always yields status 0; see #8605, #14207 + xhr.status, + xhr.statusText + ); + } + } else { + complete( + xhrSuccessStatus[ xhr.status ] || xhr.status, + xhr.statusText, + + // Support: IE <=9 only + // IE9 has no XHR2 but throws on binary (trac-11426) + // For XHR2 non-text, let the caller handle it (gh-2498) + ( xhr.responseType || "text" ) !== "text" || + typeof xhr.responseText !== "string" ? + { binary: xhr.response } : + { text: xhr.responseText }, + xhr.getAllResponseHeaders() + ); + } + } + }; + }; + + // Listen to events + xhr.onload = callback(); + errorCallback = xhr.onerror = callback( "error" ); + + // Support: IE 9 only + // Use onreadystatechange to replace onabort + // to handle uncaught aborts + if ( xhr.onabort !== undefined ) { + xhr.onabort = errorCallback; + } else { + xhr.onreadystatechange = function() { + + // Check readyState before timeout as it changes + if ( xhr.readyState === 4 ) { + + // Allow onerror to be called first, + // but that will not handle a native abort + // Also, save errorCallback to a variable + // as xhr.onerror cannot be accessed + window.setTimeout( function() { + if ( callback ) { + errorCallback(); + } + } ); + } + }; + } + + // Create the abort callback + callback = callback( "abort" ); + + try { + + // Do send the request (this may raise an exception) + xhr.send( options.hasContent && options.data || null ); + } catch ( e ) { + + // #14683: Only rethrow if this hasn't been notified as an error yet + if ( callback ) { + throw e; + } + } + }, + + abort: function() { + if ( callback ) { + callback(); + } + } + }; + } +} ); + + + + +// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432) +jQuery.ajaxPrefilter( function( s ) { + if ( s.crossDomain ) { + s.contents.script = false; + } +} ); + +// Install script dataType +jQuery.ajaxSetup( { + accepts: { + script: "text/javascript, application/javascript, " + + "application/ecmascript, application/x-ecmascript" + }, + contents: { + script: /\b(?:java|ecma)script\b/ + }, + converters: { + "text script": function( text ) { + jQuery.globalEval( text ); + return text; + } + } +} ); + +// Handle cache's special case and crossDomain +jQuery.ajaxPrefilter( "script", function( s ) { + if ( s.cache === undefined ) { + s.cache = false; + } + if ( s.crossDomain ) { + s.type = "GET"; + } +} ); + +// Bind script tag hack transport +jQuery.ajaxTransport( "script", function( s ) { + + // This transport only deals with cross domain requests + if ( s.crossDomain ) { + var script, callback; + return { + send: function( _, complete ) { + script = jQuery( " + + + + + +

      + + + + + + +
      + +
      + + +
      + + + + +
      +
      + + + + + +
      + + + +
      + +
      + + + + +
      + + +
      + + + + + diff --git a/infusion/development/to-do/GridReordererAPI.html b/infusion/development/to-do/GridReordererAPI.html new file mode 100644 index 00000000..ae4b6e6e --- /dev/null +++ b/infusion/development/to-do/GridReordererAPI.html @@ -0,0 +1,240 @@ + + + + + + Grid Reorderer API | Fluid Infusion + + + + + + + + + + + + + + + + + +
      + + + + + + +
      + +
      + + +
      + + + + +
      +
      + + + + + +
      + + + +
      + +
      + + + + +
      + + +
      + + + + + diff --git a/infusion/development/to-do/InlineEdit.html b/infusion/development/to-do/InlineEdit.html new file mode 100644 index 00000000..b4f1f704 --- /dev/null +++ b/infusion/development/to-do/InlineEdit.html @@ -0,0 +1,240 @@ + + + + + + Inline Edit | Fluid Infusion + + + + + + + + + + + + + + + + + +
      + + + + + + +
      + +
      + + +
      + + + + +
      +
      + + + + + +
      + + + +
      + +
      + + + + +
      + + +
      + + + + + diff --git a/infusion/development/to-do/InlineEditAPI.html b/infusion/development/to-do/InlineEditAPI.html new file mode 100644 index 00000000..7a22a9c0 --- /dev/null +++ b/infusion/development/to-do/InlineEditAPI.html @@ -0,0 +1,240 @@ + + + + + + Inline Edit API | Fluid Infusion + + + + + + + + + + + + + + + + + +
      + + + + + + +
      + +
      + + +
      + + + + +
      +
      + + + + + +
      + + + +
      + +
      + + + + +
      + + +
      + + + + + diff --git a/infusion/development/to-do/LayoutReordererAPI.html b/infusion/development/to-do/LayoutReordererAPI.html new file mode 100644 index 00000000..39fd1185 --- /dev/null +++ b/infusion/development/to-do/LayoutReordererAPI.html @@ -0,0 +1,240 @@ + + + + + + Layout Reorderer API | Fluid Infusion + + + + + + + + + + + + + + + + + +
      + + + + + + +
      + +
      + + +
      + + + + +
      +
      + + + + + +
      + + + +
      + +
      + + + + +
      + + +
      + + + + + diff --git a/infusion/development/to-do/ListReordererAPI.html b/infusion/development/to-do/ListReordererAPI.html new file mode 100644 index 00000000..72abad9a --- /dev/null +++ b/infusion/development/to-do/ListReordererAPI.html @@ -0,0 +1,240 @@ + + + + + + List Reorderer API | Fluid Infusion + + + + + + + + + + + + + + + + + +
      + + + + + + +
      + +
      + + +
      + + + + +
      +
      + + + + + +
      + + + +
      + +
      + + + + +
      + + +
      + + + + + diff --git a/infusion/development/to-do/Pager.html b/infusion/development/to-do/Pager.html new file mode 100644 index 00000000..2e2f912e --- /dev/null +++ b/infusion/development/to-do/Pager.html @@ -0,0 +1,240 @@ + + + + + + Pager | Fluid Infusion + + + + + + + + + + + + + + + + + +
      + + + + + + +
      + +
      + + +
      + + + + +
      +
      + + + + + +
      + + + +
      + +
      + + + + +
      + + +
      + + + + + diff --git a/infusion/development/to-do/PagerAPI.html b/infusion/development/to-do/PagerAPI.html new file mode 100644 index 00000000..661eee9c --- /dev/null +++ b/infusion/development/to-do/PagerAPI.html @@ -0,0 +1,240 @@ + + + + + + Pager API | Fluid Infusion + + + + + + + + + + + + + + + + + +
      + + + + + + +
      + +
      + + +
      + + + + +
      +
      + + + + + +
      + + + +
      + +
      + + + + +
      + + +
      + + + + + diff --git a/infusion/development/to-do/Progress.html b/infusion/development/to-do/Progress.html new file mode 100644 index 00000000..d63b7e91 --- /dev/null +++ b/infusion/development/to-do/Progress.html @@ -0,0 +1,240 @@ + + + + + + Progress | Fluid Infusion + + + + + + + + + + + + + + + + + +
      + + + + + + +
      + +
      + + +
      + + + + +
      +
      + + + + + +
      + + + +
      + +
      + + + + +
      + + +
      + + + + + diff --git a/infusion/development/to-do/ProgressAPI.html b/infusion/development/to-do/ProgressAPI.html new file mode 100644 index 00000000..d1353fed --- /dev/null +++ b/infusion/development/to-do/ProgressAPI.html @@ -0,0 +1,240 @@ + + + + + + Progress API | Fluid Infusion + + + + + + + + + + + + + + + + + +
      + + + + + + +
      + +
      + + +
      + + + + +
      +
      + + + + + +
      + + + +
      + +
      + + + + +
      + + +
      + + + + + diff --git a/infusion/development/to-do/Reorderer.html b/infusion/development/to-do/Reorderer.html new file mode 100644 index 00000000..9f3fb3ff --- /dev/null +++ b/infusion/development/to-do/Reorderer.html @@ -0,0 +1,240 @@ + + + + + + Reorderer | Fluid Infusion + + + + + + + + + + + + + + + + + +
      + + + + + + +
      + +
      + + +
      + + + + +
      +
      + + + + + +
      + + + +
      + +
      + + + + +
      + + +
      + + + + + diff --git a/infusion/development/to-do/ReordererAPI.html b/infusion/development/to-do/ReordererAPI.html new file mode 100644 index 00000000..d2ce0c13 --- /dev/null +++ b/infusion/development/to-do/ReordererAPI.html @@ -0,0 +1,240 @@ + + + + + + Reorderer API | Fluid Infusion + + + + + + + + + + + + + + + + + +
      + + + + + + +
      + +
      + + +
      + + + + +
      +
      + + + + + +
      + + + +
      + +
      + + + + +
      + + +
      + + + + + diff --git a/infusion/development/to-do/TableOfContentsAPI.html b/infusion/development/to-do/TableOfContentsAPI.html new file mode 100644 index 00000000..31361aeb --- /dev/null +++ b/infusion/development/to-do/TableOfContentsAPI.html @@ -0,0 +1,240 @@ + + + + + + Table of Contents API | Fluid Infusion + + + + + + + + + + + + + + + + + +
      + + + + + + +
      + +
      + + +
      + + + + +
      +
      + + + + + +
      + + + +
      + +
      + + + + +
      + + +
      + + + + + diff --git a/infusion/development/to-do/TalkingToTheServerUsingTheAfterMoveEvent.html b/infusion/development/to-do/TalkingToTheServerUsingTheAfterMoveEvent.html new file mode 100644 index 00000000..7942498f --- /dev/null +++ b/infusion/development/to-do/TalkingToTheServerUsingTheAfterMoveEvent.html @@ -0,0 +1,132 @@ + + + + + + Talking to the Server Using The afterMove Event | Fluid Infusion + + + + + + + + + + + + + + + + + +
      + + + + + + +
      + +
      + + +
      + + + + +
      +
      + + + + + +
      + + + +
      + +
      + + + + +
      + + +
      + + + + + diff --git a/infusion/development/to-do/UIEnhancer.html b/infusion/development/to-do/UIEnhancer.html new file mode 100644 index 00000000..d5e8a478 --- /dev/null +++ b/infusion/development/to-do/UIEnhancer.html @@ -0,0 +1,588 @@ + + + + + + UI Enhancer | Fluid Infusion + + + + + + + + + + + + + + + + + +
      + + + + + + +
      + +
      + + +
      + + + + +
      +
      + + + + + +
      + + + +
      + +
      + + + + +
      + + +
      + + + + + diff --git a/infusion/development/to-do/UndoAPI.html b/infusion/development/to-do/UndoAPI.html new file mode 100644 index 00000000..a872b71e --- /dev/null +++ b/infusion/development/to-do/UndoAPI.html @@ -0,0 +1,240 @@ + + + + + + Undo API | Fluid Infusion + + + + + + + + + + + + + + + + + +
      + + + + + + +
      + +
      + + +
      + + + + +
      +
      + + + + + +
      + + + +
      + +
      + + + + +
      + + +
      + + + + + diff --git a/infusion/development/to-do/Uploader.html b/infusion/development/to-do/Uploader.html new file mode 100644 index 00000000..5eea8ea4 --- /dev/null +++ b/infusion/development/to-do/Uploader.html @@ -0,0 +1,240 @@ + + + + + + Uploader | Fluid Infusion + + + + + + + + + + + + + + + + + +
      + + + + + + +
      + +
      + + +
      + + + + +
      +
      + + + + + +
      + + + +
      + +
      + + + + +
      + + +
      + + + + + diff --git a/infusion/development/to-do/UserInterfaceOptions.html b/infusion/development/to-do/UserInterfaceOptions.html new file mode 100644 index 00000000..defee73e --- /dev/null +++ b/infusion/development/to-do/UserInterfaceOptions.html @@ -0,0 +1,240 @@ + + + + + + User Interface Options | Fluid Infusion + + + + + + + + + + + + + + + + + +
      + + + + + + +
      + +
      + + +
      + + + + +
      +
      + + + + + +
      + + + +
      + +
      + + + + +
      + + +
      + + + + + diff --git a/infusion/development/to-do/WorkingWithPrefsEditorOnSite.html b/infusion/development/to-do/WorkingWithPrefsEditorOnSite.html new file mode 100644 index 00000000..417dc996 --- /dev/null +++ b/infusion/development/to-do/WorkingWithPrefsEditorOnSite.html @@ -0,0 +1,376 @@ + + + + + + Working With A Preferences Editor On Your Site | Fluid Infusion + + + + + + + + + + + + + + + + + +
      + + + + + + +
      + +
      + + +
      + + + + +
      +
      + + + + + +
      + + + +
      + +
      + + + + +
      + + +
      + + + + + diff --git a/infusion/development/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-Components.html b/infusion/development/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-Components.html new file mode 100644 index 00000000..82dd240a --- /dev/null +++ b/infusion/development/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-Components.html @@ -0,0 +1,420 @@ + + + + + + Developer Introduction to the Infusion Framework - Components | Fluid Infusion + + + + + + + + + + + + + + + + + +
      + + + + + + +
      + +
      + + +
      + + + + +
      +
      + + + + + +
      + + + +
      + +
      + + +
      +
      + +
      + +

      Developer Introduction to the Infusion Framework - Components

      + + + + + +
      +

      Programs using Infusion structure their data, functionality and interaction as various components defined using a common syntax.

      +

      Components are JavaScript objects that have certain characteristics. Components can be freely combined together to form new components using the grades system ("grade" is the term used in Infusion for a sort of blueprint, in this case one that holds a component's default configuration), or organized into relationships with one another via subcomponents.

      +

      There are three base component grades to be aware of that any new components you create with Infusion will likely have at their root:

      +
        +
      • fluid.component, the simplest type with support for events and public function definition (called invokers in Infusion).
      • +
      • fluid.modelComponent, which adds support for mutable models, model events, and model state coordination and relay between different components.
      • +
      • fluid.viewComponent, which supplement model components with functionality to bind to the DOM of a web page.
      • +
      +

      Infusion's approach to component-based development emphasizes declarative configuration, loose coupling and flexible hierarchies. The framework manages component lifecycle and scoping and provides many supports to allow components to work in collaboration with one another.

      +

      A new Infusion component grade is defined using the fluid.defaults function and a very basic "Hello, World!" component might look like this:

      +
      Note: You can check out the Live Example of the code below on CodePen
      +
      // The first argument is the name of the new component, the second is the
      +// new component's default configuration
      +fluid.defaults("fluidTutorial.helloWorld", {
      +    // gradeNames supplies an array of strings that name previously
      +    // defined Infusion components; their configurations will be
      +    // merged together for the final "blueprint"
      +    //
      +    // In this case, we are supplying only a single grade name, but
      +    // if multiples were supplied, they would be combined into one
      +    // configuration in left to right order, with the rightmost
      +    // configuration taking precedence in cases where different
      +    // grades have the same key in the same position
      +    gradeNames: ["fluid.component"]
      +});
      +
      +

      After definition, instances of the component can be created by calling the component's name as a function, with the option to pass in further configuration options as an argument:

      +
      var helloWorld = fluidTutorial.helloWorld();
      +
      +

      Right now this component doesn't do anything, but we will evolve its definition throughout this introduction to demonstrate further core concepts of the framework.

      +

      Namespaces in Infusion

      +

      The standard pattern in developing Infusion components is to +gather related components and functions under a namespace, a single +global variable to contain the code; Infusion has a number of +utility functions to work with namespaces.

      +

      In this case, our namespace is fluidTutorial, and the helloWorld +grade we are defining has a fully qualified name of +fluidTutorial.helloWorld; using namespaces helps us avoid +potential collision of component or function names when integrating with +other code.

      +

      Grade Inheritance in Infusion

      +

      While we won't get into grade inheritance until later (combining existing grade definitions by supplying multiple items in the gradeNames array), we'll quickly note two important rules:

      +
        +
      1. The order of precedence when grade configurations have keys with the same name in the same place is that the rightmost grade will take precedence.
      2. +
      3. Any combination including fluid.viewComponent or grades derived from it should be placed to the right of any non-viewComponent grade.
      4. +
      +

      Next: Invokers

      + +
      +
      + + + +
      + +
      + + +
      + + + + + diff --git a/infusion/development/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-ConcludingRemarks.html b/infusion/development/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-ConcludingRemarks.html new file mode 100644 index 00000000..9def1e99 --- /dev/null +++ b/infusion/development/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-ConcludingRemarks.html @@ -0,0 +1,397 @@ + + + + + + Developer Introduction to the Infusion Framework - Concluding Remarks | Fluid Infusion + + + + + + + + + + + + + + + + + +
      + + + + + + +
      + +
      + + +
      + + + + +
      +
      + + + + + +
      + + + +
      + +
      + + +
      +
      + +
      + +

      Developer Introduction to the Infusion Framework - Concluding Remarks

      + + + + + +
      +

      We've come to the end of our introduction to the core concepts of the Infusion framework. There are many topics we haven't covered, but with these foundational concepts, we hope you go on to further explore Infusion.

      +

      We'll summarize what we've done below, then suggest some next steps.

      +
      Note: If you have feedback about this tutorial, we'd be glad to hear it via our IRC channels, mailing lists or the Infusion issue tracker.
      +

      Summing Up

      +
        +
      • We implement our programs by designing components that work together to provide the needed functionality. Components are Javascript objects adhering to certain syntax conventions that are created using the fluid.defaults function. While components have defaults, any of these defaults can be overriden at the time a specific instance of the component is created.
      • +
      • Components use invokers to expose functionality "publicly", provide a consistent API for collaboration with other components or use by other code, and enable function overriding when deriving new components from existing ones.
      • +
      • All components support events and inversion of control; these allow our programs to be built up of loosely coupled parts, and to manage sequencing through components observing and responding to their own events or the events of other components.
      • +
      • Components that need to track mutable data, state or content should be model components; model components can coordinate and synchronize their data with other model components, fire events when their models are changed, and take other actions to store and respond to state changes. Model components can use model listeners to respond to changes in model state.
      • +
      • Components that need to interact with the web page DOM to display content or interact with users are view components; view components are bound to specific DOM nodes when created and support the DOM Binder convention to avoid tying an implementation too tightly to specific markup.
      • +
      • Components can include subcomponents, and use model relaying to keep state synchronized between different components in larger designs. Many kinds of model relays are possible aside from two-way synchronization.
      • +
      • As program designs evolve, Infusion's configuration-oriented components make it easier to restructure a design by splitting out functionality into multiple components and wiring them together through IoC references.
      • +
      • When it becomes clear two components have similar behaviour, Infusion's design helps in refactoring to share functionality by overriding invokers and creating base grades.
      • +
      • Infusion has strong supports for multimodal implementations that allow programs to adapt themselves to new contexts for input and presentation.
      • +
      • We can use transformations as part of model relays to express more complex coordination of data between different parts of a program.
      • +
      +

      Where to Go Next?

      + + +
      +
      + + + +
      + +
      + + +
      + + + + + diff --git a/infusion/development/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-EventsAndInversionOfControl.html b/infusion/development/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-EventsAndInversionOfControl.html new file mode 100644 index 00000000..aa76aaa8 --- /dev/null +++ b/infusion/development/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-EventsAndInversionOfControl.html @@ -0,0 +1,404 @@ + + + + + + Developer Introduction to the Infusion Framework - Events and Inversion of Control | Fluid Infusion + + + + + + + + + + + + + + + + + +
      + + + + + + +
      + +
      + + +
      + + + + +
      +
      + + + + + +
      + + + +
      + +
      + + +
      +
      + +
      + +

      Developer Introduction to the Infusion Framework - Events and Inversion of Control

      + + + + + +
      +

      All Infusion components support highly flexible event-driven programming. All components have basic lifecycle events such as creation and destruction, and others may be declared, fired and listened for by the originating component or another component.

      +

      Infusion also makes extensive use of the programming concept of Inversion of Control (IoC), a technique for organizing component dependencies and references in a distributed, flexible manner. IoC is used in many ways throughout Infusion, but an important initial concept to grasp is the use of IoC References when configuring components, and the concept of {that}.

      +

      IoC references allow us to refer to other parts of a component object (or another component entirely) in a declarative, context-specific manner, with {that} standing in for the current component configuration.

      +

      We can use a listener definition, the onCreate lifecycle event and IoC {that} to have a component say hello when it's ready, rather than needing to be manually called:

      +
      Note: You can check out the Live Example of the code below on CodePen
      +
      fluid.defaults("fluidTutorial.helloWorld", {
      +    gradeNames: ["fluid.component"],
      +    listeners: {
      +        // Configures the component to call its own 'sayHello' function
      +        // when it's created
      +        //
      +        // On the left side, "onCreate.sayHello":
      +        // 1) Configures the listener to listen for
      +        // the onCreate lifecycle event
      +        // 2) Adds an a namespace of 'sayHello' to
      +        // allow multiple listeners to be attached to the
      +        // same event without collision
      +        //
      +        // On the right side, this configures the listener
      +        // to use the sayHello invoker
      +        "onCreate.sayHello": "{that}.sayHello"
      +    },
      +    invokers: {
      +        sayHello: {
      +            funcName: "fluidTutorial.helloWorld.consoleHello",
      +            args: ["Hello, World!"]
      +        }
      +    }
      +});
      +
      +

      Next: Model Components

      + +
      +
      + + + +
      + +
      + + +
      + + + + + diff --git a/infusion/development/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-ExtendingDesignsWithExistingComponents.html b/infusion/development/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-ExtendingDesignsWithExistingComponents.html new file mode 100644 index 00000000..23c2d36a --- /dev/null +++ b/infusion/development/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-ExtendingDesignsWithExistingComponents.html @@ -0,0 +1,484 @@ + + + + + + Developer Introduction to the Infusion Framework - Extending Designs with Existing Components | Fluid Infusion + + + + + + + + + + + + + + + + + +
      + + + + + + +
      + +
      + + +
      + + + + +
      +
      + + + + + +
      + + + +
      + +
      + + +
      +
      + +
      + +

      Developer Introduction to the Infusion Framework - Extending Designs with Existing Components

      + + + + + +
      +

      Infusion's origins are in research about how to better implement accessible, inclusive systems. Many features are designed to support the easier transformation of data into other forms of representation, so it can be experienced by audiences with diverse needs.

      +

      Our community often refers to this as multimodal design (in this context, a "modality" is "a particular mode in which something exists or is experienced or expressed"), and many characteristics of Infusion are about:

      +
        +
      • increasing the capacity of a system to have different representations of the same content, or to transform content into a form preferable to the end user
      • +
      • increasing the capacity of a system to have new forms of representation developed and added as needs arise for them
      • +
      +

      We currently have a "Hello, World!" component that can say "hello!"" by printing to a web page and logging to the console. What if we wanted it to talk as well?

      +

      We'll extend the code further using an existing Infusion text to speech component, which should work in a modern text to speech supporting browser:

      +
      Note: You can check out the Live Example of the code below on CodePen
      +
      fluid.defaults("fluidTutorial.helloWorld.sayHello", {
      +    gradeNames: ["fluid.modelComponent"],
      +    model: {
      +        message: "Hello, world!"
      +    },
      +    modelListeners: {
      +        message: "{that}.sayHello"
      +    },
      +    invokers: {
      +        sayHello: "fluid.notImplemented"
      +    }
      +});
      +
      +fluid.defaults("fluidTutorial.helloWorld.consoleHello", {
      +    gradeNames: ["fluidTutorial.helloWorld.sayHello"],
      +    invokers: {
      +        sayHello: {
      +            "funcName": "fluidTutorial.helloWorld.consoleHello.sayHello",
      +            args: ["{that}.model.message"]
      +        }
      +    }
      +});
      +
      +fluidTutorial.helloWorld.consoleHello.sayHello = function (message) {
      +    console.log(message);
      +};
      +
      +fluid.defaults("fluidTutorial.helloWorld.displayHello", {
      +    gradeNames: ["fluidTutorial.helloWorld.sayHello", "fluid.viewComponent"],
      +    selectors: {
      +        messageArea: ".flc-messageArea"
      +    },
      +    invokers: {
      +        sayHello: {
      +            "this": "{that}.dom.messageArea",
      +            method: "html",
      +            args: ["{that}.model.message"]
      +        }
      +    }
      +});
      +
      +
      +fluid.defaults("fluidTutorial.helloWorld.speakHello", {
      +    // This component has all of the characteristics of sayHello,
      +    // except for its implementation in the invoker
      +    // We also "mix in" the fluid.textToSpeech component to give it
      +    // the capability to access the browser's text to speech interface
      +    gradeNames: ["fluid.textToSpeech", "fluidTutorial.helloWorld.sayHello"],
      +    invokers: {
      +        sayHello: {
      +            // This style of Invoker allows us to refer to another
      +            // existing invoker using IoC references - in this case the
      +            // "queueSpeech" invoker that we have access to from mixing
      +            // in the fluid.textToSpeech grade
      +            "func": "{that}.queueSpeech",
      +            args: ["{that}.model.message"]
      +        }
      +    }
      +});
      +
      +fluid.defaults("fluidTutorial.helloWorld", {
      +    gradeNames: ["fluid.modelComponent"],
      +    model: {
      +        message: "Hello, World!"
      +    },
      +    listeners: {
      +        "onCreate.announceSelf": {
      +            "this": "console",
      +            method: "log",
      +            args: ["The helloWorld Component is ready"]
      +        }
      +    },
      +    components: {
      +        consoleHello: {
      +            type: "fluidTutorial.helloWorld.consoleHello",
      +            options: {
      +                model: {
      +                    message: "{helloWorld}.model.message"
      +                }
      +            }
      +        },
      +        displayHello: {
      +            type: "fluidTutorial.helloWorld.displayHello",
      +            container: ".helloWorld",
      +            options: {
      +                model: {
      +                    message: "{helloWorld}.model.message"
      +                }
      +            }
      +        },
      +        speakHello: {
      +            type: "fluidTutorial.helloWorld.speakHello",
      +            options: {
      +                model: {
      +                    message: "{helloWorld}.model.message"
      +                }
      +            }
      +        }
      +    }
      +});
      +
      +

      Next: Transforming Model Relays

      + +
      +
      + + + +
      + +
      + + +
      + + + + + diff --git a/infusion/development/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-Invokers.html b/infusion/development/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-Invokers.html new file mode 100644 index 00000000..69b2c41a --- /dev/null +++ b/infusion/development/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-Invokers.html @@ -0,0 +1,411 @@ + + + + + + Developer Introduction to the Infusion Framework - Invokers | Fluid Infusion + + + + + + + + + + + + + + + + + +
      + + + + + + +
      + +
      + + +
      + + + + +
      +
      + + + + + +
      + + + +
      + +
      + + +
      +
      + +
      + +

      Developer Introduction to the Infusion Framework - Invokers

      + + + + + +
      +

      All Infusion components support the definition of public functions using invokers; among other uses, invokers allow related components to have different internal implementations of a function but present a common function to be called by other code. If we imagine a "Hello, World!" component, there are a variety of ways it might say "hello". Two of them are:

      +
        +
      • By printing to the web developer console via console.log
      • +
      • By displaying a message on a web page
      • +
      +

      While there are other styles of invokers possible, here we will use a style that allows us to refer to a free function (one not attached to a specific object).

      + +
      fluid.defaults("fluidTutorial.helloWorld", {
      +    gradeNames: ["fluid.component"],
      +    invokers: {
      +        // Creates a function on the component
      +        // referred to by name 'sayHello'
      +        sayHello: {
      +            // The value of "funcName" is the full name of
      +            // a free function
      +            funcName: "fluidTutorial.helloWorld.consoleHello",
      +            // Configures the arguments to pass to the function
      +            args: ["Hello, World!"]
      +        }
      +    }
      +});
      +
      +// Now we define the function to be called by the invoker;
      +// notice how it shares the same namespace (this is not a
      +// requirement, but it is recommended practice).
      +fluidTutorial.helloWorld.consoleHello = function (message) {
      +    console.log(message);
      +};
      +
      +
      +

      Now at the console we can create an instance of the component and call the invoker as a function to say hello:

      +
      var helloWorld = fluidTutorial.helloWorld({});
      +helloWorld.sayHello();
      +
      +

      You will notice that the function we defined expects one argument, but we call the invoker without any arguments; this is because we've specified the argument to be supplied as part of the invoker.

      +

      Next: Events and Inversion of Control

      + +
      +
      + + + +
      + +
      + + +
      + + + + + diff --git a/infusion/development/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-ModelsAndModelComponents.html b/infusion/development/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-ModelsAndModelComponents.html new file mode 100644 index 00000000..300457d1 --- /dev/null +++ b/infusion/development/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-ModelsAndModelComponents.html @@ -0,0 +1,453 @@ + + + + + + Developer Introduction to the Infusion Framework - Models and Model Components | Fluid Infusion + + + + + + + + + + + + + + + + + +
      + + + + + + +
      + +
      + + +
      + + + + +
      +
      + + + + + +
      + + + +
      + +
      + + +
      +
      + +
      + +

      Developer Introduction to the Infusion Framework - Models and Model Components

      + + + + + +
      +

      Mutable data is typically expected to be stored on a component's model. Component models in Infusion are altered through the ChangeApplier functionality, which works to:

      +
        +
      • coordinate model state between different components
      • +
      • allow changes to a component's model to be listened for and responded to as though they are events
      • +
      +

      What kinds of data are suitable for storing on a component model? The advice from the framework explanation of model objects is:

      +
      +

      We recommend that all objects stored in the model area of a component conform to an even stricter definition - that they are equivalent to their form serialised as JSON. This implies that they consist of only the following types: Array, Object, String, Number and Boolean. In addition, the following values for Number should not be used - Infinity, -Infinity and NaN. The value undefined also can not be safely stored within a model.

      +
      +

      If there is a need to store a non-mutable variable, a non-component object or similar on a component, a typical convention is to place it within the members option block. We will not discuss this topic in the context of this tutorial.

      +

      Creating Model Components

      +

      First, let's store the "Hello, World!" message on the component model rather than having it directly in the invoker's arguments, and refer to it from the sayHello invoker using IoC syntax. In the process, we'll change it from a basic fluid.component to a fluid.modelComponent.

      +
      Note: You can check out the Live Example of the code below on CodePen
      +
      fluid.defaults("fluidTutorial.helloWorld", {
      +    gradeNames: ["fluid.modelComponent"],
      +    // Stores a string value with the key 'message'
      +    // on the component model
      +    model: {
      +        message: "Hello, World!"
      +    },
      +    listeners: {
      +        "onCreate.sayHello": "{that}.sayHello"
      +    },
      +    invokers: {
      +        sayHello: {
      +            funcName: "fluidTutorial.helloWorld.consoleHello",
      +            // Refers to the model.message value of
      +            // the component in the invoker argument
      +            args: ["{that}.model.message"]
      +        }
      +    }
      +});
      +
      +fluidTutorial.helloWorld.consoleHello = function (message) {
      +    console.log(message);
      +};
      +
      +
      +

      Listening to Model Changes

      +

      Second, let's move from using an event listener to say "Hello, World!" to using a model listener. Model listeners are similar conceptually to event listeners, but they respond to changes in a component's model rather than to component events.

      +

      A common pattern in Infusion is to listen to changes to a component's model and then take some further action, such as invoking a function involving the changed model state. We'll implement this below so that the component invokes its sayHello function with the message content each time it changes.

      +
      Note: You can check out the Live Example of the code below on CodePen
      +
      fluid.defaults("fluidTutorial.helloWorld", {
      +    gradeNames: ["fluid.modelComponent"],
      +    model: {
      +        message: "Hello, World!"
      +    },
      +    modelListeners: {
      +        // On the left side, configures a
      +        // model listener listening to the
      +        // 'message' value
      +        //
      +        // On the right side, configures the
      +        // listener to call the component's
      +        // 'sayHello' invoker whenever the
      +        // value changes
      +        message: "{that}.sayHello"
      +    },
      +    invokers: {
      +        sayHello: {
      +            funcName: "fluidTutorial.helloWorld.consoleHello",
      +            args: ["{that}.model.message"]
      +        }
      +    }
      +});
      +
      +fluidTutorial.helloWorld.consoleHello = function (message) {
      +    console.log(message);
      +};
      +
      +
      +

      Using the Change Applier

      +

      From the console we can now use the changeApplier functionality available to all model components to update the model's message. We should see the new message logged to the console each time, because the modelListener we've defined will be called each time the message content changes.

      +
      helloWorld.applier.change("message", "Hello, brave new Infusion world!");
      +// "Hello, brave new Infusion world!"
      +
      +helloWorld.applier.change("message", "Goodbye! See you again soon.");
      +// "Goodbye! See you again soon."
      +
      +

      Next: Views and View Components

      + +
      +
      + + + +
      + +
      + + +
      + + + + + diff --git a/infusion/development/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-OpeningRemarks.html b/infusion/development/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-OpeningRemarks.html new file mode 100644 index 00000000..e01be5b2 --- /dev/null +++ b/infusion/development/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-OpeningRemarks.html @@ -0,0 +1,397 @@ + + + + + + Developer Introduction to the Infusion Framework - Opening Remarks | Fluid Infusion + + + + + + + + + + + + + + + + + +
      + + + + + + +
      + +
      + + +
      + + + + +
      +
      + + + + + +
      + + + +
      + +
      + + +
      +
      + +
      + +

      Developer Introduction to the Infusion Framework - Opening Remarks

      + + + + + +
      +

      Here we will boil down some of the basic concepts of Infusion for developers who may be interested in it, but uncertain of where to start. There's a lot going on in the framework, but grasping some core ideas helps a great deal in moving forward and learning.

      +

      This introduction summarizes some topics (and leaves out many others) that are gone into at length in the full framework documentation, and is focused on developers trying to orient themselves to the framework for the first time.

      +

      The introduction assumes:

      +
        +
      • You are familiar with the basics of JavaScript.
      • +
      • You know how to use a browser's developer tools to access a console.
      • +
      • Ideally, you should also have some experience with the jQuery JavaScript library that Infusion is built atop.
      • +
      +

      We will build and evolve a "Hello, World!" implementation to demonstrate the core concepts, with live examples throughout using the CodePen service.

      +

      Infusion's Core Concepts

      +

      The list below summarizes each section of the tutorial and the core concept covered in it. Each section introduces a new concept and connects it with previous ones.

      +
        +
      1. Components for organizing programs out of related pieces of data, functionality and interaction.
      2. +
      3. Invokers to allow components to provide a consistent structure for collaboration with other components and enable overriding function behavior.
      4. +
      5. Events and Inversion of Control to allow our programs to be built out of loosely coupled parts, and to manage sequencing and lifecycle throughout that loosely coupled structure.
      6. +
      7. Model Components that can track mutable data, state or content, and coordinate and synchronize their data with other model components and fire events when their state changes. Model Listeners are used to respond to changes in model state.
      8. +
      9. View Components for building connections between web elements and Infusion components.
      10. +
      11. Subcomponents and Model Relaying to organize larger program designs and keep state synchronized between different pieces of a design.
      12. +
      13. Restructuring Designs more easily because components are defined as blocks of configuration rather than code.
      14. +
      15. Refactoring Shared Functionality in designs through the use of invokers and base component grades.
      16. +
      17. Extending Designs to allow programs to adapt themselves to new contexts for input and presentation.
      18. +
      19. Transforming Model Relays to express more complex coordination of data between different parts of a program.
      20. +
      +

      Next: Components

      + +
      +
      + + + +
      + +
      + + +
      + + + + + diff --git a/infusion/development/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-OverridingInvokersAndRefactoring.html b/infusion/development/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-OverridingInvokersAndRefactoring.html new file mode 100644 index 00000000..e1c23652 --- /dev/null +++ b/infusion/development/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-OverridingInvokersAndRefactoring.html @@ -0,0 +1,475 @@ + + + + + + Developer Introduction to the Infusion Framework - Overriding Invokers and Refactoring | Fluid Infusion + + + + + + + + + + + + + + + + + +
      + + + + + + +
      + +
      + + +
      + + + + +
      +
      + + + + + +
      + + + +
      + +
      + + +
      +
      + +
      + +

      Developer Introduction to the Infusion Framework - Overriding Invokers and Refactoring

      + + + + + +
      +

      With the console and display functionality extracted as separate components, it's easier to see that large blocks of their configuration are similar:

      +
        +
      • they have the same model characteristics
      • +
      • they both have a model listener that calls a "say hello" function
      • +
      • while their invokers have different names, this isn't necessary now that they've been split out into separate component definitions - we can use invokers to provide each component with an externally identical invoker with a different internal implementation. This is an example of method overriding.
      • +
      +

      Let's refactor to avoid duplication and create a base "say hello" component that other types of "say hello" component can derive from:

      +
      Note: You can check out the Live Example of the code below on CodePen
      +
      fluid.defaults("fluidTutorial.helloWorld.sayHello", {
      +    gradeNames: ["fluid.modelComponent"],
      +    model: {
      +        message: "Hello, world!"
      +    },
      +    modelListeners: {
      +        message: "{that}.sayHello"
      +    },
      +    invokers: {
      +        // fluid.notImplemented is a function that specifically represents
      +        // an unimplemented function that components deriving from this
      +        // grade are intended to implement; this is called an "abstract
      +        // method" in Java
      +        sayHello: "fluid.notImplemented"
      +    }
      +});
      +
      +fluid.defaults("fluidTutorial.helloWorld.consoleHello", {
      +    // This component has all of the characteristics of sayHello,
      +    // except for its implementation in the invoker
      +    gradeNames: ["fluidTutorial.helloWorld.sayHello"],
      +    invokers: {
      +        sayHello: {
      +            "funcName": "fluidTutorial.helloWorld.consoleHello.sayHello",
      +            // Here, "{that}" means the context of the current
      +            // component configuration (consoleHello)
      +            args: ["{that}.model.message"]
      +        }
      +    }
      +});
      +
      +fluidTutorial.helloWorld.consoleHello.sayHello = function (message) {
      +    console.log(message);
      +};
      +
      +fluid.defaults("fluidTutorial.helloWorld.displayHello", {
      +    // This component has all of the characteristics of sayHello,
      +    // except for its implementation in the invoker; additionally:
      +    //
      +    // 1) It adds the fluid.viewComponent grade to the gradeNames
      +    // array to give it the DOM binding capabilities of a viewComponent;
      +    // when multiple grade name are supplied in the array, their
      +    // configurations are combined in left to right order, with the
      +    // rightmost configuration taking precedence if there is a
      +    // duplication of keys at the same place in the configuration
      +    //
      +    // 2) It adds a selector for the messageArea
      +    gradeNames: ["fluidTutorial.helloWorld.sayHello", "fluid.viewComponent"],
      +    selectors: {
      +        messageArea: ".flc-messageArea"
      +    },
      +    invokers: {
      +        sayHello: {
      +            "this": "{that}.dom.messageArea",
      +            method: "html",
      +            args: ["{that}.model.message"]
      +        }
      +    }
      +});
      +
      +fluid.defaults("fluidTutorial.helloWorld", {
      +    gradeNames: ["fluid.modelComponent"],
      +    model: {
      +        message: "Hello, World!"
      +    },
      +    listeners: {
      +        "onCreate.announceSelf": {
      +            "this": "console",
      +            method: "log",
      +            args: ["The helloWorld Component is ready"]
      +        }
      +    },
      +    components: {
      +        consoleHello: {
      +            type: "fluidTutorial.helloWorld.consoleHello",
      +            options: {
      +                model: {
      +                    message: "{helloWorld}.model.message"
      +                }
      +            }
      +        },
      +        displayHello: {
      +            type: "fluidTutorial.helloWorld.displayHello",
      +            container: ".helloWorld",
      +            options: {
      +                model: {
      +                    message: "{helloWorld}.model.message"
      +                }
      +            }
      +        }
      +    }
      +});
      +
      +

      Next: Extending Designs with Existing Components

      + +
      +
      + + + +
      + +
      + + +
      + + + + + diff --git a/infusion/development/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-RestructuringComponents.html b/infusion/development/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-RestructuringComponents.html new file mode 100644 index 00000000..6fa2d882 --- /dev/null +++ b/infusion/development/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-RestructuringComponents.html @@ -0,0 +1,479 @@ + + + + + + Developer Introduction to the Infusion Framework - Restructuring Components | Fluid Infusion + + + + + + + + + + + + + + + + + +
      + + + + + + +
      + +
      + + +
      + + + + +
      +
      + + + + + +
      + + + +
      + +
      + + +
      +
      + +
      + +

      Developer Introduction to the Infusion Framework - Restructuring Components

      + + + + + +
      +

      Infusion's configuration-oriented components make it easier to restructure code, especially as a single component configuration becomes unwieldy. It's a common and expected pattern in Infusion to refactor components as a design evolves.

      +

      In the example below, we extract the two "say hello" components into separate component definitions from the main component, then include them as subcomponents of the main component with their options appropriately configured. We'll also add a listener to the main component to announce (once) when its creation is complete.

      +

      In the process, we'll be looking at some other important characteristics of Infusion component design:

      +
        +
      1. +

        Building freestanding components, then wiring them together for more complex behaviours.

        +
      2. +
      3. +

        Overriding default component configuration when building up applications from separate components.

        +
      4. +
      +
      Note: You can check out the Live Example of the code below on CodePen
      +
      // The console hello functionality is now defined as a separate
      +// component
      +fluid.defaults("fluidTutorial.helloWorld.consoleHello", {
      +    gradeNames: ["fluid.modelComponent"],
      +    // We define a default message here so that
      +    // this component is fully independent and
      +    // could be used on its own
      +    model: {
      +        message: "Hello, Console World!"
      +    },
      +    modelListeners: {
      +        message: "{that}.sayHello"
      +    },
      +    invokers: {
      +        sayHello: {
      +            funcName: "fluidTutorial.helloWorld.consoleHello.sayHello",
      +            // Here, "{that}" means the context of the current
      +            // component configuration (consoleHello)
      +            args: ["{that}.model.message"]
      +        }
      +    }
      +});
      +
      +// We'll update the name of the associated function at the same time.
      +fluidTutorial.helloWorld.consoleHello.sayHello = function (message) {
      +    console.log(message);
      +};
      +
      +// The web page hello functionality is now defined as a separate component.
      +fluid.defaults("fluidTutorial.helloWorld.displayHello", {
      +    gradeNames: ["fluid.viewComponent"],
      +    // We define a default message here so that
      +    // this component is fully independent and
      +    // could be used on its own
      +    model: {
      +        message: "Hello, Web Page World!"
      +    },
      +    selectors: {
      +        messageArea: ".flc-messageArea"
      +    },
      +    modelListeners: {
      +        message: "{that}.displayHello"
      +    },
      +    invokers: {
      +        displayHello: {
      +            "this": "{that}.dom.messageArea",
      +            method: "html",
      +            args: ["{that}.model.message"]
      +        }
      +    }
      +});
      +
      +fluid.defaults("fluidTutorial.helloWorld", {
      +    gradeNames: ["fluid.modelComponent"],
      +    model: {
      +        message: "Hello, World!"
      +    },
      +    listeners: {
      +        "onCreate.announceSelf": {
      +            "this": "console",
      +            method: "log",
      +            args: ["The helloWorld Component is ready"]
      +        }
      +    },
      +    components: {
      +        consoleHello: {
      +            type: "fluidTutorial.helloWorld.consoleHello",
      +            options: {
      +                model: {
      +                    message: "{helloWorld}.model.message"
      +                }
      +            }
      +        },
      +        displayHello: {
      +            type: "fluidTutorial.helloWorld.displayHello",
      +            container: ".helloWorld",
      +            options: {
      +                model: {
      +                    message: "{helloWorld}.model.message"
      +                }
      +            }
      +        }
      +    }
      +});
      +
      +

      We'll also create an instance of this component in a way that shows how any Infusion component defaults can be overridden:

      +
      var helloWorld = fluidTutorial.helloWorld({
      +    model: {
      +        message: "Hello, restructured component world!"
      +    }
      +});
      +
      +

      Notice that the initial message is changed - an Infusion grade definition created by fluid.defaults is exactly that, a default definition, and is fully extensible and reconfigurable even at runtime by passing in another block of configuration.

      +

      Next: Overriding Invokers and Refactoring

      + +
      +
      + + + +
      + +
      + + +
      + + + + + diff --git a/infusion/development/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-SubcomponentsAndModelRelaying.html b/infusion/development/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-SubcomponentsAndModelRelaying.html new file mode 100644 index 00000000..a084ceaa --- /dev/null +++ b/infusion/development/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-SubcomponentsAndModelRelaying.html @@ -0,0 +1,447 @@ + + + + + + Developer Introduction to the Infusion Framework - Subcomponents and Model Relaying | Fluid Infusion + + + + + + + + + + + + + + + + + +
      + + + + + + +
      + +
      + + +
      + + + + +
      +
      + + + + + +
      + + + +
      + +
      + + +
      +
      + +
      + +

      Developer Introduction to the Infusion Framework - Subcomponents and Model Relaying

      + + + + + +
      +

      A component can include other components within its configuration; these are referred to in Infusion as subcomponents.

      +

      It's also common to want related components to coordinate state through their models; we can handle this through the model relay features.

      +

      The evolving "Hello, World!" component below splits out the two "hello" functions (console and web page) into separate subcomponents, and synchronizes the "hello" message through model relay. We'll also update the web page display to use a model listener to respond to model changes.

      +
      Note: You can check out the Live Example of the code below on CodePen
      +
      fluid.defaults("fluidTutorial.helloWorld", {
      +    gradeNames: ["fluid.viewComponent"],
      +    model: {
      +        message: "Hello, World!"
      +    },
      +    selectors: {
      +        messageArea: ".flc-messageArea"
      +    },
      +    // Subcomponents are defined here
      +    components: {
      +        consoleHello: {
      +            // The type must be an existing grade
      +            type: "fluid.modelComponent",
      +            // Configuration options for a subcomponent go under the
      +            // 'options' key
      +            options: {
      +                model: {
      +                    // "{helloWorld}.model.message" is an IoC
      +                    // reference to the parent fluidTutorial.helloWorld
      +                    // component's message value
      +                    // The framework handles two-way synchronization
      +                    // between the models automatically in this form;
      +                    // many other forms are possible, including
      +                    // ones that transform a value before it is
      +                    // relayed
      +                    message: "{helloWorld}.model.message"
      +                },
      +                modelListeners: {
      +                    message: "{that}.sayHello"
      +                },
      +                invokers: {
      +                    sayHello: {
      +                        funcName: "fluidTutorial.helloWorld.consoleHello",
      +                        // Here, "{that}" means the context of the current
      +                        // component configuration of this block (consoleHello)
      +                        args: ["{that}.model.message"]
      +                    }
      +                }
      +            }
      +        },
      +        displayHello: {
      +            type: "fluid.modelComponent",
      +            options: {
      +                model: {
      +                    message: "{helloWorld}.model.message"
      +                },
      +                modelListeners: {
      +                    message: "{that}.displayHello"
      +                },
      +                invokers: {
      +                    displayHello: {
      +                        "this": "{helloWorld}.dom.messageArea",
      +                        method: "html",
      +                        args: ["{that}.model.message"]
      +                    }
      +                }
      +            }
      +        }
      +    }
      +});
      +
      +fluidTutorial.helloWorld.consoleHello = function (message) {
      +    console.log(message);
      +};
      +
      +
      +

      Now, when we use the ChangeApplier's change function to update the message on the parent component model, we'll see both the console and the web page display update, as the change to the parent component model's message value is propagated to the message value of each subcomponent's model, which triggers to the model listeners of each to invoke the "hello!" functions.

      +
      helloWorld.applier.change("message", "Hello, again, world.");
      +
      +

      Next: Restructuring Components

      + +
      +
      + + + +
      + +
      + + +
      + + + + + diff --git a/infusion/development/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-TransformingModelRelays.html b/infusion/development/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-TransformingModelRelays.html new file mode 100644 index 00000000..6593ba68 --- /dev/null +++ b/infusion/development/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-TransformingModelRelays.html @@ -0,0 +1,517 @@ + + + + + + Developer Introduction to the Infusion Framework - Transforming Model Relays | Fluid Infusion + + + + + + + + + + + + + + + + + +
      + + + + + + +
      + +
      + + +
      + + + + +
      +
      + + + + + +
      + + + +
      + +
      + + +
      +
      + +
      + +

      Developer Introduction to the Infusion Framework - Transforming Model Relays

      + + + + + +
      +

      We've covered simple model relays previously as means of enabling two-way synchronization between the models of different components. What if we have a more complex need to coordinate model changes, such as deriving a value on one component model by transforming a value from another?

      +

      Infusion's answer to this is the explicit model relay, a more verbose configuration of relay behaviour that can specify complex logic as part of a component.

      +

      In the code below, we add a second fluidTutorial.helloWorld.speakHello subcomponent, but use a style of explicit model relay that allows us to pass a value through an intermediary function when coordinating changes. In this case, we define a function that reverses a string, and our reverseSpeakHello subcomponent will speak the message backwards after the speakHello subcomponent has spoken it.

      +
      Note: You can check out the Live Example of the code below on CodePen
      +
      var helloWorld;
      +
      +fluid.defaults("fluidTutorial.helloWorld.sayHello", {
      +    gradeNames: ["fluid.modelComponent"],
      +    model: {
      +        message: "Hello, world!"
      +    },
      +    modelListeners: {
      +        message: "{that}.sayHello"
      +    },
      +    invokers: {
      +        sayHello: "fluid.notImplemented"
      +    }
      +});
      +
      +fluid.defaults("fluidTutorial.helloWorld.consoleHello", {
      +    gradeNames: ["fluidTutorial.helloWorld.sayHello"],
      +    invokers: {
      +        sayHello: {
      +            "funcName": "fluidTutorial.helloWorld.consoleHello.sayHello",
      +            args: ["{that}.model.message"]
      +        }
      +    }
      +});
      +
      +fluidTutorial.helloWorld.consoleHello.sayHello = function (message) {
      +    console.log(message);
      +};
      +
      +fluid.defaults("fluidTutorial.helloWorld.displayHello", {
      +    gradeNames: ["fluidTutorial.helloWorld.sayHello", "fluid.viewComponent"],
      +    selectors: {
      +        messageArea: ".flc-messageArea"
      +    },
      +    invokers: {
      +        sayHello: {
      +            "this": "{that}.dom.messageArea",
      +            method: "html",
      +            args: ["{that}.model.message"]
      +        }
      +    }
      +});
      +
      +
      +fluid.defaults("fluidTutorial.helloWorld.speakHello", {
      +    gradeNames: ["fluid.textToSpeech", "fluidTutorial.helloWorld.sayHello"],
      +    invokers: {
      +        sayHello: {
      +            "func": "{that}.queueSpeech",
      +            args: ["{that}.model.message"]
      +        }
      +    }
      +});
      +
      +fluid.defaults("fluidTutorial.helloWorld", {
      +    gradeNames: ["fluid.modelComponent"],
      +    model: {
      +        message: "Hello, World!"
      +    },
      +    listeners: {
      +        "onCreate.announceSelf": {
      +            "this": "console",
      +            method: "log",
      +            args: ["The helloWorld Component is ready"]
      +        }
      +    },
      +    components: {
      +        consoleHello: {
      +            type: "fluidTutorial.helloWorld.consoleHello",
      +            options: {
      +                model: {
      +                    message: "{helloWorld}.model.message"
      +                }
      +            }
      +        },
      +        displayHello: {
      +            type: "fluidTutorial.helloWorld.displayHello",
      +            container: ".helloWorld",
      +            options: {
      +                model: {
      +                    message: "{helloWorld}.model.message"
      +                }
      +            }
      +        },
      +        speakHello: {
      +            type: "fluidTutorial.helloWorld.speakHello",
      +            options: {
      +                model: {
      +                    message: "{helloWorld}.model.message"
      +                }
      +            }
      +        },
      +        reverseSpeakHello: {
      +            type: "fluidTutorial.helloWorld.speakHello",
      +            options: {
      +                // We use what is referred to as the "explicit"
      +                // model relay style here, one that is more verbose
      +                // but allows us many more options, including
      +                // passing the relayed input through a transforming
      +                // function
      +                modelRelay: {
      +                    // A keyword name for the relay rule
      +                    messageReverse: {
      +                        singleTransform: {
      +                            // The input value whose changes this
      +                            // relay rule should coordinate
      +                            //
      +                            // In this case, an IoC reference to the
      +                            // 'message' value of the parent component
      +                            input: "{helloWorld}.model.message",
      +                            // The function to call to transform
      +                            // the input
      +                            type: "fluidTutorial.helloWorld.reverseString"
      +                        },
      +                        // The target point on the component model
      +                        // where the transformed value will be relayed
      +                        target: "message"
      +                    }
      +                }
      +            }
      +        }
      +
      +    }
      +});
      +
      +// This new function reverses and returns a string
      +fluidTutorial.helloWorld.reverseString = function (str) {
      +    return str.split("").reverse().join("");
      +};
      +
      +helloWorld = fluidTutorial.helloWorld({
      +    model: {
      +        message: "Hello, world!"
      +    }
      +});
      +
      +

      A main goal of Infusion is to enable us where possible to express our applications as declarative configurations, reducing the overhead for other developers (or ourselves, after we have stepped away from the code for some time...) to understand the flow of program data.

      +

      Transforming model relays reduce the amount of custom code we need to write to fulfill a common need: responding to data changing in one part of the program in another part of the program.

      +

      We have seen previously how model relaying can be used for value synchronization between parts of a program; when we add transformations to the relay syntax, we can achieve advanced coordination of program state where much of the complexity is embodied in the declarative configuration syntax.

      +

      Next: Concluding Remarks

      + +
      +
      + + + +
      + +
      + + +
      + + + + + diff --git a/infusion/development/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-ViewsAndViewComponents.html b/infusion/development/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-ViewsAndViewComponents.html new file mode 100644 index 00000000..6f8e3747 --- /dev/null +++ b/infusion/development/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-ViewsAndViewComponents.html @@ -0,0 +1,430 @@ + + + + + + Developer Introduction to the Infusion Framework - Views and View Components | Fluid Infusion + + + + + + + + + + + + + + + + + +
      + + + + + + +
      + +
      + + +
      + + + + +
      +
      + + + + + +
      + + + +
      + +
      + + +
      +
      + +
      + +

      Developer Introduction to the Infusion Framework - Views and View Components

      + + + + + +
      +

      View components are used to establish a binding between a specific DOM node on a web page and a specific instance of an Infusion component. View components serve an important role in relaxing the coupling between a component and any page markup it renders through the use of the DOM Binder, making it easier to change component markup without changing component implementation.

      +

      View components require the specification of a page container for the component when creating them, as the first argument to the creator function:

      +

      var helloWorld = fluidTutorial.helloWorld(".helloWorld", {});

      +
      Note: You can check out the Live Example of the code below on CodePen
      +

      Let's turn the "Hello, World!" component into a view component that writes its initial message to the screen as well, assuming we have this HTML on the page:

      +
      <div class="helloWorld">
      +    <div class="flc-messageArea"></div>
      +</div>
      +
      +

      We introduce another style of invoker here, the "this"-ist style that allows us to invoke functions whose implementation references the special Javascript this value. This style of invoker is important for integrating with non-Infusion code such as jQuery, as standard Javascript functions attached to objects expect a this value referring to the calling object.

      +
      fluid.defaults("fluidTutorial.helloWorld", {
      +    gradeNames: ["fluid.viewComponent"],
      +    model: {
      +        message: "Hello, World!"
      +    },
      +    // Creates a binding between the
      +    // selector named 'messageArea'
      +    // and the jQuery selector '.flc-messageArea'
      +    selectors: {
      +        messageArea: ".flc-messageArea"
      +    },
      +    listeners: {
      +        "onCreate.displayHello": "{that}.displayHello"
      +    },
      +    modelListeners: {
      +        message: "{that}.sayHello"
      +    },
      +    invokers: {
      +        sayHello: {
      +            "funcName": "fluidTutorial.helloWorld.consoleHello",
      +            args: ["{that}.model.message"]
      +        },
      +        // Another invoker to call a jQuery
      +        // method on a DOM node returned
      +        // using the DOM binder functionality
      +        displayHello: {
      +            // This IoC reference lets us refer
      +            // to the DOM node bound to the
      +            // `messageArea` key by the selector
      +            // definition above; it returns a
      +            // standard jQuery object
      +            "this": "{that}.dom.messageArea",
      +            // Calls the 'html' function of a jQuery
      +            // object to replace the HTML at the node
      +            method: "html",
      +            args: ["{that}.model.message"]
      +        }
      +    }
      +});
      +
      +fluidTutorial.helloWorld.consoleHello = function (message) {
      +    console.log(message);
      +};
      +
      +
      +

      You'll notice if you use the changeApplier from the console again like you did previously, the console message will update, but the screen displayed message won't. You may be able to guess this is because the screen displayed message isn't using a model listener. We'll address this in the next section.

      +

      Next: Subcomponents and Model Relaying

      + +
      +
      + + + +
      + +
      + + +
      + + + + + diff --git a/infusion/development/tutorial-gettingStartedWithInfusion/BasicComponentCreation-Components.html b/infusion/development/tutorial-gettingStartedWithInfusion/BasicComponentCreation-Components.html new file mode 100644 index 00000000..2b50ef66 --- /dev/null +++ b/infusion/development/tutorial-gettingStartedWithInfusion/BasicComponentCreation-Components.html @@ -0,0 +1,585 @@ + + + + + + Basic Component Creation - Components | Fluid Infusion + + + + + + + + + + + + + + + + + +
      + + + + + + +
      + +
      + + +
      + + + + +
      +
      + + + + + +
      + + + +
      + +
      + + +
      +
      + +
      + +

      Basic Component Creation - Components

      + + + + + +
      +
      +

      Part of the Getting Started with Infusion Component Design Tutorial

      +
      +

      Regardless of which grade of component you use, the basic structure will be the same. We'll use the simplest grade, a plain component, to illustrate what this structure is. In future pages explaining other grades, you'll see the same principles.

      +

      The definition of a component involves two things:

      +
        +
      1. declare the component grade and any default values for the component's options. Options are used by users and integrators to customize the behaviour of a component.
      2. +
      3. define any public functions (invokers) and other members that the component requires to do its work.
      4. +
      +

      Grade and Default Options

      +

      A component's grade and any default options are registered with the framework using a call to +fluid.defaults, which has two parameters: +the component name and an object containing the defaults. The parent grades for the component are specified in an array or single string in the defaults called gradeNames. For a plain component, specify the grade as fluid.component:

      +
      fluid.defaults("tutorials.simpleComponent", {
      +    gradeNames: "fluid.component",
      +    option1: "default value 1"
      +    // ...
      +});
      +
      +

      Options

      +

      Integrators can override your defaults when they instantiate the component, to customize its appearance or behaviour. The framework will take care of merging the integrator's values with your defaults.

      +

      We'll go through some examples of options, to give you an idea of what they're all about.

      +

      Example: Currency Converter Options

      +

      Suppose you're creating a currency converter. You might wish to specify a default conversion rate:

      +
      fluid.defaults("tutorials.currencyConverter", {
      +    gradeNames: "fluid.component",
      +    exchangeRate: 1.035
      +});
      +
      +

      Example: Inline Edit

      +

      The Infusion Inline Edit component uses a tooltip and defines (among other things) defaults for the delay before the tooltip appears, the text to display - even whether or not to enable it at all:

      +
      fluid.defaults("fluid.inlineEdit", {
      +    // ...
      +    useTooltip: true,
      +    tooltipText: "Select or press Enter to edit",
      +    tooltipDelay: 1000 // in milliseconds
      +    // ...
      +});
      +
      +

      Example: Progress

      +

      The Infusion Progress component uses jQuery animations to show and hide a progress bar. The defaults include objects that are passed to jQuery to configure the animations:

      +
      fluid.defaults("fluid.progress", {
      +    // ...
      +    showAnimation: {
      +        params: {
      +            opacity: "show"
      +        },
      +        duration: "slow"
      +    }, // forwarded to $().fadeIn("slow")
      +
      +    hideAnimation: {
      +        params: {
      +            opacity: "hide"
      +        },
      +        duration: "slow"
      +    } // forwarded to $().fadeOut("slow")
      +    // ...
      +});
      +
      +

      The Creator Function

      +

      All components have a creator function: a public function that is invoked to instantiate the component. The framework will instantiate the creator function for you automatically, given the component's default options. +When your component is registered as a subcomponent of another component, the framework will also take responsibility for calling the creator function for you automatically. +In the rare case you need to construct a component directly using a JavaScript function call, Infusion components have a standardized function signature:

      +
        +
      • plain and model components accept a single argument: options
      • +
      • view and renderer components accept two arguments: container and options
      • +
      +

      We'll get into what these arguments are when we talk about each type of component later in this tutorial.

      +

      Using IoC

      +

      Automatic creator function generation

      +

      The IoC - Inversion of Control system will automatically generate a component creator function for you. This is accomplished by registering default options deriving from the framework component grade fluid.component:

      +
      fluid.defaults("tutorials.simpleComponent", {
      +    gradeNames: "fluid.component",
      +    option1: "default value 1"
      +    // ...
      +});
      +
      +

      Public API methods

      +

      The standard means of adding public API functions to a component is to express them as invokers. An invoker is a declarative record added into a components defaults, under the section invokers: +the name of the record becomes the name of the public function which will be added. The invoker record defines the name of the public JavaScript function which should be executed when the method is called, +as well as details of where the arguments that the function accepts should be sourced from - for example:

      +
      fluid.defaults("tutorials.simpleComponent", {
      +    gradeNames: "fluid.component",
      +    option1: "default value 1",
      +    // ...
      +    invokers: {
      +        publicFunction: {
      +            funcName: "tutorials.simpleComponent.publicFunction",
      +            args: "{that}"
      +        }
      +    }
      +});
      +
      +// implementation of the public function registered as an invoker above
      +tutorials.simpleComponent.publicFunction = function (that) {
      +   // ...
      +};
      +
      +

      You will note that the function tutorials.simpleComponent.publicFunction is a standard JavaScript function that could even be invoked directly from code if this were found relevant - +it need not be necessarily bound as a component method (although most component methods that accept {that} as an argument tend not to make sense without being provided an instance of the relevant component).

      +

      Example: Currency Converter

      +

      Here is the next stage of evolution of our currency converter sample, with a conversion function defined using an invoker:

      +
      fluid.defaults("tutorials.currencyConverter", {
      +    gradeNames: "fluid.component",
      +    exchangeRate: 1.035,
      +    invokers: {
      +        convert: {
      +            funcName: "tutorials.currencyConverterAuto.convert",
      +            args: ["{that}.options.exchangeRate", "{arguments}.0"] // amount
      +        }
      +    }
      +});
      +
      +// The conversion function
      +tutorials.currencyConverterAuto.convert = function (exchangeRate, amount) {
      +    return amount * exchangeRate;
      +};
      +
      +

      You'll notice that in this case we have been able to avoid binding to the entire component instance in our public function, and so our standalone public function tutorials.currencyConverterAuto.convert +is of more general utility than just for building a component method. +This has happened because its responsibilities are particularly well-defined - you should always take the opportunity to restrict the binding behaviour of your public functions in this way whenever it is appropriate.

      +

      Defining and firing events

      +

      Many times, you will be creating a component that works in an environment where other things are operating, and it will probably need to notify those other things of key events in its lifecycle. +Events can be used to trigger changes in the visual appearance of a component, or actions by other components. For example:

      +
        +
      • the Infusion Reorderer component provides drag-and-drop functionality for lists, grids, etc. Its operation has several key events, such as when a move is initiated, when it's completed, etc.
      • +
      • the Infusion Uploader component, a queued multi-file uploader, has events including when a file is successfully added to the queue, when each file starts being uploaded, when each upload completes, etc.
      • +
      +

      The Infusion Framework defines its own event system. Infusion events differ from browser events in that they are not bound to the DOM or its infrastructure. Infusion events can be used for anything, not only user-interface related events.

      +

      Declaring events on a component

      +

      All standard Fluid components descended from fluid.component support events. To take advantage of this,

      +
        +
      • specify a grade of fluid.component, and
      • +
      • include an events property in your defaults, listing the events your component will fire.
      • +
      +
      fluid.defaults("tutorials.eventedComponent", {
      +    gradeNames: "fluid.component",
      +    // ...
      +    events: {
      +        onAnAction: null,
      +        afterAnAction: null,
      +        onAnotherAction: "preventable",
      +        afterAnotherAction: null
      +    }
      +});
      +
      +

      The contents of the events object is a set of key-value pairs where the key is the event name and the value is the event type.

      +
        +
      • Event naming conventions: You can call your events anything you like, but Infusion has adopted the convention of prefacing events with on or after to indicate whether or not the event is being fired before some action is taken, or after the action has completed.
      • +
      • Event types: If the event is a standard event defined on this component, you will write null here. Event types supported by the framework are described at the Infusion Event System. +Another possibility is to inject an event appearing elsewhere in the component tree by use of an IoC reference such as {myOtherComponent}.events.myEvent.
      • +
      +

      Example: Saving and Deleting

      +

      Suppose you're creating a component that is responsible for managing records of some kind, or editing documents. An application like that is going to allow users to save their edits or remove the record altogether. You might create the following events for these actions:

      +
      // Declare the events in the defaults
      +fluid.defaults("tutorials.recordEditor", {
      +    gradeNames: "fluid.component",
      +    // ...
      +    events: {
      +        afterSave: null,
      +        onRemove: "preventable",
      +        afterRemove: null
      +    }
      +});
      +
      +

      Firing Events

      +

      The framework will automatically set up event firers for all of your listed events. These will be attached to an object on your component called events and provide an API (and reference target) for you to fire events and add or remove listeners.

      +

      Example: Saving and Deleting

      +

      Our record editor component will likely have public methods for the saving and removing of records. We will define these methods using the framework facility for invokers. These methods will be responsible for firing the events.

      +
      // Declare the events in the defaults
      +fluid.defaults("tutorials.recordEditor", {
      +    gradeNames: ["fluid.component"],
      +    events: {
      +        afterSave: null,
      +        onRemove: "preventable",
      +        afterRemove: null
      +    },
      +    invokers: {
      +        save: {
      +            funcName: "tutorials.recordEditor.save",
      +            args: "{that}"
      +        },
      +        remove: {
      +            funcName: "tutorials.recordEditor.remove",
      +            args: "{that}"
      +        }
      +    }
      +});
      +
      +// Add public methods that will fire events when they do things
      +tutorials.recordEditor.save = function (that) {
      +    // save stuff
      +    // ...
      +    // let anyone listening know the save has happened:
      +    that.events.afterSave.fire();
      +};
      +
      +tutorials.recordEditor.remove = function (that) {
      +    // see if anyone listening objects to the removal:
      +    var prevent = that.events.onRemove.fire();
      +    if (prevent === false) {
      +        // a listener prevented the move, don't do it
      +    }
      +    else {
      +        // no one objects, go ahead and remove
      +        // ...
      +        // let listeners know that the remove has completed
      +        that.events.afterRemove.fire();
      +    }
      +};
      +
      +

      Next: Model Components

      + +
      +
      + + + +
      + +
      + + +
      + + + + + diff --git a/infusion/development/tutorial-gettingStartedWithInfusion/DefineANamespaceAndCreateAClosure.html b/infusion/development/tutorial-gettingStartedWithInfusion/DefineANamespaceAndCreateAClosure.html new file mode 100644 index 00000000..c0bf9635 --- /dev/null +++ b/infusion/development/tutorial-gettingStartedWithInfusion/DefineANamespaceAndCreateAClosure.html @@ -0,0 +1,424 @@ + + + + + + Define a namespace and create a closure | Fluid Infusion + + + + + + + + + + + + + + + + + +
      + + + + + + +
      + +
      + + +
      + + + + +
      +
      + + + + + +
      + + + +
      + +
      + + +
      +
      + +
      + +

      Define a namespace and create a closure

      + + + + + +
      +
      +

      Part of the Getting Started with Infusion Component Design Tutorial

      +
      +

      Infusion code generally follows a few conventions that we recommend, and that we'll use in this tutorial. We'll start with two of them:

      +
        +
      1. namespacing, and
      2. +
      3. closures
      4. +
      +

      Namespacing

      +

      We define a namespace for our code: a single global variable that becomes the container for the code. This means there's less chance of bad interactions with other code: Anything we want to be public will be attached to this object, so all of our code will be qualified by the namespace.

      +

      Closures

      +

      By wrapping the code inside an anonymous function, we can separate private and public functions. Only objects or functions that are attached to the global namespace object will be publicly available. Anything else inside the anonymous function will be invisible to the rest of the world. In general, we recommend against the use of private definitions since they inhibit other developers from getting value from your code. Write every function and piece of data as a public member of your namespace, with a suitable comment if you don't intend them to form a stable part of your API. Of course, make sure not to write any mutable shared state in public - in general, you should make sure any mutable state is packaged as part of a Model-bearing Component.

      +

      General Structure

      +

      So what does this look like in general?

      +
      (function ($, fluid) {
      +    fluid.registerNamespace("mynamespace");
      +
      +    // a private function, only accessible to other things
      +    // inside this closure - this is discouraged
      +    var privateFunc = function () {
      +        // ...
      +    };
      +
      +    // a public function, attached to the namespace - this is recommended
      +    mynamespace.publicFunc = function () {
      +        // ...
      +    };
      +
      +})(jQuery, fluid_2_0);
      +
      +

      You might like to think of the fluid.registerNamespace call as equivalent to a line such as var mynamespace = mynamespace || {}; written at the global scope. It is less cumbersome and more expressive of your intention, as well as easily allowing you to declare nested namespaces in one definition. Use this framework utility unless your requirements are very sophisticated.

      +

      The parameters to the anonymous function, $ and fluid, will be used as shorthand for the arguments that were passed in: jQuery and fluid_2_0 respectively. This allow us, for example, to upgrade to the next version of Infusion (e.g. fluid_2_1) simply by changing the one argument, instead of having to change every single use of the word fluid. It also allows us to have multiple versions of Infusion running at the same time, but acting independently.

      +

      Example

      +

      So what might this look like in your currency converter application? Well, you might call the global namespace currency and create a public function called converter that can be used by anyone to instantiate a converter component:

      +
      (function ($, fluid) {
      +    fluid.registerNamespace("currency");
      +    // put any private things the currency converter will need here
      +
      +
      +    // EITHER: the converter creation function - this is discouraged
      +    currency.converter = function () {
      +        // ...
      +    };
      +    // OR: a creator function automatically managed by Infusion - this is recommended
      +    fluid.defaults("currency.converter", {
      +        // ...
      +    });
      +
      +})(jQuery, fluid_2_0);
      +
      +

      Next: Pick a Component Type

      + +
      +
      + + + +
      + +
      + + +
      + + + + + diff --git a/infusion/development/tutorial-gettingStartedWithInfusion/GettingStartedWithInfusion.html b/infusion/development/tutorial-gettingStartedWithInfusion/GettingStartedWithInfusion.html new file mode 100644 index 00000000..8e38acad --- /dev/null +++ b/infusion/development/tutorial-gettingStartedWithInfusion/GettingStartedWithInfusion.html @@ -0,0 +1,391 @@ + + + + + + Getting Started with Infusion Component Design | Fluid Infusion + + + + + + + + + + + + + + + + + +
      + + + + + + +
      + +
      + + +
      + + + + +
      +
      + + + + + +
      + + + +
      + +
      + + +
      +
      + +
      + +

      Getting Started with Infusion Component Design

      + + + + + +
      +

      Ok, you're convinced: The Infusion Framework looks like it has some cool stuff, and you want to use it in your application. This tutorial will walk you through concepts you'll need to know and how to implement them when developing full applications locally with Infusion. It starts simple and builds in complexity as it goes. Along the way, you'll find links to more documentation about the concepts you'll be learning.

      +
      Note: We recommend starting with the Developer Introduction to the Infusion Framework if you are looking at Infusion for the first time.
      +

      Building Components

      +

      The building blocks of Infusion applications are components. If you haven't already, you might want read Understanding Infusion Components to learn what we mean when we say components, and why we use them.

      +

      If you want to use Infusion for application development, you'll likely want to create components. Here's how:

      +
        +
      1. Set up your environment
      2. +
      3. Define a namespace and create a closure
      4. +
      5. Pick a component type
      6. +
      7. Basic Component Creation - Plain Components + +
      8. +
      9. Subcomponents
      10. +
      + +
      +
      + + + +
      + +
      + + +
      + + + + + diff --git a/infusion/development/tutorial-gettingStartedWithInfusion/ModelComponents.html b/infusion/development/tutorial-gettingStartedWithInfusion/ModelComponents.html new file mode 100644 index 00000000..fbd5cdaa --- /dev/null +++ b/infusion/development/tutorial-gettingStartedWithInfusion/ModelComponents.html @@ -0,0 +1,527 @@ + + + + + + Model Components | Fluid Infusion + + + + + + + + + + + + + + + + + +
      + + + + + + +
      + +
      + + +
      + + + + +
      +
      + + + + + +
      + + + +
      + +
      + + +
      +
      + +
      + +

      Model Components

      + + + + + +
      +
      +

      Part of the Getting Started with Infusion Component Design Tutorial

      +
      +

      Many components manage an internal model. For example:

      +
        +
      • the Infusion Pager component, which allows users to break up long lists of items into separate pages, maintains a model including what the current page is, how many items are shown per page, how the list is sorted, etc.
      • +
      • the Infusion UI Options component uses a slider that maintains a model including the minimum and maximum values and the current setting
      • +
      +

      The Infusion Framework provides supports for model-bearing components. When you declare a component to be a model component, the Framework will automatically construct a ChangeApplier, which wraps the model with special functions that can be used to query and modify the model. The ChangeApplier helps to manage changes to the model, by maintaining lists of subscribers who can register interest in changes to different parts of it, and coordinating updates to this component's model with updates to other component models which are linked to it. It also allows you to add checks that can prevent changes to the model if necessary (e.g validation).

      +

      Declaring a Model Component

      +

      To use a model with your component, you need to use the fluid.modelComponent grade. To do this:

      +
        +
      • specify a grade of fluid.modelComponent, or a grade derived from it (such as fluid.viewComponent, etc.) as part of your component's parent grades
      • +
      • Optionally, you may include a model property in your defaults holding some initial values suitable for your component's model
      • +
      +
      fluid.defaults("tutorials.modelBearingComponent", {
      +    gradeNames: ["fluid.modelComponent"],
      +    // ...
      +    model: {
      +        // ...
      +    }
      +});
      +
      +

      Example: Currency Converter

      +

      We can extend our currency converter example from the previous section by storing a set of rates for different currencies in its model, as well a user's selected currency and its value in original and converted forms:

      +
      fluid.defaults("tutorials.currencyConverter", {
      +    gradeNames: "fluid.modelComponent",
      +    model: {
      +        rates: {
      +            euro: 0.712,
      +            yen: 81.841,
      +            yuan: 6.609,
      +            usd: 1.02,
      +            rupee: 45.789
      +        },
      +        currentSelection: "euro",
      +        amount: 0,
      +        convertedAmount: 0
      +    },
      +    events: {
      +        conversionUpdated: null
      +    },
      +    invokers: {
      +        updateCurrency: {
      +            changePath: "currentSelection",
      +            value: "{arguments}.0"
      +        },
      +        updateRate: {
      +            funcName: "tutorials.currencyConverter.updateRate",
      +            args: ["{that}", "{arguments}.0", "{arguments}.1"] // currency, newRate
      +        },
      +        updateAmount: {
      +            funcName: "tutorials.currencyConverter.updateAmount",
      +            args: ["{that}", "{arguments}.0"] // amount
      +        }
      +    },
      +    modelListeners: {
      +        convertedAmount: {
      +            funcName: "{that}.events.conversionUpdated.fire",
      +            args: "{change}.value"
      +        }
      +    }
      +});
      +
      +tutorials.currencyConverter.updateRate = function (that, currency, newRate) {
      +    that.applier.change(["rates", currency], newRate);
      +};
      +
      +tutorials.currencyConverter.updateAmount = function (that, amount) {
      +    var convertedAmount = amount * that.model.rates[that.model.currentSelection];
      +    that.applier.change("convertedAmount", convertedAmount);
      +};
      +
      +

      Contents of the Model and Its Relation to Other Models

      +

      The model record can consist of any JSON material, as well as containing IoC references to the models and options of other components, as well as expanders. +Any IoC references to another component's model will set up a permanent model relay between the two models at the endpoints of the reference. +This relay will be bidirectional - any updates propagated into either of the models linked by the relay by their respective ChangeAppliers will be relayed into the model at the other end of the link.

      +

      Using The Change Applier

      +

      The Framework will attach both your model and its ChangeApplier to the component object as top-level properties. Your methods can read the model directly, using that.model.<some-path>, but the ChangeApplier should be used to make any changes to the model, using that.applier.change();.

      +

      Example: Dated Component

      +

      As an example, let's consider a component that need to record a date. Your model will include a date field - if you wished to give it an initial default value of null +(actually this practice is not recommended - it is better to only supply default values which are actually useful in a particular context), it could be initialised as follows:

      +
      fluid.defaults("tutorials.modelBearingComponent", {
      +    gradeNames: ["fluid.modelComponent"],
      +    // ...
      +    model: {
      +        date: null
      +    }
      +});
      +
      +

      Suppose that you want the date initialized to the current date at the time the component is instantiated, and you want this to happen before other component initialization happens. +You can specify an initial value for the date field by use of an IoC facility known as an expander. This allows you to schedule the action of any function during the initialization process and have the results entered into the component's configuration. +Our work comes in two parts - firstly, writing a global helper function which returns the current date, named tutorials.getCurrentDate. The second part writes an expander within the model definition to invoke our helper function:

      +
      tutorials.getCurrentDate = function () {
      +    return new Date();
      +};
      +
      +fluid.defaults("tutorials.datedComponent", {
      +    gradeNames: ["fluid.modelComponent"],
      +    model: {
      +        date: {
      +            expander: {
      +                funcName: "tutorials.getCurrentDate"
      +            }
      +        }
      +    }
      +});
      +
      +
      +

      Note: There is a compact form +for writing an expander as a single string - we could have written the above definition +instead with date: "@expand:tutorials.getCurrentDate()" in place of the small JSON +block inside the model.

      +
      +

      Example: Currency Converter

      +

      The currency converter example we presented on the previous page might be more helpful if it supported more than one conversion rate. We can use a model to hold the available rates and to keep track of the currently-selected rate. We define this model in the component's defaults:

      +
      fluid.defaults("tutorials.currencyConverter", {
      +    gradeNames: ["fluid.modelComponent"],
      +    model: {
      +        currentSelection: "euro",
      +        rates: {
      +            euro: 0.712,
      +            yen: 81.841,
      +            yuan: 6.609,
      +            usd: 1.02,
      +            rupee: 45.789
      +        }
      +    },
      +    invokers: {
      +        updateCurrency: {
      +            changePath: "currentSelection",
      +            value: "{arguments}.0"
      +        },
      +        updateRate: {
      +            funcName: "tutorials.currencyConverter.updateRate",
      +            args: ["{that}", "{arguments}.0", "{arguments}.1"] // currency, newRate
      +        },
      +        convert: {
      +            funcName: "tutorials.currencyConverter.convert",
      +            args: ["{that}", "{arguments}.0"] // amount
      +        }
      +    }
      +});
      +
      +
      +tutorials.currencyConverter.updateRate = function (that, currency, newRate) {
      +    that.applier.change(["rates", currency], newRate);
      +};
      +
      +tutorials.currencyConverter.convert = function (that, amount) {
      +    return amount * that.model.rates[that.model.currentSelection];
      +};
      +
      +

      Next: View Components

      + +
      +
      + + + +
      + +
      + + +
      + + + + + diff --git a/infusion/development/tutorial-gettingStartedWithInfusion/PickAComponentType.html b/infusion/development/tutorial-gettingStartedWithInfusion/PickAComponentType.html new file mode 100644 index 00000000..eeb5c62f --- /dev/null +++ b/infusion/development/tutorial-gettingStartedWithInfusion/PickAComponentType.html @@ -0,0 +1,393 @@ + + + + + + Pick a component type | Fluid Infusion + + + + + + + + + + + + + + + + + +
      + + + + + + +
      + +
      + + +
      + + + + +
      +
      + + + + + +
      + + + +
      + +
      + + +
      +
      + +
      + +

      Pick a component type

      + + + + + +
      +
      +

      Part of the Getting Started with Infusion Component Design Tutorial

      +
      +

      The Infusion Framework provides lots of supports for creating components. We have defined a number of different types, or grades, of component, and the Framework will automatically set up different stuff for you depending on which grade of component you create. (For more advanced information about grades, see Component Grades.)

      +

      The basic types are:

      +
        +
      • plain component: the most basic type
      • +
      • model component: for components that will have to maintain an abstract data model
      • +
      • view component: for components that have a user interface
      • +
      • renderer component: for components that want to render the user interface using a template
      • +
      +

      These types of components build upon each other, a teeny little bit like inheritance:

      +
        +
      • model components add support for models to plain components
      • +
      • view components support models, and also add support for views.
      • +
      • renderer components are view components with the Renderer added.
      • +
      +

      A venn diagram showing the composition of grades

      +

      For this tutorial, we suggest you work through all of the examples in order, to understand what each type of component offers. That way, you'll be in a better position to decide which grade you'll need for your components. Regardless of grade, the basic process for creating a component is the same. The next page in this tutorial will explain this basic process using the plain component, but you will see the same process for each of the component types.

      +

      Next: Basic Component Creation

      + +
      +
      + + + +
      + +
      + + +
      + + + + + diff --git a/infusion/development/tutorial-gettingStartedWithInfusion/RendererComponents.html b/infusion/development/tutorial-gettingStartedWithInfusion/RendererComponents.html new file mode 100644 index 00000000..b4728966 --- /dev/null +++ b/infusion/development/tutorial-gettingStartedWithInfusion/RendererComponents.html @@ -0,0 +1,561 @@ + + + + + + Renderer Components | Fluid Infusion + + + + + + + + + + + + + + + + + +
      + + + + + + +
      + +
      + + +
      + + + + +
      +
      + + + + + +
      + + + +
      + +
      + + +
      +
      + +
      + +

      Renderer Components

      + + + + + +
      +
      +

      Part of the Getting Started with Infusion Component Design Tutorial

      +
      +

      In the previous View Components Tutorial's currency converter example, you can notice two things:

      +
        +
      • The list of currencies is duplicated: It is present in the HTML as well as in the model.
      • +
      • Event listeners were attached to the UI elements to update the model when the controls were changed.
      • +
      +

      Both of these things can be avoided by using a renderer component, which is a view component with the addition of the Infusion Renderer.

      +
      Note: the direct use of the Infusion Renderer as described here will be withdrawn in the Infusion 2.0 release. +Currently the renderer is in transition to being rewritten as a standard part of the IoC framework rather than requiring special JSON configuration in the form of renderer component trees.
      +

      The Renderer will populate an HTML template with the contents of a data model. In the case of the currency converter, this means that the currency list can be specified only in the data model, +and an empty HTML <select> element will be populated with the data from the model, eliminating the duplication.

      +

      The Renderer can also bind the HTML to the data model, so that when users of the currency converter select a different currency or enter a different amount, the content of the data model will automatically be updated without any effort on your part.

      +

      Renderer Component Grade

      +

      To use the Renderer with your component, you need to use the rendererComponent grade. To do this:

      +
        +
      • specify a grade of fluid.rendererComponent, and
      • +
      • provide the following: +
          +
        • a data model
        • +
        • an HTML template
        • +
        • a component tree
        • +
        • selectors
        • +
        +
      • +
      +

      Each of these is discussed below.

      +

      Data Model

      +

      A renderer component supports a model (just as Model Components and View Components do). The model of a renderer component contains any data that is to be rendered by the component.

      +

      Templates

      +

      A Renderer Template is an HTML file or snippet that provides guidance to the Renderer regarding how to render the data. The template can be provided in one of two ways:

      +
        +
      • it can simply be found in the HTML document itself, or
      • +
      • it can be loaded from a separate file.
      • +
      +

      Component Trees

      +

      A renderer component tree is an abstract representation of how the data is to be rendered. A renderer component (not to be confused with Infusion Components) +is a JavaScript object that represent the contents and data binding function of a view, separate from any particular rendering of it.

      +

      The simplest way to specify a component tree is to create a function that returns the tree and specify the function name using the produceTree option (see the example below).

      +

      For more detailed information, see Renderer Component Trees

      +

      Selectors and Cutpoints

      +

      The Infusion Renderer provides a clean separation between model and view; the HTML template and the component tree are relatively independent. +For example, if your UI is going to allow users to select from a number of choices, your component tree will define the choices, but will be independent of whether the selection is rendered using checkboxes, a pull-down list, or some other method.

      +

      The mapping between the component tree and the template is specified using Cutpoints: key/value pairs mapping the ID of the component in the tree to a selector for the element in the template. +When you use the renderer component grade, the Framework automatically generates a list of cutpoints from the selectors specified in the component options.

      +

      For more detailed information, see Cutpoints.

      +

      Useful functions and events

      +

      In addition to the standard view component features, the renderComponent automatically synthesizes and attaches a refreshView function and an afterRender event.

      +

      refreshView:

      +

      The refreshView function is used to trigger/re-trigger the rendering of a component. If the "renderOnInit" option is set to "true", the component will automatically render without having to specifically call refreshView.

      +

      afterRender:

      +

      The afterRender event will be fired as soon as the rendering process has finished. This is useful to know when a render component is ready or to attach new events and functions to pieces of the rendered DOM.

      +

      Example: Currency Converter

      +

      The currency converter example we've been evolving over the course of this tutorial can be implemented as a rendererComponent. +As in the view component version, you need to specify selectors and a model, and can define events. In this case, however, declare the grade to be fluid.rendererComponent:

      +
      fluid.defaults("tutorials.currencyConverter", {
      +    gradeNames: "fluid.rendererComponent",
      +    selectors: {
      +        amount: ".tut-currencyConverter-amount",
      +        currency: ".tut-currencyConverter-currency-selecter",
      +        result: ".tut-currencyConverter-result"
      +    },
      +    model: {
      +        rates: {
      +            names: ["euro", "yen", "yuan", "usd", "rupee"],
      +            values: ["0.712", "81.841", "6.609", "1.02", "45.789"]
      +        },
      +        currentSelection: "0.712",
      +        amount: 0,
      +        result: 0
      +    },
      +    events: {
      +        conversionUpdated: null
      +    }
      +});
      +
      +

      As mentioned above, you also need to provide a renderer component tree. Create a public function that will accept the component object, that, and returns the tree.

      +

      In general, renderer component trees contain one entry per renderer component. One renderer component is typically one element in a user interface, for example: a text entry field, a set of radio buttons, a row in a table.

      +

      In a renderer component tree, the binding to the data model is specified using a special notation: the EL path into the data model is enclosed in "${...}". +Some types of renderer components, such as a selection, have a particular format. For details see ProtoComponent Types. The preferred way of specifying the component tree to a renderer component is via the protoTree top-level option.

      +
      fluid.defaults("tutorials.currencyConverter", {
      +    gradeNames: "fluid.rendererComponent",
      +    selectors: {
      +        amount: ".tut-currencyConverter-amount",
      +        currency: ".tut-currencyConverter-currency-selecter",
      +        result: ".tut-currencyConverter-result"
      +    },
      +    model: {
      +        rates: {
      +            names: ["euro", "yen", "yuan", "usd", "rupee"],
      +            values: ["0.712", "81.841", "6.609", "1.02", "45.789"]
      +        },
      +        currentSelection: "0.712",
      +        amount: 0,
      +        result: 0
      +    },
      +    protoTree: {
      +        amount: "${amount}",
      +        currency: {
      +            optionnames: "${rates.names}",
      +            optionlist: "${rates.values}",
      +            selection: "${currentSelection}"
      +        },
      +        result: "${result}"
      +    }
      +});
      +
      +

      While it is not necessary to create event handlers to update the model when users change the controls (the renderer provides incoming data binding support automatically), you still need event handlers for:

      +
        +
      • responding to changes in the model by updating the converted amount
      • +
      • refreshing the display when the result is updated.
      • +
      +

      The display update can be handled by a modelListeners entry of the kind we have seen before:

      +
      {
      +    modelListeners: {
      +        "result": {
      +            func: "{that}.refreshView"
      +        }
      +    }
      +}
      +
      +

      This directs the framework to automatically refresh the rendered view whenever the computed converted currency value is updated - this is done by binding a listener onto the +renderer's automatically generated refreshView method to trigger from any changes received to the model's result field.

      +

      Arranging declaratively to perform the currency conversion requires a more interesting kind of definition. +Any transformation that can be expressed as part of Infusion's Model Transformation system can be used to construct a Model Relay +rule which can keep two component models (or two parts of the same component model) synchronised with each other's changes, where the synchronisation automatically takes account of a transformation rule. +In this case we can recognise that the transformation performed by this component is one of the standard rules supplied with the framework, +fluid.transforms.linearScale +(if it weren't part of the standard set, it would be easy to use any suitable free function as the transforming rule).

      +
      {
      +    modelRelay: {
      +        target: "result",
      +        singleTransform: {
      +            type: "fluid.transforms.linearScale",
      +            input: "{that}.model.amount",
      +            factor: "{that}.model.currentSelection"
      +        }
      +    }
      +}
      +
      +

      This rule states that the value held in the model field amount will be multiplied by the value held in currentSelection and the result placed in result.

      +
      Note: that within the model transformation document itself we need to use fully-qualified IoC expressions of the form {that}.model.amount etc. in order to avoid ambiguity with referring directly to strings. +Outside the transformation rule we can use short-form references to the current component's model fields such as result - although the long forms are required here too, if we want to refer to a model held by a different component.
      +

      Putting it all together, you have the following:

      +
      fluid.defaults("tutorials.currencyConverter", {
      +    gradeNames: "fluid.rendererComponent",
      +    selectors: {
      +        amount: ".tut-currencyConverter-amount",
      +        currency: ".tut-currencyConverter-currency-selecter",
      +        result: ".tut-currencyConverter-result"
      +    },
      +    model: {
      +        rates: {
      +            names: ["euro", "yen", "yuan", "usd", "rupee"],
      +            values: ["0.712", "81.841", "6.609", "1.02", "45.789"]
      +        },
      +        currentSelection: "0.712",
      +        amount: 0,
      +        result: 0
      +    },
      +    protoTree: {
      +        amount: "${amount}",
      +        currency: {
      +            optionnames: "${rates.names}",
      +            optionlist: "${rates.values}",
      +            selection: "${currentSelection}"
      +        },
      +        result: "${result}"
      +    },
      +    modelListeners: {
      +        "result": {
      +            func: "{that}.refreshView"
      +        }
      +    },
      +    modelRelay: {
      +        target: "result",
      +        singleTransform: {
      +            type: "fluid.transforms.linearScale",
      +            input: "{that}.model.amount",
      +            factor: "{that}.model.currentSelection"
      +        }
      +    },
      +    renderOnInit: true
      +});
      +
      +

      Impressively, we have succeeded in implementing all of this component design without a single line of user JavaScript code.

      +

      Next: Subcomponents

      + +
      +
      + + + +
      + +
      + + +
      + + + + + diff --git a/infusion/development/tutorial-gettingStartedWithInfusion/SetUpYourEnvironment.html b/infusion/development/tutorial-gettingStartedWithInfusion/SetUpYourEnvironment.html new file mode 100644 index 00000000..a7848bdb --- /dev/null +++ b/infusion/development/tutorial-gettingStartedWithInfusion/SetUpYourEnvironment.html @@ -0,0 +1,400 @@ + + + + + + Set up your environment | Fluid Infusion + + + + + + + + + + + + + + + + + +
      + + + + + + +
      + +
      + + +
      + + + + +
      +
      + + + + + +
      + + + +
      + +
      + + +
      +
      + +
      + +

      Set up your environment

      + + + + + +
      +
      +

      Part of the Getting Started with Infusion Component Design Tutorial

      +
      +

      Set Up Directory Structure

      +

      For this tutorial we'll assume this component is being created for your own use, not as a contribution to Infusion. If you do want to contribute your component to Infusion, the directory set-up and requirements will be a little different and is explained in Contributing Code.

      +

      Let's suppose you're creating a component that will carry out currency conversion. You'll need to get a copy of Infusion:

      + +

      So supposing your project is in a folder called "converter," your source hierarchy might look like this:

      +
        +
      • converter +
          +
        • src
        • +
        +
      • +
      • lib +
          +
        • infusion
        • +
        +
      • +
      +

      All of the Infusion JavaScript is in a single file in the "infusion" folder called infusion-all.js (unless you provided custom options to your grunt command). You will need to link to this file in your HTML headers.

      +
      Note: The "infusion" folder actually contains some files you don't need, but it's not required to remove them, so we won't worry about that right now.
      +

      Next: Define a namespace and create a closure

      + +
      +
      + + + +
      + +
      + + +
      + + + + + diff --git a/infusion/development/tutorial-gettingStartedWithInfusion/Subcomponents.html b/infusion/development/tutorial-gettingStartedWithInfusion/Subcomponents.html new file mode 100644 index 00000000..5cf7cac0 --- /dev/null +++ b/infusion/development/tutorial-gettingStartedWithInfusion/Subcomponents.html @@ -0,0 +1,507 @@ + + + + + + Subcomponents | Fluid Infusion + + + + + + + + + + + + + + + + + +
      + + + + + + +
      + +
      + + +
      + + + + +
      +
      + + + + + +
      + + + +
      + +
      + + +
      +
      + +
      + +

      Subcomponents

      + + + + + +
      +
      +

      Part of the Getting Started with Infusion Component Design Tutorial

      +
      +

      If you've done any object-oriented programming, you're probably familiar with the idea of packaging up functionality into small, reusable, modular bundles. The Infusion Framework provides many supports for designing your application as a collection of components that work together. Components can be combined with parent-child relationships, creating a component tree.

      +

      Declaring subcomponents

      +

      Using the Inversion of Control system, subcomponents are declared in a special property of the parent's defaults called components. The components object is collection of key/value pairs:

      +
        +
      • the key is a name for the subcomponent
      • +
      • the value is an object that describes the subcomponent.
      • +
      +

      The subcomponent object can contain many properties, but the main one is the type, which is the string name of the subcomponent function.

      +
      // Define one subcomponent
      +fluid.defaults("tutorials.subcomponent1", {
      +    gradeNames: ["fluid.component"]
      +});
      +
      +// Define another subcomponent
      +fluid.defaults("tutorials.subcomponent2", {
      +    gradeNames: ["fluid.component"]
      +});
      +
      +// Define the parent component, to use the subcomponents
      +fluid.defaults("tutorials.parentComponent", {
      +    gradeNames: ["fluid.component"],
      +    components: {
      +        child1: {
      +            type: "tutorials.subcomponent1"
      +        },
      +        child2: {
      +            type: "tutorials.subcomponent2"
      +        }
      +    }
      +});
      +
      +

      Configuring Subcomponents

      +

      In addition to the type of subcomponent, other configuration information can be given. These include:

      +
        +
      • the container to use (for view components)
      • +
      • a list of subcomponent options, for overriding the defaults of the subcomponent
      • +
      • properties for controlling the timing of subcomponents, such as priority and createOnEvent
      • +
      +

      Example: User Interface Options

      +

      The Infusion UI Options component presents a collection of controls that allow a user to specify their preferences for customizing the presentation of the user interface and content resources. It works with the User Interface Enhancer (UI Enhancer), which carries out the transformations based on the recorded preferences.

      +

      The UI Options component has a component tree as shown below. Essentially:

      +
        +
      • UI Options comes in three different versions, each of which have a UI Options subcomponent: +
          +
        • Separated Panel,
        • +
        • Full, without Preview, and
        • +
        • Full page, with Preview.
        • +
        +
      • +
      • The 'separated panel' version is presented as a sliding panel at the top of a page, and so has a Sliding Panel subcomponent.
      • +
      • The 'separated panel' version applies changes directly to the page as they are being adjusted, so it has a Live Preview subcomponent.
      • +
      • The 'full, with preview' version has a Preview subcomponent
      • +
      • The 'full page, without preview' version has no subcomponents other than UI Options.
      • +
      • The UI Options component has three subcomponents for the three different types of controls presented.
      • +
      +

      You can see from this tree that the UIOptions component is being re-used by the three different versions.

      +

      Diagram showing UI Option's component tree

      +

      These relationships can be expressed using the following definitions:

      +
      fluid.defaults("fluid.separatedPanel", {
      +    gradeNames: ["fluid.viewComponent"],
      +    components: {
      +        uiOptions: {
      +            type: "fluid.uiOptions",
      +            createOnEvent: "onUIOptionsTemplateReady",
      +            container: ".flc-slidingPanel-panel"
      +        },
      +        slidingPanel: {
      +            type: "fluid.slidingPanel",
      +            container: "{separatedPanel}.container"
      +        },
      +        preview: {
      +            type: "fluid.uiOptions.livePreview"
      +        }
      +    }
      +});
      +
      +fluid.defaults("fluid.fullNoPreviewUIOptions", {
      +    gradeNames: ["fluid.viewComponent"],
      +    components: {
      +        uiOptions: {
      +            type: "fluid.uiOptions",
      +            createOnEvent: "onUIOptionsTemplateReady",
      +            container: "{fullNoPreviewUIOptions}.container"
      +        }
      +    }
      +});
      +
      +fluid.defaults("fluid.fullPreviewUIOptions", {
      +    gradeNames: ["fluid.viewComponent"],
      +    components: {
      +        uiOptions: {
      +            type: "fluid.uiOptions",
      +            createOnEvent: "onUIOptionsTemplateReady",
      +            container: "{fullPreviewUIOptions}.container"
      +        },
      +        preview: {
      +            type: "fluid.uiOptions.preview",
      +            createOnEvent: "onUIOptionsReady"
      +        }
      +    }
      +});
      +
      +fluid.defaults("fluid.uiOptions", {
      +    gradeNames: ["fluid.viewComponent"],
      +    components: {
      +        textControls: {
      +            type: "fluid.uiOptions.textControls",
      +            container: "{uiOptions}.dom.textControls",
      +            options: {
      +                textSize: "{uiOptions}.options.textSize",
      +                lineSpacing: "{uiOptions}.options.lineSpacing",
      +                model: "{uiOptions}.model"
      +            }
      +        },
      +        layoutControls: {
      +            type: "fluid.uiOptions.layoutControls",
      +            container: "{uiOptions}.dom.layoutControls",
      +            options: {
      +                model: "{uiOptions}.model"
      +            }
      +        },
      +        linksControls: {
      +            type: "fluid.uiOptions.linksControls",
      +            container: "{uiOptions}.dom.linksControls",
      +            options: {
      +                model: "{uiOptions}.model"
      +            }
      +        }
      +    }
      +});
      +
      + +
      +
      + + + +
      + +
      + + +
      + + + + + diff --git a/infusion/development/tutorial-gettingStartedWithInfusion/ViewComponents.html b/infusion/development/tutorial-gettingStartedWithInfusion/ViewComponents.html new file mode 100644 index 00000000..09bd74e3 --- /dev/null +++ b/infusion/development/tutorial-gettingStartedWithInfusion/ViewComponents.html @@ -0,0 +1,436 @@ + + + + + + View Components | Fluid Infusion + + + + + + + + + + + + + + + + + +
      + + + + + + +
      + +
      + + +
      + + + + +
      +
      + + + + + +
      + + + +
      + +
      + + +
      +
      + +
      + +

      View Components

      + + + + + +
      +
      +

      Part of the Getting Started with Infusion Component Design Tutorial

      +
      +

      In most cases, you will likely be creating a component that will actually want to do something with your HTML page: process form input, update displays, etc. plain and model components don't provide any support for this: you'll need a view component.

      +

      A view component provides support for a model and events (i.e. it is a model component as well as a view component). It also provides supports for interaction with the DOM. The most useful of these is the DOM Binder. +If your application has a user interface, you likely have a list of DOM elements you're interested in working with. A DOM Binder provides very easy, configurable access to these elements.

      +

      Declaring a View Component

      +

      To create a view component, you need to use the viewComponent grade. To do this:

      +
        +
      • specify a grade of fluid.viewComponent, and
      • +
      • include a selectors property in your defaults containing your component's model.
      • +
      +
      fluid.defaults("tutorials.viewBearingComponent", {
      +    gradeNames: "fluid.viewComponent",
      +    // ...
      +    selectors: {
      +        selector1: ".class1",
      +        selector2: ".class2"
      +    }
      +});
      +
      +
      Note: View components automatically also provide support for model and events, so you don't need to include those in your gradeNames list.
      +

      Selectors

      +

      The selectors property in your defaults is the list of DOM elements you want to work with in your interface. The object is a list of named CSS-based selectors. The names should be generic and refer to the nature of the interface element, such as "saveButton" or "sliderHandle." By specifying your selectors on your component's defaults, integrators can override the selectors without requiring any changes to your component.

      +

      Example: Currency Converter

      +

      Consider a simple user interface for the currency converter example we looked at earlier:

      +

      Currency Converter Screenshot

      +

      There are several elements we'll need to identify:

      +
        +
      • the text input field
      • +
      • the currency selection drop-down
      • +
      • the "Convert!" button
      • +
      • the output of the results
      • +
      +

      We make sure our HTML has unique classes or IDs on each of these elements. The Infusion convention is to use class names that are prefaced with flc-<componentName> (where flc is short for "fluid component"). We'll adopt a similar convention here, and use a preface of tut-currencyConverter- for "tutorial currency converter". So here's what this might look like:

      +
      <h1>Currency Converter</h1>
      +
      +<p>Converts Canadian currency into other denominations.</p>
      +
      +<p>
      +    Convert: <input class="tut-currencyConverter-amount" type="text" size="10"/> CAD to
      +    <select class="tut-currencyConverter-currency-selecter">
      +        <option value="1.02">USD</option>
      +        <option value="1">Yuan</option>
      +        <option value="1">Yen</option>
      +    </select> <button class="tut-currencyConverter-convert-button">Convert!</button>
      +</p>
      +
      +<p>Result: <span class="tut-currencyConverter-result">0</span></p>
      +
      +

      So far, the JavaScript to instantiate this component and specify these selectors looks like this:

      +
      fluid.defaults("tutorials.currencyConverter", {
      +    gradeNames: "fluid.viewComponent",
      +    selectors: {
      +        amount: ".tut-currencyConverter-amount",
      +        currency: ".tut-currencyConverter-currency-selecter",
      +        convertButton: ".tut-currencyConverter-convert-button",
      +        result: ".tut-currencyConverter-result"
      +    }
      +});
      +
      +

      So far we have not added any behaviour to this skeleton view component - we'll orchestrate together all the model, event and view code we've seen so far together into a working component in our final section on Renderer Components.

      +

      Next: Renderer Components

      + +
      +
      + + + +
      + +
      + + +
      + + + + + diff --git a/infusion/development/tutorial-iconFonts/HowToCreateAndUseFontIcons.html b/infusion/development/tutorial-iconFonts/HowToCreateAndUseFontIcons.html new file mode 100644 index 00000000..d6472dd2 --- /dev/null +++ b/infusion/development/tutorial-iconFonts/HowToCreateAndUseFontIcons.html @@ -0,0 +1,606 @@ + + + + + + How to Create and Use Font Icons | Fluid Infusion + + + + + + + + + + + + + + + + + +
      + + + + + + +
      + +
      + + +
      + + + + +
      +
      + + + + + +
      + + + +
      + +
      + + +
      +
      + +
      + +

      How to Create and Use Font Icons

      + + + + + +
      +

      Using a font to render an icon has several advantages over the traditional method of using an image. This tutorial will explain how to create Font Icons.

      +

      Some of the advantages of icons include:

      +
        +
      • Scalable - works nicely regardless of client's magnification or view device DPI;
      • +
      • Can change the colour with CSS;
      • +
      • Can do everything traditional icons can (e.g. change opacity, rotation, etc.);
      • +
      • Can add strokes, gradients, shadows, and etc.;
      • +
      • Convert to text (with ligatures);
      • +
      • Ligatures are read by screen readers;
      • +
      • Changing icons to fonts is as simple as changing the font-family in CSS.
      • +
      +

      However, there are some shortcomings to keep in mind:

      +
        +
      • Icon fonts are generally mono tone in colour.
      • +
      • IE8 and IE9 do not support ligatures.
      • +
      • Globally changing fonts will cause the text vs the icon to show.
      • +
      • In situations where there is existing text accompanying an icon, specific markup containers need to be created for the icon.
      • +
      • Modifying icon fonts is as involved as generated a new icon graphic in the "traditional" way - there is no real time saved in that regard.
      • +
      +

      Procedure Summary

      +
        +
      • Create the icon and save it as an SVG graphic.
      • +
      • Use IcoMoon to generate a font from an SVG graphic.
      • +
      • Add the font to your markup. Example:
      • +
      +
      @font-face {
      +    font-family: 'CustomIcons';
      +    src: url('../fonts/CustomIcons.ttf'),
      +         url('../fonts/CustomIcons.eot');
      +}
      +
      +a.myLink-icon {
      +    font-family: 'CustomIcons';
      +}
      +
      +a.myLink-icon:before {
      +    content: "\e000"; /* The custom Unicode (aka. PUA) for the icon you want. */
      +    color: #ED3820;   /* Custom colour. */
      +}
      +
      +

      Step 1. Creating an SVG Symbol

      +

      Use illustration software to create an SVG version of the icon you want to use as a font.

      +

      Tips:

      +
        +
      • The dimensions of the graphic doesn't matter since everything will be scaled by the browser's font-rendering.
      • +
      • Work in binary (i.e. black and white) and do not apply effects such as drop-shadows or embossing.
      • +
      • Sometimes the font conversion of the SVG may not work properly, so be prepared to edit your SVG file again.
      • +
      • Overlapping regions of shapes may cause a subtraction when converted in IcoMoon (i.e. it will render as transparent) - in this case you may need to build a single shape from these conflicting shapes, or ensure none of your shapes overlap.
      • +
      +

      Download Example SVG file: pencil-icon-01.svg

      +

      Step 2. Using IcoMoon to Generate Font

      +

      Steps:

      +
        +
      1. Go to IcoMoon (you can also run IcoMoon in "offline" mode in Chrome browser by installing the IcoMoon Chrome app)
      2. +
      3. Import your SVG icon - select "Import Icons" and choose your SVG file.
      4. +
      5. Select your icon from the list (should appear under "Your Custom Icons" section, and select the "Font ->" button at the bottom of the screen.
      6. +
      7. Save the ZIP file to a known location. +
          +
        • Note: selecting the "Preferences" button will give you options to name your CSS classes and files. It is recommended you use identifiers
        • +
        +
      8. +
      9. Extract the contents of the ZIP file. +
          +
        • The files we are most interested in are the ./fonts/*.eot, ./fonts/*.ttf, and the ./index.html files.
        • +
        +
      10. +
      11. To verify that the font looks proper, open the ./index.html file in a web browser. If the icon doesn't look right, you may need to edit the SVG file and repeat the font generation process.
      12. +
      +

      Step 3. Working with CSS and HTML

      +

      Once you are satisfied with the appearance of your font, it is time to add it to your HTML and CSS markup.

      +

      First, add or identify an element in your HTML markup for the new icon.

      +

      For example you have the following existing HTML and CSS:

      +
      /* Existing HTML markup before adding new icon font. */
      +<a href="contact.html" id="contact_form">Contact us</a> /*this where the new font icon will go */
      +
      +
      /* Existing CSS markup for the HTML before adding new icon font. */
      +#contact_form {
      +    background: url("../images/envelope.png"); /*existing image that will be replaced by icon */
      +}
      +
      +

      Next, add the new font to the CSS markup.

      +
      @font-face {
      +    font-family: 'CustomIcons';                /*Specify the new font */
      +    src: url('../fonts/CustomIcons.eot?#iefix') format('embedded-opentype'), /* IE8 fix. */
      +         url('../fonts/CustomIcons.ttf'),
      +         url('../fonts/CustomIcons.eot');
      +}
      +
      +#contact_form {
      +    background: url("../images/envelope.png"); /*existing image that will be replaced by icon */
      +    font-family: 'CustomIcons';                /*the new font icon */
      +}
      +
      +

      Finally, add the new icon into the BEFORE pseudo class and delete any references to the old icon image.

      +
      @font-face {
      +    font-family: 'CustomIcons';                /*Specify the new font */
      +    src: url('../fonts/CustomIcons.eot?#iefix') format('embedded-opentype'), /* IE8 fix. */
      +         url('../fonts/CustomIcons.ttf'),
      +         url('../fonts/CustomIcons.eot');
      +}
      +
      +#contact_form {
      +    /* old icon image has been removed. */
      +    font-family: 'CustomIcons';                /*the new font icon */
      +}
      +
      +#contact_form:before {
      +    content: "\e000";                          /*the custom Unicode (aka. PUA) for the icon.*/
      +}
      +
      +

      This is all that is needed to add the new icon to your markup. You will notice there is a line specific to IE8 - for more information on this, please see http://www.fontspring.com/blog/the-new-bulletproof-font-face-syntax.

      +

      Unicode for font

      +

      The Unicode (or "PUA code") for the custom font can be found in the HTML and CSS file generated by Ico Moon. If the HTML and CSS files are unavailable, you can retrieve the Unicode using one of the methods listed under the section "Dealing with the TTF Unicode" below.

      +

      However, there is a problem - the new icon font will replace the existing font of its container and all child elements and therefore removing any font styling you may have wanted to preserve. The next section will outline common issues and how to fix them and some best practices.

      +

      Common Issues

      +

      Preserving Existing Fonts

      +

      In the example above, the new custom icon font was added to an element that has existing text which causes a problem - any other existing custom font will be overwritten within that container.

      +

      To illustrate this problem, assume Comic Sans is the font applied to the <body> element of our example, and an icon font added to the <a> anchor within the <body>. Comic Sans will appear throughout the document except for the contents within the <a>, which means "Contact us" will no longer be Comic Sans.

      +
      <body>
      +    /* "Contact Us" should be in comic sans  */
      +    <a href="contact.html" id="contact_form">Contact us</a>
      +</body>
      +
      +
      @font-face {
      +    font-family: 'CustomIcons';
      +    src: url('../fonts/CustomIcons.ttf'),
      +         url('../fonts/CustomIcons.eot');
      +}
      +
      +body {
      +    font-family: 'Comic Sans MS';
      +}
      +
      +#contact_form {
      +    font-family: 'CustomIcons';
      +}
      +
      +#contact_form:before {
      +    content: "\e000";
      +}
      +
      +

      To overcome this issue, a new separate element should be created in the HTML for the icon font with no other content contained within. The CSS file is then updated to reference this new markup structure.

      +
      <body>
      +    /* "Contact Us" should be in comic sans */
      +    <span id="#icon-envelope"></span><a href="contact.html" id="contact_form">Contact us</a>
      +</body>
      +
      +
      @font-face {
      +    font-family: 'CustomIcons';
      +    src: url('../fonts/CustomIcons.ttf'),
      +         url('../fonts/CustomIcons.eot');
      +}
      +
      +body {
      +    font-family: 'Comic Sans MS';
      +}
      +
      +#icon-envelope {
      +    font-family: 'CustomIcons';
      +}
      +
      +#icon-envelope:before {
      +    content: "\e000";
      +}
      +
      +

      Images and Labels

      +

      It's common for images to be used in functional ways such as acting as a button within an anchor tag. For example:

      +
      <a href="download.html><img src="./images/download.png" alt="Download our latest stuff!"></a>
      +
      +

      The problem here is if we replace the image in the anchor with an icon font, any text descriptions (the alt text) will be removed as well - causing a possible usability and accessibility issue.

      +
      /* The alt text is now gone, causing a usability and accessibility problem. */
      +<a href="download.html"></a>
      +
      +
      @font-face {
      +    font-family: 'CustomIcons';
      +    src: url('../fonts/CustomIcons.ttf'),
      +         url('../fonts/CustomIcons.eot');
      +}
      +
      +a {
      +    font-family: 'CustomIcons';
      +}
      +a:before {
      +    content: "\e001";
      +}
      +
      +

      To bring back some semantics and to help improve accessibility, we use "aria-label" to describe the functionality.

      +
      /* Aria-label takes the place of alt text. */
      +<a href="download.html" aria-label="Download our latest stuff!"></a>
      +
      +

      Cross-Browser Oddities

      +

      Icon fonts can appear different across browsers and across operating systems. For example, the following icon is rendered differently in Firefox in Mac OS X and in Windows despite being the same icon and the same browser.

      +

      a partially displayed font icon on firefox, Mac system +a partially displayed font icon on firefox, Windows system

      +

      To avoid these rendering problems, when creating the SVG images avoid using fine details - not only does this help eliminate details in the icon font being lost during rendering, it also helps improve usability through clearer icons.

      +

      IE8 Compatibility

      +

      To ensure custom fonts get rendered properly in Internet Explorer 8, you will need to add ?#iefix') format('embedded-opentype') to your CSS. For example:

      +
      @font-face {
      +    font-family: 'CustomIcons';                /*Specify the new font */
      +    src: url('../fonts/CustomIcons.eot?#iefix') format('embedded-opentype'), /* IE8 fix. */
      +         url('../fonts/CustomIcons.ttf'),
      +         url('../fonts/CustomIcons.eot');
      +}
      +
      +

      The IE8 fix needs to be the first URL in the list of sources otherwise the font will not appear.

      +

      Reference: http://www.fontspring.com/blog/the-new-bulletproof-font-face-syntax

      +

      Dealing with the TTF Unicode

      +

      Ico Moon conveniently generates an HTML and CSS file for custom fonts which contain the Unicode to be used in your markup. However, in the scenario the original CSS or HTML files are unavailable, here are two ways to obtain the Unicode on Windows and Mac OS X 10.6+.

      +

      Obtaining Unicode in Windows

      +
        +
      1. Install the custom TTF font to the OS (usually a right-click then select "Install" from the context menu).
      2. +
      3. Run Character Map (done by searching the Start menu, or by typing Win+R then "charmap").
      4. +
      5. Select the custom font from the Font drop-down menu. The glyphs in the custom font should now appear in the window.
      6. +
      7. Select a character in the window. The Unicode will appear in the bottom-left corner in the status bar.
      8. +
      +

      Unicode character map

      +

      Obtaining Unicode in Mac OS X 10.6 or Later

      +
        +
      1. Enable Special Characters support as documented in this Apple Knowledge Base article: OS X Lion: Enter special characters and symbols
      2. +
      3. Install the custom TTF font to the OS (usually double-click, then "Install").
      4. +
      5. Launch the Font Book application.
      6. +
      7. Also launch the Notes application.
      8. +
      9. In Font Book, locate the custom font under Collection > All Fonts. Select it. The custom font should now appear in the window.
      10. +
      11. In Font Book, select / highlight the characters from the custom font. Select Copy (Command+C or right-click -> Copy).
      12. +
      13. In Notes, Paste the text (Command+V or right-click -> Paste). The custom font should appear in Notepad.
      14. +
      15. In Notes, select the pasted text. Then open the "Edit" menu an select "Special Characters".
      16. +
      17. Now a "Characters" window appears with "Search" results containing each character selected in the previous step.
      18. +
      19. Select an icon in the "Character" panel. The Unicode will appear in the right column.
      20. +
      +

      Mac OS X Font Book

      +

      Above: An image showing the Mac OS X Font Book application with the custom characters highlighted.

      +

      Mac OS X Characters window

      +

      Above: An image showing the Mac OS X Characters window. The Unicode value for a custom character appears in the right most column.

      + +
      +
      + + + +
      + +
      + + +
      + + + + + diff --git a/infusion/development/tutorial-migratingToInfusion1.5/PagerMigration.html b/infusion/development/tutorial-migratingToInfusion1.5/PagerMigration.html new file mode 100644 index 00000000..a56785d6 --- /dev/null +++ b/infusion/development/tutorial-migratingToInfusion1.5/PagerMigration.html @@ -0,0 +1,760 @@ + + + + + + Pager 1.5 Migration | Fluid Infusion + + + + + + + + + + + + + + + + + +
      + + + + + + +
      + +
      + + +
      + + + + +
      +
      + + + + + +
      + + + +
      + +
      + + +
      +
      + +
      + +

      Pager 1.5 Migration

      + + + + + +
      +

      This page will walk you through the process of upgrading your existing 1.4 Pager component implementation to the new 1.5 version. This tutorial assumes that:

      +
        +
      • you are already familiar with HTML, Javascript and CSS
      • +
      • you are familiar with what the Pager component is and does
      • +
      • you have an existing implementation that makes use of the Pager and worked with the 1.4 Infusion release.
      • +
      +

      Dependency Changes

      +
      Note: actual paths may vary, as they are dependent on the location of infusion.
      +

      In 1.5

      +

      CSS Files

      +
      <link rel="stylesheet" type="text/css" href="infusion/framework/fss/css/fss-reset-global.css" />
      +<link rel="stylesheet" type="text/css" href="infusion/framework/fss/css/fss-base-global.css" />
      +<link rel="stylesheet" type="text/css" href="infusion/framework/fss/css/fss-layout.css" />
      +<link rel="stylesheet" type="text/css" href="infusion/lib/jquery/ui/css/default-theme/jquery.ui.theme.css" />
      +
      +<link rel="stylesheet" type="text/css" href="infusion/components/pager/css/Pager.css" />
      +
      +

      JS Files

      +
      Using the infusion-all bundle
      +
      <script type="text/javascript" src="infusion/infusion-all.js"></script>
      +
      +
      Using the individual files
      +
      <script type="text/javascript" src="infusion/lib/jquery/core/js/jquery.js"></script>
      +<script type="text/javascript" src="infusion/lib/jquery/ui/js/jquery.ui.core.js"></script>
      +<script type="text/javascript" src="infusion/lib/jquery/ui/js/jquery.ui.widget.js"></script>
      +<script type="text/javascript" src="infusion/lib/jquery/ui/js/jquery.ui.position.js"></script>
      +<script type="text/javascript" src="infusion/lib/jquery/ui/js/jquery.ui.tooltip.js"></script>
      +<script type="text/javascript" src="infusion/lib/json/js/json2.js"></script>
      +
      +<script type="text/javascript" src="infusion/framework/core/js/Fluid.js"></script>
      +<script type="text/javascript" src="infusion/framework/core/js/FluidDOMUtilities.js"></script>
      +<script type="text/javascript" src="infusion/framework/core/js/FluidDocument.js"></script>
      +<script type="text/javascript" src="infusion/framework/core/js/jquery.keyboard-a11y.js"></script>
      +<script type="text/javascript" src="infusion/framework/core/js/FluidIoC.js"></script>
      +<script type="text/javascript" src="infusion/framework/core/js/ModelTransformation.js"></script>
      +<script type="text/javascript" src="infusion/framework/core/js/ModelTransformationTransforms.js"></script>
      +<script type="text/javascript" src="infusion/framework/core/js/DataBinding.js"></script>
      +<script type="text/javascript" src="infusion/framework/core/js/FluidRequests.js"></script>
      +<script type="text/javascript" src="infusion/framework/core/js/FluidView.js"></script>
      +<script type="text/javascript" src="infusion/lib/fastXmlPull/js/fastXmlPull.js"></script>
      +<script type="text/javascript" src="infusion/framework/renderer/js/fluidParser.js"></script>
      +<script type="text/javascript" src="infusion/framework/renderer/js/fluidRenderer.js"></script>
      +<script type="text/javascript" src="infusion/framework/renderer/js/RendererUtilities.js"></script>
      +
      +<script type="text/javascript" src="infusion/components/tooltip/js/Tooltip.js"></script>
      +<script type="text/javascript" src="infusion/components/pager/js/Pager.js"></script>
      +<script type="text/javascript" src="infusion/components/pager/js/Table.js"></script>
      +<script type="text/javascript" src="infusion/components/pager/js/PagedTable.js"></script>
      +
      +

      In 1.4

      +

      CSS Files

      +
      <link rel="stylesheet" type="text/css" href="infusion/framework/fss/css/fss-reset-global.css" />
      +<link rel="stylesheet" type="text/css" href="infusion/framework/fss/css/fss-base-global.css" />
      +<link rel="stylesheet" type="text/css" href="infusion/framework/fss/css/fss-layout.css" />
      +<link rel="stylesheet" type="text/css" href="infusion/lib/jquery/plugins/tooltip/css/jquery.tooltip.css" media="all" />
      +<link rel="stylesheet" type="text/css" href="infusion/lib/jquery/ui/css/default-theme/jquery.ui.theme.css" />
      +
      +<link rel="stylesheet" type="text/css" href="infusion/components/pager/css/Pager.css" />
      +
      +

      JS Files

      +

      (For 1.4, the Pager was not IoC-enabled and had a single unfactored implementation file)

      +
      <script type="text/javascript" src="infusion/lib/jquery/core/js/jquery.js"></script>
      +<script type="text/javascript" src="infusion/lib/jquery/ui/js/jquery.ui.core.js"></script>
      +<script type="text/javascript" src="infusion/lib/jquery/ui/js/jquery.ui.widget.js"></script>
      +<script type="text/javascript" src="infusion/lib/jquery/ui/js/jquery.ui.position.js"></script>
      +<script type="text/javascript" src="infusion/lib/jquery/plugins/bgiframe/js/jquery.bgiframe.js"></script>
      +<script type="text/javascript" src="infusion/lib/jquery/plugins/tooltip/js/jquery.ui.tooltip.js"></script>
      +<script type="text/javascript" src="infusion/lib/json/js/json2.js"></script>
      +
      +<script type="text/javascript" src="infusion/framework/core/js/Fluid.js"></script>
      +<script type="text/javascript" src="infusion/framework/core/js/FluidDOMUtilities.js"></script>
      +<script type="text/javascript" src="infusion/framework/core/js/FluidDocument.js"></script>
      +<script type="text/javascript" src="infusion/framework/core/js/jquery.keyboard-a11y.js"></script>
      +<script type="text/javascript" src="infusion/framework/core/js/DataBinding.js"></script>
      +<script type="text/javascript" src="infusion/framework/core/js/FluidRequests.js"></script>
      +<script type="text/javascript" src="infusion/framework/core/js/FluidView.js"></script>
      +<script type="text/javascript" src="infusion/lib/fastXmlPull/js/fastXmlPull.js"></script>
      +<script type="text/javascript" src="infusion/framework/renderer/js/fluidParser.js"></script>
      +<script type="text/javascript" src="infusion/framework/renderer/js/fluidRenderer.js"></script>
      +
      +<script type="text/javascript" src="infusion/components/tooltip/js/Tooltip.js"></script>
      +<script type="text/javascript" src="infusion/components/pager/js/Pager.js"></script>
      +
      +

      Instantiation Changes

      +

      In 1.5

      +

      These configuration blocks show how a minimal configuration of the Pager has changed between the versions. Numerous +other configuration options are of course supported as listed in the API documentation.

      +
      fluid.pagedTable("container", {
      +    dataModel: {
      +        // ...
      +    },
      +    columnDefs: {
      +        // ...
      +    },
      +    components: {
      +        bodyRenderer: {
      +            options: {
      +                selectors: {
      +                    // ...
      +                }
      +            }
      +        }
      +    }
      +});
      +
      +
      +

      In 1.4

      +
      fluid.pager("container", {
      +    dataModel: {
      +        // ...
      +    },
      +    columnDefs: {
      +        // ...
      +    },
      +    bodyRenderer: {
      +        options: {
      +            selectors: {
      +                // ...
      +            }
      +        }
      +    }
      +});
      +
      +

      General configuration changes

      +
        +
      • Every "pseudocomponent" attached to the Pager (e.g. pagerBar, summary, pageSize) etc. is now a genuine IoC-configured component, and should have its options entered in the components area rather than at top level as before
      • +
      • The single monolithic component Pager has been factored into 3 components, plain Pager which now just has responsibility for paging, Table which renders tabular data, and a new top-level grade pagedTable which orchestrates the two factored grades Pager and Table into an integrated solution. As a result of this, many type names have moved into a new namespace, either fluid.table or fluid.pagedTable depending on their functionality.
      • +
      • The user is recommended to configure the rendering components (fluid.table.selfRender, fluid.pager.renderedPageList) using selectors to bind onto markup rather than use the old-fashioned markup pollution based on the special attribute rsf:id).
      • +
      • The duplicate component pagerBarSecondary has been removed and pagerBar is instead initialised as a standard IoC-driven dynamic component which will create as many pager bars as there are matching elements in the markup
      • +
      +

      Change in type names

      +

      The following table shows the changes in the type names of 1.4 components moving to 1.5 (remember that when used, these must also be housed in the components block +of the parent component, rather than appearing at top level as before):

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      1.4 type name1.5 type name
      fluid.pager.pagerBarfluid.pager.pagerBar
      fluid.pager.summaryfluid.pager.summary
      fluid.pager.directPageSizefluid.pager.directPageSize
      fluid.pager.directPageListfluid.pager.directPageList
      fluid.pager.renderedPageListfluid.pager.renderedPageList
      fluid.pager.selfRenderfluid.table.selfRender
      fluid.pager.rangeAnnotatorfluid.pagedTable.rangeAnnotator
      +

      Note that the Pager Component remains in "Sneak Peek" mode for the 1.5 release and its API is not expected to be stable. Please get in touch with the Infusion team +on IRC or the mailing lists (see http://wiki.fluidproject.org/display/fluid/Collaborate) if you are contemplating any non-trivial usage.

      + +
      +
      + + + +
      + +
      + + +
      + + + + + diff --git a/infusion/development/tutorial-migratingToInfusion1.5/UIOptionsMigration.html b/infusion/development/tutorial-migratingToInfusion1.5/UIOptionsMigration.html new file mode 100644 index 00000000..11056378 --- /dev/null +++ b/infusion/development/tutorial-migratingToInfusion1.5/UIOptionsMigration.html @@ -0,0 +1,725 @@ + + + + + + UI Options 1.5 Migration | Fluid Infusion + + + + + + + + + + + + + + + + + +
      + + + + + + +
      + +
      + + +
      + + + + +
      +
      + + + + + +
      + + + +
      + +
      + + +
      +
      + +
      + +

      UI Options 1.5 Migration

      + + + + + +
      +

      This page will walk you through the process of upgrading your existing 1.4 UI Options implementation to the 1.5 version. This tutorial assumes that:

      +
        +
      • you are already familiar with HTML, Javascript and CSS
      • +
      • you are familiar with what UI Options is and does
      • +
      • you have an existing implementation that makes use of UI Options and worked with the 1.4 Infusion release.
      • +
      • you are using the default classes
      • +
      +

      Dependency Changes

      +
      Note: actual paths may vary, as they are dependent on the location of infusion.
      +

      In 1.5

      +

      CSS Files

      +
      <link rel="stylesheet" type="text/css" href="infusion/framework/fss/css/fss-reset-global.css" />
      +<link rel="stylesheet" type="text/css" href="infusion/framework/fss/css/fss-base-global.css" />
      +<link rel="stylesheet" type="text/css" href="infusion/framework/fss/css/fss-layout.css" />
      +<link rel="stylesheet" type="text/css" href="infusion/framework/fss/css/fss-text.css" />
      +<link rel="stylesheet" type="text/css" href="infusion/framework/preferences/css/fss/fss-theme-bw-prefsEditor.css" />
      +<link rel="stylesheet" type="text/css" href="infusion/framework/preferences/css/fss/fss-theme-wb-prefsEditor.css" />
      +<link rel="stylesheet" type="text/css" href="infusion/framework/preferences/css/fss/fss-theme-by-prefsEditor.css" />
      +<link rel="stylesheet" type="text/css" href="infusion/framework/preferences/css/fss/fss-theme-yb-prefsEditor.css" />
      +<link rel="stylesheet" type="text/css" href="infusion/framework/preferences/css/fss/fss-theme-lgdg-prefsEditor.css" />
      +<link rel="stylesheet" type="text/css" href="infusion/framework/preferences/css/fss/fss-theme-dglg-prefsEditor.css" />
      +<link rel="stylesheet" type="text/css" href="infusion/framework/preferences/css/fss/fss-text-prefsEditor.css" />
      +<link rel="stylesheet" type="text/css" href="infusion/lib/jquery/ui/css/fl-theme-by/by.css" />
      +<link rel="stylesheet" type="text/css" href="infusion/lib/jquery/ui/css/fl-theme-yb/yb.css" />
      +<link rel="stylesheet" type="text/css" href="infusion/lib/jquery/ui/css/fl-theme-bw/bw.css" />
      +<link rel="stylesheet" type="text/css" href="infusion/lib/jquery/ui/css/fl-theme-wb/wb.css" />
      +<link rel="stylesheet" type="text/css" href="infusion/lib/jquery/ui/css/fl-theme-lgdg/lgdg.css" />
      +<link rel="stylesheet" type="text/css" href="infusion/lib/jquery/ui/css/fl-theme-dglg/dglg.css" />
      +
      +<link rel="stylesheet" type="text/css" href="infusion/framework/preferences/css/PrefsEditor.css" />
      +<link rel="stylesheet" type="text/css" href="infusion/framework/preferences/css/SeparatedPanelPrefsEditor.css" />
      +
      +

      JS Files

      +
      Using the infusion-all bundle
      +
      <script type="text/javascript" src="infusion/infusion-all.js"></script>
      +
      +
      Using the individual files
      +
      <script type="text/javascript" src="infusion/lib/jquery/core/js/jquery.js"></script>
      +<script type="text/javascript" src="infusion/lib/jquery/ui/js/jquery.ui.core.js"></script>
      +<script type="text/javascript" src="infusion/lib/jquery/ui/js/jquery.ui.widget.js"></script>
      +<script type="text/javascript" src="infusion/lib/jquery/ui/js/jquery.ui.mouse.js"></script>
      +<script type="text/javascript" src="infusion/lib/jquery/ui/js/jquery.ui.slider.js"></script>
      +<script type="text/javascript" src="infusion/lib/json/js/json2.js"></script>
      +
      +<script type="text/javascript" src="infusion/framework/core/js/FluidDocument.js"></script>
      +<script type="text/javascript" src="infusion/framework/core/js/jquery.keyboard-a11y.js"></script>
      +<script type="text/javascript" src="infusion/framework/core/js/Fluid.js"></script>
      +<script type="text/javascript" src="infusion/framework/core/js/FluidRequests.js"></script>
      +<script type="text/javascript" src="infusion/framework/core/js/FluidDOMUtilities.js"></script>
      +<script type="text/javascript" src="infusion/framework/core/js/FluidIoC.js"></script>
      +<script type="text/javascript" src="infusion/framework/core/js/DataBinding.js"></script>
      +<script type="text/javascript" src="infusion/framework/core/js/FluidView.js"></script>
      +<script type="text/javascript" src="infusion/lib/fastXmlPull/js/fastXmlPull.js"></script>
      +<script type="text/javascript" src="infusion/framework/renderer/js/fluidParser.js"></script>
      +<script type="text/javascript" src="infusion/framework/renderer/js/fluidRenderer.js"></script>
      +<script type="text/javascript" src="infusion/framework/renderer/js/RendererUtilities.js"></script>
      +
      +<script type="text/javascript" src="infusion/framework/preferences/js/URLUtilities.js"></script>
      +<script type="text/javascript" src="infusion/framework/preferences/js/Store.js"></script>
      +<script type="text/javascript" src="infusion/components/textfieldSlider/js/TextfieldSlider.js"></script>
      +<script type="text/javascript" src="infusion/framework/preferences/js/UIEnhancer.js"></script>
      +<script type="text/javascript" src="infusion/framework/preferences/js/PrefsEditor.js"></script>
      +<script type="text/javascript" src="infusion/framework/preferences/js/Panels.js"></script>
      +<script type="text/javascript" src="infusion/framework/preferences/js/ModelRelay.js"></script>
      +<script type="text/javascript" src="infusion/framework/preferences/js/Enactors.js"></script>
      +<script type="text/javascript" src="infusion/framework/preferences/js/SeparatedPanelPrefsEditor.js"></script>
      +<script type="text/javascript" src="infusion/components/slidingPanel/js/SlidingPanel.js"></script>
      +<script type="text/javascript" src="infusion/components/tableOfContents/js/TableOfContents.js"></script>
      +<script type="text/javascript" src="infusion/framework/preferences/js/PrimaryBuilder.js"></script>
      +<script type="text/javascript" src="infusion/framework/preferences/js/AuxBuilder.js"></script>
      +<script type="text/javascript" src="infusion/framework/preferences/js/StarterSchemas.js"></script>
      +<script type="text/javascript" src="infusion/framework/preferences/js/Builder.js"></script>
      +<script type="text/javascript" src="infusion/components/uiOptions/js/UIOptions.js"></script>
      +
      +

      In 1.4

      +

      Theme Files

      +
      <link rel="stylesheet" type="text/css" href="infusion/framework/fss/css/fss-reset-global.css" />
      +<link rel="stylesheet" type="text/css" href="infusion/framework/fss/css/fss-base-global.css" />
      +<link rel="stylesheet" type="text/css" href="infusion/framework/fss/css/fss-layout.css" />
      +<link rel="stylesheet" type="text/css" href="infusion/framework/fss/css/fss-text.css" />
      +<link rel="stylesheet" type="text/css" href="infusion/components/uiOptions/css/fss/fss-theme-bw-uio.css" />
      +<link rel="stylesheet" type="text/css" href="infusion/components/uiOptions/css/fss/fss-theme-wb-uio.css" />
      +<link rel="stylesheet" type="text/css" href="infusion/components/uiOptions/css/fss/fss-theme-by-uio.css" />
      +<link rel="stylesheet" type="text/css" href="infusion/components/uiOptions/css/fss/fss-theme-yb-uio.css" />
      +<link rel="stylesheet" type="text/css" href="infusion/components/uiOptions/css/fss/fss-text-uio.css" />
      +<link rel="stylesheet" type="text/css" href="infusion/lib/jquery/ui/css/fl-theme-by/by.css" />
      +<link rel="stylesheet" type="text/css" href="infusion/lib/jquery/ui/css/fl-theme-yb/yb.css" />
      +<link rel="stylesheet" type="text/css" href="infusion/lib/jquery/ui/css/fl-theme-bw/bw.css" />
      +<link rel="stylesheet" type="text/css" href="infusion/lib/jquery/ui/css/fl-theme-wb/wb.css" />
      +
      +<link rel="stylesheet" type="text/css" href="infusion/components/uiOptions/css/UIOptions.css" />
      +<link rel="stylesheet" type="text/css" href="infusion/components/uiOptions/css/FatPanelUIOptions.css" />
      +
      +

      JS Files

      +
      <script type="text/javascript" src="infusion/lib/jquery/core/js/jquery.js"></script>
      +<script type="text/javascript" src="infusion/lib/jquery/ui/js/jquery.ui.core.js"></script>
      +<script type="text/javascript" src="infusion/lib/json/js/json2.js"></script>
      +
      +<script type="text/javascript" src="infusion/framework/core/js/FluidDocument.js"></script>
      +<script type="text/javascript" src="infusion/framework/core/js/jquery.keyboard-a11y.js"></script>
      +<script type="text/javascript" src="infusion/framework/core/js/Fluid.js"></script>
      +<script type="text/javascript" src="infusion/framework/core/js/FluidRequests.js"></script>
      +<script type="text/javascript" src="infusion/framework/core/js/FluidDOMUtilities.js"></script>
      +<script type="text/javascript" src="infusion/framework/core/js/DataBinding.js"></script>
      +<script type="text/javascript" src="infusion/framework/core/js/FluidIoC.js"></script>
      +<script type="text/javascript" src="infusion/lib/fastXmlPull/js/fastXmlPull.js"></script>
      +<script type="text/javascript" src="infusion/framework/renderer/js/fluidParser.js"></script>
      +<script type="text/javascript" src="infusion/framework/renderer/js/fluidRenderer.js"></script>
      +<script type="text/javascript" src="infusion/framework/renderer/js/RendererUtilities.js"></script>
      +
      +<script type="text/javascript" src="infusion/components/uiOptions/js/URLUtilities.js"></script>
      +<script type="text/javascript" src="infusion/components/uiOptions/js/Store.js"></script>
      +<script type="text/javascript" src="infusion/components/uiOptions/js/UIOptions.js"></script>
      +<script type="text/javascript" src="infusion/components/uiOptions/js/UIEnhancer.js"></script>
      +<script type="text/javascript" src="infusion/components/uiOptions/js/FatPanelUIOptions.js"></script>
      +<script type="text/javascript" src="infusion/components/uiOptions/js/SlidingPanel.js"></script>
      +<script type="text/javascript" src="infusion/components/tableOfContents/js/TableOfContents.js"></script>
      +
      +

      Instantiation Changes

      +

      In 1.5

      +
      fluid.uiOptions.prefsEditor("container", {
      +    terms: {
      +        templatePrefix: "pathToTemplates",
      +        messagePrefix: "pathToMessages"
      +    },
      +    tocTemplate: "pathToTemplate"
      +});
      +
      +
      Note: If you'd like to provide a custom theme to use as the default theme, you should use the Preferences Framework instead
      +

      In 1.4

      +
      fluid.pageEnhancer({
      +    tocTemplate: "pathToTocTemplate"
      +});
      +
      +fluid.uiOptions.fatPanel("container", {
      +    prefix: "pathToTemplates"
      +});
      +
      + +
      +
      + + + +
      + +
      + + +
      + + + + + diff --git a/infusion/development/tutorial-prefsFramework/CreatingANewAdjusterUI.html b/infusion/development/tutorial-prefsFramework/CreatingANewAdjusterUI.html new file mode 100644 index 00000000..d305b110 --- /dev/null +++ b/infusion/development/tutorial-prefsFramework/CreatingANewAdjusterUI.html @@ -0,0 +1,697 @@ + + + + + + Creating a New Adjuster UI | Fluid Infusion + + + + + + + + + + + + + + + + + +
      + + + + + + +
      + +
      + + +
      + + + + +
      +
      + + + + + +
      + + + +
      + +
      + + +
      +
      + +
      + +

      Creating a New Adjuster UI

      + + + + + +
      +

      In the Infusion Preference Framework, an "adjuster" is a single control for adjusting a particular preference. Common types of adjusters include checkboxes, radio buttons and sliders.

      +

      This tutorial describes how to create the user interface for an adjuster.

      +

      Decide what type of control it is

      +

      Based on the nature of the setting, different types of controls will be appropriate:

      +
        +
      • checkboxes for on/off settings
      • +
      • drop-down select boxes for choices
      • +
      • radio buttons for choices where you want to present all choices visually
      • +
      • sliders for choosing from a range of values
      • +
      +

      Some examples:

      + + + + + + + + + + + + + + + + + + + + + + + + + +
      PreferencePossible HTML element
      text sizetext input, slider
      foreground colourselect (drop-down), radio button
      show captionscheckbox
      languageselect (drop-down)
      +

      Create HTML to display the adjusters

      +

      Once you know which type of HTML element you will be rendering, create an HTML template that will be used to render it. This will include the actual control as well as any labels, etc.

      +

      For a control involving repeated data (e.g. a drop-down or radio buttons), your HTML template should include only one of the elements, along with its label, etc. The markup that is to be repeated multiple times should be enclosed in a single containing element such as a <div> or <span>.

      +

      Some Examples

      + + + + + + + + + + + + + + + + + + + + + +
      HTML elementSample Markup
      drop-down +
      
      +<label for="magnifier-position"></label>
      +<select id="magnifier-position"></select>
      +                
      +
      checkbox +
      
      +<input type="checkbox" id="media-choice"/>
      +<label for="media-choice"></label>
      +                
      +
      radio button +
      
      +<div>
      +    <input type="radio" name="theme" id="bw" value="bw" />
      +    <label for="bw"></label>
      +</div>
      +                
      +
      +

      Add selector classes to any element that will be rendered

      +

      Each element that will have to be rendered based on the data will need a 'selector class' to allow the code to identify and manipulate it. This includes the control elements themselves as well as any labels, any elements that will have unique style classes added by the code, etc.

      +

      We recommend using different class names for selector classes and styling classes. This results in markup that may look a but redundent, but it ensures that there are no accidental errors resulting in changes to the way styling happens, etc.

      +

      Class Name Conventions

      +

      Some Examples

      + + + + + + + + + + + + + + + + + + + + + +
      HTML elementSample Markup
      drop-down +
      
      +<label class="flc-prefsEditor-magPositionLabel" for="magnifier-position"></label>
      +<select class="flc-prefsEditor-magPositionInput" id="magnifier-position"></select>
      +                
      +
      checkbox +
      
      +<input class="flc-prefsEditor-captionsInput" type="checkbox" id="captions-choice"/>
      +<label class="flc-prefsEditor-captionsLabel" for="captions-choice"></label>
      +                
      +
      radio button +
      
      +<div class="flc-prefsEditor-themeRow">
      +    <input class="flc-prefsEditor-themeInput" type="radio" name="theme" id="bw" value="bw" />
      +    <label class="flc-prefsEditor-themeLabel" for="bw"></label>
      +</div>
      +                
      +
      +

      Custom Styling

      +

      If the adjuster will be styled to look different than a traditional HTML form element, you will have to create special HTML and CSS to achieve the look you desire.

      +

      If the control or its label(s) will include graphics, we recommend using an icon font for the graphics. Icon fonts will automatically adjust to the size and colours specified by the page or by a user's personal settings, without the need for additional CSS.

      +

      How to Create and Use Font Icons

      +

      The CSS required will, of course, be dependent on the design. Some examples from existing interfaces are provided below, as inspiration.

      +

      Example 1: A radio button styled colour and contrast panel

      +

      UI and MARKUP

      +

      a radio button styled colour and contrast panel

      +
      <h2>
      +    <span class="fl-icon-contrast"></span>
      +    <span class="flc-prefsEditor-contrast-label fl-heading-text"></span>
      +</h2>
      +<p class="flc-prefsEditor-contrast-descr"></p>
      +
      +<div class="flc-prefsEditor-themeRow fl-choice">
      +    <input type="radio" class="flc-prefsEditor-themeInput fl-hidden-accessible" name="theme" id="default" value="default" />
      +    <div class="fl-indicator"></div>
      +    <label for="default" class="flc-prefsEditor-theme-label">
      +        <span class="fl-preview-A"></span>
      +        <span class="fl-hidden-accessible"></span>
      +        <span class="fl-crossout"></span>
      +    </label>
      +</div>
      +
      +

      Stylus

      +

      For the header:

      +
      .fl-prefsEditor {
      +    .fl-icon-contrast {
      +        font-family: 'InfusionIcons' !important;
      +        speak: none;
      +        font-style: normal;
      +        font-weight: normal;
      +        font-variant: normal;
      +        text-transform: none;
      +        -webkit-font-smoothing: antialiased;
      +        float: left;
      +        margin: 0.2em 0.3em 0 0;
      +        font-size: 1.5em;
      +    }
      +
      +    .fl-icon-toc:before {
      +        content: "\e005";
      +    }
      +}
      +
      +

      For the radio buttons:

      +
      /* Theme radio buttons */
      +.fl-prefsEditor {
      +    .fl-choice {
      +        display: inline;
      +        float: left;
      +
      +        label {
      +            margin-right: 5px;
      +            border: 1px solid black;
      +            border-radius: 5px;
      +            height: 3em;
      +            width: 3em;
      +            text-align: center;
      +            vertical-align: middle;
      +            display: inline-block;
      +            line-height: 3em !important;
      +            padding: 2px;
      +        }
      +        .fl-preview-A {
      +            font-size: 2em;
      +        }
      +
      +        // Pseudo content to prevent AT from reading display 'a'
      +        .fl-preview-A:before {
      +            content: "a";
      +        }
      +
      +        input:focus ~ label {
      +            outline: 2px solid black;
      +        }
      +    }
      +}
      +
      +

      Example 2: A checkbox styled table of contents panel

      +

      UI and MARKUP

      +

      a checkbox styled table of contents panel

      +
      + Note: +

      Currently the description label must be placed before the on/off toggle to prevent spacing issues from occuring. This will be addressed with a restyling of the on/off toggle with more details at the FLUID-5708 JIRA

      +
      +
      <h2>
      +    <span class="fl-icon-toc"></span>
      +    <span class="flc-prefsEditor-toc-label fl-heading-text"></span>
      +</h2>
      +<div class="fl-prefsEditor-onoff">
      +    <input type="checkbox" id="toc-choice" class="flc-prefsEditor-toc" />
      +    <label for="toc-choice">
      +        <span class="flc-prefsEditor-toc-descr"></span>
      +        <span class="fl-prefsEditor-switch" data-checkboxStateOn="ON" data-checkboxStateOff="OFF">
      +        <span class="fl-prefsEditor-switch-inner"></span>
      +        </span>
      +    </label>
      +</div>
      +
      +

      Stylus

      +

      For the switch:

      +
      // ON/OFF Switch for checkboxes
      +// The container for the toggle, which is also a label for the hidden checkbox.
      +.fl-prefsEditor-onoff {
      +    .fl-prefsEditor-switch {
      +        border-radius: 50px;
      +        border: 1px solid #776D67;
      +        width: 5em;
      +        height: 2em;
      +        background-color: #E6E6E6;
      +        box-shadow: 1em 1.1em 0 0 rgba(250, 250, 250, 0.53) inset;
      +        overflow: hidden;
      +        vertical-align: middle;
      +        display: block;
      +        margin-top: 1em;
      +        transition-duration: 0.2s;
      +        transition-property: padding-left, width, background-color, margin-left;
      +        font-size: 1.2em;
      +        font-weight: 600;
      +    }
      +
      +    // Hide input while still being screen reader accessible
      +    input {
      +        border: 0 none;
      +        clip: rect(0px, 0px, 0px, 0px);
      +        height: 1px;
      +        margin: -1px;
      +        overflow: hidden;
      +        padding: 0;
      +        position: absolute;
      +        width: 1px;
      +    }
      +
      +    input:focus + label {
      +        outline: 2px solid black;
      +    }
      +
      +    input:checked + label .fl-prefsEditor-switch {
      +        padding-left: 3em;
      +        width: 2em;
      +        background-color: #2da750;
      +        box-shadow: -1em 1.1em 0.1em 0 rgba(172, 216, 92, 0.63) inset;
      +        .fl-prefsEditor-switch-inner {
      +            top: -1.6em;
      +            left: 0.46em;
      +        }
      +    }
      +
      +    // With data attributes defining the on/off text, localizing the templates is easier
      +    input + label {
      +        [data-checkboxStateOn]:before {
      +            content: attr(data-checkboxStateOn);
      +        }
      +        [data-checkboxStateOff]:after {
      +            content: attr(data-checkboxStateOff);
      +        }
      +
      +        // The "on" portion of the toggle and the knob.
      +        .fl-prefsEditor-switch {
      +            &:before {
      +                color: #fff;
      +                border: 1px solid #776D67;
      +                border-radius: 50px;
      +                float: left;
      +                width: 1.9em;
      +                height: 1.9em; // Width and height of the knob.
      +                text-indent: -1.6em;
      +                line-height: 1.7em;
      +                text-shadow: 1px 1px 1px #000;
      +                background-color: #fff;
      +                box-shadow: 0.2em 0.2em 0.5em #888;
      +                background-image: linear-gradient(bottom, rgb(205, 204, 202) 0%, rgb(244, 244, 244) 100%);
      +            }
      +
      +            // The "off" portion of the toggle.
      +            &:after {
      +                float: left;
      +                position: relative;
      +                top: 0.36em;
      +                left: 0.5em;
      +            }
      +        }
      +    }
      +
      +    // The dark inner circle to the toggle knob.
      +    .fl-prefsEditor-switch-inner {
      +        border: 1px solid #493A30;
      +        border-radius: 50px;
      +        width: 1em;
      +        height: 1em;
      +        position: relative;
      +        left: -2.85em;
      +        top: 0.46em;
      +        background-color: #675243;
      +        box-shadow: 0 -0.2em 0.3em 0.05em rgba(250, 250, 250, 0.3) inset;
      +        display: inline-block;
      +    }
      +}
      +
      + +
      +
      + + + +
      + +
      + + +
      + + + + + diff --git a/infusion/development/tutorial-prefsFramework/CreatingAPrefsEditor.html b/infusion/development/tutorial-prefsFramework/CreatingAPrefsEditor.html new file mode 100644 index 00000000..1e939427 --- /dev/null +++ b/infusion/development/tutorial-prefsFramework/CreatingAPrefsEditor.html @@ -0,0 +1,1155 @@ + + + + + + Creating a Preferences Editor | Fluid Infusion + + + + + + + + + + + + + + + + + +
      + + + + + + +
      + +
      + + +
      + + + + +
      +
      + + + + + +
      + + + +
      + +
      + + +
      +
      + +
      + +

      Creating a Preferences Editor

      + + + + + +
      +

      This tutorial will walk you through the process of building a Preference Editor using the +Infusion Preferences Framework.

      +
      Note: This tutorial is not yet complete. +Where more information is still to come, this will be clearly noted.
      +

      Introduction

      +

      A Preferences Editor is a web application that supports the creation and modification +of a user's preferred settings for a device or application. In this tutorial, we'll look at a functional – but very simple – Preference Editor and explain how it +works. From there, we’ll learn about more features of the Preferences Framework by adding functionality to the Editor.

      +

      Throughout this tutorial, you’ll find links into the documentation for various parts of +Infusion and the Preferences Framework. You shouldn’t need to visit these links to +follow the tutorial; they’re there in case you’re interested in reading more about something.

      +

      Example code

      +

      The source code used in this tutorial is one of the examples provided in the Infusion code base, +which you can download from github: https://github.com/fluid-project/infusion. You’ll find the code +for the simple Preference Editor in the examples folder: +https://github.com/fluid-project/infusion/tree/master/examples/framework/preferences/minimalEditor. +We recommend you download the Infusion library and load the example code into your favourite editor.

      +
      +

      the folder hierarchy of the sample code

      +
      Figure 1: Folder hierarchy for the Preference Editor example
      +
      +

      Your company, Awesome Cars, has created the world’s first flying car. +The example code is a Preference Editor for the car. +If you run a local webserver +(for example using this approach, +or using MAMP) +and navigate to the index.html file in a browser, you should see this interface:

      +
      +

      The screen of the example Preference Editor

      +
      Figure 2: The screen of the example Preference Editor
      +
      +

      This Preference Editor has only one preference – a simple boolean setting for the car’s heated seats +feature – and a Save button. Try it out: If you check the checkbox and click save, the state of +the preference will be stored in a cookie, and when you reload the page, the checkbox will be set +to the saved value. Go ahead, try it.

      +

      Let’s talk about what we’re seeing in this interface:

      +
      +

      The parts of a Preference Editor screen

      +
      Figure 3: The parts of a Preference Editor screen
      +
      +
        +
      • This Editor is a full-page editor, so all of what you see is Preferences Editor (the outer, blue dashed line).
      • +
      • The content inside the rectangle (outlined with a green dashed line) is called a Panel – a container representing one (or more) preferences. This particular Editor has only one Panel, but a realistic Editor will likely have several. This tutorial will teach you what you need to know to add more Panels to this Editor.
      • +
      • Inside the Panel is an Adjuster (outlined by the inner-most, orange dashed line) – the controls for adjusting a particular preference. This Panel has only one Adjuster in it, but you might want to create a Panel that has multiple Adjusters, say, in the case of very closely-related preferences. This tutorial will teach you about creating Panels with multiple Adjusters.
      • +
      +

      Let’s take a close look at the code.

      +

      Primary Schema

      +

      The Primary Schema is a document that defines the preferences for the Editor. +The Primary Schema for our example Editor is defined in the +schemas/primary.js file using the JSON schema format +(you can learn about JSON schemas at http://json-schema.org/):

      +
      /**
      + * Primary Schema
      + * This schema defines the "heated seats" preference edited by this preferences
      + * editor: its name, type, default value, etc.
      + */
      +fluid.defaults("awesomeCars.prefs.schemas.heatedSeats", {
      +
      +    // the base grade for the schema;
      +    // using this grade tells the framework that this is a primary schema
      +    gradeNames: ["fluid.prefs.schemas"],
      +
      +    schema: {
      +        // the actual specification of the preference
      +        "awesomeCars.prefs.heatedSeats": {
      +            "type": "boolean",
      +            "default": false
      +        }
      +    }
      +});
      +
      +

      In this code snippet, the Primary Schema is created using a call to the +Infusion Framework function fluid.defaults().

      + +

      fluid.defaults() accepts two arguments:

      +
        +
      1. a string name, and
      2. +
      3. a JavaScript object containing options for configuring the component.
      4. +
      +

      In the code snippet above, the first argument – the name – is “awesomeCars.prefs.schemas.heatedSeats”. +The second argument – the options – is an object containing (in this case) two properties: +gradeNames and schema:

      +
      +
      +

      gradeNames

      +
      +
      +

      Almost every call to fluid.defaults() includes the gradeNames property in the options argument. +This property defines the base grade for the component.

      + +

      In a Primary Schema, the gradeNames property must include the grade “fluid.prefs.schemas”, +which is defined by the Preferences Framework. Using this particular grade is what registers +this component as a Primary Schema with the Framework. The Framework will automatically record +this fact and use this Primary Schema with your Preference Editor.

      +
      +
      +

      schema

      +
      +
      +This property is the actual JSON definition of the preferences for this Preference Editor. +
      +
      +

      In this particular example, only a single preference is being defined; a boolean called +“awesomeCars.prefs.heatedSeats”:

      +
      {
      +    "awesomeCars.prefs.heatedSeats": {
      +        "type": "boolean",
      +        "default": false
      +    }
      +}
      +
      +

      The key in the JSON definition is the name of the preference. +This name will be used throughout the Preferences Framework to associate all the components +related to the setting. The name can be anything, so long as it is used consistently, +but keep in mind that it will be used in the persistent storage for the user's preference, +and will be shared with other technologies that may wish to define enactors to respond to it. +We recommend that it be thoughtfully namespaced and human-understandable.

      +

      The value is an object containing the properties of the preference. +Every preference in a Primary Schema must have at least two properties: “type” and “default”. Coming soon: More +information about these two properties.

      +

      Panel

      +

      A Panel is a component +responsible for rendering the user interface controls for a +preference and tying them to the internal model that represents the preference value. +The Panel for the heated seats preference control is defined in the prefsEditor.js file:

      + +
      /**
      + * Panel for the heated seats preference
      + */
      +fluid.defaults("awesomeCars.prefs.panels.heatedSeats", {
      +    gradeNames: ["fluid.prefs.panel"],
      +
      +    // the Preference Map maps the information in the primary schema to this panel
      +    preferenceMap: {
      +        // the key must match the name of the pref in the primary schema
      +        "awesomeCars.prefs.heatedSeats": {
      +            // this key, "model.heatedSeats", is the path into the panel's model
      +            // where this preference is stored
      +            "model.heatedSeats": "default"
      +        }
      +    },
      +
      +    // selectors identify elements in the DOM that need to be accessed by the code;
      +    // in this case, the Renderer will render data into these particular elements
      +    selectors: {
      +        heatedSeats: ".awec-heatedSeats"
      +    },
      +
      +    // the ProtoTree is basically instructions to the Renderer
      +    // the keys in the protoTree match the selectors above
      +    protoTree: {
      +        // "${heatedSeats}" is a reference to the last part of the model path in the preferenceMap
      +        heatedSeats: "${heatedSeats}"
      +    }
      +});
      +
      +

      In this code snippet, the Panel is created using a call to the Infusion Framework function +fluid.defaults(), just as the Primary Schema was. As with the Primary Schema, the call to +fluid.defaults() is passed two arguments:

      +
        +
      1. a string name ("awesomeCars.prefs.panels.heatedSeats"), and
      2. +
      3. a JavaScript object containing options for configuring the component – in this case, the Panel.
      4. +
      +

      The screenshot in Figure 2 (above) shows what the Panel looks like to the user: A single checkbox +and label, with a header above. The options for configuring this Panel +include four properties: gradeNames, preferenceMap, selectors and protoTree:

      +
      +
      +

      gradeNames

      +
      +
      +

      As we saw with the Primary Schema, any call to fluid.defaults() must refer to any parent +grades using the gradeNames property. Panels must use the "fluid.prefs.panel" grade.

      +
      +
      +

      preferenceMap

      +
      +
      A Panel must have a _ Preference Map_, which maps the information in the Primary Schema +into your Panel. Let’s look at this one more closely: +
      +preferenceMap: {
      +    "awesomeCars.prefs.heatedSeats": {
      +        "model.heatedSeats": "default"
      +    }
      +}
      +

      The first line of the Preference Map, “awesomeCars.prefs.heatedSeats”, is the name of the preference. +This exactly matches the name we saw in the Primary Schema earlier. The value for this +key is a JavaScript object that defines how this particular preference relates to the Panel’s +internal data model.

      +

      The content of this Preference Map is a key/value pair:

      +
        +
      • +

        The key, “model.heatedSeats”, is an EL path into the +Panel’s data model. An “EL path” is just a +dot-separated path built from names. In this case, it means “the heatedSeats +property of the model property” of the Panel.

        + +
      • +
      • +

        The value, “default”, is an EL path referencing the “default” property in the Primary Schema.

        +
      • +
      +

      This Preference Map is saying two things:

      +
        +
      1. +

        The preference called “awesomeCars.prefs.heatedSeats” should be stored in the Panel’s model +in a property called heatedSeats, and

        +
      2. +
      3. +

        the initial value for the property should be taken from the “default” property of the Primary Schema.

        +
      4. + +

        A Preference Map can specify other destinations for Primary Schema information, besides the model. +We'll see an example of this when we add antoher panel, later in this tutorial.

        +
      +
      +

      selectors

      +
      +
      +

      A Panel is a view component +– a type of Infusion component that has a view, that is, +a user interface. In order to maintain a separation between the code and the HTML for the view, +the code interacts with the HTML through named selectors: The code only references the name, and +a Framework feature called the DOM Binder looks up the relevant DOM node for the name based +on the information in this selectors option.

      +

      Let’s look at this more closely:

      +
      +selectors: {
      +    heatedSeats: ".awec-heatedSeats"
      +},
      +

      The content of a selectors property is a set of key/value pairs. The key is the name of the +selector and the value is the selector itself. This property has only one selector, +named heatedSeats. The value is the CSS selector ".awec-heatedSeats". +This selector references the actual checkbox in the template for the Panel. +This template is found in the html/heatedSeats.html file, which looks like this:

      +
      +<section class="awe-panel">
      +    <h2>Heated Seats</h2>
      +
      +    <label for="prefsEd-heatedSeats">Enable the heated seats when the car starts</label>
      +    <input type="checkbox" id="prefsEd-heatedSeats" class="awec-heatedSeats"/>
      +</section>
      +

      You can see the “awec-heatedSeats” class name on the <input> element.

      +
      +
      +

      protoTree

      +
      +
      +

      A Panel is also a Renderer component – a type of Infusion component that uses the +Infusion Renderer to render the view based on data in the component’s model. +The protoTree is the instructions for how the data in the component’s model maps to the template. +Let’s look at this more closely:

      +
      +protoTree: {
      +    heatedSeats: "${heatedSeats}"
      +}
      +
      +

      A protoTree contains key/value pairs, where

      +
        +
      • the key is a selector name specified in the selectors option, and
      • +
      • the value is the specification for what to render into the DOM node referenced by the selector.
      • +
      +

      Here, the one key heatedSeats refers to the selector named heatedSeats +i.e. the reference to the checkbox in the HTML template. +The value is a reference to the heatedSeats property of Panel’s data model. +In the Infusion Framework, an IoC reference (IoC stands for Inversion of Control) is a reference +to an object in the current context using a particular syntax – specifically, the form {context-name}.some.path.segments. +Coming soon: More information about IoC references.

      +
      +
      +

      Auxiliary Schema

      +

      The Auxiliary Schema is a document that specifies +all the things needed to actually build the Preference Editor. +The Auxiliary Schema for our example Editor +is defined in the schemas/auxiliary.js file:

      +
      fluid.defaults("awesomeCars.prefs.auxSchema", {
      +    gradeNames: ["fluid.prefs.auxSchema"],
      +    auxiliarySchema: {
      +          // some code not shown
      +    }
      +});
      +
      +

      Again, we use fluid.defaults() to create the Schema. +As with the Primary Schema and the Panel, fluid.defaults() is passed two arguments:

      +
        +
      1. a string name ("awesomeCars.prefs.auxSchema"), and 2) a JavaScript object literal +containing configuration options.
      2. +
      +

      Let’s look at the Schema itself in detail:

      +
      {
      +    auxiliarySchema: {
      +        // the loaderGrade identifies the "base" form of preference editor desired
      +        loaderGrades: ["fluid.prefs.fullNoPreview"],
      +
      +        // 'terms' are strings that can be re-used elsewhere in this schema;
      +        terms: {
      +            templatePrefix: "html"
      +        },
      +
      +        // the main template for the preference editor itself
      +        template: "%templatePrefix/prefsEditorTemplate.html",
      +
      +        heatedSeats: {
      +            // this 'type' must match the name of the pref in the primary schema
      +            type: "awesomeCars.prefs.heatedSeats",
      +            panel: {
      +                // this 'type' must match the name of the panel grade created for this pref
      +                type: "awesomeCars.prefs.panels.heatedSeats",
      +
      +                // selector indicating where, in the main template, to place this panel
      +                container: ".awec-heatedSeats",
      +
      +                // the template for this panel
      +                template: "%templatePrefix/heatedSeats.html"
      +            }
      +        }
      +    }
      +}
      +
      +

      An auxiliary schema can be generally divided into two kinds of properties:

      +
        +
      1. top-level members, defining globally-used values, and
      2. +
      3. per-preference members (one per preference), defining the specific requirements for each preference.
      4. +
      +
      Loader Grade
      +

      The loader grade specifies the type of Preference Editor:

      +
      {
      +    loaderGrades: ["fluid.prefs.fullNoPreview"]
      +}
      +
      +

      The Preference Framework provides three pre-defined types of Editor:

      +
        +
      1. separated panel (the default): This is a page-width panel collapsed at the top of the page; it slides down when activated by the user.
      2. +
      3. full page, no preview: This is a Preference Editor that occupies the full page.
      4. +
      5. full page, with preview: This is a Preference Editor that occupies the full page, but includes provisions for an iframe in the page to preview any changes made by the Editor.
      6. +
      +

      In the code snippet above, the loaderGrades option is used to specify the “full page, no preview” form.

      +
      Templates
      +

      The Auxiliary Schema must declare where to find the main HTML template for the Preference Editor. +In our example, this template is located in the same folder as other HTML templates. +The Auxiliary Schema allows you to define terms – strings that can be re-used elsewhere in the +schema. Here, it is being used to define, in a single place, the path to where the HTML templates are:

      +
      {
      +    terms: {
      +        templatePrefix: "html"
      +    }
      +}
      +
      +

      The template property specifies the main HTML template for the entire Preference Editor:

      +
      {
      +    template: "%templatePrefix/prefsEditorTemplate.html"
      +}
      +
      +

      You can see the full text of this file, prefsEditorTemplate.html, in the github repo: +https://github.com/fluid-project/infusion/tree/master/examples/framework/preferences/minimalEditor/html/prefsEditorTemplate.html +The main thing to note in the template is the placeholder for the Panel, +in this example a <div> with the class awec-heatedSeats:

      +
      <!-- placeholder for the heated seats preference panel -->
      +<div class="awec-heatedSeats"></div>The Framework will insert the constructed Panel into this div
      +
      +

      The Framework will insert the constructed Panel into this <div>.

      +
      Preferences
      +

      The next thing in the Auxiliary Schema is the configuration for the heated seats preference:

      +
      {
      +    heatedSeats: {
      +        // this 'type' must match the name of the pref in the primary schema
      +        type: "awesomeCars.prefs.heatedSeats",
      +
      +        panel: {
      +            // this 'type' must match the name of the panel grade created for this pref
      +            type: "awesomeCars.prefs.panels.heatedSeats",
      +
      +            // selector indicating where, in the main template, to place this panel
      +            container: ".awec-heatedSeats",
      +
      +            // the template for this panel
      +            template: "%templatePrefix/heatedSeats.html"
      +        }
      +    }
      +}
      +
      +

      (The name of the property, heatedSeats, can actually be anything, but it’s helpful to use the name +of the preference.)

      +

      In our example, the heated seats preference configuration includes two things:

      +
        +
      1. the type of the preference, and
      2. +
      3. information about the Panel.
      4. +
      +

      The value of the type property is the name of the preference as defined in the Primary Schema.

      +

      The value of the panel property is a JavaScript object containing configuration information +for the Panel. Let’s look at each of the properties:

      +
      +
      +

      type

      +
      +
      +

      This is the name of the Panel that was defined in the call to fluid.defaults() above.

      +
      +
      +

      container

      +
      +
      +

      This is a CSS-based selector referencing the Panel’s placeholder element in the main HTML +template – the one referenced by the template property above.

      +
      +
      +

      template

      +
      +
      +

      This is the path and filename of the HTML template for this Panel. +Notice, in this example, how the templatePrefix term is being used.

      +
      +
      +

      Instantiation

      +

      The last thing in the js/prefsEditor.js file is a call to the Preferences Framework +function fluid.prefs.create(). This function actually creates the Preference Editor. +It accepts two arguments:

      +
        +
      1. a CSS selector indicating the container element for the Preference Editor, and
      2. +
      3. a JavaScript object containing configuration information for the Preference Editor.
      4. +
      +
      awesomeCars.prefs.init = function (container) {
      +    return fluid.prefs.create(container, {
      +        build: {
      +            gradeNames: ["awesomeCars.prefs.auxSchema"]
      +        }
      +    });
      +};
      +
      +

      This function is invoked in the main HTML file for the Preference Editor, index.html. +You can see the entire file here: +https://github.com/fluid-project/infusion/tree/master/examples/framework/preferences/minimalEditor/index.html. +Let’s look at this invocation:

      +
      <div id="preferencesEditor"></div>
      +
      +<script type="text/javascript">
      +    awesomeCars.prefs.init("#preferencesEditor");
      +</script>
      +
      +

      In the HTML snippet above, the <div> is the container that the Preference Editor will be +rendered inside of. The call to awesomeCars.prefs.init() is passed the ID of the element, +“#preferencesEditor”, as the container argument.

      +

      In the code snippet above, the first argument – container – is the CSS identifier passed to +the function. The second argument – the options – is an object containing (in this case) one +property: build. This option is a JavaScript object containing information that will be passed +to the Builder, a key part of the Preferences Framework. +The Builder is the core component responsible for actually building the Preference Editor based +on all of the configuration information for the preferences, the Panels, etc. +For our simple Preference Editor, the build options contains only one property: +The grade name of our Auxiliary Schema:

      +
      {
      +    build: {
      +        gradeNames: ["awesomeCars.prefs.auxSchema"]
      +    }
      +}
      +
      +

      The Auxiliary Schema (plus the Primary Schema that was registered with the Framework automatically) +contains all the information the Builder needs to construct the Preference Editor.

      +

      Adding another preference

      +

      Let’s use what we’ve learned so far to add another simple preference to the Editor: +Preferred volume for the radio. This preference will be a number, and it will have a +range of possible values.

      +

      To add this preference, we’ll need to

      +
        +
      1. define the preference,
      2. +
      3. create the Panel, and
      4. +
      5. add the Panel to the Editor.
      6. +
      +

      Defining the preference

      +

      We’ll edit the Primary Schema definition in schemas/primary.js to add the new preference +definition. It’s type is “number”, and in addition to the default, we’ll have to define a +minimum and maximum, as well as the step value:

      +
      fluid.defaults("awesomeCars.prefs.schemas.radioVolume", {
      +    gradeNames: ["fluid.prefs.schemas"],
      +    schema: {
      +        "awesomeCars.prefs.radioVolume": {
      +            "type": "number",
      +            "default": "2",
      +            "minimum": "1",
      +            "maximum": "5",
      +            "divisibleBy": "0.5"
      +        }
      +    }
      +});
      +
      +

      Creating the Panel

      +

      Template and Adjuster

      +

      We will need an HTML template for the Panel. Since the preference is a range, +we’ll use a slider for the Adjuster.

      +

      Create a new file in the html folder called radioVolume.html and use a structure similar +to the one already used for the heated seats template:

      +
      <section class="awe-panel">
      +    <h2>Radio Volume</h2>
      +
      +    <label for="prefsEd-radioVolume">Set the desired volume for the radio</label>
      +    <input type="range" id="prefsEd-radioVolume" class="awec-radioVolume"/>
      +</section>
      +
      +

      We’ve used an <input> with type “range” for the Adjuster. +The template doesn’t need to set the min, max or value attributes; those are dependent on the +Primary Schema and will be added in by the Preference Editor.

      +

      Panel component

      +

      In the prefsEditor.js file, we'll create the Panel component for this preference. +As with the heated seats Panel, we use a call to fluid.defaults() +and set the grade to “fluid.prefs.panel”:

      +
      fluid.defaults("awesomeCars.prefs.panels.radioVolume", {
      +    gradeNames: ["fluid.prefs.panel"]
      +    // options will go here...
      +});
      +
      +

      As with the heated seats Panel, we need a Preference Map:

      +
      fluid.defaults("awesomeCars.prefs.panels.radioVolume", {
      +    gradeNames: ["fluid.prefs.panel"],
      +    preferenceMap: {
      +        "awesomeCars.prefs.radioVolume": {
      +            "model.radioVolume": "default"
      +        }
      +    }
      +    // ...
      +});
      +
      +

      The Panel component also needs to know about the minimum, maximum and step value defined in +the Primary Schema. These values are not likely to change over the life of the component, +so it’s not really appropriate to store them in the model. Instead, we create a range property +as a component option:

      +
      fluid.defaults("awesomeCars.prefs.panels.radioVolume", {
      +    gradeNames: ["fluid.prefs.panel"],
      +
      +    preferenceMap: {
      +        "awesomeCars.prefs.radioVolume": {
      +            "model.radioVolume": "default"
      +        }
      +    },
      +    range: {
      +        min: 1,
      +        max: 10,
      +        step: 1
      +    }
      +    // ...
      +});
      +
      +

      Finally, the Preference Map needs to tell the component to map the Primary Schema values into +the range property:

      +
      fluid.defaults("awesomeCars.prefs.panels.radioVolume", {
      +    gradeNames: ["fluid.prefs.panel"],
      +    preferenceMap: {
      +        "awesomeCars.prefs.radioVolume": {
      +            "model.radioVolume": "default",
      +            "range.min": "minimum",
      +            "range.max": "maximum",
      +            "range.step": "divisibleBy"
      +        }
      +    },
      +    range: {
      +        min: 1,
      +        max: 10,
      +        step: 1
      +    }
      +    // ...
      +});
      +
      +

      As we saw with the heated seats Panel, we need to define a selector to identify the HTML +element where the preference value will be bound:

      +
      fluid.defaults("awesomeCars.prefs.panels.radioVolume", {
      +    gradeNames: ["fluid.prefs.panel"],
      +    preferenceMap: {
      +        "awesomeCars.prefs.radioVolume": {
      +            "model.radioVolume": "default",
      +            "range.min": "minimum",
      +            "range.max": "maximum",
      +            "range.step": "divisibleBy"
      +        }
      +    },
      +    range: {
      +        min: 1,
      +        max: 10,
      +        step: 1
      +    },
      +    selectors: {
      +        radioVolume: ".awec-radioVolume"
      +    }
      +    // ...
      +});
      +
      +

      Finally, we need to define the Renderer protoTree – the instructions for rendering +the model value into the template. This protoTree will need to be a little bit more complicated +than what we used for the heated seats preference. That protoTree needed to do only one thing: +bind the model value to the input element. For the range input, we still need to bind the model +value, but we also need to set the min, max and step attributes of the element. For this, +a simple key/value pair isn’t enough. Instead of a simple string reference as the value, +we’ll use an object with a value property:

      +
      {
      +    protoTree: {
      +        radioVolume: {
      +          value: "${radioVolume}"
      +        }
      +    }
      +}
      +
      +

      To this, we will add a Renderer Decorator +to set the attributes using the contents of the range property:

      + +
      {
      +    protoTree: {
      +        radioVolume: {
      +          value: "${radioVolume}",
      +          decorators: [{
      +              type: "attrs",
      +              attributes: {
      +                  min: "{that}.options.range.min",
      +                  max: "{that}.options.range.max",
      +                  step: "{that}.options.range.step"
      +              }
      +          }]
      +        }
      +    }
      +}
      +
      +

      So, this is what our final radio volume Panel component definition looks like:

      +
      fluid.defaults("awesomeCars.prefs.panels.radioVolume", {
      +    gradeNames: ["fluid.prefs.panel"],
      +
      +    preferenceMap: {
      +        "awesomeCars.prefs.radioVolume": {
      +            "model.radioVolume": "default",
      +            "range.min": "minimum",
      +            "range.max": "maximum",
      +            "range.step": "divisibleBy"
      +        }
      +    },
      +
      +    range: {
      +        min: 1,
      +        max: 10,
      +        step: 1
      +    },
      +
      +    selectors: {
      +        radioVolume: ".awec-radioVolume"
      +    },
      +
      +    protoTree: {
      +        radioVolume: {
      +            value: "${radioVolume}",
      +            decorators: [{
      +                type: "attrs",
      +                attributes: {
      +                    min: "{that}.options.range.min",
      +                    max: "{that}.options.range.max",
      +                    step: "{that}.options.range.step"
      +                }
      +            }]
      +        }
      +    }
      +});
      +
      +

      Adding the Panel to the Editor

      +

      We saw above that the main HTML template for the tool, html/prefsEditorTemplate.html, +has a placeholder in it for the heated seats Panel. +We will add another placeholder for the radio volume Panel:

      +
      <!-- placeholder for the heated seats preference panel -->
      +<div class="awec-heatedSeats"></div>
      +
      +<!-- placeholder for the radio volume preference panel -->
      +<div class="radioVolume"></div>
      +
      +

      We’ll also need a property in the Auxiliary Schema, in schemas/auxiliary.js, to provide the +configuration options specific to the new Panel:

      +
      {
      +    radioVolume: {
      +        type: "awesomeCars.prefs.radioVolume",
      +        panel: {
      +            type: "awesomeCars.prefs.panels.radioVolume",
      +            container: ".awec-radioVolume",
      +            template: "%templatePrefix/radioVolume.html"
      +        }
      +    }
      +}
      +
      +

      Saving Preferences

      +

      Right now, when you click the "save" button, the preferences are saved – if you reload the page, +they're all there. +How does that happen? Where are they saved to? And how would you change that?

      +

      By default, the Preferences Framework automatically saves the preferences to a browser cookie. +How does that happen?

      +
        +
      • The template has a specific class on the "save" button: flc-prefsEditor-save.
      • +
      • The Preferences Framework automatically binds a click handler to anything with that class.
      • +
      • The click handler ultimately invokes the set method on the default settings store, which is a CookieStore.
      • +
      +

      Cookies are great for websites, but this is a car. The preferences need to be saved to the car's +internal storage. We need to a) create a Settings Store that will save to the internal storage and +b) tell the preferences editor to use that instead.

      +

      The first step is to create a grade that uses the built-in fluid.prefs.store:

      +
      fluid.defaults("awesomeCars.prefs.store", {
      +    gradeNames: ["fluid.prefs.store"]
      +});
      +
      +

      We'll need to override the default get() and set() methods with our own versions. These methods +are implemented as invokers, which makes it easy to plug in our own functions:

      +
      fluid.defaults("awesomeCars.prefs.store", {
      +    gradeNames: ["fluid.prefs.store"],
      +    invokers: {
      +        get: {
      +            funcName: "awesomeCars.prefs.store.get"
      +        },
      +        set: {
      +            funcName: "awesomeCars.prefs.store.set",
      +            args: ["{arguments}.0"]
      +        }
      +    }
      +});
      +
      +

      Our get and set functions will need to do whatever is necessary to save and retrieve the +preferences to the car's internal data storage:

      +
      fluid.defaults("awesomeCars.prefs.store", {
      +    gradeNames: ["fluid.prefs.store"],
      +    invokers: {
      +        get: {
      +            funcName: "awesomeCars.prefs.store.get"
      +        },
      +        set: {
      +            funcName: "awesomeCars.prefs.store.set",
      +            args: ["{arguments}.0"]
      +        }
      +    }
      +});
      +
      +awesomeCars.prefs.store.get = function () {
      +    // do whatever you need to do, to retrieve the settings
      +    return settings;
      +};
      +awesomeCars.prefs.store.set = function (settings) {
      +    // do whatever you need to do to store the settings
      +};
      +
      +

      Finally, we need to tell the preferences editor to use our new settings store instead of +the default cookie store. We do this by using the storeType option when we create the editor +(as we saw back in Instantiation):

      +
      awesomeCars.prefs.init = function (container) {
      +    return fluid.prefs.create(container, {
      +        build: {
      +            gradeNames: ["awesomeCars.prefs.auxSchema"]
      +        },
      +        prefsEditor: {
      +            // specify the settings store to use
      +            storeType: "awesomeCars.prefs.store"
      +        }
      +    });
      +};
      +
      +

      Coming Soon:

      +

      Information about:

      +
        +
      • Enactors
      • +
      • More complicated Panels
      • +
      • Localization
      • +
      • Design consideration
      • +
      • Case studies
      • +
      + +
      +
      + + + +
      + +
      + + +
      + + + + + diff --git a/infusion/development/tutorial-prefsFramework/CreatingEnactors.html b/infusion/development/tutorial-prefsFramework/CreatingEnactors.html new file mode 100644 index 00000000..401ec67b --- /dev/null +++ b/infusion/development/tutorial-prefsFramework/CreatingEnactors.html @@ -0,0 +1,572 @@ + + + + + + Creating Enactors | Fluid Infusion + + + + + + + + + + + + + + + + + +
      + + + + + + +
      + +
      + + +
      + + + + +
      +
      + + + + + +
      + + + +
      + +
      + + +
      +
      + +
      + +

      Creating Enactors

      + + + + + +
      +

      This article describes how to use the Infusion Preferences Framework +to create Enactors, components that act in response to changes to a user's preferences.

      +

      Overview

      +

      In the Preferences Framework, "Enactors" are Infusion components that act upon changes to user preferences.

      +

      The configuration information used to define an enactor must include certain required information:

      +
        +
      • the fluid.prefs.enactor grade (provided by the Framework)
      • +
      • a Preference Map (see below)
      • +
      • a renderer proto-tree or produceTree function
      • +
      • selectors for rendering the controls, labels, etc
      • +
      • any other information required by the enactor
      • +
      +

      If the enactor will be modifying the view of the interface, you will also want to add the fluid.viewComponent grade as well as selectors.

      +

      PreferenceMap

      +

      Each enactor defines a "preference map," which map the information in the Primary Schema into your enactor. The preference map is used to copy the default preference value from the primary schema into the enactor's model. It can also be used to copy any other necessary information from the primary schema into the enactor, if relevant. The values can be mapped to any path in the Panels options, and then they can be accessed through those paths.

      +

      Format

      +
      {
      +    "preferenceMap": {
      +        "<key of preference from primary schema>": {
      +            "<path in enactor's options where value should be held>": "<key in primary schema where value held>"
      +            // ...
      +        }
      +        // ...
      +    }
      +}
      +
      +

      Examples

      +
      fluid.defaults("fluid.prefs.enactor.textSize", {
      +    gradeNames: ["fluid.prefs.panel"],
      +    preferenceMap: {
      +        "fluid.prefs.textSize": {
      +            "model.value": "default"
      +        }
      +    }
      +    // ...
      +});
      +
      +
      fluid.defaults("fluid.prefs.enactor.emphasizeLinks", {
      +    gradeNames: ["fluid.viewComponent", "fluid.prefs.enactor.styleElements"],
      +    preferenceMap: {
      +        "fluid.prefs.emphasizeLinks": {
      +            "model.value": "default"
      +        }
      +    }
      +    // ...
      +});
      +
      +
      fluid.defaults("fluid.videoPlayer.panels.captionsSettings", {
      +    gradeNames: ["fluid.videoPlayer.panels.mediaSettings"],
      +    preferenceMap: {
      +        "fluid.videoPlayer.displayCaptions": {
      +            "model.show": "default"
      +        },
      +        "fluid.videoPlayer.captionLanguage": {
      +            "model.language": "default"
      +        }
      +    }
      +    // ...
      +});
      +
      +

      Binding to Model Changes

      +

      The most important thing that an enactor does is listen for changes to its model and act when changes occur. The Preferences Framework automatically binds the enactor's model to the user's preferences through the Preferences Map (described above). This means that if the user's preference changes (for example, through the preferences editor), the enactor's model will automatically be updated and a modelChanged event will be fired. All the enactor has to do is listen for that modelChanged event and carry out whatever adjustments are necessary. (For more information about model changes, see ChangeApplier API; for more information about the events and listeners in general, see Infusion Event System).

      +

      modelChanged event listeners are bound in a special block of a component's defaults called modelListeners. The general format is shown below:

      +
      modelListeners: {
      +    <modelpath>: {
      +        funcName: <listener name>,
      +        args: [<argument list>]
      +    }
      +}
      +
      +

      In the argument list of a model listener, the change object is the original change request, which can be used to access the new model value:

      +
      {
      +    path: [<model paths>],
      +    value: <new value>,
      +    oldValue: <old value>
      +}
      +
      +

      In the following example, an enactor function acts upon a new magnification value:

      +
      gpii.pmt.enactors.magnification.magnify = function (that, newModel) {
      +    that.magnify(newModel.value);
      +};
      +
      +fluid.defaults("gpii.pmt.enactors.magnification", {
      +    // ...
      +    modelListeners: {
      +        "magnificationFactor": {
      +            funcName: "gpii.pmt.enactors.magnification.magnify",
      +            args: ["{that}", "{change}.value"]
      +        }
      +    }
      +});
      +
      +

      Acting on model changes

      +

      The actions that an enactor will take will be entirely dependent on what the enactor is for. It is up to the developer to create the necessary functions, etc. required.

      +

      Example: Line Spacing Enactor

      +
      fluid.defaults("fluid.prefs.enactor.lineSpace", {
      +    gradeNames: ["fluid.viewComponent", "fluid.prefs.enactor"],
      +    preferenceMap: {
      +        "fluid.prefs.lineSpace": {
      +            "model.value": "default"
      +        }
      +    },
      +    fontSizeMap: {},  // must be supplied by implementors
      +    invokers: {
      +        set: {
      +            funcName: "fluid.prefs.enactor.lineSpace.set",
      +            args: ["{arguments}.0", "{that}", "{that}.getLineHeightMultiplier"]
      +        },
      +        getTextSizeInPx: {
      +            funcName: "fluid.prefs.enactor.getTextSizeInPx",
      +            args: ["{that}.container", "{that}.options.fontSizeMap"]
      +        },
      +        getLineHeight: {
      +            funcName: "fluid.prefs.enactor.lineSpace.getLineHeight",
      +            args: "{that}.container"
      +        },
      +        getLineHeightMultiplier: {
      +            funcName: "fluid.prefs.enactor.lineSpace.getLineHeightMultiplier",
      +            args: [{expander: {func: "{that}.getLineHeight"}}, {expander: {func: "{that}.getTextSizeInPx"}}],
      +            dynamic: true
      +        }
      +    },
      +    modelListeners: {
      +        value: {
      +            funcName: "{that}.set",
      +            args: ["{change}.value"]
      +        }
      +    }
      +});
      +
      +fluid.prefs.enactor.lineSpace.set = function (that, newValue) {
      +    that.set(newValue);
      +};
      +
      +

      Example: Table of Contents Enactor

      +
      fluid.defaults("fluid.prefs.enactor.tableOfContents", {
      +    gradeNames: ["fluid.viewComponent", "fluid.prefs.enactor"],
      +    preferenceMap: {
      +        "fluid.prefs.tableOfContents": {
      +            "model.toc": "default"
      +        }
      +    },
      +    tocTemplate: null,  // must be supplied by implementors
      +    components: {
      +        tableOfContents: {
      +            type: "fluid.tableOfContents",
      +            container: "{fluid.prefs.enactor.tableOfContents}.container",
      +            createOnEvent: "onCreateTOCReady",
      +            options: {
      +                components: {
      +                    levels: {
      +                        type: "fluid.tableOfContents.levels",
      +                        options: {
      +                            resources: {
      +                                template: {
      +                                    forceCache: true,
      +                                    url: "{fluid.prefs.enactor.tableOfContents}.options.tocTemplate"
      +                                }
      +                            }
      +                        }
      +                    }
      +                },
      +                listeners: {
      +                    afterRender: "{fluid.prefs.enactor.tableOfContents}.events.afterTocRender"
      +                }
      +            }
      +        }
      +    },
      +    invokers: {
      +        applyToc: {
      +            funcName: "fluid.prefs.enactor.tableOfContents.applyToc",
      +            args: ["{arguments}.0", "{that}"]
      +        }
      +    },
      +    events: {
      +        onCreateTOCReady: null,
      +        afterTocRender: null,
      +        onLateRefreshRelay: null
      +    },
      +    modelListeners: {
      +        toc: {
      +            funcName: "{that}.applyToc",
      +            args: ["{change}.value"]
      +        }
      +    }
      +});
      +
      +fluid.prefs.enactor.tableOfContents.applyToc = function (value, that) {
      +    if (value) {
      +        if (that.tableOfContents) {
      +            that.tableOfContents.show();
      +        } else {
      +            that.events.onCreateTOCReady.fire();
      +        }
      +    } else if (that.tableOfContents) {
      +        that.tableOfContents.hide();
      +    }
      +};
      +
      + +
      +
      + + + +
      + +
      + + +
      + + + + + diff --git a/infusion/development/tutorial-prefsFramework/InstantiatingTheEnhancerAndSettingsStoreOnly.html b/infusion/development/tutorial-prefsFramework/InstantiatingTheEnhancerAndSettingsStoreOnly.html new file mode 100644 index 00000000..a6f267da --- /dev/null +++ b/infusion/development/tutorial-prefsFramework/InstantiatingTheEnhancerAndSettingsStoreOnly.html @@ -0,0 +1,418 @@ + + + + + + Instantiating the Enhancer and Settings Store Only | Fluid Infusion + + + + + + + + + + + + + + + + + +
      + + + + + + +
      + +
      + + +
      + + + + +
      +
      + + + + + +
      + + + +
      + +
      + + +
      +
      + +
      + +

      Instantiating the Enhancer and Settings Store Only

      + + + + + +
      +

      This article describes how to use the Infusion Preferences Framework +to use the Builder, a tool that creates a preferences editor from schema documents.

      +

      In cases where you are adding a full-page editor to your site, you likely want the user's settings +to be applied to every other page on your site as well. On these pages, you don't want to +instantiate the preferences editor, but you do need to instantiate the page enhancer and the +settings store; without these, the preferences will have no effect.

      +

      Adding the settings store and enhancer requires a two-step process:

      +
        +
      1. Use the Builder to build the tools, then
      2. +
      3. Instantiate the tools built by the builder.
      4. +
      +

      Build the Settings Store and Enhancer

      +

      Build the settings store and enhancer with a call to the Preferences Framework Builder (this call also builds a preferences editor, but you aren't required to instantiate it). The Builder can be used with either the auxiliarySchema property or with an auxiliary schema grade.

      +
      Note: Your auxiliary schema MUST specify a namespace. You'll need this namespace to access the components created by the builder.
      +

      Example: Using the Builder with the auxiliarySchema Property

      +
      var myAuxiliarySchema = {
      +    namespace: "my.prefs"
      +    // ...
      +};
      +
      +fluid.prefs.builder({
      +    primarySchema: myPrimarySchema,
      +    auxiliaryScham: myAuxiliarySchema
      +});
      +
      +

      Example: Using the Builder with an Auxiliary Schema Grade

      +
      fluid.defaults("my.auxSchemaGrade", {
      +    gradeNames: ["fluid.prefs.auxSchema"],
      +    auxiliarySchema: {
      +        namespace: "my.prefs"
      +        // ...
      +    }
      +});
      +
      +fluid.prefs.builder({
      +    gradeNames: ["my.auxSchemaGrade"],
      +    primarySchema: myPrimarySchema
      +});
      +
      +

      Instantiate the Enhancer

      +

      Once you've run the builder, you can access the enhancer through the namespace you specified in your auxiliary schema

      +

      Instantiating the Default Separated Panel Editor

      +
      var enhancer = my.prefs.uie("body");
      +
      +

      The uie method will automatically instantiate both the settings store and the page enhancer, so you only need to make the one call. The settings store will automatically connect to the saved settings, and the enhancer will automatically use your enactors to adjust the page according to the settings.

      + +
      +
      + + + +
      + +
      + + +
      + + + + + diff --git a/infusion/development/tutorial-prefsFramework/StylingThePreferencesEditor.html b/infusion/development/tutorial-prefsFramework/StylingThePreferencesEditor.html new file mode 100644 index 00000000..82c92427 --- /dev/null +++ b/infusion/development/tutorial-prefsFramework/StylingThePreferencesEditor.html @@ -0,0 +1,412 @@ + + + + + + Styling the Preferences Editor | Fluid Infusion + + + + + + + + + + + + + + + + + +
      + + + + + + +
      + +
      + + +
      + + + + +
      +
      + + + + + +
      + + + +
      + +
      + + +
      +
      + +
      + +

      Styling the Preferences Editor

      + + + + + +
      +

      This article describes how to style a preferences editor created using the Infusion Preferences Framework.

      +

      The Preferences Framework includes a number of CSS stylesheets that are used to control the layout and appearance of the interface. These stylesheets should be used as the basis for your styles, even if you choose to override some of the styling to make the interface match your application. All stylesheets are found in src/framework/preferences/css.

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      FilenameUsed by
      PrefsEditor.cssall versions
      SeparatedPanelPrefsEditor.cssseparated panel
      SeparatedPanelPrefsEditorFrame.cssthe contents of the separated panel
      FullPrefsEditor.cssall full-page versions
      FullNoPreviewPrefsEditor.cssall full-page, without preview
      FullPreviewPrefsEditor.cssall full-page, with preview
      Enactors.cssall versions making use of the starter enactors
      +
      +
      + + + +
      + +
      + + +
      + + + + + diff --git a/infusion/development/tutorial-prefsFrameworkMinimalFootprint/MinimalFootprint.html b/infusion/development/tutorial-prefsFrameworkMinimalFootprint/MinimalFootprint.html new file mode 100644 index 00000000..5ad24c4a --- /dev/null +++ b/infusion/development/tutorial-prefsFrameworkMinimalFootprint/MinimalFootprint.html @@ -0,0 +1,535 @@ + + + + + + Preferences Framework: Minimal Footprint | Fluid Infusion + + + + + + + + + + + + + + + + + +
      + + + + + + +
      + +
      + + +
      + + + + +
      +
      + + + + + +
      + + + +
      + +
      + + +
      +
      + +
      + +

      Preferences Framework: Minimal Footprint

      + + + + + +
      +

      Website performance optimization can be split into several categories: backend, over the wire, and front end. When constructing your optimization strategy, you should examine the effect that each category has on your site's performance. This document will focus on optimizing "over the wire" and "front end" performance when employing the Preferences Framework on a site; however, it does not examine potential backend optimizations.

      +

      Below are some resources which discuss general website optimization strategies:

      + +

      Optimization of the Preferences Framework

      + +

      To see a live version of the example outlined below, open the Minimal Footprint - Preferences Framework example.

      +
      +

      Note: The example outlined below uses individual JS files. However, these can be substituted by using an Infusion build.

      +
      +

      Minified Custom Build

      +

      Infusion provides a build tool for creating minified custom packages. This is essential for creating the smallest package which requires the fewest requests. From the Infusion root directory run grunt custom --include="preferences", which will create a zip file containing all of the bundled code.

      +

      See: "How Do I Create an Infusion Package" documentation for the full list of steps.

      +

      Full Page Preferences Editor

      +

      Most website integrations of a Preferences Editor make use of UI Options. UI Options provides a convenient interaction for users to quickly review and modify their preferences without having to leave the page, and presents a live preview of their adjustments. However, this also adds additional overhead to instantiate the preferences editor and load in all of the required resources. A Full Page preference editor, on the other hand, is designed to run as a stand alone page and can be configured with a preview window. Be sure to provide the user with a link to the full page preferences editor, for example a link on each content page or in the site's user settings.

      +
      Note: Preferences Editors can be configured either through an Auxiliary Schema or directly through grades. The grade version is slightly more complicated to configure, but removes computation time for processing the schema.
      +

      Instantiating a Full Page Preferences Editor

      +

      The following example instantiates a Full Page Preferences Editor with a preview window. +The code consists of the following three parts:

      +
        +
      1. fluid.prefs.globalSettingsStore - Responsible for storing/retrieving preferences. By default it uses the fluid.prefs.cookieStore which uses a browser cookie for storage.
      2. +
      3. fluid.pageEnhancer - Initializes the UI Enhancer for the page. The UI Enhancer is responsible for applying the preferences to the page.
      4. +
      5. fluid.prefs.fullPreview - The Full Page prefs editor, including a preview.
      6. +
      +

      (see: fullPage.html)

      +
      Note: The code snippet below can be loaded in through a JavaScript file or added directly to the HTML in a <script> tag.
      +
          /*
      +    /*
      +     * The various starter gradeNames mentioned below indicate that the
      +     * "starter" adjusters and enactors should be used. These correspond to the
      +     * same set of adjusters and enactors used in a typical UI Options
      +     * configuration. However, a custom set of adjusters and enactors could be
      +     * configured instead.
      +     */
      +
      +    /**
      +     * Initialize the PrefsEditor global settings store.
      +     * The globalSettingsStore handles the storage and retrieval of preferences,
      +     * by default it is configured to use the fluid.prefs.cookieStore
      +     * which stores preferences in a browser cookie.
      +     */
      +    fluid.prefs.globalSettingsStore();
      +
      +    /**
      +     * Initialize the UI Enhancer for the page.
      +     */
      +    fluid.pageEnhancer({
      +        uiEnhancer: {
      +            gradeNames: ["fluid.uiEnhancer.starterEnactors"],
      +            // The UI Enhancer's Table of Contents uses an HTML template. This tells the component
      +            // where to find that template.
      +            tocTemplate: "../../../../src/components/tableOfContents/html/TableOfContents.html"
      +        }
      +    });
      +
      +    fluid.prefs.fullPreview(".demo-prefsEditor-fullWithPreview", {
      +        gradeNames: ["fluid.prefs.transformDefaultPanelsOptions", "fluid.prefs.initialModel.starter"],
      +        // Tell PrefsEditor where to find all the resources, relative to this file
      +        terms: {
      +            // The Preferences Editor interface is defined by several HTML templates. The component
      +            // needs to know where those templates are.
      +            templatePrefix: "../../../../src/framework/preferences/html",
      +            //  The strings used on Preferences Editor interface are defined in several JSON files. The component
      +            //  needs to know where those files are.
      +            messagePrefix: "../../../../src/framework/preferences/messages"
      +        },
      +        messageLoader: {
      +            gradeNames: ["fluid.prefs.starterMessageLoader"]
      +        },
      +        templateLoader: {
      +            gradeNames: ["fluid.prefs.starterFullPreviewTemplateLoader"]
      +        },
      +        prefsEditor: {
      +            gradeNames: ["fluid.prefs.starterPanels", "fluid.prefs.uiEnhancerRelay"],
      +            listeners: {
      +                // Tells the PrefsEditor where to redirect to if the user cancels the operation.
      +                // In this case, it goes back one step in the browser's history.
      +                onCancel: {
      +                    "this": window.history,
      +                    method: "back"
      +                }
      +            }
      +        },
      +        preview: {
      +            templateUrl: "html/prefsEditorPreview.html"
      +        }
      +    });
      +
      +

      Lazy Loading

      +

      With a Full Page Preferences Editor we've moved editing preferences off the content pages; however, these pages are still required to enact/apply the preferences set by the user. Therefore, we still need to instantiate the Settings Store and Page Enhancer on each page. However, we only need these if a user has actually adjusted their preferences. In a default implementation of the Preferences Framework, preferences are stored in a browser cookie. The simple solution is to check for the presence of this cookie, and only load and instantiate the Settings Store and Page Enhancer if it's found.

      +

      The following example makes use the functions provided by loadScripts.js to check the cookie and lazy load the required scripts:

      +

      The first step is to check if a cookie for user preferences was set. If it is found, the necessary JavaScript files should be loaded. By lazy loading the scripts we save on the download and processing time for the scripts when they are not in use.

      +

      (see: loadScripts.js)

      +
      +

      Note: The example below makes use of a build of Infusion, "infusion-custom.js", which is a concatenated JavaScript file. However, the linked +code above uses the individual JavaScript files. Using the single "infusion-custom.js" file will save on server requests and is the preferred method, but will require a custom build to be generated.

      +
      +
      <!-- Add the following script tag to the HTML of each page -->
      +<script>
      +    // "fluid-ui-settings" is the default cookie name
      +    fluid_load.lazyLoadScripts("fluid-ui-settings", [
      +        // need to load the custom build of infusion first
      +        "../infusion/infusion-custom.js",
      +        // should point at a JavaScript file containing the instantiation of the
      +        // settings store and page enhancer. You'll need to write this yourself,
      +        // but an example has been provided below.
      +        "js/lazyLoad.js"
      +    ]);
      +</script>
      +
      +

      The following is an example of an instantiation script. +(see: lazyLoad.js)

      +
      /**
      + * Initialize the PrefsEditor global settings store.
      + * The globalSettingsStore handles the storage and retrieval of preferences,
      + * by default it is configured to use the fluid.prefs.cookieStore
      + * which stores preferences in a browser cookie.
      + */
      +fluid.prefs.globalSettingsStore();
      +
      +/**
      + * Initialize the UI Enhancer for the page.
      + */
      +fluid.pageEnhancer({
      +    uiEnhancer: {
      +        //  The "fluid.uiEnhancer.starterEnactors" grade mentioned below indicate that the
      +        //  "starter" enactors should be used. These correspond to the
      +        //  same set of enactors used in a typical UI Options configuration. However, a
      +        //  custom set of enactors could be configured instead.
      +        gradeNames: ["fluid.uiEnhancer.starterEnactors"],
      +        // The UI Enhancer's Table of Contents uses an HTML template. This tells the component
      +        // where to find that template.
      +        tocTemplate: "../../../../src/components/tableOfContents/html/TableOfContents.html"
      +    }
      +});
      +
      +

      Caveats

      +

      While the strategy outlined above will improve page load performance, it is not without its drawbacks.

      +
        +
      • Prefs Editor +
          +
        • Users will have to navigate away from the current content to adjust settings
        • +
        • The preview of changes is not a live preview of the content
        • +
        +
      • +
      • Lazy Loading +
          +
        • For users that have set preferences, page load will be slightly slower because of the lazy loading overhead
        • +
        • For users that have set preferences, there is a higher chance that the user will see the adjustments applied to the page (e.g. screen flicker, page layout shifting, and etc.)
        • +
        +
      • +
      + +
      +
      + + + +
      + +
      + + +
      + + + + + diff --git a/infusion/development/tutorial-userInterfaceOptions/ContentPropertyHighContrast.html b/infusion/development/tutorial-userInterfaceOptions/ContentPropertyHighContrast.html new file mode 100644 index 00000000..96a45fa5 --- /dev/null +++ b/infusion/development/tutorial-userInterfaceOptions/ContentPropertyHighContrast.html @@ -0,0 +1,422 @@ + + + + + + CSS "Content" Property in Contrast Modes | Fluid Infusion + + + + + + + + + + + + + + + + + +
      + + + + + + +
      + +
      + + +
      + + + + +
      +
      + + + + + +
      + + + +
      + +
      + + +
      +
      + +
      + +

      CSS "Content" Property in Contrast Modes

      + + + + + +
      +

      The CSS content property can be used to add additional content to your webpage using CSS. Often it is used to add a character, symbol, or font icon before or after some content on webpage. For example, it can be used to add vertical bars to separate items on a horizontal navigation list as depicted by the following HTML and CSS snippets.

      +
      <nav>
      +  <ul class="topnav">
      +    <li>Home</li>
      +    <li>Browse</li>
      +    <li>Shop</li>
      +  </ul>
      +</nav>
      +
      +
      .topnav {
      +  color: #0000ff;
      +  list-style: none;
      +}
      +
      +.topnav li {
      +  float: left;
      +}
      +
      +.topnav li:after {
      +  color: #0000ff;
      +  content: "|";
      +  padding: 0 2rem;
      +}
      +
      +

      The above example would look like this: +A horizontal navigation list with blue text on grey background.

      +

      To style this example, a new colour for content should be specified for each contrast. The updated CSS could look like this:

      +
      .fl-theme-yb .topnav li:after {
      +  color: #FFFF00; /* yellow for yellow-on-black */
      +}
      +.fl-theme-wb .topnav li:after {
      +  color: #FFFFFF;  /* white for white-on-black */
      +}
      +.fl-theme-by .topnav li:after,
      +.fl-theme-bw .topnav li:after {
      +  color: #000000; /* black for black-on-yellow and black-on-white */
      +}
      +.fl-theme-lgdg .topnav li:after {
      +  color: #bdbdbb;  /* light grey for light grey on dark grey */
      +}
      +
      +

      When properly styled, the content value will change according to the contrast theme. Our example would now look like this:

      +
        +
      • A horizontal navigation list with yellow text on black background.
      • +
      • A horizontal navigation list with white text on black background.
      • +
      • A horizontal navigation list with black text on white background.
      • +
      • A horizontal navigation list with black text on yellow background.
      • +
      • A horizontal navigation list with light gret text on grey background.
      • +
      + +
      +
      + + + +
      + +
      + + +
      + + + + + diff --git a/infusion/development/tutorial-userInterfaceOptions/StyleEffectsAndLegibilityInContrastModes.html b/infusion/development/tutorial-userInterfaceOptions/StyleEffectsAndLegibilityInContrastModes.html new file mode 100644 index 00000000..1399c785 --- /dev/null +++ b/infusion/development/tutorial-userInterfaceOptions/StyleEffectsAndLegibilityInContrastModes.html @@ -0,0 +1,422 @@ + + + + + + Style Effects and Legibility in Contrast Modes | Fluid Infusion + + + + + + + + + + + + + + + + + +
      + + + + + + +
      + +
      + + +
      + + + + +
      +
      + + + + + +
      + + + +
      + +
      + + +
      +
      + +
      + +

      Style Effects and Legibility in Contrast Modes

      + + + + + +
      +

      One of the goals of the contrast themes is to provide legibility and clarity for viewers. Shadows on text or other graphics can provide appealing visual effects, but this can adversely affect legibility for some people. When creating styles for contrast modes, it's important to remember to remove such shadows and other graphical effects.

      +

      Improving Clarity - Removing Drop Shadows

      +
      <button class="idi-prefs-button">preferences</button>
      +
      +
      .idi-prefs-button {
      +    color: #000000;
      +    text-shadow: 0.1rem 0.1rem 0 #FFFFFF;
      +    background-color: #E5E5E5;
      +    background-image: url("images/preferences.png");
      +    background-position: 0.4em 50%;
      +    background-repeat: no-repeat;
      +    width: 8em;
      +}
      +.fl-theme-yb .idi-prefs-button {
      +    text-shadow: none;
      +    border: 0.1rem solid yellow;
      +    background-image: url("images/preferences-yellow.png");
      +}
      +
      +

      This button uses a white drop shadow on the black text to provide an elegant embossed look:

      +

      A button with text label with a shadow effect.

      +

      But such a shadow would be inappropriate for a high contrast theme. In this example (the yellow-on-black theme in this case), the text shadow is removed completely:

      +

      A button with a yellow yellow text label on a black background.

      +

      Another Example - Gradients

      +

      Gradients are often used for visual effects, as well as giving buttons a 3D effect. The example below shows how to use the UI Options contrast class to improve legibility for contrast modes.

      +
      <button class="search-btn">Search</button>
      +
      +
      .search-btn {
      +  background: rgba(70,140,170,1);
      +  background: -moz-linear-gradient(top, rgba(70,140,170,1) 0%, rgba(19,88,118,1) 100%);
      +  background: -webkit-gradient(left top, left bottom, color-stop(0%, rgba(70,140,170,1)), color-stop(100%, rgba(19,88,118,1)));
      +  background: -webkit-linear-gradient(top, rgba(70,140,170,1) 0%, rgba(19,88,118,1) 100%);
      +  background: -ms-linear-gradient(top, rgba(70,140,170,1) 0%, rgba(19,88,118,1) 100%);
      +  background: linear-gradient(to bottom, rgba(70,140,170,1) 0%, rgba(19,88,118,1) 100%);
      +  border: medium none;
      +  box-shadow: 0.1rem 0.1rem 0 #135876 inset, 0.1rem 0.1rem 0 #FFFFFF;
      +  color: #FFFFFF;
      +}
      +.fl-theme-wb .search-btn {
      +  background: #FFFFFF;
      +  border-color: #000000;
      +  color: #000000;
      +  box-shadow: none;
      +}
      +
      +

      In this example, a button was given a gradient effect: +Image of a button with white text label on a shaded blue background.

      +

      The CSS for the high-contrast version (in this example, "white-on-black") simply inverts the basic colour scheme to produce a 'button' effect, removing the gradient, shadow, and forcing the background and border colours to conform to the theme colours. +Image of a button with black text label on a solid white background.

      + +
      +
      + + + +
      + +
      + + +
      + + + + + diff --git a/infusion/development/tutorial-userInterfaceOptions/UserInterfaceOptions.html b/infusion/development/tutorial-userInterfaceOptions/UserInterfaceOptions.html new file mode 100644 index 00000000..01564227 --- /dev/null +++ b/infusion/development/tutorial-userInterfaceOptions/UserInterfaceOptions.html @@ -0,0 +1,568 @@ + + + + + + Setting Up User Interface Options | Fluid Infusion + + + + + + + + + + + + + + + + + +
      + + + + + + +
      + +
      + + +
      + + + + +
      +
      + + + + + +
      + + + +
      + +
      + + +
      +
      + +
      + +

      Setting Up User Interface Options

      + + + + + +
      +

      The User Interface Options (UI Options) component allows users to transform the presentation of the user interface and content resources so that they are personalized to the individual user's needs.

      +

      UI Options does three things:

      +
        +
      • places a preferences editor dialog with a set of adjusters in a collapsible panel at the top of the page, accessible through a button in the upper right corner of the page;
      • +
      • instantiates a cookie-based Settings Store for storing the user's preferences; and
      • +
      • acts upon the user's preferences.
      • +
      +

      Screen shot of the UI Options Component

      +

      This tutorial assumes that:

      +
        +
      • you are already familiar with HTML, Javascript and CSS,
      • +
      • you are familiar with what the UI Options preferences editor is and does, and
      • +
      • now you just want to know how to add it to your website.
      • +
      +

      Scenario

      +

      You're putting together a website that you know will have a diverse audience. You'd like to allow your visitors to customize the presentation of the site to their individual needs, by enlarging the text or increasing the visual contrast, for example. This tutorial will show you how to add the Infusion UI Options component to your site.

      +

      These are the basic steps to add UI Options to your website:

      +
        +
      1. Download and install the Infusion library
      2. +
      3. Prepare your page + +
      4. +
      5. Add dependencies to the page
      6. +
      7. Add the UI Options component
      8. +
      +

      The rest of this tutorial will explain each of these steps in detail.

      +

      Download and install the UI Options library

      +
        +
      1. Download the UI Options library (there is also a minified version UI Options for deployment purposes).
      2. +
      3. Unzip the contents of the downloaded ZIP file to a location within your project. This will result in a new directory infusion.
        Note: In this guide we will use the directory my-project/lib/.
      4. +
      5. Your infusion folder will include a single file containing all of the JavaScript you need (infusion-uiOptions.js), HTML templates, CSS files, and other components to get UI Options to work. You will later link to these files in your HTML files.
      6. +
      7. Now that infusion is in your project directory, you can delete the infusion-uiOptions-2.0.0.zip (or similar name) from your download directory.
      8. +
      +

      Prepare your page

      +

      The Sliding Panel

      +

      The UI Options component includes HTML templates for all the controls, so you don't need to create any HTML for them. You only need to add a small amount of markup to the top of your webpage to tell UI Options where to render itself.

      +

      Insert the following markup at the beginning of your <body> tag:

      +
      <body>
      +    <div class="flc-prefsEditor-separatedPanel fl-prefsEditor-separatedPanel">
      +        <!-- This is the div that will contain the Preference Editor component -->
      +        <div class="flc-slidingPanel-panel flc-prefsEditor-iframe"></div>
      +        <!-- This div is for the sliding panel that shows and hides the Preference Editor controls -->
      +        <div class="fl-panelBar">
      +            <span class="fl-prefsEditor-buttons">
      +                <button id="reset" class="flc-prefsEditor-reset fl-prefsEditor-reset"><span class="fl-icon-undo"></span> Reset</button>
      +                <button id="show-hide" class="flc-slidingPanel-toggleButton fl-prefsEditor-showHide"> Show/Hide</button>
      +            </span>
      +        </div>
      +    </div>
      +
      +    <!-- the rest of your page here -->
      +    <h1>My Website</h1>
      +</body>
      +
      +

      The main <div> in this snippet contains two things:

      +
        +
      1. a <div class="flc-slidingPanel-panel ..."> where an iframe will be inserted, containing the UI Options adjusters, and
      2. +
      3. a <div class="flc-prefsEditor-separatedPanel ..."> where the sliding panel and button will be created.
      4. +
      +

      The elements in this snippet all have particular class names attached to them, and it's important to keep them:

      +
        +
      • the class names starting with flc- are used to identify the elements to UI Options;
      • +
      • the class names starting with fl- are used for visual styling.
      • +
      +

      Save this file to the top directory of your project. If you open this page in your browser now, you'll only see the button in the upper left corner, since we haven't set up the CSS and UI Options isn't present on the page yet:

      +

      Screen shot of the UI Options buttons, unstyled

      +
      Note: It doesn't matter what text you put in the button. The UI Options component will add a label and update it to reflect whether or not the panel is currently open. You can configure the text that the component uses by setting its configuration parameters. Visit Localization in the Preferences Framework.
      +

      The Table of Contents

      +

      One of the UI Options controls allows users to add a Table Of Contents to the top of the page. You need to add a placeholder <nav> to your page for the Table Of Contents. It should have a class of "flc-toc-tocContainer" and should appear after the <div class="flc-prefsEditor-separatedPanel fl-prefsEditor-separatedPanel"> block:

      +
      <body>
      +    <!-- ... -->
      +
      +    <!-- the TOC container should appear after the flc-prefsEditor-separatedPanel div -->
      +    <nav class="flc-toc-tocContainer"> </nav>
      +
      +    <!-- ... -->
      +
      +    <!-- the rest of your page here -->
      +    <h1>My Website</h1>
      +</body>
      +
      +

      We recommend placing <nav class="flc-toc-tocContainer"> near the top of your page so it's visible and easily accessible to keyboard users. You can add additional classes of your own to style the Table Of Contents to fit in with the look of your site.

      +

      Add dependencies to the page

      +
        +
      • the CSS files, and
      • +
      • the main Infusion JavaScript file: infusion-uiOptions.js.
      • +
      +

      In the <head> of your file, link to the CSS and Javascript files using <link> and <script> tags. Make sure to adjust the paths to reflect where you've saved the Infusion package.

      +
      <head>
      +    <!-- CSS files for UI Options-->
      +    <link rel="stylesheet" type="text/css" href="lib/infusion/src/lib/normalize/css/normalize.css" />
      +    <link rel="stylesheet" type="text/css" href="lib/infusion/src/framework/core/css/fluid.css" />
      +    <link rel="stylesheet" type="text/css" href="lib/infusion/src/framework/preferences/css/Enactors.css" />
      +    <link rel="stylesheet" type="text/css" href="lib/infusion/src/framework/preferences/css/PrefsEditor.css" />
      +    <link rel="stylesheet" type="text/css" href="lib/infusion/src/framework/preferences/css/SeparatedPanelPrefsEditor.css" />
      +
      +    <!-- The Infusion Library for UI Options -->
      +    <script type="text/javascript" src="lib/infusion/infusion-uiOptions.js"></script>
      +</head>
      +
      +
      +

      Note: If you are using the minified version of infusion-uiOptions.js (i.e. all of the whitespace removed), you can still debug the code using the provided source map. For more information, visit the Infusion Release Readme.

      +
      +

      If you open this page in your browser now, you'll only see that the button has been styled differently: it is in the upper right corner and the font has been changed. You can also see the bar of the sliding panel. The button still doesn't do anything, since we still haven't added the UI Options component to the page.

      +

      Screen shot of the UI Options buttons, styled

      +

      Add the UI Options component

      +

      Add the UI Options component to your page using the <script> tag as seen in the following example. This <script> block should appear after the flc-prefsEditor-separatedPanel <div> and after the <nav class="flc-toc-tocContainer">. In this example, we place the <script> at the end of the webpage before the closing </body> tag.

      +
      <body>
      +    <!-- ... -->
      +    <!-- the rest of your page here -->
      +    <h1>My Website</h1>
      +    <!-- ... -->
      +
      +    <!-- Initialize the UI Options Javascript -->
      +    <script type="text/javascript">
      +        $(document).ready(function () {
      +            fluid.uiOptions.prefsEditor(".flc-prefsEditor-separatedPanel", {
      +                tocTemplate: "lib/infusion/src/components/tableOfContents/html/TableOfContents.html",
      +                terms: {
      +                    templatePrefix: "lib/infusion/src/framework/preferences/html",
      +                    messagePrefix: "lib/infusion/src/framework/preferences/messages"
      +                }
      +            });
      +        })
      +    </script>
      +</body>
      +
      +

      This script calls the fluid.uiOptions.prefsEditor() function to create the component. The function takes two arguments:

      +
        +
      1. the selector of the container for the component, and
      2. +
      3. an options object for configuring the component.
      4. +
      +

      The selector for our UI Options will be the classname flc-prefsEditor-separatedPanel of the <div> we created earlier.

      +

      The options tell the component about three things:

      +
        +
      • where to find the Table of Contents template: the tocTemplate option,
      • +
      • where to find the UI Options HTML templates included in Infusion: the terms.templatePrefix option, and
      • +
      • where to find the message bundles, the strings that will be used in the interface: the terms.messagePrefix option. In the example, the terms.messagePrefix option is referencing the default strings provided by the component.
      • +
      +

      Complete Example

      +

      Here's the complete example from start to finish. This example assumes the Infusion UI Options library is located in the lib/infusion/ directory.

      +
      <!DOCTYPE html>
      +<html lang="en">
      +    <head>
      +        <!-- CSS files for UI Options-->
      +        <link rel="stylesheet" type="text/css" href="lib/infusion/src/lib/normalize/css/normalize.css" />
      +        <link rel="stylesheet" type="text/css" href="lib/infusion/src/framework/core/css/fluid.css" />
      +        <link rel="stylesheet" type="text/css" href="lib/infusion/src/framework/preferences/css/Enactors.css" />
      +        <link rel="stylesheet" type="text/css" href="lib/infusion/src/framework/preferences/css/PrefsEditor.css" />
      +        <link rel="stylesheet" type="text/css" href="lib/infusion/src/framework/preferences/css/SeparatedPanelPrefsEditor.css" />
      +
      +        <!-- The Infusion Library for UI Options -->
      +        <script type="text/javascript" src="lib/infusion/infusion-uiOptions.js"></script>
      +    </head>
      +
      +    <body>
      +        <div class="flc-prefsEditor-separatedPanel fl-prefsEditor-separatedPanel">
      +            <!-- This is the div that will contain the Preference Editor component -->
      +            <div class="flc-slidingPanel-panel flc-prefsEditor-iframe"></div>
      +            <!-- This div is for the sliding panel that shows and hides the Preference Editor controls -->
      +            <div class="fl-panelBar">
      +                <span class="fl-prefsEditor-buttons">
      +                    <button id="reset" class="flc-prefsEditor-reset fl-prefsEditor-reset"><span class="fl-icon-undo"></span> Reset</button>
      +                    <button id="show-hide" class="flc-slidingPanel-toggleButton fl-prefsEditor-showHide"> Show/Hide</button>
      +                </span>
      +            </div>
      +        </div>
      +
      +        <nav class="flc-toc-tocContainer"> </nav>
      +
      +        <!-- the rest of your page here -->
      +        <h1>My Website</h1>
      +
      +        <!-- Initialize the UI Options Javascript -->
      +        <script type="text/javascript">
      +            $(document).ready(function () {
      +                fluid.uiOptions.prefsEditor(".flc-prefsEditor-separatedPanel", {
      +                    tocTemplate: "lib/infusion/src/components/tableOfContents/html/TableOfContents.html",
      +                    terms: {
      +                        templatePrefix: "lib/infusion/src/framework/preferences/html",
      +                        messagePrefix: "lib/infusion/src/framework/preferences/messages"
      +                    }
      +                });
      +            })
      +        </script>
      +    </body>
      +</html>
      +
      +

      Congratulations!

      +

      UI Options is now fully functional on your page. Now, when you load your page in your browser and click on the "Show Display Preferences" button, you will see the UI Options controls, as shown in the image below. If you adjust the controls, you will see your changes being applied to the page.

      +

      Screen shot of UI Options

      +

      You may have to adjust your site's styles to work properly with UI Options. The "Working With User Interface Options" can help you get started.

      + +
      +
      + + + +
      + +
      + + +
      + + + + + diff --git a/infusion/development/tutorial-userInterfaceOptions/UsingImagesInContrastModes.html b/infusion/development/tutorial-userInterfaceOptions/UsingImagesInContrastModes.html new file mode 100644 index 00000000..59752355 --- /dev/null +++ b/infusion/development/tutorial-userInterfaceOptions/UsingImagesInContrastModes.html @@ -0,0 +1,496 @@ + + + + + + Using Images in Contrast Modes | Fluid Infusion + + + + + + + + + + + + + + + + + +
      + + + + + + +
      + +
      + + +
      + + + + +
      +
      + + + + + +
      + + + +
      + +
      + + +
      +
      + +
      + +

      Using Images in Contrast Modes

      + + + + + +
      +

      The User Interface Options component allows users to easily transform pages into one of several contrast versions. The results of this transformation are much more complete if any logos, images, and other graphics are also converted to match the contrast scheme.

      +

      If you are integrating UI Options into your site, we highly recommend you create contrast versions of your site logo, and any other similarly static image. This page is divided into two sections:

      +
        +
      1. Creating contrast versions of your graphics using Photoshop (or similar image editing software), and
      2. +
      3. Using CSS to switch between different contrast versions of the images.
      4. +
      +

      A logo appearing properly with a yellow-on-black contrast theme

      +

      Converting Images With Transparency

      +

      UI Options provides four high contrast themes:

      +
        +
      • yellow (#FFFF00) on black (#000000)
      • +
      • white (#FFFFFF) on black (#000000)
      • +
      • black (#000000) on yellow (#FFFF00)
      • +
      • black (#000000) on white (#FFFFFF)
      • +
      • light grey (#BDBDBB) on dark grey (#555555)
      • +
      +

      These themes would require different versions of images and graphics to match. To do this you will need to use image editing software like Photoshop to change the colours of the images to match the different contrast themes.

      +

      The simplest images to convert are ones that already have a transparent background. Creating contrast versions involves 'locking' the transparent pixels so they stay transparent and then painting over everything not-transparent with the desired colour.

      +

      Creating Contrast Images in Photoshop

      +

      Step 1 - Lock the transparent pixels

      +

      In Photoshop, you can lock the transparent pixels in one of at least two ways:

      +
        +
      1. Type the '/' key, or
      2. +
      3. In the "Layers" panel, click the 'lock pixels button (see image below).
      4. +
      +

      Image of the Photoshop Layers panel with the mouse cursor hovering over the Lock transparent pixels button

      +

      Step 2 - Fill the rest of the image with the desired colour

      +

      In Photoshop, there are several ways to fill the image with a single colour:

      +
        +
      1. Type Alt + Delete on Mac, or Alt + Backspace on Windows to fill the image with the current foreground colour, or
      2. +
      3. Type Command + Delete on Mac, or Command + Backspace on Windows to fill the image with the current background colour, or
      4. +
      5. Choose a paintbrush and a foreground colour, and drag the cursor over the image.
      6. +
      +

      Step 3 - Save the image for the web

      +
        +
      • On Mac: Type Shift + Alt + Command + S
      • +
      • On Windows: Type Shift + Alt + Ctrl + S
      • +
      +

      Inverting Colours for Quick Black-White and White-Black Images

      +

      If you've created a black (or white) image, you can invert the colour to convert it to white (or black) by typing Command + I on Mac, or Ctrl + I on Windows.

      +

      Using CSS to Switch Web Graphics for Contrast Modes

      +

      While web images and graphics are typically implemented using <img> tags, using background images instead makes it very simple to substitute a different version of the image when a high contrast theme is used.

      +

      When to Use Background Images and <img> Tags

      +

      Images on web pages are often implemented by using <img> tags. However, the background CSS property for images may be advantageous.

      +

      To help decide whether to use an <img> element or a background image, a good rule of thumb would be to use:

      +
        +
      • <img> tags if the graphic is important as content (i.e. a graph, photo, or a diagram).
      • +
      • CSS background property for graphics that are cosmetic in nature, such as icons and logos.
      • +
      +

      The advantage of using background is that assistive technologies (like screen readers) will ignore them since it is considered as cosmetic. This allows you to declutter and simplify the user experience by not having extraneous content.

      +
      Note: UI Options changes the presentation of content by using CSS. Therefore images implemented with <img> HTML elements are not easily modified using CSS. It is possible to achieve a similar contrast effect by using CSS filters, but the results may not match the contrast mode.
      +

      Example Contrast Image Switching

      +

      The following example shows how CSS can be used to switch background images with contrast versions.

      +

      HTML:

      +
      <a class="site-logo" title="Example Company" href="http://www.example.com">
      +    Example Company
      +</a>
      +
      +

      CSS:

      +
      .site-logo {
      +    background-image: url("images/logo.png");
      +    background-repeat: no-repeat;
      +}
      +/* white logo for white-on-black theme */
      +.fl-theme-wb .site-logo {
      +    color: #fff;
      +    background-image: url("images/logo-white.png");
      +}
      +/* yellow logo for yellow-on-black theme */
      +.fl-theme-yb .site-logo {
      +    color: #ff0;
      +    background-image: url("images/logo-yellow.png");
      +}
      +/* black logo for black-on-white and black-on-yellow themes */
      +.fl-theme-bw .site-logo,
      +.fl-theme-by .site-logo {
      +    color: #000;
      +    background-image: url("images/logo-black.png");
      +}
      +/* light grey logo for light grey and dark grey theme */
      +.fl-theme-lgdg .site-logo {
      +    color: #bdbdbb;
      +    background-image: url("images/logo-grey.png");
      +}
      +
      +

      The logo in the above example is implemented as a background image on a link to the site's home page. The contrast images are substituted by using the same selector (i.e. .site-logo) prefaced with the theme class (i.e. .fl-theme-wb), and specifying only the new image file. All other styles remain the same.

      +

      When a user selects a contrast theme using UI Options, the theme class will be added to the <body> of the document and the high contrast logo will automatically be loaded.

      +

      It's worth noting that the images are implemented using a transparent background so that a single logo can be used for different contrast themes. For example, a black logo on a transparent background can be used for both the black-on-white theme and the black-on-yellow theme.

      +

      Another Example of Contrast Image Switching

      +

      The following example shows how icons on navigation links can be changed to contrast versions. The approach here is like the previous example.

      +

      HTML

      +
      <nav>
      +  <ul>
      +    <li><a href="about" class="about">About</a></li>
      +    <li><a href="people" class="people currentPage">People</a></li>
      +    <li><a href="news" class="news">News</a></li>
      +  </ul>
      +</nav>
      +
      +
      .people.currentPage {
      +  background-image: url("images/people-white.png");
      +  background-position: 0.3em 50%;
      +  background-repeat: no-repeat;
      +  background-size: auto 75%;
      +  padding-left: 2em;
      +  background-color: #0076B0;
      +  color: #FFFFFF;
      +}
      +.fl-theme-by .people.currentPage {
      +    background-image: url("images/people-yellow.png");
      +}
      +.fl-theme-yb .idi-people.currentPage,
      +.fl-theme-wb .idi-people.currentPage {
      +    background-image: url("images/people-black.png");
      +}
      +.fl-theme-lgdg .idi-people.currentPage {
      +    background-image: url("images/people-grey.png");
      +}
      +
      +

      In this example, the 'current page' tab has an inverted colour scheme. The default colour would appear as shown in the following image: +A graphical icon in its default colour of blue on white.

      +

      The high contrast version of the theme inverts the colour, so in the "black-on-white" theme, for example, the graphic itself should appear white-on-black to keep with the original inverted style: +A graphical icon in black on white contrast theme.

      + +
      +
      + + + +
      + +
      + + +
      + + + + + diff --git a/infusion/development/tutorial-userInterfaceOptions/WorkingWithUserInterfaceOptions.html b/infusion/development/tutorial-userInterfaceOptions/WorkingWithUserInterfaceOptions.html new file mode 100644 index 00000000..02d1552d --- /dev/null +++ b/infusion/development/tutorial-userInterfaceOptions/WorkingWithUserInterfaceOptions.html @@ -0,0 +1,527 @@ + + + + + + Working with UI Options | Fluid Infusion + + + + + + + + + + + + + + + + + +
      + + + + + + +
      + +
      + + +
      + + + + +
      +
      + + + + + +
      + + + +
      + +
      + + +
      +
      + +
      + +

      Working with UI Options

      + + + + + +
      +

      Once User Interface Options or a Preferences Editor is incorporated into your website (see the User Interface Options tutorial for installation procedure), it's important to ensure that the site transforms and responds correctly.

      +

      This documentation assumes you are somewhat comfortable with writing and editing CSS.

      +

      Contrast Themes

      +

      UI Options adds support for high contrast themes by transforming the colours on your website. Since contrast themes transform almost all aspects of the webpage, it's probable there will be some styling issues initially. This section aims to help you fix some common issues.

      +

      UI Options transforms the user interface into one of four high contrast or one low contrast colour combinations:

      +
        +
      • high contrast +
          +
        • black on white
        • +
        • white on black
        • +
        • black on yellow
        • +
        • yellow on black
        • +
        +
      • +
      • low contrast +
          +
        • light grey on dark grey
        • +
        +
      • +
      +

      The themes attempt to remove any other colours from the interface, along with gradients, shadows, background images, and other styling that may reduce legibility. This type of contrast interface can be extremely helpful for users with different forms vision needs.

      +

      UI Options applies contrast themes by adding a special class to the <body> element of the document and providing styles that are scoped to that class. You will likely need to create a few more special classes, scoped to the theme, for some areas of your site.

      +

      To help you in creating a website that works well with UI Options, here are a few basic guidelines:

      + +

      How to define special styles for contrast themes

      +

      If something doesn't transform into contrast mode automatically when using the contrast adjustment, here's how you define styles to address those cases:

      +

      Scope your styles to the theme name

      +

      UI Options will add the theme name as a class to the <body> element.

      +
        +
      • yellow (#FFFF00) on black (#000000): <body class="fl-theme-yb">
      • +
      • white (#FFFFFF) on black (#000000): <body class="fl-theme-wb">
      • +
      • black (#000000) on yellow (#FFFF00): <body class="fl-theme-by">
      • +
      • black (#000000) on white (#FFFFFF): <body class="fl-theme-bw">
      • +
      • light grey (#BDBDBB) on dark grey (#555555): <body class="fl-theme-lgdg">
      • +
      +

      Scope your styles using the class name as shown in the following example. This example is for the yellow on black theme, which uses the class name fl-theme-yb:

      +
      <body class="fl-theme-yb">
      +    <div class="toolbar">
      +        <a class="helpLink">Help</a>
      +    </div>
      +</body>
      +
      +
      /* default style for button */
      +.toolbar .helpLink {
      +    outline: solid 0.2rem #008cba;
      +    color: #008cba;
      +    background: #efefef;
      +    text-shadow: 1px 1px 0 #FFFFFF;
      +}
      +
      +/* high contrast for button */
      +.fl-theme-yb .toolbar .helpLink {
      +    outline: solid 0.2rem #ff0;
      +    color: #ff0;
      +    background: #000;
      +    text-shadow: none;
      +}
      +
      +
      Note: +

      + In some cases you may have to use the !important rule with your contrast styles to make them work. For example: color: #ff0 !important;. +

      +

      + Using !important should be used carefully as documented in this article on CSS-tricks.com. +

      +
      +

      Make sure you have styles for all the themes

      +

      UI Options defines five contrast themes:

      +
        +
      • yellow (#FFFF00) on black (#000000): theme class name fl-theme-yb
      • +
      • white (#FFFFFF) on black (#000000): theme class name fl-theme-wb
      • +
      • black (#000000) on yellow (#FFFF00): theme class name fl-theme-by
      • +
      • black (#000000) on white (#FFFFFF): theme class name fl-theme-bw
      • +
      • light grey (#BDBDBB) on dark grey (#555555): theme class name fl-theme-lgdg
      • +
      +

      If you need to define a style for a contrast theme, you'll most likely need to define styles all the themes. The styles will likely look very similar to each other, with differences only related to the colours:

      +
      /* contrast background icon for button. these images have a transparent background */
      +.fl-theme-yb .toolbar .saveButton { background-image: url('images/save-yellow.png'); }
      +.fl-theme-wb .toolbar .saveButton { background-image: url('images/save-white.png'); }
      +.fl-theme-by .toolbar .saveButton,
      +.fl-theme-bw .toolbar .saveButton { background-image: url('images/save-black.png'); }
      +.fl-theme-lgdg .toolbar .saveButton { background-image: url('images/save-grey.png'); }
      +
      +

      Creating contrast styles can be simplified by mix-ins if you are using a CSS stylesheet language like Sass, Stylus, or LESS.

      +

      Use background images when possible

      +

      If you're using images to give your buttons or menu items a unique look, follow these guidelines:

      +
        +
      • use semantically appropriate tags for your graphics. For example, images important to your content should use <img>, and cosmetic images can be implemented as background images in CSS. UI Options can replace background images using CSS only. + +
      • +
      • ensure background images are sized to scale to fit their container (for more info, see Background Size on Mozilla Developer) +
          +
        • contain and cover preserve proportions of image
        • +
        • a percentage will stretch image
        • +
        • use background-size: 100%;
        • +
        +
      • +
      • don't build the label text into the image, instead consider using <figure> elements with a corresponding <figcaption> tag. See <figure> on Mozilla Developer.
      • +
      • if the 'image' is a gradient, consider using CSS gradients. See Style Effects and Legibility in Contrast Modes for more information.
      • +
      +

      Testing Your Changes With UI Options

      +

      Enlarge the font

      +

      Open the UI Options interface and use the "Text Size" control to enlarge the font. Check the site:

      +
        +
      • does the text enlarge correctly?
      • +
      • is the layout of the entire page still reasonable?
      • +
      +

      To help make your webpage respond better with UI Options, see the suggestions in this article: "How to make your page more responsive".

      +

      Increase the line spacing

      +

      Open the UI Options interface and use the "Line Spacing" control to increase the line spacing.

      +
        +
      • If you use a pixel value, it will not scale when User Interface Options is used to increase line height.
      • +
      • If you use em or percentages, the value not be inherited correctly by elements inside your element.
      • +
      +

      The safest way to use line-height is as a unitless number, which will multiply the element's font size. This will also allow line heights to be adjusted by User Interface Options correctly. For more information, see the MDN documentation on line-height.

      +

      If you find that the layout of your website does not lay out properly, or does not scale according to the text size, you may need to switch to using rem or em values instead.

      +

      Try each of the themes

      +

      Open the UI Options interface and use the "Colour & Contrast" control to select each of the contrast themes. Check the site:

      +
        +
      • is all of the text in the correct colours?
      • +
      • do buttons and links appear in the selected contrast?
      • +
      • do icons and logos appear in the selected contrast?
      • +
      • does anything still have shadows or gradients in the wrong colours?
      • +
      • are hover and focus styles reasonable?
      • +
      +

      In the cases where the contrast isn't being applied, you will need to create specific CSS rules to fix them. Style Effects and Legibility in Contrast Modes describes the general approach of using CSS to fix contrast styling issues.

      +

      Try each of the fonts

      +

      Open the UI Options interface and use the "Text Style" control and select each of the different font styles. Check the site:

      +
        +
      • is all of the text in the correct font?
      • +
      • is the layout of the page still reasonable?
      • +
      • some fonts take up more room than others, and sometimes selecting a different font might affect the overall layout of the page.
      • +
      +

      To fix font related issues, you may have to fix styling issues related to overflow, text wrapping / breaking, margins, and padding.

      + +

      Open the UI Options interface and use the controls under "Enhance Inputs" to enhance links and buttons. Check the site:

      +
        +
      • are links underlined, bolded and enlarged?
      • +
      • are inputs (such as text fields and buttons) enlarged?
      • +
      +

      A common issue occurs when links are styled to appear like buttons. UI Options will treat them as links despite them looking like buttons. Consider using the appropriate semantic markup for links and buttons instead. Links "take you somewhere", whereas buttons "do something". For an explanation of buttons vs. links, see "When to Use the Button Element" on CSS-Tricks.com.

      +

      Check Table of Contents

      +

      Open the UI Options interface and use the control under "Table of Contents" to show the table of contents. Check the site:

      +
        +
      • are all Headers appearing in the table of contents?
      • +
      • do all links in the table of contents go to the proper place?
      • +
      • are Headers marked as "ignored" correctly omitted from the table of contents?
      • +
      + +
      +
      + + + +
      + +
      + + +
      + + + + + diff --git a/infusion/development/tutorial-usingStringTemplates/UsingStringTemplates.html b/infusion/development/tutorial-usingStringTemplates/UsingStringTemplates.html new file mode 100644 index 00000000..ba66fdb7 --- /dev/null +++ b/infusion/development/tutorial-usingStringTemplates/UsingStringTemplates.html @@ -0,0 +1,625 @@ + + + + + + Using String Templates | Fluid Infusion + + + + + + + + + + + + + + + + + +
      + + + + + + +
      + +
      + + +
      + + + + +
      +
      + + + + + +
      + + + +
      + +
      + + +
      +
      + +
      + +

      Using String Templates

      + + + + + +
      +

      In the Infusion Preference Framework, a "string template" is a mechanism for resolving (interpolating) variables within a string.

      +

      This tutorial covers why you might use string templates, and gives a basic example of how to use string templates to:

      +
        +
      1. Define "templates" (strings containing variables).
      2. +
      3. Define "terms", variables that will be replaced in templates.
      4. +
      5. Override "terms" and "templates" from a child component.
      6. +
      +

      This tutorial assumes that you are already familiar with Infusion, and in particular with:

      +
        +
      1. Defining components
      2. +
      3. Defining invokers
      4. +
      5. Defining and using expanders
      6. +
      +

      Why do we need "string templates"?

      +

      Let's talk about a common use case, in which we want to describe the location of files (configuration files, etc.) within a component's options. If we have a single file location, a full path is relatively easy to update.

      +

      If we have a long list of paths, people who wish to extend or even configure our component must laboriously copy the full list of file paths and customize each one. This is likely to lead to "copy and paste" errors and unexpected behavior. +It would be better if users could specify their own home directory and have all of our file paths work relative to that new location.

      +

      String templates give us the ability to describe things like file paths using values like %myPath/myFilename. +The percent values are placeholders for variable content that is replaced using a call to fluid.stringTemplate with the right options.

      +

      Writing a component that uses fluid.stringTemplate.

      +

      Here is a simple component that has a templates block (containing strings with variables) and a terms block (containing a map of variable names and replacement values). These names are arbitrary, you can name each of these whatever is most meaningful for your component.

      +

      In this example, we've used an expander to provide "convenience" variables with the transformed values:

      +
        "use strict";
      +  // special require form that permits use in browser as well as node.js
      +  var fluid = fluid || require("infusion");
      +  var gpii  = fluid.registerNamespace("gpii");
      +
      +  fluid.defaults("gpii.sandbox.variables.simpler", {
      +      gradeNames: "fluid.component",
      +      transformed: {
      +          expander: {
      +              func: "{that}.parseTemplates"
      +          }
      +      },
      +      terms: {
      +          one: "base one",
      +          two: "base two"
      +      },
      +      templates: {
      +          one: "The term named 'one' is set to '%one'.",
      +          two: "The term named 'two' is set to '%two'."
      +      },
      +      invokers: {
      +          parseTemplates: {
      +              funcName: "fluid.transform",
      +              args: ["{that}.options.templates", "{that}.transformTemplate"]
      +          },
      +          transformTemplate: {
      +              funcName: "fluid.stringTemplate",
      +              args: ["{arguments}.0", "{that}.options.terms"]
      +          }
      +      }
      +  });
      +
      +  var simpler = gpii.sandbox.variables.simpler();
      +  console.log("transformed options:\n" + JSON.stringify(simpler.options.transformed, null, 2));
      +
      +

      That code produces output like the following:

      +
        transformed options:
      +  {
      +    "one": "The term named 'one' is set to 'base one'.",
      +    "two": "The term named 'two' is set to 'base two'."
      +  }
      +
      +

      What makes this all work is our invokers block:

      +
      {
      +    invokers: {
      +        parseTemplates: {
      +            funcName: "fluid.transform",
      +            args: ["{that}.options.templates", "{that}.transformTemplate"]
      +        },
      +        transformTemplate: {
      +            funcName: "fluid.stringTemplate",
      +            args: ["{arguments}.0", "{that}.options.terms"]
      +        }
      +    }
      +}
      +
      +

      The parseTemplates invoker calls fluid.transform, which runs a single function against every item in a map and returns an map containing the transformed results. +We have configured fluid.transform to use our transformTemplate invoker to process each value in our map. +The transformTemplate invoker calls fluid.stringTemplate with a list of arguments. +The first argument is expected to point to an array of templates, and the second argument is expected to point to a map of variable names and replacement values.

      +

      In our case, the map of variable names and replacement values is already contained in {that}.options.terms. +The first argument is supplied byfluid.transform, which will pass the value of each array member to our invoker. +Since fluid.transform will call our invoker with a single argument, we can use {arguments}.0 to refer to the information passed by fluid.transform in our list of arguments.

      +

      The final piece is handled by an expander block.

      +
      {
      +    transformed: {
      +        expander: {
      +            func: "{that}.parseTemplates"
      +        }
      +    }
      +}
      +
      +

      The expander block will be replaced with the value returned by our parseTemplates invoker, and we will then have sensible output that we can work with in our own functions and IoC references.

      +

      Overriding options from a child component

      +

      In the next example, we will look at creating a child component that overrides some of our variables in its default configuration. Here's the updated code:

      +
        "use strict";
      +  var fluid = fluid || require("infusion");
      +  var gpii  = fluid.registerNamespace("gpii");
      +
      +  fluid.defaults("gpii.sandbox.variables.base", {
      +      gradeNames: "fluid.component",
      +      terms: {
      +          one: "base one",
      +          two: "base two"
      +      },
      +      templates: {
      +          one: "The term named 'one' is set to '%one'.",
      +          two: "The term named 'two' is set to '%two'."
      +      },
      +      listeners: {
      +          "onCreate.log": [
      +              {
      +                  funcName: "gpii.sandbox.variables.base.logState",
      +                  args:     ["{that}", {expander: {func: "{that}.parseTemplates"}}]
      +              }
      +          ]
      +      },
      +      invokers: {
      +          parseTemplates: {
      +              funcName: "fluid.transform",
      +              args: ["{that}.options.templates", "{that}.transformTemplate"]
      +          },
      +          transformTemplate: {
      +              funcName: "fluid.stringTemplate",
      +              args: ["{arguments}.0", "{that}.options.terms"]
      +          }
      +      }
      +  });
      +
      +  gpii.sandbox.variables.base.logState = function (that, parsed) {
      +      console.log("\nMy friends call me '" + that.nickName + "'...");
      +      console.log("terms -> one: " + that.options.terms.one);
      +      console.log("terms -> two: " + that.options.terms.two);
      +      console.log("template one: " + that.options.templates.one);
      +      console.log("template two: " + that.options.templates.two);
      +      console.log("one, parsed : " + parsed.one);
      +      console.log("two, parsed : " + parsed.two);
      +  };
      +
      +  fluid.defaults("gpii.sandbox.variables.child", {
      +      gradeNames: ["gpii.sandbox.variables.base"],
      +      templates: {
      +          one: "The term named one is set to '%one', also, I am a custom template."
      +      },
      +      terms: {
      +          two: "child two"
      +      }
      +  });
      +
      +  gpii.sandbox.variables.child();
      +
      +

      For this example, we're using our own invoker (logState) to display a range of variables. +The logState function is called when our component is created, as configured in our listeners block:

      +
      {
      +    listeners: {
      +        "onCreate.log": {
      +            funcName: "gpii.sandbox.variables.base.logState",
      +            args:     ["{that}", {expander: {func: "{that}.parseTemplates"}}]
      +        }
      +    }
      +}
      +
      +

      We are calling our logState function directly, with a full list of arguments (we could also have defined an invoker). Again, we used an expander to call parseTemplates, but logState doesn't know about or care about that part of the process. +It just ends up with a map of transformed values.

      +

      We also added a child component, gpii.sandbox.variables.child. We have overridden one of the terms and one of the templates. This code produces output like:

      +
        My friends call me 'child'...
      +  terms -> one: base one
      +  terms -> two: child two
      +  template one: The term named one is set to '%one', also, I am a custom template.
      +  template two: The term named 'two' is set to '%two'.
      +  one, parsed : The term named one is set to 'base one', also, I am a custom template.
      +  two, parsed : The term named 'two' is set to 'child two'.
      +
      +

      We could also have created an instance of the parent variable using code like:

      +
      gpii.sandbox.variables.base({
      +    templates: {
      +        one: "The term named one is set to '%one', also, I am a custom template."
      +    },
      +    terms: {
      +        two: "configured two"
      +    }
      +});
      +
      +

      This would product output like:

      +
        My friends call me 'base'...
      +  terms -> one: base one
      +  terms -> two: configured two
      +  template one: The term named one is set to '%one', also, I am a custom template.
      +  template two: The term named 'two' is set to '%two'.
      +  one, parsed : The term named one is set to 'base one', also, I am a custom template.
      +  two, parsed : The term named 'two' is set to 'configured two'.
      +
      +

      This should give you a good idea how to extend or adapt existing components that use string templates.

      +

      Working with empty values

      +

      It is important to know what happens when a term is missing or has no value. Here's a quick example that covers a few common problems.

      +
        "use strict";
      +  var fluid = fluid || require("infusion");
      +  var gpii  = fluid.registerNamespace("gpii");
      +
      +  fluid.registerNamespace("gpii.sandbox.variables.empty");
      +  fluid.defaults("gpii.sandbox.variables.empty", {
      +      gradeNames: "fluid.component",
      +      transformed: {
      +          expander: {
      +              func: "{that}.parseTemplates"
      +          }
      +      },
      +      terms: {
      +          one: "value one",
      +          two: "value two"
      +      },
      +      templates: {
      +          one:   "The term named 'one' is set to '%one'.",
      +          two:   "The term named 'two' is set to '%two'.",
      +          three: "The term named 'three' is set to '%three'."
      +      },
      +      invokers: {
      +          parseTemplates: {
      +              funcName: "fluid.transform",
      +              args: ["{that}.options.templates", "{that}.transformTemplate"]
      +          },
      +          transformTemplate: {
      +              funcName: "fluid.stringTemplate",
      +              args: ["{arguments}.0", "{that}.options.terms"]
      +          }
      +      }
      +  });
      +
      +  var simpler = gpii.sandbox.variables.empty({
      +      terms: {
      +          one: null,
      +          two: "{empty}.options.bad.reference"
      +      }
      +  });
      +  console.log("transformed options:\n" + JSON.stringify(simpler.options.transformed, null, 2));
      +
      +

      The output returned is:

      +
        transformed options:
      +  {
      +    "one": "The term named 'one' is set to 'null'.",
      +    "two": "The term named 'two' is set to 'value two'.",
      +    "three": "The term named 'three' is set to '%three'."
      +  }
      +
      +

      We directly set the value of the term one to null, and that value was displayed in the transformed results, just as it would if we used string concatenation with a null value.

      +

      Our configuration attempted to use a (bad) IoC reference to replace the value of the term two. +Since the reference was not resolved, the default value from our fluid.defaults was used instead.

      +

      There is no term defined that corresponds to the template three. Variables with no corresponding term are left as raw percent references. +You can use the percent operator in templates without escaping it, but be aware that if anyone adds a term that matches the value after the percent sign, the results may be unexpected.

      +

      If you're having trouble with your transformed output, this example will hopefully help you troubleshoot further.

      + +
      +
      + + + +
      + +
      + + +
      + + + + + diff --git a/infusion/index.html b/infusion/index.html new file mode 100644 index 00000000..45ad5ce4 --- /dev/null +++ b/infusion/index.html @@ -0,0 +1,9 @@ + + + + + Redirect + + + +

r{ZX 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 literal 0 HcmV?d00001 diff --git a/infusion/development/fonts/OpenSans-ExtraBold.ttf b/infusion/development/fonts/OpenSans-ExtraBold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..21f6f84a0799946fc4ae02c52b27e61c3762c745 GIT binary patch literal 222584 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