From c558848296f81ed57b7aed45b215524756610a4f Mon Sep 17 00:00:00 2001 From: MuK IT GmbH Date: Wed, 6 Mar 2019 00:31:44 +0000 Subject: [PATCH] publish muk_web_preview_image - 12.0 --- muk_web_preview_image/LICENSE | 619 ++++ muk_web_preview_image/README.rst | 128 + muk_web_preview_image/__init__.py | 18 + muk_web_preview_image/__manifest__.py | 51 + muk_web_preview_image/doc/changelog.rst | 14 + muk_web_preview_image/doc/index.rst | 128 + muk_web_preview_image/i18n/de.po | 16 + muk_web_preview_image/i18n/es.po | 16 + muk_web_preview_image/i18n/fr.po | 16 + .../i18n/muk_web_preview_image.pot | 16 + muk_web_preview_image/i18n/nl.po | 16 + .../static/description/banner.png | Bin 0 -> 108968 bytes .../static/description/icon.png | Bin 0 -> 10539 bytes .../static/description/icon.svg | 1 + .../static/description/index.html | 157 + .../static/description/logo.png | Bin 0 -> 38064 bytes .../static/description/preview.png | Bin 0 -> 33203 bytes .../static/description/screenshot.png | Bin 0 -> 54217 bytes .../description/service_customization.png | Bin 0 -> 27452 bytes .../description/service_development.png | Bin 0 -> 28929 bytes .../description/service_implementation.png | Bin 0 -> 26148 bytes .../description/service_integration.png | Bin 0 -> 24862 bytes .../static/description/service_support.png | Bin 0 -> 24150 bytes .../static/lib/svg-pan-zoom/svg-pan-zoom.js | 637 ++++ .../static/lib/viewer/jquery-viewer.js | 75 + .../static/lib/viewer/viewer.css | 450 +++ .../static/lib/viewer/viewer.js | 3020 +++++++++++++++++ muk_web_preview_image/static/src/js/image.js | 92 + muk_web_preview_image/static/src/js/vector.js | 94 + .../static/src/scss/image.scss | 39 + .../static/src/scss/vector.scss | 41 + .../static/src/xml/image.xml | 30 + .../static/src/xml/vector.xml | 44 + muk_web_preview_image/template/assets.xml | 31 + 34 files changed, 5749 insertions(+) create mode 100644 muk_web_preview_image/LICENSE create mode 100644 muk_web_preview_image/README.rst create mode 100644 muk_web_preview_image/__init__.py create mode 100644 muk_web_preview_image/__manifest__.py create mode 100644 muk_web_preview_image/doc/changelog.rst create mode 100644 muk_web_preview_image/doc/index.rst create mode 100644 muk_web_preview_image/i18n/de.po create mode 100644 muk_web_preview_image/i18n/es.po create mode 100644 muk_web_preview_image/i18n/fr.po create mode 100644 muk_web_preview_image/i18n/muk_web_preview_image.pot create mode 100644 muk_web_preview_image/i18n/nl.po create mode 100644 muk_web_preview_image/static/description/banner.png create mode 100644 muk_web_preview_image/static/description/icon.png create mode 100644 muk_web_preview_image/static/description/icon.svg create mode 100644 muk_web_preview_image/static/description/index.html create mode 100644 muk_web_preview_image/static/description/logo.png create mode 100644 muk_web_preview_image/static/description/preview.png create mode 100644 muk_web_preview_image/static/description/screenshot.png create mode 100644 muk_web_preview_image/static/description/service_customization.png create mode 100644 muk_web_preview_image/static/description/service_development.png create mode 100644 muk_web_preview_image/static/description/service_implementation.png create mode 100644 muk_web_preview_image/static/description/service_integration.png create mode 100644 muk_web_preview_image/static/description/service_support.png create mode 100644 muk_web_preview_image/static/lib/svg-pan-zoom/svg-pan-zoom.js create mode 100644 muk_web_preview_image/static/lib/viewer/jquery-viewer.js create mode 100644 muk_web_preview_image/static/lib/viewer/viewer.css create mode 100644 muk_web_preview_image/static/lib/viewer/viewer.js create mode 100644 muk_web_preview_image/static/src/js/image.js create mode 100644 muk_web_preview_image/static/src/js/vector.js create mode 100644 muk_web_preview_image/static/src/scss/image.scss create mode 100644 muk_web_preview_image/static/src/scss/vector.scss create mode 100644 muk_web_preview_image/static/src/xml/image.xml create mode 100644 muk_web_preview_image/static/src/xml/vector.xml create mode 100644 muk_web_preview_image/template/assets.xml diff --git a/muk_web_preview_image/LICENSE b/muk_web_preview_image/LICENSE new file mode 100644 index 0000000..faf7bf4 --- /dev/null +++ b/muk_web_preview_image/LICENSE @@ -0,0 +1,619 @@ + GNU AFFERO GENERAL PUBLIC LICENSE + Version 3, 19 November 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU Affero General Public License is a free, copyleft license for +software and other kinds of works, specifically designed to ensure +cooperation with the community in the case of network server software. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +our General Public Licenses are intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + Developers that use our General Public Licenses protect your rights +with two steps: (1) assert copyright on the software, and (2) offer +you this License which gives you legal permission to copy, distribute +and/or modify the software. + + A secondary benefit of defending all users' freedom is that +improvements made in alternate versions of the program, if they +receive widespread use, become available for other developers to +incorporate. Many developers of free software are heartened and +encouraged by the resulting cooperation. However, in the case of +software used on network servers, this result may fail to come about. +The GNU General Public License permits making a modified version and +letting the public access it on a server without ever releasing its +source code to the public. + + The GNU Affero General Public License is designed specifically to +ensure that, in such cases, the modified source code becomes available +to the community. It requires the operator of a network server to +provide the source code of the modified version running there to the +users of that server. Therefore, public use of a modified version, on +a publicly accessible server, gives the public access to the source +code of the modified version. + + An older license, called the Affero General Public License and +published by Affero, was designed to accomplish similar goals. This is +a different license, not a version of the Affero GPL, but Affero has +released a new version of the Affero GPL which permits relicensing under +this license. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU Affero General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Remote Network Interaction; Use with the GNU General Public License. + + Notwithstanding any other provision of this License, if you modify the +Program, your modified version must prominently offer all users +interacting with it remotely through a computer network (if your version +supports such interaction) an opportunity to receive the Corresponding +Source of your version by providing access to the Corresponding Source +from a network server at no charge, through some standard or customary +means of facilitating copying of software. This Corresponding Source +shall include the Corresponding Source for any work covered by version 3 +of the GNU General Public License that is incorporated pursuant to the +following paragraph. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the work with which it is combined will remain governed by version +3 of the GNU General Public License. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU Affero General Public License from time to time. Such new versions +will be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU Affero General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU Affero General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU Affero General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS \ No newline at end of file diff --git a/muk_web_preview_image/README.rst b/muk_web_preview_image/README.rst new file mode 100644 index 0000000..8829b75 --- /dev/null +++ b/muk_web_preview_image/README.rst @@ -0,0 +1,128 @@ +================= +MuK Preview Image +================= + +Extendes the Preview Dialog to support images. Currently the following image extensions +are supported: + +* CIS-Cod-Dateien (\*.cod, image/cis-cod) +* CMU-Raster-Dateien (\*.ras, image/cmu-raster) +* FIF-Dateien (\*.fif, image/fif) +* GIF-Dateien (\*.gif, image/gif) +* IEF-Dateien (\*.ief, image/ief) +* JPEG-Dateien (\*.jpeg \*.jpg \*.jpe, image/jpeg) +* PNG-Dateien (\*.png, image/png) +* TIFF-Dateien (\*.tiff \*.tif, image/tiff) +* Vasa-Dateien (\*.mcf, image/vasa) +* Bitmap-Dateien (WAP) (\*.wbmp, image/vnd.wap.wbmp) +* Freehand-Dateien (\*.fh4 \*.fh5 \*.fhc, image/x-freehand) +* Icon-Dateien (\*.ico, image/x-icon) +* PBM Anymap Dateien (\*.pnm, image/x-portable-anymap) +* PBM Bitmap Dateien (\*.pbm, image/x-portable-bitmap) +* PBM Graymap Dateien (\*.pgm, image/x-portable-graymap) +* PBM Pixmap Dateien (\*.ppm, image/x-portable-pixmap) +* RGB-Dateien (\*.rgb, image/x-rgb) +* X-Windows Dump (\*.xwd, image/x-windowdump) +* XBM-Dateien (\*.xbm, image/x-xbitmap) +* XPM-Dateien (\*.xpm, image/x-xpixmap) + +Installation +============ + +To install this module, you need to: + +Download the module and add it to your Odoo addons folder. Afterward, log on to +your Odoo server and go to the Apps menu. Trigger the debug mode and update the +list by clicking on the "Update Apps List" link. Now install the module by +clicking on the install button. + +Another way to install this module is via the package management for Python +(`PyPI `_). + +To install our modules using the package manager make sure +`odoo-autodiscover `_ is installed +correctly. Then open a console and install the module by entering the following +command: + +``pip install --extra-index-url https://nexus.mukit.at/repository/odoo/simple `` + +The module name consists of the Odoo version and the module name, where +underscores are replaced by a dash. + +**Module:** + +``odoo-addon-`` + +**Example:** + +``sudo -H pip3 install --extra-index-url https://nexus.mukit.at/repository/odoo/simple odoo11-addon-muk-utils`` + +Once the installation has been successfully completed, the app is already in the +correct folder. Log on to your Odoo server and go to the Apps menu. Trigger the +debug mode and update the list by clicking on the "Update Apps List" link. Now +install the module by clicking on the install button. + +The biggest advantage of this variant is that you can now also update the app +using the "pip" command. To do this, enter the following command in your console: + +``pip install --upgrade --extra-index-url https://nexus.mukit.at/repository/odoo/simple `` + +When the process is finished, restart your server and update the application in +Odoo. The steps are the same as for the installation only the button has changed +from "Install" to "Upgrade". + +You can also view available Apps directly in our `repository `_ +and find a more detailed installation guide on our `website `_. + +For modules licensed under OPL-1, you will receive access data when you purchase +the module. If the modules were not purchased directly from +`MuK IT `_ please contact our support (support@mukit.at) +with a confirmation of purchase to receive the corresponding access data. + +Upgrade +============ + +To upgrade this module, you need to: + +Download the module and add it to your Odoo addons folder. Restart the server +and log on to your Odoo server. Select the Apps menu and upgrade the module by +clicking on the upgrade button. + +If you installed the module using the "pip" command, you can also update the +module in the same way. Just type the following command into the console: + +``pip install --upgrade --extra-index-url https://nexus.mukit.at/repository/odoo/simple `` + +When the process is finished, restart your server and update the application in +Odoo, just like you would normally. + +Configuration +============= + +No additional configuration is needed to use this module. + +Usage +============= + +Go to a binary that contains an image and open the preview dialog to view +the image. + +Credits +======= + +Contributors +------------ + +* Mathias Markl + +Author & Maintainer +------------------- + +This module is maintained by the `MuK IT GmbH `_. + +MuK IT is an Austrian company specialized in customizing and extending Odoo. +We develop custom solutions for your individual needs to help you focus on +your strength and expertise to grow your business. + +If you want to get in touch please contact us via mail +(sale@mukit.at) or visit our website (https://mukit.at). diff --git a/muk_web_preview_image/__init__.py b/muk_web_preview_image/__init__.py new file mode 100644 index 0000000..21f21ae --- /dev/null +++ b/muk_web_preview_image/__init__.py @@ -0,0 +1,18 @@ +################################################################################### +# +# Copyright (C) 2017 MuK IT GmbH +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +################################################################################### diff --git a/muk_web_preview_image/__manifest__.py b/muk_web_preview_image/__manifest__.py new file mode 100644 index 0000000..7fb9941 --- /dev/null +++ b/muk_web_preview_image/__manifest__.py @@ -0,0 +1,51 @@ +################################################################################### +# +# Copyright (C) 2017 MuK IT GmbH +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +################################################################################### + +{ + "name": "MuK Preview Image", + "summary": """Image Preview""", + "version": "12.0.2.0.1", + "category": "Extra Tools", + "license": "AGPL-3", + "website": "http://www.mukit.at", + "live_test_url": "https://demo.mukit.at/web/login", + "author": "MuK IT", + "contributors": [ + "Mathias Markl ", + ], + "depends": [ + "muk_web_preview", + ], + "data": [ + "template/assets.xml", + ], + "qweb": [ + "static/src/xml/*.xml", + ], + "images": [ + 'static/description/banner.png' + ], + "external_dependencies": { + "python": [], + "bin": [], + }, + "application": False, + "installable": True, + +} \ No newline at end of file diff --git a/muk_web_preview_image/doc/changelog.rst b/muk_web_preview_image/doc/changelog.rst new file mode 100644 index 0000000..f10b321 --- /dev/null +++ b/muk_web_preview_image/doc/changelog.rst @@ -0,0 +1,14 @@ +`2.0.0` +------- + +- Migrated to Python 3 + +`1.1.0` +------- + +- Lazy load javascript + +`1.0.0` +------- + +- Init version diff --git a/muk_web_preview_image/doc/index.rst b/muk_web_preview_image/doc/index.rst new file mode 100644 index 0000000..8829b75 --- /dev/null +++ b/muk_web_preview_image/doc/index.rst @@ -0,0 +1,128 @@ +================= +MuK Preview Image +================= + +Extendes the Preview Dialog to support images. Currently the following image extensions +are supported: + +* CIS-Cod-Dateien (\*.cod, image/cis-cod) +* CMU-Raster-Dateien (\*.ras, image/cmu-raster) +* FIF-Dateien (\*.fif, image/fif) +* GIF-Dateien (\*.gif, image/gif) +* IEF-Dateien (\*.ief, image/ief) +* JPEG-Dateien (\*.jpeg \*.jpg \*.jpe, image/jpeg) +* PNG-Dateien (\*.png, image/png) +* TIFF-Dateien (\*.tiff \*.tif, image/tiff) +* Vasa-Dateien (\*.mcf, image/vasa) +* Bitmap-Dateien (WAP) (\*.wbmp, image/vnd.wap.wbmp) +* Freehand-Dateien (\*.fh4 \*.fh5 \*.fhc, image/x-freehand) +* Icon-Dateien (\*.ico, image/x-icon) +* PBM Anymap Dateien (\*.pnm, image/x-portable-anymap) +* PBM Bitmap Dateien (\*.pbm, image/x-portable-bitmap) +* PBM Graymap Dateien (\*.pgm, image/x-portable-graymap) +* PBM Pixmap Dateien (\*.ppm, image/x-portable-pixmap) +* RGB-Dateien (\*.rgb, image/x-rgb) +* X-Windows Dump (\*.xwd, image/x-windowdump) +* XBM-Dateien (\*.xbm, image/x-xbitmap) +* XPM-Dateien (\*.xpm, image/x-xpixmap) + +Installation +============ + +To install this module, you need to: + +Download the module and add it to your Odoo addons folder. Afterward, log on to +your Odoo server and go to the Apps menu. Trigger the debug mode and update the +list by clicking on the "Update Apps List" link. Now install the module by +clicking on the install button. + +Another way to install this module is via the package management for Python +(`PyPI `_). + +To install our modules using the package manager make sure +`odoo-autodiscover `_ is installed +correctly. Then open a console and install the module by entering the following +command: + +``pip install --extra-index-url https://nexus.mukit.at/repository/odoo/simple `` + +The module name consists of the Odoo version and the module name, where +underscores are replaced by a dash. + +**Module:** + +``odoo-addon-`` + +**Example:** + +``sudo -H pip3 install --extra-index-url https://nexus.mukit.at/repository/odoo/simple odoo11-addon-muk-utils`` + +Once the installation has been successfully completed, the app is already in the +correct folder. Log on to your Odoo server and go to the Apps menu. Trigger the +debug mode and update the list by clicking on the "Update Apps List" link. Now +install the module by clicking on the install button. + +The biggest advantage of this variant is that you can now also update the app +using the "pip" command. To do this, enter the following command in your console: + +``pip install --upgrade --extra-index-url https://nexus.mukit.at/repository/odoo/simple `` + +When the process is finished, restart your server and update the application in +Odoo. The steps are the same as for the installation only the button has changed +from "Install" to "Upgrade". + +You can also view available Apps directly in our `repository `_ +and find a more detailed installation guide on our `website `_. + +For modules licensed under OPL-1, you will receive access data when you purchase +the module. If the modules were not purchased directly from +`MuK IT `_ please contact our support (support@mukit.at) +with a confirmation of purchase to receive the corresponding access data. + +Upgrade +============ + +To upgrade this module, you need to: + +Download the module and add it to your Odoo addons folder. Restart the server +and log on to your Odoo server. Select the Apps menu and upgrade the module by +clicking on the upgrade button. + +If you installed the module using the "pip" command, you can also update the +module in the same way. Just type the following command into the console: + +``pip install --upgrade --extra-index-url https://nexus.mukit.at/repository/odoo/simple `` + +When the process is finished, restart your server and update the application in +Odoo, just like you would normally. + +Configuration +============= + +No additional configuration is needed to use this module. + +Usage +============= + +Go to a binary that contains an image and open the preview dialog to view +the image. + +Credits +======= + +Contributors +------------ + +* Mathias Markl + +Author & Maintainer +------------------- + +This module is maintained by the `MuK IT GmbH `_. + +MuK IT is an Austrian company specialized in customizing and extending Odoo. +We develop custom solutions for your individual needs to help you focus on +your strength and expertise to grow your business. + +If you want to get in touch please contact us via mail +(sale@mukit.at) or visit our website (https://mukit.at). diff --git a/muk_web_preview_image/i18n/de.po b/muk_web_preview_image/i18n/de.po new file mode 100644 index 0000000..0e173c2 --- /dev/null +++ b/muk_web_preview_image/i18n/de.po @@ -0,0 +1,16 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 12.0-20190128\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-03-06 00:21+0000\n" +"PO-Revision-Date: 2019-03-06 00:21+0000\n" +"Last-Translator: <>\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + diff --git a/muk_web_preview_image/i18n/es.po b/muk_web_preview_image/i18n/es.po new file mode 100644 index 0000000..0e173c2 --- /dev/null +++ b/muk_web_preview_image/i18n/es.po @@ -0,0 +1,16 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 12.0-20190128\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-03-06 00:21+0000\n" +"PO-Revision-Date: 2019-03-06 00:21+0000\n" +"Last-Translator: <>\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + diff --git a/muk_web_preview_image/i18n/fr.po b/muk_web_preview_image/i18n/fr.po new file mode 100644 index 0000000..0e173c2 --- /dev/null +++ b/muk_web_preview_image/i18n/fr.po @@ -0,0 +1,16 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 12.0-20190128\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-03-06 00:21+0000\n" +"PO-Revision-Date: 2019-03-06 00:21+0000\n" +"Last-Translator: <>\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + diff --git a/muk_web_preview_image/i18n/muk_web_preview_image.pot b/muk_web_preview_image/i18n/muk_web_preview_image.pot new file mode 100644 index 0000000..0e173c2 --- /dev/null +++ b/muk_web_preview_image/i18n/muk_web_preview_image.pot @@ -0,0 +1,16 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 12.0-20190128\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-03-06 00:21+0000\n" +"PO-Revision-Date: 2019-03-06 00:21+0000\n" +"Last-Translator: <>\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + diff --git a/muk_web_preview_image/i18n/nl.po b/muk_web_preview_image/i18n/nl.po new file mode 100644 index 0000000..428692b --- /dev/null +++ b/muk_web_preview_image/i18n/nl.po @@ -0,0 +1,16 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 12.0-20190128\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-03-06 00:22+0000\n" +"PO-Revision-Date: 2019-03-06 00:22+0000\n" +"Last-Translator: <>\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + diff --git a/muk_web_preview_image/static/description/banner.png b/muk_web_preview_image/static/description/banner.png new file mode 100644 index 0000000000000000000000000000000000000000..86ff1eba0c3dc4d451a8360b0cfbd189597b06be GIT binary patch literal 108968 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

Qf#tQH~Q1fB)Q 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

%$LpCsI9@0` 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 literal 0 HcmV?d00001 diff --git a/muk_web_preview_image/static/description/icon.svg b/muk_web_preview_image/static/description/icon.svg new file mode 100644 index 0000000..1cda090 --- /dev/null +++ b/muk_web_preview_image/static/description/icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/muk_web_preview_image/static/description/index.html b/muk_web_preview_image/static/description/index.html new file mode 100644 index 0000000..d7ae29a --- /dev/null +++ b/muk_web_preview_image/static/description/index.html @@ -0,0 +1,157 @@ +

+
+

Preview Image

+

Preview your images directly in Odoo.

+

MuK IT GmbH - + www.mukit.at

+
+ +
+
+
+ +
+
+
+

Overview

+

Extendes the Preview Dialog to support images. + Currently the following image extensions are supported:

+

+ CIS-Cod-Dateien (*.cod, + image/cis-cod)
+ CMU-Raster-Dateien (*.ras, image/cmu-raster)
FIF-Dateien (*.fif, + image/fif)
+ GIF-Dateien (*.gif, image/gif)
+ ☑ IEF-Dateien (*.ief, image/ief)
JPEG-Dateien (*.jpeg *.jpg + *.jpe, image/jpeg)
+ ☑ PNG-Dateien (*.png, image/png)
TIFF-Dateien (*.tiff *.tif, + image/tiff)
+ Vasa-Dateien (*.mcf, image/vasa)
+ ☑ Bitmap-Dateien (WAP) (*.wbmp, image/vnd.wap.wbmp)
+ Freehand-Dateien (*.fh4 + *.fh5 *.fhc, image/x-freehand)
+ ☑ Icon-Dateien (*.ico, image/x-icon)
PBM Anymap Dateien (*.pnm, + image/x-portable-anymap)
+ ☑ PBM Bitmap Dateien (*.pbm, image/x-portable-bitmap)
+ PBM Graymap Dateien + (*.pgm, image/x-portable-graymap)
PBM Pixmap Dateien (*.ppm, + image/x-portable-pixmap)
+ ☑ RGB-Dateien (*.rgb, image/x-rgb)
X-Windows Dump (*.xwd, + image/x-windowdump)
+ ☑ XBM-Dateien (*.xbm, image/x-xbitmap)
XPM-Dateien (*.xpm, + image/x-xpixmap)
+

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

Help and Support

+
Feel free to + contact us, if you need any help with your Odoo integration or + addiontal features.
+ + +
\ No newline at end of file diff --git a/muk_web_preview_image/static/description/logo.png b/muk_web_preview_image/static/description/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..9427ce33ea36c2ec961356d01d612bae02d48ce2 GIT binary patch literal 38064 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 literal 0 HcmV?d00001 diff --git a/muk_web_preview_image/static/description/preview.png b/muk_web_preview_image/static/description/preview.png new file mode 100644 index 0000000000000000000000000000000000000000..1deb1cceffc3f73a70dca6d35f1f7868d1507dcc GIT binary patch literal 33203 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 literal 0 HcmV?d00001 diff --git a/muk_web_preview_image/static/description/screenshot.png b/muk_web_preview_image/static/description/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..b9fc3a253961a34af97b8991b4755d1e1046d6ac GIT binary patch literal 54217 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
    h#&G<>$ z-1B>W;#6g02^{*&3EEfN{rz}MXH`2e-?5gcoU>3nze+?AD4GjY zzs_J$PxYAVojV`Y-29XMnlLo0IlG&L$6Gz`tf_-V7OT9A0ap0mNvc%4dFtRmRFt~& z($tprwuu$|s*%5$L%cj*9d`70G4>8l?YvPjUkZ%*Y)9V;%4TeJ;N=$j+~}!f(FSju zK|w=fo9aRP?>=P+1NA~cPN-8SG&Z0<-M1v8z>|ErwdJX3pGhu4KNg>Wzc&9t?=GJE z6NxvR`RD6z?#ZSVov*Jxl4gA_oBu{BcK}$k=SpwPIemD4zKZ&qU+Z!;+@8Beki41= zyPb5;1%;82{>!4d<1pn+=crzHs$yn#k+~g1?V9%?UUtXFNmr*632u8CQiCTY7D9VJ z!S8r?u`dDTKfGvZYb!M_uH9wt__RgMM3}_N6M|ri8Uepkl6k8l@9z0=#Bb;4II<+? zKJ}qil)YQsbp5&T8)2gH537&sci+LLp;i0j89LzcvysJq?eG#8!RXt9oWk#B26fII z&D!P|15OdUZ7lcp*y>pB9^lmqRv3eGj@P+jp=isKx%7dfhf^3sS4qmB^=Dvee9f3F z^k4VS4^;ACu9BLxLqtmTmp5#sOc$_1Ft5&(Pr?!xn6G?Wi*IOKhc5H`Qgn`=-q*I; z-nYF%_%sj*Kndo?Q69#SO3KqWF_n|@m*}~JHw@e7+bf!k%W-m7rmr^N1hj3tnQe3+ z@7*94l^4Y9-F%euWNH(D?5k-Do0)JWyM)A6bAA=~K@ok3!}usc(anW!`hT}}{VKoR z-EsF*ASCW`^78QkfAB~!G3&l0^zZebENx&ka({V>KDR+Rk`nz12luts_;#Pq#jk|E zkI}S6xn`CK^-@lo-gMDF73V*E|J7CEprljEQ)cMy;L&gwW#Qo@%>L+fbaBvyX+fA2 z*A<~!&-{B_tK*mkJ?i|}w@g$ZDzR>6xY2cN++vAvOaVufn~T`TX|oS6H*moMfD81saBXffVxce9Tno97Y#G4p^6i_%I-c$B&u1Y4C&^4!z_xL+ zH=fLzloW0%{px-GVRrN865=!r5w?|_L)5$CV$C>KUEI+;8MdP!!yv%38`0<`Pmb&3 zR^3ox(ebC{PIr>)os&FVu|-Dot@X9bNgbUn1nK8YIc0R;k2p#+1s0ZD>WvMi;6o{O zj6I8bL1ydXl6`%@^>uZ+h1Y66B%%^vrvgIye$!gGpP?C_X>to`=0!E^{kjC!zdVOU z8oODv{=EbpR`IxS^c~AF&g>ub@_*4}(nB&dMC|9$UOo7NKDc{WNhsI12 z1A6#Kgta$)-w*zhw|BeRx;hloFp1k!V$IIt!tcy8zlRKZButC|m(^c&I$d>d1(7hn zXateI#yQyDMn^~A-romfAEtyE9J?TqPT5YnZ#}ipn(nxXUpU&A&ZpMV9c<4tc7tzt=G5^^O z)q!+AFN(&igGQ)6wXN3$s5Y1r8A36wYcX7<=YH-g7z73eU7erSI(1of#|bw+1&YD_ ztZ?ch?t-z^M3o&R-IRK@o#6vAOQbKoypOkk1!)eDx&a}rAe>dBAG-DMui3RUPp?=N ztl^+pba2?~=s*u=^GU-+nzl@+bS%CeYf8c$HL&cRu&4o+mjiy=G{C5;Z;arF=_&^M;^~yMU39u+`Du z*rN57kE&;hNj~}N^hwJq|M>=|pBMRQF zTJEO^F)aglN!KAIyWDS6)?`MSN84@@mg8ld9Booq!{ZBo3Jc2SS`M76-}f*`gn3<3 zMO-xwYZqCVmv_s4bHe_heKOiF-G}!puwAg0dJtbGR4~c&KJPQu@7zzlHJ=|YiKpu1 z#iolgLW}>*>()}nE#^mOrm~;`jsj

    yb18%w6thyGV1*>3s&3cv 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 literal 0 HcmV?d00001 diff --git a/muk_web_preview_image/static/description/service_customization.png b/muk_web_preview_image/static/description/service_customization.png new file mode 100644 index 0000000000000000000000000000000000000000..3eac66488b63820f69634bfab8d45b94039651c3 GIT binary patch literal 27452 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 literal 0 HcmV?d00001 diff --git a/muk_web_preview_image/static/description/service_implementation.png b/muk_web_preview_image/static/description/service_implementation.png new file mode 100644 index 0000000000000000000000000000000000000000..d64b66bda3e4827e7cfba4ec4e5ed8414c4381ad GIT binary patch literal 26148 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 Hu0mjfz33;t literal 0 HcmV?d00001 diff --git a/muk_web_preview_image/static/description/service_integration.png b/muk_web_preview_image/static/description/service_integration.png new file mode 100644 index 0000000000000000000000000000000000000000..76c5e80f4798a3a9c9154dc00283dcb4eaa47f5b GIT binary patch literal 24862 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 limitsWidth) { + if (vb.height > limitsHeight) { + if (limitsWidth > limitsHeight) { + reductionFactor = limitsHeight / vb.height; + vb.height = limitsHeight; + vb.width = vb.width * reductionFactor; + } else { + reductionFactor = limitsWidth / vb.width; + vb.width = limitsWidth; + vb.height = vb.height * reductionFactor; + } + } else { + reductionFactor = limitsWidth / vb.width; + vb.width = limitsWidth; + vb.height = vb.height * reductionFactor; + } + } else if (vb.height > limitsHeight) { + reductionFactor = limitsHeight / vb.height; + vb.height = limitsHeight; + vb.width = vb.width * reductionFactor; + } + if (vb.x < limits.x) { + vb.x = limits.x; + } + if (vb.y < limits.y) { + vb.y = limits.y; + } + if (vb.x + vb.width > limits.x2) { + vb.x = limits.x2 - vb.width; + } + if (vb.y + vb.height > limits.y2) { + vb.y = limits.y2 - vb.height; + } + return vb; + }; + + /** + * Parse the viewbox string as defined in the spec for the svg tag. + * + * @param {String} viewBoxString + * A valid value of the `viewBox` attribute. + * + * @return {Object} viewBox + * A view box object. Contains numbers, in the format `{x, y, width, height}`. + */ + parseViewBoxString = function(string) { + var vb; + vb = string.replace("\s+", " ").split(" "); + return vb = { + x: parseFloat(vb[0]), + y: parseFloat(vb[1]), + width: parseFloat(vb[2]), + height: parseFloat(vb[3]) + }; + }; + + /** + * Get the mouse or first touch position from the `event`, relative to the SVG viewBox. + * + * @param {SVGElement} svgRoot + * The `` DOM object + * + * @param {MouseEvent|TouchEvent|jQueryEvent} event + * The DOM or jQuery event. + * + * @return {Object} + * Coordinates of the event. Contains numbers, in the format `{x, y}`. + */ + getViewBoxCoordinatesFromEvent = function(svgRoot, event) { + var ctm, foo, pos; + foo = { + x: null, + y: null + }; + if (event.type === "touchstart" || event.type === "touchmove") { + if ((event.originalEvent != null) && (event.touches == null)) { + foo.x = event.originalEvent.touches[0].clientX; + foo.y = event.originalEvent.touches[0].clientY; + } else { + foo.x = event.touches[0].clientX; + foo.y = event.touches[0].clientY; + } + } else { + if (event.clientX != null) { + foo.x = event.clientX; + foo.y = event.clientY; + } else { + foo.x = event.originalEvent.clientX; + foo.y = event.originalEvent.clientY; + } + } + pos = svgRoot.createSVGPoint(); + pos.x = parseInt(foo.x, 10); + pos.y = parseInt(foo.y, 10); + ctm = svgRoot.getScreenCTM(); + ctm = ctm.inverse(); + pos = pos.matrixTransform(ctm); + return pos; + }; + return $.fn.svgPanZoom = function(options) { + var ret; + ret = []; + this.each(function() { + var $animationDiv, dragStarted, horizontalSizeIncrement, key, opts, preventClick, value, vb, verticalSizeIncrement, viewBox; + opts = $.extend(true, {}, defaultOptions, options); + opts.$svg = $(this); + if (opts.animationTime == null) { + opts.animationTime = 0; + } + opts.$svg[0].setAttribute("preserveAspectRatio", "xMidYMid meet"); + vb = $.extend({}, this.viewBox.baseVal); + if (vb.x == null) { + vb.x = 0; + } + if (vb.y == null) { + vb.y = 0; + } + if (vb.width == null) { + vb.width = 0; + } + if (vb.height == null) { + vb.height = 0; + } + if (opts.initialViewBox != null) { + if (typeof opts.initialViewBox === "string") { + vb = parseViewBoxString(opts.initialViewBox); + } else if (typeof opts.initialViewBox === "object") { + vb = $.extend({}, defaultViewBox, opts.initialViewBox); + } else { + throw "initialViewBox is of invalid type"; + } + } else if (vb.x === 0 && vb.y === 0 && vb.width === 0 && vb.height === 0) { + vb = defaultViewBox; + } + viewBox = vb; + opts.initialViewBox = $.extend({}, viewBox); + if (opts.limits == null) { + horizontalSizeIncrement = viewBox.width * 0.15; + verticalSizeIncrement = viewBox.height * 0.15; + opts.limits = { + x: viewBox.x - horizontalSizeIncrement, + y: viewBox.y - verticalSizeIncrement, + x2: viewBox.x + viewBox.width + horizontalSizeIncrement, + y2: viewBox.y + viewBox.height + verticalSizeIncrement + }; + } + opts.reset = function() { + var inivb; + inivb = this.initialViewBox; + this.setViewBox(inivb.x, inivb.y, inivb.width, inivb.height, 0); + }; + opts.getViewBox = function() { + return $.extend({}, viewBox); + }; + $animationDiv = $("

    "); + opts.setViewBox = function(x, y, width, height, animationTime) { + if (animationTime == null) { + animationTime = this.animationTime; + } + if (animationTime > 0) { + $animationDiv.css({ + left: viewBox.x + "px", + top: viewBox.y + "px", + width: viewBox.width + "px", + height: viewBox.height + "px" + }); + } + viewBox = { + x: x != null ? x : viewBox.x, + y: y != null ? y : viewBox.y, + width: width ? width : viewBox.width, + height: height ? height : viewBox.height + }; + viewBox = checkLimits(viewBox, this.limits); + if (animationTime > 0) { + $animationDiv.stop().animate({ + left: viewBox.x, + top: viewBox.y, + width: viewBox.width, + height: viewBox.height + }, { + duration: animationTime, + easing: "linear", + step: (function(value, properties) { + var $div; + $div = $animationDiv; + this.$svg[0].setAttribute("viewBox", ($div.css("left").slice(0, -2)) + " " + ($div.css("top").slice(0, -2)) + " " + ($div.css("width").slice(0, -2)) + " " + ($div.css("height").slice(0, -2))); + }).bind(this) + }); + } else { + this.$svg[0].setAttribute("viewBox", viewBox.x + " " + viewBox.y + " " + viewBox.width + " " + viewBox.height); + } + }; + opts.panLeft = function(amount, animationTime) { + if (amount == null) { + amount = this.panFactor; + } + if (animationTime == null) { + animationTime = this.animationTime; + } + this.panRight(-amount, animationTime); + }; + opts.panRight = function(amount, animationTime) { + if (amount == null) { + amount = this.panFactor; + } + if (animationTime == null) { + animationTime = this.animationTime; + } + this.setViewBox(viewBox.x + amount, null, null, null, animationTime); + }; + opts.panUp = function(amount, animationTime) { + if (amount == null) { + amount = this.panFactor; + } + if (animationTime == null) { + animationTime = this.animationTime; + } + this.panDown(-amount, animationTime); + }; + opts.panDown = function(amount, animationTime) { + if (amount == null) { + amount = this.panFactor; + } + if (animationTime == null) { + animationTime = this.animationTime; + } + this.setViewBox(null, viewBox.y + amount, null, null, animationTime); + }; + opts.zoomIn = function(amount, animationTime) { + if (amount == null) { + amount = this.zoomFactor; + } + if (animationTime == null) { + animationTime = this.animationTime; + } + this.zoomOut(-amount, animationTime); + }; + opts.zoomOut = function(amount, animationTime) { + var center, newHeight, newWidth; + if (amount == null) { + amount = this.zoomFactor; + } + if (animationTime == null) { + animationTime = this.animationTime; + } + if (amount === 0) { + return; + } else if (amount < 0) { + amount = Math.abs(amount); + newWidth = viewBox.width / (1 + amount); + newHeight = viewBox.height / (1 + amount); + } else { + newWidth = viewBox.width * (1 + amount); + newHeight = viewBox.height * (1 + amount); + } + center = { + x: viewBox.x + viewBox.width / 2, + y: viewBox.y + viewBox.height / 2 + }; + this.setViewBox(center.x - newWidth / 2, center.y - newWidth / 2, newWidth, newHeight, animationTime); + }; + opts.setCenter = function(x, y, animationTime) { + if (animationTime == null) { + animationTime = this.animationTime; + } + this.setViewBox(x - viewBox.width / 2, y - viewBox.height / 2, viewBox.width, viewBox.height, animationTime); + }; + for (key in opts) { + if (!hasProp.call(opts, key)) continue; + value = opts[key]; + if (typeof value === "function") { + opts.key = value.bind(opts); + } + } + opts.$svg.on("mousewheel DOMMouseScroll MozMousePixelScroll", (function(ev) { + var delta, minHeight, minWidth, newMousePosition, newViewBox, newcenter, oldDistanceFromCenter, oldMousePosition, oldViewBox, oldcenter, reductionFactor; + delta = parseInt(ev.originalEvent.wheelDelta || -ev.originalEvent.detail); + if (delta === 0 || opts.events.mouseWheel !== true) { + return; + } + oldViewBox = this.getViewBox(); + ev.preventDefault(); + ev.stopPropagation(); + oldMousePosition = getViewBoxCoordinatesFromEvent(this.$svg[0], ev); + oldcenter = { + x: viewBox.x + viewBox.width / 2, + y: viewBox.y + viewBox.height / 2 + }; + oldDistanceFromCenter = { + x: oldcenter.x - oldMousePosition.x, + y: oldcenter.y - oldMousePosition.y + }; + if (delta > 0) { + this.zoomIn(void 0, 0); + minWidth = this.initialViewBox.width / this.maxZoom; + minHeight = this.initialViewBox.height / this.maxZoom; + if (viewBox.width < minWidth) { + reductionFactor = minWidth / viewBox.width; + viewBox.width = minWidth; + viewBox.height = viewBox.height * reductionFactor; + } + if (viewBox.height < minHeight) { + reductionFactor = minHeight / viewBox.height; + viewBox.height = minHeight; + viewBox.width = viewBox.width * reductionFactor; + } + } else { + this.zoomOut(void 0, 0); + } + newMousePosition = getViewBoxCoordinatesFromEvent(this.$svg[0], ev); + newcenter = { + x: oldcenter.x + (oldMousePosition.x - newMousePosition.x), + y: oldcenter.y + (oldMousePosition.y - newMousePosition.y) + }; + this.setCenter(newcenter.x, newcenter.y, 0); + newViewBox = this.getViewBox(); + this.setViewBox(oldViewBox.x, oldViewBox.y, oldViewBox.width, oldViewBox.height, 0); + this.setViewBox(newViewBox.x, newViewBox.y, newViewBox.width, newViewBox.height); + }).bind(opts)); + opts.$svg.dblclick((function(ev) { + if (opts.events.doubleClick !== true) { + return; + } + ev.preventDefault(); + ev.stopPropagation(); + return this.zoomIn(); + }).bind(opts)); + opts.$svg[0].addEventListener("click", function(ev) { + var preventClick; + if (preventClick) { + preventClick = false; + ev.stopPropagation(); + return ev.preventDefault(); + } + }, true); + dragStarted = false; + preventClick = false; + opts.$svg.on("mousedown touchstart", (function(ev) { + var $body, domBody, initialViewBox, mouseMoveCallback, mouseUpCallback, oldCursor; + if (dragStarted) { + return; + } + if (opts.events.drag !== true || (ev.type === "mousedown" && ev.which !== 1)) { + return; + } + dragStarted = true; + preventClick = false; + ev.preventDefault(); + ev.stopPropagation(); + initialViewBox = $.extend({}, viewBox); + $body = $(window.document.body); + domBody = $body[0]; + oldCursor = $body.css("cursor"); + if (this.events.dragCursor != null) { + $body.css("cursor", this.events.dragCursor); + } + mouseMoveCallback = (function(ev2) { + var currentMousePosition, initialMousePosition; + ev2.preventDefault(); + ev2.stopPropagation(); + initialMousePosition = getViewBoxCoordinatesFromEvent(this.$svg[0], ev); + currentMousePosition = getViewBoxCoordinatesFromEvent(this.$svg[0], ev2); + if (Math.sqrt(Math.pow(ev.pageX + ev2.pageX, 2) + Math.pow(ev.pageY + ev2.pageY, 2)) > 3) { + preventClick = true; + } + this.setViewBox(initialViewBox.x + initialMousePosition.x - currentMousePosition.x, initialViewBox.y + initialMousePosition.y - currentMousePosition.y, null, null, 0); + }).bind(opts); + mouseUpCallback = (function(ev2) { + if (ev2.type === "mouseout" && ev2.target !== ev2.currentTarget) { + return; + } + ev2.preventDefault(); + ev2.stopPropagation(); + domBody.removeEventListener("mousemove", mouseMoveCallback, true); + domBody.removeEventListener("touchmove", mouseMoveCallback, true); + domBody.removeEventListener("mouseup", mouseUpCallback, true); + domBody.removeEventListener("touchend", mouseUpCallback, true); + domBody.removeEventListener("touchcancel", mouseUpCallback, true); + domBody.removeEventListener("mouseout", mouseUpCallback, true); + if (this.events.dragCursor != null) { + $body.css("cursor", oldCursor); + } + dragStarted = false; + }).bind(opts); + domBody.addEventListener("mousemove", mouseMoveCallback, true); + domBody.addEventListener("touchmove", mouseMoveCallback, true); + domBody.addEventListener("mouseup", mouseUpCallback, true); + domBody.addEventListener("touchend", mouseUpCallback, true); + domBody.addEventListener("touchcancel", mouseUpCallback, true); + domBody.addEventListener("mouseout", mouseUpCallback, true); + }).bind(opts)); + opts.setViewBox(vb.x, vb.y, vb.width, vb.height, 0); + ret.push(opts); + }); + if (ret.length === 0) { + return null; + } + if (ret.length === 1) { + return ret[0]; + } else { + return ret; + } + }; + })(jQuery); + +}).call(this); + +//# sourceMappingURL=jquery.svg.pan.zoom.js.map \ No newline at end of file diff --git a/muk_web_preview_image/static/lib/viewer/jquery-viewer.js b/muk_web_preview_image/static/lib/viewer/jquery-viewer.js new file mode 100644 index 0000000..cdadff3 --- /dev/null +++ b/muk_web_preview_image/static/lib/viewer/jquery-viewer.js @@ -0,0 +1,75 @@ +/*! + * jQuery Viewer v1.0.0 + * https://github.com/fengyuanchen/jquery-viewer + * + * Copyright (c) 2018 Chen Fengyuan + * Released under the MIT license + * + * Date: 2018-04-01T05:58:29.617Z + */ + +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? factory(require('jquery'), require('viewerjs')) : + typeof define === 'function' && define.amd ? define(['jquery', 'viewerjs'], factory) : + (factory(global.jQuery,global.Viewer)); +}(this, (function ($,Viewer) { 'use strict'; + + $ = $ && $.hasOwnProperty('default') ? $['default'] : $; + Viewer = Viewer && Viewer.hasOwnProperty('default') ? Viewer['default'] : Viewer; + + if ($.fn) { + var AnotherViewer = $.fn.viewer; + var NAMESPACE = 'viewer'; + + $.fn.viewer = function jQueryViewer(option) { + for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + args[_key - 1] = arguments[_key]; + } + + var result = void 0; + + this.each(function (i, element) { + var $element = $(element); + var isDestroy = option === 'destroy'; + var viewer = $element.data(NAMESPACE); + + if (!viewer) { + if (isDestroy) { + return; + } + + var options = $.extend({}, $element.data(), $.isPlainObject(option) && option); + + viewer = new Viewer(element, options); + $element.data(NAMESPACE, viewer); + } + + if (typeof option === 'string') { + var fn = viewer[option]; + + if ($.isFunction(fn)) { + result = fn.apply(viewer, args); + + if (result === viewer) { + result = undefined; + } + + if (isDestroy) { + $element.removeData(NAMESPACE); + } + } + } + }); + + return result !== undefined ? result : this; + }; + + $.fn.viewer.Constructor = Viewer; + $.fn.viewer.setDefaults = Viewer.setDefaults; + $.fn.viewer.noConflict = function noConflict() { + $.fn.viewer = AnotherViewer; + return this; + }; + } + +}))); \ No newline at end of file diff --git a/muk_web_preview_image/static/lib/viewer/viewer.css b/muk_web_preview_image/static/lib/viewer/viewer.css new file mode 100644 index 0000000..20e06a9 --- /dev/null +++ b/muk_web_preview_image/static/lib/viewer/viewer.css @@ -0,0 +1,450 @@ +/*! + * Viewer.js v1.3.2 + * https://fengyuanchen.github.io/viewerjs + * + * Copyright 2015-present Chen Fengyuan + * Released under the MIT license + * + * Date: 2019-01-24T11:01:30.299Z + */ + +.viewer-zoom-in::before, +.viewer-zoom-out::before, +.viewer-one-to-one::before, +.viewer-reset::before, +.viewer-prev::before, +.viewer-play::before, +.viewer-next::before, +.viewer-rotate-left::before, +.viewer-rotate-right::before, +.viewer-flip-horizontal::before, +.viewer-flip-vertical::before, +.viewer-fullscreen::before, +.viewer-fullscreen-exit::before, +.viewer-close::before { + background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAARgAAAAUCAYAAABWOyJDAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABx0RVh0U29mdHdhcmUAQWRvYmUgRmlyZXdvcmtzIENTNui8sowAAAQPSURBVHic7Zs/iFxVFMa/0U2UaJGksUgnIVhYxVhpjDbZCBmLdAYECxsRFBTUamcXUiSNncgKQbSxsxH8gzAP3FU2jY0kKKJNiiiIghFlccnP4p3nPCdv3p9778vsLOcHB2bfveeb7955c3jvvNkBIMdxnD64a94GHMfZu3iBcRynN7zAOI7TG15gHCeeNUkr8zaxG2lbYDYsdgMbktBsP03jdQwljSXdtBhLOmtjowC9Mg9L+knSlcD8TNKpSA9lBpK2JF2VdDSR5n5J64m0qli399hNFMUlpshQii5jbXTbHGviB0nLNeNDSd9VO4A2UdB2fp+x0eCnaXxWXGA2X0au/3HgN9P4LFCjIANOJdrLr0zzZ+BEpNYDwKbpnQMeAw4m8HjQtM6Z9qa917zPQwFr3M5KgA6J5rTJCdFZJj9/lyvGhsDvwFNVuV2MhhjrK6b9bFiE+j1r87eBl4HDwCF7/U/k+ofAX5b/EXBv5JoLMuILzf3Ap6Z3EzgdqHMCuF7hcQf4HDgeoHnccncqdK/TvSDWffFXI/exICY/xZyqc6XLWF1UFZna4gJ7q8BsRvgd2/xXpo6P+D9dfT7PpECtA3cnWPM0GXGFZh/wgWltA+cDNC7X+AP4GzjZQe+k5dRxuYPeiuXU7e1qwLpDz7dFjXKRaSwuMLvAlG8zZlG+YmiK1HoFqT7wP2z+4Q45TfEGcMt01xLoNZEBTwRqD4BLpnMLeC1A41UmVxsXgXeBayV/Wx20rpTyrpnWRft7p6O/FdqzGrDukPNtkaMoMo3FBdBSQMOnYBCReyf05s126fU9ytfX98+mY54Kxnp7S9K3kj6U9KYdG0h6UdLbkh7poFXMfUnSOyVvL0h6VtIXHbS6nOP+s/Zm9mvyXW1uuC9ohZ72E9uDmXWLJOB1GxsH+DxPftsB8B6wlGDN02TAkxG6+4D3TWsbeC5CS8CDFce+AW500LhhOW2020TRjK3b21HEmgti9m0RonxbdMZeVzV+/4tF3cBpP7E9mKHNL5q8h5g0eYsCMQz0epq8gQrwMXAgcs0FGXGFRcB9wCemF9PkbYqM/Bas7fxLwNeJPdTdpo4itQti8lPMqTpXuozVRVXPpbHI3KkNTB1NfkL81j2mvhDp91HgV9MKuRIqrykj3WPq4rHyL+axj8/qGPmTqi6F9YDlHOvJU6oYcTsh/TYSzWmTE6JT19CtLTJt32D6CmHe0eQn1O8z5AXgT4sx4Vcu0/EQecMydB8z0hUWkTd2t4CrwNEePqMBcAR4mrBbwyXLPWJa8zrXmmLEhNBmfpkuY2102xxrih+pb+ieAb6vGhuA97UcJ5KR8gZ77K+99xxeYBzH6Q3/Z0fHcXrDC4zjOL3hBcZxnN74F+zlvXFWXF9PAAAAAElFTkSuQmCC'); + background-repeat: no-repeat; + color: transparent; + display: block; + font-size: 0; + height: 20px; + line-height: 0; + width: 20px; +} + +.viewer-zoom-in::before { + background-position: 0 0; + content: 'Zoom In'; +} + +.viewer-zoom-out::before { + background-position: -20px 0; + content: 'Zoom Out'; +} + +.viewer-one-to-one::before { + background-position: -40px 0; + content: 'One to One'; +} + +.viewer-reset::before { + background-position: -60px 0; + content: 'Reset'; +} + +.viewer-prev::before { + background-position: -80px 0; + content: 'Previous'; +} + +.viewer-play::before { + background-position: -100px 0; + content: 'Play'; +} + +.viewer-next::before { + background-position: -120px 0; + content: 'Next'; +} + +.viewer-rotate-left::before { + background-position: -140px 0; + content: 'Rotate Left'; +} + +.viewer-rotate-right::before { + background-position: -160px 0; + content: 'Rotate Right'; +} + +.viewer-flip-horizontal::before { + background-position: -180px 0; + content: 'Flip Horizontal'; +} + +.viewer-flip-vertical::before { + background-position: -200px 0; + content: 'Flip Vertical'; +} + +.viewer-fullscreen::before { + background-position: -220px 0; + content: 'Enter Full Screen'; +} + +.viewer-fullscreen-exit::before { + background-position: -240px 0; + content: 'Exit Full Screen'; +} + +.viewer-close::before { + background-position: -260px 0; + content: 'Close'; +} + +.viewer-container { + bottom: 0; + direction: ltr; + font-size: 0; + left: 0; + line-height: 0; + overflow: hidden; + position: absolute; + right: 0; + -webkit-tap-highlight-color: transparent; + top: 0; + -ms-touch-action: none; + touch-action: none; + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.viewer-container::selection, +.viewer-container *::selection { + background-color: transparent; +} + +.viewer-container img { + display: block; + height: auto; + max-height: none !important; + max-width: none !important; + min-height: 0 !important; + min-width: 0 !important; + width: 100%; +} + +.viewer-canvas { + bottom: 0; + left: 0; + overflow: hidden; + position: absolute; + right: 0; + top: 0; +} + +.viewer-canvas > img { + height: auto; + margin: 15px auto; + max-width: 90% !important; + width: auto; +} + +.viewer-footer { + bottom: 0; + left: 0; + overflow: hidden; + position: absolute; + right: 0; + text-align: center; +} + +.viewer-navbar { + background-color: rgba(0, 0, 0, 0.5); + overflow: hidden; +} + +.viewer-list { + -webkit-box-sizing: content-box; + box-sizing: content-box; + height: 50px; + margin: 0; + overflow: hidden; + padding: 1px 0; +} + +.viewer-list > li { + color: transparent; + cursor: pointer; + float: left; + font-size: 0; + height: 50px; + line-height: 0; + opacity: 0.5; + overflow: hidden; + -webkit-transition: opacity 0.15s; + transition: opacity 0.15s; + width: 30px; +} + +.viewer-list > li:hover { + opacity: 0.75; +} + +.viewer-list > li + li { + margin-left: 1px; +} + +.viewer-list > .viewer-loading { + position: relative; +} + +.viewer-list > .viewer-loading::after { + border-width: 2px; + height: 20px; + margin-left: -10px; + margin-top: -10px; + width: 20px; +} + +.viewer-list > .viewer-active, +.viewer-list > .viewer-active:hover { + opacity: 1; +} + +.viewer-player { + background-color: #000; + bottom: 0; + cursor: none; + display: none; + left: 0; + position: absolute; + right: 0; + top: 0; +} + +.viewer-player > img { + left: 0; + position: absolute; + top: 0; +} + +.viewer-toolbar > ul { + display: inline-block; + margin: 0 auto 5px; + overflow: hidden; + padding: 3px 0; +} + +.viewer-toolbar > ul > li { + background-color: rgba(0, 0, 0, 0.5); + border-radius: 50%; + cursor: pointer; + float: left; + height: 24px; + overflow: hidden; + -webkit-transition: background-color 0.15s; + transition: background-color 0.15s; + width: 24px; +} + +.viewer-toolbar > ul > li:hover { + background-color: rgba(0, 0, 0, 0.8); +} + +.viewer-toolbar > ul > li::before { + margin: 2px; +} + +.viewer-toolbar > ul > li + li { + margin-left: 1px; +} + +.viewer-toolbar > ul > .viewer-small { + height: 18px; + margin-bottom: 3px; + margin-top: 3px; + width: 18px; +} + +.viewer-toolbar > ul > .viewer-small::before { + margin: -1px; +} + +.viewer-toolbar > ul > .viewer-large { + height: 30px; + margin-bottom: -3px; + margin-top: -3px; + width: 30px; +} + +.viewer-toolbar > ul > .viewer-large::before { + margin: 5px; +} + +.viewer-tooltip { + background-color: rgba(0, 0, 0, 0.8); + border-radius: 10px; + color: #fff; + display: none; + font-size: 12px; + height: 20px; + left: 50%; + line-height: 20px; + margin-left: -25px; + margin-top: -10px; + position: absolute; + text-align: center; + top: 50%; + width: 50px; +} + +.viewer-title { + color: #ccc; + display: inline-block; + font-size: 12px; + line-height: 1; + margin: 0 5% 5px; + max-width: 90%; + opacity: 0.8; + overflow: hidden; + text-overflow: ellipsis; + -webkit-transition: opacity 0.15s; + transition: opacity 0.15s; + white-space: nowrap; +} + +.viewer-title:hover { + opacity: 1; +} + +.viewer-button { + background-color: rgba(0, 0, 0, 0.5); + border-radius: 50%; + cursor: pointer; + height: 80px; + overflow: hidden; + position: absolute; + right: -40px; + top: -40px; + -webkit-transition: background-color 0.15s; + transition: background-color 0.15s; + width: 80px; +} + +.viewer-button:focus, +.viewer-button:hover { + background-color: rgba(0, 0, 0, 0.8); +} + +.viewer-button::before { + bottom: 15px; + left: 15px; + position: absolute; +} + +.viewer-fixed { + position: fixed; +} + +.viewer-open { + overflow: hidden; +} + +.viewer-show { + display: block; +} + +.viewer-hide { + display: none; +} + +.viewer-backdrop { + background-color: rgba(0, 0, 0, 0.5); +} + +.viewer-invisible { + visibility: hidden; +} + +.viewer-move { + cursor: move; + cursor: -webkit-grab; + cursor: grab; +} + +.viewer-fade { + opacity: 0; +} + +.viewer-in { + opacity: 1; +} + +.viewer-transition { + -webkit-transition: all 0.3s; + transition: all 0.3s; +} + +@-webkit-keyframes viewer-spinner { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} + +@keyframes viewer-spinner { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} + +.viewer-loading::after { + -webkit-animation: viewer-spinner 1s linear infinite; + animation: viewer-spinner 1s linear infinite; + border: 4px solid rgba(255, 255, 255, 0.1); + border-left-color: rgba(255, 255, 255, 0.5); + border-radius: 50%; + content: ''; + display: inline-block; + height: 40px; + left: 50%; + margin-left: -20px; + margin-top: -20px; + position: absolute; + top: 50%; + width: 40px; + z-index: 1; +} + +@media (max-width: 767px) { + .viewer-hide-xs-down { + display: none; + } +} + +@media (max-width: 991px) { + .viewer-hide-sm-down { + display: none; + } +} + +@media (max-width: 1199px) { + .viewer-hide-md-down { + display: none; + } +} \ No newline at end of file diff --git a/muk_web_preview_image/static/lib/viewer/viewer.js b/muk_web_preview_image/static/lib/viewer/viewer.js new file mode 100644 index 0000000..79b585b --- /dev/null +++ b/muk_web_preview_image/static/lib/viewer/viewer.js @@ -0,0 +1,3020 @@ +/*! + * Viewer.js v1.3.2 + * https://fengyuanchen.github.io/viewerjs + * + * Copyright 2015-present Chen Fengyuan + * Released under the MIT license + * + * Date: 2019-01-24T11:01:33.473Z + */ + +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + (global.Viewer = factory()); +}(this, (function () { 'use strict'; + + function _typeof(obj) { + if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { + _typeof = function (obj) { + return typeof obj; + }; + } else { + _typeof = function (obj) { + return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }; + } + + return _typeof(obj); + } + + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + return Constructor; + } + + var DEFAULTS = { + /** + * Enable a modal backdrop, specify `static` for a backdrop + * which doesn't close the modal on click. + * @type {boolean} + */ + backdrop: true, + + /** + * Show the button on the top-right of the viewer. + * @type {boolean} + */ + button: true, + + /** + * Show the navbar. + * @type {boolean | number} + */ + navbar: true, + + /** + * Specify the visibility and the content of the title. + * @type {boolean | number | Function | Array} + */ + title: true, + + /** + * Show the toolbar. + * @type {boolean | number | Object} + */ + toolbar: true, + + /** + * Custom class name(s) to add to the viewer's root element. + * @type {string} + */ + className: '', + + /** + * Define where to put the viewer in modal mode. + * @type {string | Element} + */ + container: 'body', + + /** + * Filter the images for viewing. Return true if the image is viewable. + * @type {Function} + */ + filter: null, + + /** + * Enable to request fullscreen when play. + * @type {boolean} + */ + fullscreen: true, + + /** + * Define the initial index of image for viewing. + * @type {number} + */ + initialViewIndex: 0, + + /** + * Enable inline mode. + * @type {boolean} + */ + inline: false, + + /** + * The amount of time to delay between automatically cycling an image when playing. + * @type {number} + */ + interval: 5000, + + /** + * Enable keyboard support. + * @type {boolean} + */ + keyboard: true, + + /** + * Indicate if show a loading spinner when load image or not. + * @type {boolean} + */ + loading: true, + + /** + * Indicate if enable loop viewing or not. + * @type {boolean} + */ + loop: true, + + /** + * Min width of the viewer in inline mode. + * @type {number} + */ + minWidth: 200, + + /** + * Min height of the viewer in inline mode. + * @type {number} + */ + minHeight: 100, + + /** + * Enable to move the image. + * @type {boolean} + */ + movable: true, + + /** + * Enable to zoom the image. + * @type {boolean} + */ + zoomable: true, + + /** + * Enable to rotate the image. + * @type {boolean} + */ + rotatable: true, + + /** + * Enable to scale the image. + * @type {boolean} + */ + scalable: true, + + /** + * Indicate if toggle the image size between its natural size + * and initial size when double click on the image or not. + * @type {boolean} + */ + toggleOnDblclick: true, + + /** + * Show the tooltip with image ratio (percentage) when zoom in or zoom out. + * @type {boolean} + */ + tooltip: true, + + /** + * Enable CSS3 Transition for some special elements. + * @type {boolean} + */ + transition: true, + + /** + * Define the CSS `z-index` value of viewer in modal mode. + * @type {number} + */ + zIndex: 2015, + + /** + * Define the CSS `z-index` value of viewer in inline mode. + * @type {number} + */ + zIndexInline: 0, + + /** + * Define the ratio when zoom the image by wheeling mouse. + * @type {number} + */ + zoomRatio: 0.1, + + /** + * Define the min ratio of the image when zoom out. + * @type {number} + */ + minZoomRatio: 0.01, + + /** + * Define the max ratio of the image when zoom in. + * @type {number} + */ + maxZoomRatio: 100, + + /** + * Define where to get the original image URL for viewing. + * @type {string | Function} + */ + url: 'src', + + /** + * Event shortcuts. + * @type {Function} + */ + ready: null, + show: null, + shown: null, + hide: null, + hidden: null, + view: null, + viewed: null, + zoom: null, + zoomed: null + }; + + var TEMPLATE = '
    ' + '
    ' + '' + '
    ' + '
    ' + '
    ' + '
    '; + + var IS_BROWSER = typeof window !== 'undefined'; + var WINDOW = IS_BROWSER ? window : {}; + var IS_TOUCH_DEVICE = IS_BROWSER ? 'ontouchstart' in WINDOW.document.documentElement : false; + var HAS_POINTER_EVENT = IS_BROWSER ? 'PointerEvent' in WINDOW : false; + var NAMESPACE = 'viewer'; // Actions + + var ACTION_MOVE = 'move'; + var ACTION_SWITCH = 'switch'; + var ACTION_ZOOM = 'zoom'; // Classes + + var CLASS_ACTIVE = "".concat(NAMESPACE, "-active"); + var CLASS_CLOSE = "".concat(NAMESPACE, "-close"); + var CLASS_FADE = "".concat(NAMESPACE, "-fade"); + var CLASS_FIXED = "".concat(NAMESPACE, "-fixed"); + var CLASS_FULLSCREEN = "".concat(NAMESPACE, "-fullscreen"); + var CLASS_FULLSCREEN_EXIT = "".concat(NAMESPACE, "-fullscreen-exit"); + var CLASS_HIDE = "".concat(NAMESPACE, "-hide"); + var CLASS_HIDE_MD_DOWN = "".concat(NAMESPACE, "-hide-md-down"); + var CLASS_HIDE_SM_DOWN = "".concat(NAMESPACE, "-hide-sm-down"); + var CLASS_HIDE_XS_DOWN = "".concat(NAMESPACE, "-hide-xs-down"); + var CLASS_IN = "".concat(NAMESPACE, "-in"); + var CLASS_INVISIBLE = "".concat(NAMESPACE, "-invisible"); + var CLASS_LOADING = "".concat(NAMESPACE, "-loading"); + var CLASS_MOVE = "".concat(NAMESPACE, "-move"); + var CLASS_OPEN = "".concat(NAMESPACE, "-open"); + var CLASS_SHOW = "".concat(NAMESPACE, "-show"); + var CLASS_TRANSITION = "".concat(NAMESPACE, "-transition"); // Events + + var EVENT_CLICK = 'click'; + var EVENT_DBLCLICK = 'dblclick'; + var EVENT_DRAG_START = 'dragstart'; + var EVENT_HIDDEN = 'hidden'; + var EVENT_HIDE = 'hide'; + var EVENT_KEY_DOWN = 'keydown'; + var EVENT_LOAD = 'load'; + var EVENT_TOUCH_START = IS_TOUCH_DEVICE ? 'touchstart' : 'mousedown'; + var EVENT_TOUCH_MOVE = IS_TOUCH_DEVICE ? 'touchmove' : 'mousemove'; + var EVENT_TOUCH_END = IS_TOUCH_DEVICE ? 'touchend touchcancel' : 'mouseup'; + var EVENT_POINTER_DOWN = HAS_POINTER_EVENT ? 'pointerdown' : EVENT_TOUCH_START; + var EVENT_POINTER_MOVE = HAS_POINTER_EVENT ? 'pointermove' : EVENT_TOUCH_MOVE; + var EVENT_POINTER_UP = HAS_POINTER_EVENT ? 'pointerup pointercancel' : EVENT_TOUCH_END; + var EVENT_READY = 'ready'; + var EVENT_RESIZE = 'resize'; + var EVENT_SHOW = 'show'; + var EVENT_SHOWN = 'shown'; + var EVENT_TRANSITION_END = 'transitionend'; + var EVENT_VIEW = 'view'; + var EVENT_VIEWED = 'viewed'; + var EVENT_WHEEL = 'wheel'; + var EVENT_ZOOM = 'zoom'; + var EVENT_ZOOMED = 'zoomed'; // Data keys + + var DATA_ACTION = "".concat(NAMESPACE, "Action"); // RegExps + + var REGEXP_SPACES = /\s\s*/; // Misc + + var BUTTONS = ['zoom-in', 'zoom-out', 'one-to-one', 'reset', 'prev', 'play', 'next', 'rotate-left', 'rotate-right', 'flip-horizontal', 'flip-vertical']; + + /** + * Check if the given value is a string. + * @param {*} value - The value to check. + * @returns {boolean} Returns `true` if the given value is a string, else `false`. + */ + + function isString(value) { + return typeof value === 'string'; + } + /** + * Check if the given value is not a number. + */ + + var isNaN = Number.isNaN || WINDOW.isNaN; + /** + * Check if the given value is a number. + * @param {*} value - The value to check. + * @returns {boolean} Returns `true` if the given value is a number, else `false`. + */ + + function isNumber(value) { + return typeof value === 'number' && !isNaN(value); + } + /** + * Check if the given value is undefined. + * @param {*} value - The value to check. + * @returns {boolean} Returns `true` if the given value is undefined, else `false`. + */ + + function isUndefined(value) { + return typeof value === 'undefined'; + } + /** + * Check if the given value is an object. + * @param {*} value - The value to check. + * @returns {boolean} Returns `true` if the given value is an object, else `false`. + */ + + function isObject(value) { + return _typeof(value) === 'object' && value !== null; + } + var hasOwnProperty = Object.prototype.hasOwnProperty; + /** + * Check if the given value is a plain object. + * @param {*} value - The value to check. + * @returns {boolean} Returns `true` if the given value is a plain object, else `false`. + */ + + function isPlainObject(value) { + if (!isObject(value)) { + return false; + } + + try { + var _constructor = value.constructor; + var prototype = _constructor.prototype; + return _constructor && prototype && hasOwnProperty.call(prototype, 'isPrototypeOf'); + } catch (error) { + return false; + } + } + /** + * Check if the given value is a function. + * @param {*} value - The value to check. + * @returns {boolean} Returns `true` if the given value is a function, else `false`. + */ + + function isFunction(value) { + return typeof value === 'function'; + } + /** + * Iterate the given data. + * @param {*} data - The data to iterate. + * @param {Function} callback - The process function for each element. + * @returns {*} The original data. + */ + + function forEach(data, callback) { + if (data && isFunction(callback)) { + if (Array.isArray(data) || isNumber(data.length) + /* array-like */ + ) { + var length = data.length; + var i; + + for (i = 0; i < length; i += 1) { + if (callback.call(data, data[i], i, data) === false) { + break; + } + } + } else if (isObject(data)) { + Object.keys(data).forEach(function (key) { + callback.call(data, data[key], key, data); + }); + } + } + + return data; + } + /** + * Extend the given object. + * @param {*} obj - The object to be extended. + * @param {*} args - The rest objects which will be merged to the first object. + * @returns {Object} The extended object. + */ + + var assign = Object.assign || function assign(obj) { + for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + args[_key - 1] = arguments[_key]; + } + + if (isObject(obj) && args.length > 0) { + args.forEach(function (arg) { + if (isObject(arg)) { + Object.keys(arg).forEach(function (key) { + obj[key] = arg[key]; + }); + } + }); + } + + return obj; + }; + var REGEXP_SUFFIX = /^(?:width|height|left|top|marginLeft|marginTop)$/; + /** + * Apply styles to the given element. + * @param {Element} element - The target element. + * @param {Object} styles - The styles for applying. + */ + + function setStyle(element, styles) { + var style = element.style; + forEach(styles, function (value, property) { + if (REGEXP_SUFFIX.test(property) && isNumber(value)) { + value += 'px'; + } + + style[property] = value; + }); + } + /** + * Check if the given element has a special class. + * @param {Element} element - The element to check. + * @param {string} value - The class to search. + * @returns {boolean} Returns `true` if the special class was found. + */ + + function hasClass(element, value) { + return element.classList ? element.classList.contains(value) : element.className.indexOf(value) > -1; + } + /** + * Add classes to the given element. + * @param {Element} element - The target element. + * @param {string} value - The classes to be added. + */ + + function addClass(element, value) { + if (!value) { + return; + } + + if (isNumber(element.length)) { + forEach(element, function (elem) { + addClass(elem, value); + }); + return; + } + + if (element.classList) { + element.classList.add(value); + return; + } + + var className = element.className.trim(); + + if (!className) { + element.className = value; + } else if (className.indexOf(value) < 0) { + element.className = "".concat(className, " ").concat(value); + } + } + /** + * Remove classes from the given element. + * @param {Element} element - The target element. + * @param {string} value - The classes to be removed. + */ + + function removeClass(element, value) { + if (!value) { + return; + } + + if (isNumber(element.length)) { + forEach(element, function (elem) { + removeClass(elem, value); + }); + return; + } + + if (element.classList) { + element.classList.remove(value); + return; + } + + if (element.className.indexOf(value) >= 0) { + element.className = element.className.replace(value, ''); + } + } + /** + * Add or remove classes from the given element. + * @param {Element} element - The target element. + * @param {string} value - The classes to be toggled. + * @param {boolean} added - Add only. + */ + + function toggleClass(element, value, added) { + if (!value) { + return; + } + + if (isNumber(element.length)) { + forEach(element, function (elem) { + toggleClass(elem, value, added); + }); + return; + } // IE10-11 doesn't support the second parameter of `classList.toggle` + + + if (added) { + addClass(element, value); + } else { + removeClass(element, value); + } + } + var REGEXP_HYPHENATE = /([a-z\d])([A-Z])/g; + /** + * Transform the given string from camelCase to kebab-case + * @param {string} value - The value to transform. + * @returns {string} The transformed value. + */ + + function hyphenate(value) { + return value.replace(REGEXP_HYPHENATE, '$1-$2').toLowerCase(); + } + /** + * Get data from the given element. + * @param {Element} element - The target element. + * @param {string} name - The data key to get. + * @returns {string} The data value. + */ + + function getData(element, name) { + if (isObject(element[name])) { + return element[name]; + } + + if (element.dataset) { + return element.dataset[name]; + } + + return element.getAttribute("data-".concat(hyphenate(name))); + } + /** + * Set data to the given element. + * @param {Element} element - The target element. + * @param {string} name - The data key to set. + * @param {string} data - The data value. + */ + + function setData(element, name, data) { + if (isObject(data)) { + element[name] = data; + } else if (element.dataset) { + element.dataset[name] = data; + } else { + element.setAttribute("data-".concat(hyphenate(name)), data); + } + } + + var onceSupported = function () { + var supported = false; + + if (IS_BROWSER) { + var once = false; + + var listener = function listener() {}; + + var options = Object.defineProperty({}, 'once', { + get: function get() { + supported = true; + return once; + }, + + /** + * This setter can fix a `TypeError` in strict mode + * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Getter_only} + * @param {boolean} value - The value to set + */ + set: function set(value) { + once = value; + } + }); + WINDOW.addEventListener('test', listener, options); + WINDOW.removeEventListener('test', listener, options); + } + + return supported; + }(); + /** + * Remove event listener from the target element. + * @param {Element} element - The event target. + * @param {string} type - The event type(s). + * @param {Function} listener - The event listener. + * @param {Object} options - The event options. + */ + + + function removeListener(element, type, listener) { + var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {}; + var handler = listener; + type.trim().split(REGEXP_SPACES).forEach(function (event) { + if (!onceSupported) { + var listeners = element.listeners; + + if (listeners && listeners[event] && listeners[event][listener]) { + handler = listeners[event][listener]; + delete listeners[event][listener]; + + if (Object.keys(listeners[event]).length === 0) { + delete listeners[event]; + } + + if (Object.keys(listeners).length === 0) { + delete element.listeners; + } + } + } + + element.removeEventListener(event, handler, options); + }); + } + /** + * Add event listener to the target element. + * @param {Element} element - The event target. + * @param {string} type - The event type(s). + * @param {Function} listener - The event listener. + * @param {Object} options - The event options. + */ + + function addListener(element, type, listener) { + var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {}; + var _handler = listener; + type.trim().split(REGEXP_SPACES).forEach(function (event) { + if (options.once && !onceSupported) { + var _element$listeners = element.listeners, + listeners = _element$listeners === void 0 ? {} : _element$listeners; + + _handler = function handler() { + delete listeners[event][listener]; + element.removeEventListener(event, _handler, options); + + for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { + args[_key2] = arguments[_key2]; + } + + listener.apply(element, args); + }; + + if (!listeners[event]) { + listeners[event] = {}; + } + + if (listeners[event][listener]) { + element.removeEventListener(event, listeners[event][listener], options); + } + + listeners[event][listener] = _handler; + element.listeners = listeners; + } + + element.addEventListener(event, _handler, options); + }); + } + /** + * Dispatch event on the target element. + * @param {Element} element - The event target. + * @param {string} type - The event type(s). + * @param {Object} data - The additional event data. + * @returns {boolean} Indicate if the event is default prevented or not. + */ + + function dispatchEvent(element, type, data) { + var event; // Event and CustomEvent on IE9-11 are global objects, not constructors + + if (isFunction(Event) && isFunction(CustomEvent)) { + event = new CustomEvent(type, { + detail: data, + bubbles: true, + cancelable: true + }); + } else { + event = document.createEvent('CustomEvent'); + event.initCustomEvent(type, true, true, data); + } + + return element.dispatchEvent(event); + } + /** + * Get the offset base on the document. + * @param {Element} element - The target element. + * @returns {Object} The offset data. + */ + + function getOffset(element) { + var box = element.getBoundingClientRect(); + return { + left: box.left + (window.pageXOffset - document.documentElement.clientLeft), + top: box.top + (window.pageYOffset - document.documentElement.clientTop) + }; + } + /** + * Get transforms base on the given object. + * @param {Object} obj - The target object. + * @returns {string} A string contains transform values. + */ + + function getTransforms(_ref) { + var rotate = _ref.rotate, + scaleX = _ref.scaleX, + scaleY = _ref.scaleY, + translateX = _ref.translateX, + translateY = _ref.translateY; + var values = []; + + if (isNumber(translateX) && translateX !== 0) { + values.push("translateX(".concat(translateX, "px)")); + } + + if (isNumber(translateY) && translateY !== 0) { + values.push("translateY(".concat(translateY, "px)")); + } // Rotate should come first before scale to match orientation transform + + + if (isNumber(rotate) && rotate !== 0) { + values.push("rotate(".concat(rotate, "deg)")); + } + + if (isNumber(scaleX) && scaleX !== 1) { + values.push("scaleX(".concat(scaleX, ")")); + } + + if (isNumber(scaleY) && scaleY !== 1) { + values.push("scaleY(".concat(scaleY, ")")); + } + + var transform = values.length ? values.join(' ') : 'none'; + return { + WebkitTransform: transform, + msTransform: transform, + transform: transform + }; + } + /** + * Get an image name from an image url. + * @param {string} url - The target url. + * @example + * // picture.jpg + * getImageNameFromURL('http://domain.com/path/to/picture.jpg?size=1280×960') + * @returns {string} A string contains the image name. + */ + + function getImageNameFromURL(url) { + return isString(url) ? url.replace(/^.*\//, '').replace(/[?&#].*$/, '') : ''; + } + var IS_SAFARI = WINDOW.navigator && /(Macintosh|iPhone|iPod|iPad).*AppleWebKit/i.test(WINDOW.navigator.userAgent); + /** + * Get an image's natural sizes. + * @param {string} image - The target image. + * @param {Function} callback - The callback function. + * @returns {HTMLImageElement} The new image. + */ + + function getImageNaturalSizes(image, callback) { + var newImage = document.createElement('img'); // Modern browsers (except Safari) + + if (image.naturalWidth && !IS_SAFARI) { + callback(image.naturalWidth, image.naturalHeight); + return newImage; + } + + var body = document.body || document.documentElement; + + newImage.onload = function () { + callback(newImage.width, newImage.height); + + if (!IS_SAFARI) { + body.removeChild(newImage); + } + }; + + newImage.src = image.src; // iOS Safari will convert the image automatically + // with its orientation once append it into DOM + + if (!IS_SAFARI) { + newImage.style.cssText = 'left:0;' + 'max-height:none!important;' + 'max-width:none!important;' + 'min-height:0!important;' + 'min-width:0!important;' + 'opacity:0;' + 'position:absolute;' + 'top:0;' + 'z-index:-1;'; + body.appendChild(newImage); + } + + return newImage; + } + /** + * Get the related class name of a responsive type number. + * @param {string} type - The responsive type. + * @returns {string} The related class name. + */ + + function getResponsiveClass(type) { + switch (type) { + case 2: + return CLASS_HIDE_XS_DOWN; + + case 3: + return CLASS_HIDE_SM_DOWN; + + case 4: + return CLASS_HIDE_MD_DOWN; + + default: + return ''; + } + } + /** + * Get the max ratio of a group of pointers. + * @param {string} pointers - The target pointers. + * @returns {number} The result ratio. + */ + + function getMaxZoomRatio(pointers) { + var pointers2 = assign({}, pointers); + var ratios = []; + forEach(pointers, function (pointer, pointerId) { + delete pointers2[pointerId]; + forEach(pointers2, function (pointer2) { + var x1 = Math.abs(pointer.startX - pointer2.startX); + var y1 = Math.abs(pointer.startY - pointer2.startY); + var x2 = Math.abs(pointer.endX - pointer2.endX); + var y2 = Math.abs(pointer.endY - pointer2.endY); + var z1 = Math.sqrt(x1 * x1 + y1 * y1); + var z2 = Math.sqrt(x2 * x2 + y2 * y2); + var ratio = (z2 - z1) / z1; + ratios.push(ratio); + }); + }); + ratios.sort(function (a, b) { + return Math.abs(a) < Math.abs(b); + }); + return ratios[0]; + } + /** + * Get a pointer from an event object. + * @param {Object} event - The target event object. + * @param {boolean} endOnly - Indicates if only returns the end point coordinate or not. + * @returns {Object} The result pointer contains start and/or end point coordinates. + */ + + function getPointer(_ref2, endOnly) { + var pageX = _ref2.pageX, + pageY = _ref2.pageY; + var end = { + endX: pageX, + endY: pageY + }; + return endOnly ? end : assign({ + timeStamp: Date.now(), + startX: pageX, + startY: pageY + }, end); + } + /** + * Get the center point coordinate of a group of pointers. + * @param {Object} pointers - The target pointers. + * @returns {Object} The center point coordinate. + */ + + function getPointersCenter(pointers) { + var pageX = 0; + var pageY = 0; + var count = 0; + forEach(pointers, function (_ref3) { + var startX = _ref3.startX, + startY = _ref3.startY; + pageX += startX; + pageY += startY; + count += 1; + }); + pageX /= count; + pageY /= count; + return { + pageX: pageX, + pageY: pageY + }; + } + + var render = { + render: function render() { + this.initContainer(); + this.initViewer(); + this.initList(); + this.renderViewer(); + }, + initContainer: function initContainer() { + this.containerData = { + width: window.innerWidth, + height: window.innerHeight + }; + }, + initViewer: function initViewer() { + var options = this.options, + parent = this.parent; + var viewerData; + + if (options.inline) { + viewerData = { + width: Math.max(parent.offsetWidth, options.minWidth), + height: Math.max(parent.offsetHeight, options.minHeight) + }; + this.parentData = viewerData; + } + + if (this.fulled || !viewerData) { + viewerData = this.containerData; + } + + this.viewerData = assign({}, viewerData); + }, + renderViewer: function renderViewer() { + if (this.options.inline && !this.fulled) { + setStyle(this.viewer, this.viewerData); + } + }, + initList: function initList() { + var _this = this; + + var element = this.element, + options = this.options, + list = this.list; + var items = []; + forEach(this.images, function (image, i) { + var src = image.src; + var alt = image.alt || getImageNameFromURL(src); + var url = options.url; + + if (isString(url)) { + url = image.getAttribute(url); + } else if (isFunction(url)) { + url = url.call(_this, image); + } + + if (src || url) { + items.push('
  1. ' + '' + '
  2. '); + } + }); + list.innerHTML = items.join(''); + this.items = list.getElementsByTagName('li'); + forEach(this.items, function (item) { + var image = item.firstElementChild; + setData(image, 'filled', true); + + if (options.loading) { + addClass(item, CLASS_LOADING); + } + + addListener(image, EVENT_LOAD, function (event) { + if (options.loading) { + removeClass(item, CLASS_LOADING); + } + + _this.loadImage(event); + }, { + once: true + }); + }); + + if (options.transition) { + addListener(element, EVENT_VIEWED, function () { + addClass(list, CLASS_TRANSITION); + }, { + once: true + }); + } + }, + renderList: function renderList(index) { + var i = index || this.index; + var width = this.items[i].offsetWidth || 30; + var outerWidth = width + 1; // 1 pixel of `margin-left` width + // Place the active item in the center of the screen + + setStyle(this.list, assign({ + width: outerWidth * this.length + }, getTransforms({ + translateX: (this.viewerData.width - width) / 2 - outerWidth * i + }))); + }, + resetList: function resetList() { + var list = this.list; + list.innerHTML = ''; + removeClass(list, CLASS_TRANSITION); + setStyle(list, getTransforms({ + translateX: 0 + })); + }, + initImage: function initImage(done) { + var _this2 = this; + + var options = this.options, + image = this.image, + viewerData = this.viewerData; + var footerHeight = this.footer.offsetHeight; + var viewerWidth = viewerData.width; + var viewerHeight = Math.max(viewerData.height - footerHeight, footerHeight); + var oldImageData = this.imageData || {}; + var sizingImage; + this.imageInitializing = { + abort: function abort() { + sizingImage.onload = null; + } + }; + sizingImage = getImageNaturalSizes(image, function (naturalWidth, naturalHeight) { + var aspectRatio = naturalWidth / naturalHeight; + var width = viewerWidth; + var height = viewerHeight; + _this2.imageInitializing = false; + + if (viewerHeight * aspectRatio > viewerWidth) { + height = viewerWidth / aspectRatio; + } else { + width = viewerHeight * aspectRatio; + } + + width = Math.min(width * 0.9, naturalWidth); + height = Math.min(height * 0.9, naturalHeight); + var imageData = { + naturalWidth: naturalWidth, + naturalHeight: naturalHeight, + aspectRatio: aspectRatio, + ratio: width / naturalWidth, + width: width, + height: height, + left: (viewerWidth - width) / 2, + top: (viewerHeight - height) / 2 + }; + var initialImageData = assign({}, imageData); + + if (options.rotatable) { + imageData.rotate = oldImageData.rotate || 0; + initialImageData.rotate = 0; + } + + if (options.scalable) { + imageData.scaleX = oldImageData.scaleX || 1; + imageData.scaleY = oldImageData.scaleY || 1; + initialImageData.scaleX = 1; + initialImageData.scaleY = 1; + } + + _this2.imageData = imageData; + _this2.initialImageData = initialImageData; + + if (done) { + done(); + } + }); + }, + renderImage: function renderImage(done) { + var _this3 = this; + + var image = this.image, + imageData = this.imageData; + setStyle(image, assign({ + width: imageData.width, + height: imageData.height, + // XXX: Not to use translateX/Y to avoid image shaking when zooming + marginLeft: imageData.left, + marginTop: imageData.top + }, getTransforms(imageData))); + + if (done) { + if ((this.viewing || this.zooming) && this.options.transition) { + var onTransitionEnd = function onTransitionEnd() { + _this3.imageRendering = false; + done(); + }; + + this.imageRendering = { + abort: function abort() { + removeListener(image, EVENT_TRANSITION_END, onTransitionEnd); + } + }; + addListener(image, EVENT_TRANSITION_END, onTransitionEnd, { + once: true + }); + } else { + done(); + } + } + }, + resetImage: function resetImage() { + // this.image only defined after viewed + if (this.viewing || this.viewed) { + var image = this.image; + + if (this.viewing) { + this.viewing.abort(); + } + + image.parentNode.removeChild(image); + this.image = null; + } + } + }; + + var events = { + bind: function bind() { + var options = this.options, + viewer = this.viewer, + canvas = this.canvas; + var document = this.element.ownerDocument; + addListener(viewer, EVENT_CLICK, this.onClick = this.click.bind(this)); + addListener(viewer, EVENT_WHEEL, this.onWheel = this.wheel.bind(this), { + passive: false, + capture: true + }); + addListener(viewer, EVENT_DRAG_START, this.onDragStart = this.dragstart.bind(this)); + addListener(canvas, EVENT_POINTER_DOWN, this.onPointerDown = this.pointerdown.bind(this)); + addListener(document, EVENT_POINTER_MOVE, this.onPointerMove = this.pointermove.bind(this)); + addListener(document, EVENT_POINTER_UP, this.onPointerUp = this.pointerup.bind(this)); + addListener(document, EVENT_KEY_DOWN, this.onKeyDown = this.keydown.bind(this)); + addListener(window, EVENT_RESIZE, this.onResize = this.resize.bind(this)); + + if (options.toggleOnDblclick) { + addListener(canvas, EVENT_DBLCLICK, this.onDblclick = this.dblclick.bind(this)); + } + }, + unbind: function unbind() { + var options = this.options, + viewer = this.viewer, + canvas = this.canvas; + var document = this.element.ownerDocument; + removeListener(viewer, EVENT_CLICK, this.onClick); + removeListener(viewer, EVENT_WHEEL, this.onWheel, { + passive: false, + capture: true + }); + removeListener(viewer, EVENT_DRAG_START, this.onDragStart); + removeListener(canvas, EVENT_POINTER_DOWN, this.onPointerDown); + removeListener(document, EVENT_POINTER_MOVE, this.onPointerMove); + removeListener(document, EVENT_POINTER_UP, this.onPointerUp); + removeListener(document, EVENT_KEY_DOWN, this.onKeyDown); + removeListener(window, EVENT_RESIZE, this.onResize); + + if (options.toggleOnDblclick) { + removeListener(canvas, EVENT_DBLCLICK, this.onDblclick); + } + } + }; + + var handlers = { + click: function click(event) { + var target = event.target; + var options = this.options, + imageData = this.imageData; + var action = getData(target, DATA_ACTION); // Cancel the emulated click when the native click event was triggered. + + if (IS_TOUCH_DEVICE && event.isTrusted && target === this.canvas) { + clearTimeout(this.clickCanvasTimeout); + } + + switch (action) { + case 'mix': + if (this.played) { + this.stop(); + } else if (options.inline) { + if (this.fulled) { + this.exit(); + } else { + this.full(); + } + } else { + this.hide(); + } + + break; + + case 'hide': + this.hide(); + break; + + case 'view': + this.view(getData(target, 'index')); + break; + + case 'zoom-in': + this.zoom(0.1, true); + break; + + case 'zoom-out': + this.zoom(-0.1, true); + break; + + case 'one-to-one': + this.toggle(); + break; + + case 'reset': + this.reset(); + break; + + case 'prev': + this.prev(options.loop); + break; + + case 'play': + this.play(options.fullscreen); + break; + + case 'next': + this.next(options.loop); + break; + + case 'rotate-left': + this.rotate(-90); + break; + + case 'rotate-right': + this.rotate(90); + break; + + case 'flip-horizontal': + this.scaleX(-imageData.scaleX || -1); + break; + + case 'flip-vertical': + this.scaleY(-imageData.scaleY || -1); + break; + + default: + if (this.played) { + this.stop(); + } + + } + }, + dblclick: function dblclick(event) { + event.preventDefault(); + + if (this.viewed && event.target === this.image) { + // Cancel the emulated double click when the native dblclick event was triggered. + if (IS_TOUCH_DEVICE && event.isTrusted) { + clearTimeout(this.doubleClickImageTimeout); + } + + this.toggle(); + } + }, + load: function load() { + var _this = this; + + if (this.timeout) { + clearTimeout(this.timeout); + this.timeout = false; + } + + var element = this.element, + options = this.options, + image = this.image, + index = this.index, + viewerData = this.viewerData; + removeClass(image, CLASS_INVISIBLE); + + if (options.loading) { + removeClass(this.canvas, CLASS_LOADING); + } + + image.style.cssText = 'height:0;' + "margin-left:".concat(viewerData.width / 2, "px;") + "margin-top:".concat(viewerData.height / 2, "px;") + 'max-width:none!important;' + 'position:absolute;' + 'width:0;'; + this.initImage(function () { + toggleClass(image, CLASS_MOVE, options.movable); + toggleClass(image, CLASS_TRANSITION, options.transition); + + _this.renderImage(function () { + _this.viewed = true; + _this.viewing = false; + + if (isFunction(options.viewed)) { + addListener(element, EVENT_VIEWED, options.viewed, { + once: true + }); + } + + dispatchEvent(element, EVENT_VIEWED, { + originalImage: _this.images[index], + index: index, + image: image + }); + }); + }); + }, + loadImage: function loadImage(event) { + var image = event.target; + var parent = image.parentNode; + var parentWidth = parent.offsetWidth || 30; + var parentHeight = parent.offsetHeight || 50; + var filled = !!getData(image, 'filled'); + getImageNaturalSizes(image, function (naturalWidth, naturalHeight) { + var aspectRatio = naturalWidth / naturalHeight; + var width = parentWidth; + var height = parentHeight; + + if (parentHeight * aspectRatio > parentWidth) { + if (filled) { + width = parentHeight * aspectRatio; + } else { + height = parentWidth / aspectRatio; + } + } else if (filled) { + height = parentWidth / aspectRatio; + } else { + width = parentHeight * aspectRatio; + } + + setStyle(image, assign({ + width: width, + height: height + }, getTransforms({ + translateX: (parentWidth - width) / 2, + translateY: (parentHeight - height) / 2 + }))); + }); + }, + keydown: function keydown(event) { + var options = this.options; + + if (!this.fulled || !options.keyboard) { + return; + } + + switch (event.keyCode || event.which || event.charCode) { + // Escape + case 27: + if (this.played) { + this.stop(); + } else if (options.inline) { + if (this.fulled) { + this.exit(); + } + } else { + this.hide(); + } + + break; + // Space + + case 32: + if (this.played) { + this.stop(); + } + + break; + // ArrowLeft + + case 37: + this.prev(options.loop); + break; + // ArrowUp + + case 38: + // Prevent scroll on Firefox + event.preventDefault(); // Zoom in + + this.zoom(options.zoomRatio, true); + break; + // ArrowRight + + case 39: + this.next(options.loop); + break; + // ArrowDown + + case 40: + // Prevent scroll on Firefox + event.preventDefault(); // Zoom out + + this.zoom(-options.zoomRatio, true); + break; + // Ctrl + 0 + + case 48: // Fall through + // Ctrl + 1 + // eslint-disable-next-line no-fallthrough + + case 49: + if (event.ctrlKey) { + event.preventDefault(); + this.toggle(); + } + + break; + + default: + } + }, + dragstart: function dragstart(event) { + if (event.target.tagName.toLowerCase() === 'img') { + event.preventDefault(); + } + }, + pointerdown: function pointerdown(event) { + var options = this.options, + pointers = this.pointers; + var buttons = event.buttons, + button = event.button; + + if (!this.viewed || this.showing || this.viewing || this.hiding // No primary button (Usually the left button) + // Note that touch events have no `buttons` or `button` property + || isNumber(buttons) && buttons !== 1 || isNumber(button) && button !== 0 // Open context menu + || event.ctrlKey) { + return; + } // Prevent default behaviours as page zooming in touch devices. + + + event.preventDefault(); + + if (event.changedTouches) { + forEach(event.changedTouches, function (touch) { + pointers[touch.identifier] = getPointer(touch); + }); + } else { + pointers[event.pointerId || 0] = getPointer(event); + } + + var action = options.movable ? ACTION_MOVE : false; + + if (Object.keys(pointers).length > 1) { + action = ACTION_ZOOM; + } else if ((event.pointerType === 'touch' || event.type === 'touchstart') && this.isSwitchable()) { + action = ACTION_SWITCH; + } + + if (options.transition && (action === ACTION_MOVE || action === ACTION_ZOOM)) { + removeClass(this.image, CLASS_TRANSITION); + } + + this.action = action; + }, + pointermove: function pointermove(event) { + var pointers = this.pointers, + action = this.action; + + if (!this.viewed || !action) { + return; + } + + event.preventDefault(); + + if (event.changedTouches) { + forEach(event.changedTouches, function (touch) { + assign(pointers[touch.identifier] || {}, getPointer(touch, true)); + }); + } else { + assign(pointers[event.pointerId || 0] || {}, getPointer(event, true)); + } + + this.change(event); + }, + pointerup: function pointerup(event) { + var _this2 = this; + + var options = this.options, + action = this.action, + pointers = this.pointers; + var pointer; + + if (event.changedTouches) { + forEach(event.changedTouches, function (touch) { + pointer = pointers[touch.identifier]; + delete pointers[touch.identifier]; + }); + } else { + pointer = pointers[event.pointerId || 0]; + delete pointers[event.pointerId || 0]; + } + + if (!action) { + return; + } + + event.preventDefault(); + + if (options.transition && (action === ACTION_MOVE || action === ACTION_ZOOM)) { + addClass(this.image, CLASS_TRANSITION); + } + + this.action = false; // Emulate click and double click in touch devices to support backdrop and image zooming (#210). + + if (IS_TOUCH_DEVICE && action !== ACTION_ZOOM && pointer && Date.now() - pointer.timeStamp < 500) { + clearTimeout(this.clickCanvasTimeout); + clearTimeout(this.doubleClickImageTimeout); + + if (options.toggleOnDblclick && this.viewed && event.target === this.image) { + if (this.imageClicked) { + this.imageClicked = false; // This timeout will be cleared later when a native dblclick event is triggering + + this.doubleClickImageTimeout = setTimeout(function () { + dispatchEvent(_this2.image, EVENT_DBLCLICK); + }, 50); + } else { + this.imageClicked = true; // The default timing of a double click in Windows is 500 ms + + this.doubleClickImageTimeout = setTimeout(function () { + _this2.imageClicked = false; + }, 500); + } + } else { + this.imageClicked = false; + + if (options.backdrop && options.backdrop !== 'static' && event.target === this.canvas) { + // This timeout will be cleared later when a native click event is triggering + this.clickCanvasTimeout = setTimeout(function () { + dispatchEvent(_this2.canvas, EVENT_CLICK); + }, 50); + } + } + } + }, + resize: function resize() { + var _this3 = this; + + if (!this.isShown || this.hiding) { + return; + } + + this.initContainer(); + this.initViewer(); + this.renderViewer(); + this.renderList(); + + if (this.viewed) { + this.initImage(function () { + _this3.renderImage(); + }); + } + + if (this.played) { + if (this.options.fullscreen && this.fulled && !(document.fullscreenElement || document.webkitFullscreenElement || document.mozFullScreenElement || document.msFullscreenElement)) { + this.stop(); + return; + } + + forEach(this.player.getElementsByTagName('img'), function (image) { + addListener(image, EVENT_LOAD, _this3.loadImage.bind(_this3), { + once: true + }); + dispatchEvent(image, EVENT_LOAD); + }); + } + }, + wheel: function wheel(event) { + var _this4 = this; + + if (!this.viewed) { + return; + } + + event.preventDefault(); // Limit wheel speed to prevent zoom too fast + + if (this.wheeling) { + return; + } + + this.wheeling = true; + setTimeout(function () { + _this4.wheeling = false; + }, 50); + var ratio = Number(this.options.zoomRatio) || 0.1; + var delta = 1; + + if (event.deltaY) { + delta = event.deltaY > 0 ? 1 : -1; + } else if (event.wheelDelta) { + delta = -event.wheelDelta / 120; + } else if (event.detail) { + delta = event.detail > 0 ? 1 : -1; + } + + this.zoom(-delta * ratio, true, event); + } + }; + + var methods = { + /** Show the viewer (only available in modal mode) + * @param {boolean} [immediate=false] - Indicates if show the viewer immediately or not. + * @returns {Viewer} this + */ + show: function show() { + var immediate = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + var element = this.element, + options = this.options; + + if (options.inline || this.showing || this.isShown || this.showing) { + return this; + } + + if (!this.ready) { + this.build(); + + if (this.ready) { + this.show(immediate); + } + + return this; + } + + if (isFunction(options.show)) { + addListener(element, EVENT_SHOW, options.show, { + once: true + }); + } + + if (dispatchEvent(element, EVENT_SHOW) === false || !this.ready) { + return this; + } + + if (this.hiding) { + this.transitioning.abort(); + } + + this.showing = true; + this.open(); + var viewer = this.viewer; + removeClass(viewer, CLASS_HIDE); + + if (options.transition && !immediate) { + var shown = this.shown.bind(this); + this.transitioning = { + abort: function abort() { + removeListener(viewer, EVENT_TRANSITION_END, shown); + removeClass(viewer, CLASS_IN); + } + }; + addClass(viewer, CLASS_TRANSITION); // Force reflow to enable CSS3 transition + // eslint-disable-next-line + + viewer.offsetWidth; + addListener(viewer, EVENT_TRANSITION_END, shown, { + once: true + }); + addClass(viewer, CLASS_IN); + } else { + addClass(viewer, CLASS_IN); + this.shown(); + } + + return this; + }, + + /** + * Hide the viewer (only available in modal mode) + * @param {boolean} [immediate=false] - Indicates if hide the viewer immediately or not. + * @returns {Viewer} this + */ + hide: function hide() { + var immediate = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + var element = this.element, + options = this.options; + + if (options.inline || this.hiding || !(this.isShown || this.showing)) { + return this; + } + + if (isFunction(options.hide)) { + addListener(element, EVENT_HIDE, options.hide, { + once: true + }); + } + + if (dispatchEvent(element, EVENT_HIDE) === false) { + return this; + } + + if (this.showing) { + this.transitioning.abort(); + } + + this.hiding = true; + + if (this.played) { + this.stop(); + } else if (this.viewing) { + this.viewing.abort(); + } + + var viewer = this.viewer; + + if (options.transition && !immediate) { + var hidden = this.hidden.bind(this); + + var hide = function hide() { + addListener(viewer, EVENT_TRANSITION_END, hidden, { + once: true + }); + removeClass(viewer, CLASS_IN); + }; + + this.transitioning = { + abort: function abort() { + if (this.viewed) { + removeListener(this.image, EVENT_TRANSITION_END, hide); + } else { + removeListener(viewer, EVENT_TRANSITION_END, hidden); + } + } + }; + + if (this.viewed) { + addListener(this.image, EVENT_TRANSITION_END, hide, { + once: true + }); + this.zoomTo(0, false, false, true); + } else { + hide(); + } + } else { + removeClass(viewer, CLASS_IN); + this.hidden(); + } + + return this; + }, + + /** + * View one of the images with image's index + * @param {number} index - The index of the image to view. + * @returns {Viewer} this + */ + view: function view() { + var _this = this; + + var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.options.initialViewIndex; + index = Number(index) || 0; + + if (!this.isShown) { + this.index = index; + return this.show(); + } + + if (this.hiding || this.played || index < 0 || index >= this.length || this.viewed && index === this.index) { + return this; + } + + if (this.viewing) { + this.viewing.abort(); + } + + var element = this.element, + options = this.options, + title = this.title, + canvas = this.canvas; + var item = this.items[index]; + var img = item.querySelector('img'); + var url = getData(img, 'originalUrl'); + var alt = img.getAttribute('alt'); + var image = document.createElement('img'); + image.src = url; + image.alt = alt; + + if (isFunction(options.view)) { + addListener(element, EVENT_VIEW, options.view, { + once: true + }); + } + + if (dispatchEvent(element, EVENT_VIEW, { + originalImage: this.images[index], + index: index, + image: image + }) === false || !this.isShown || this.hiding || this.played) { + return this; + } + + this.image = image; + removeClass(this.items[this.index], CLASS_ACTIVE); + addClass(item, CLASS_ACTIVE); + this.viewed = false; + this.index = index; + this.imageData = {}; + addClass(image, CLASS_INVISIBLE); + + if (options.loading) { + addClass(canvas, CLASS_LOADING); + } + + canvas.innerHTML = ''; + canvas.appendChild(image); // Center current item + + this.renderList(); // Clear title + + title.innerHTML = ''; // Generate title after viewed + + var onViewed = function onViewed() { + var imageData = _this.imageData; + var render = Array.isArray(options.title) ? options.title[1] : options.title; + title.innerHTML = isFunction(render) ? render.call(_this, image, imageData) : "".concat(alt, " (").concat(imageData.naturalWidth, " \xD7 ").concat(imageData.naturalHeight, ")"); + }; + + var onLoad; + addListener(element, EVENT_VIEWED, onViewed, { + once: true + }); + this.viewing = { + abort: function abort() { + removeListener(element, EVENT_VIEWED, onViewed); + + if (image.complete) { + if (this.imageRendering) { + this.imageRendering.abort(); + } else if (this.imageInitializing) { + this.imageInitializing.abort(); + } + } else { + removeListener(image, EVENT_LOAD, onLoad); + + if (this.timeout) { + clearTimeout(this.timeout); + } + } + } + }; + + if (image.complete) { + this.load(); + } else { + addListener(image, EVENT_LOAD, onLoad = this.load.bind(this), { + once: true + }); + + if (this.timeout) { + clearTimeout(this.timeout); + } // Make the image visible if it fails to load within 1s + + + this.timeout = setTimeout(function () { + removeClass(image, CLASS_INVISIBLE); + _this.timeout = false; + }, 1000); + } + + return this; + }, + + /** + * View the previous image + * @param {boolean} [loop=false] - Indicate if view the last one + * when it is the first one at present. + * @returns {Viewer} this + */ + prev: function prev() { + var loop = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + var index = this.index - 1; + + if (index < 0) { + index = loop ? this.length - 1 : 0; + } + + this.view(index); + return this; + }, + + /** + * View the next image + * @param {boolean} [loop=false] - Indicate if view the first one + * when it is the last one at present. + * @returns {Viewer} this + */ + next: function next() { + var loop = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + var maxIndex = this.length - 1; + var index = this.index + 1; + + if (index > maxIndex) { + index = loop ? 0 : maxIndex; + } + + this.view(index); + return this; + }, + + /** + * Move the image with relative offsets. + * @param {number} offsetX - The relative offset distance on the x-axis. + * @param {number} offsetY - The relative offset distance on the y-axis. + * @returns {Viewer} this + */ + move: function move(offsetX, offsetY) { + var imageData = this.imageData; + this.moveTo(isUndefined(offsetX) ? offsetX : imageData.left + Number(offsetX), isUndefined(offsetY) ? offsetY : imageData.top + Number(offsetY)); + return this; + }, + + /** + * Move the image to an absolute point. + * @param {number} x - The x-axis coordinate. + * @param {number} [y=x] - The y-axis coordinate. + * @returns {Viewer} this + */ + moveTo: function moveTo(x) { + var y = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : x; + var imageData = this.imageData; + x = Number(x); + y = Number(y); + + if (this.viewed && !this.played && this.options.movable) { + var changed = false; + + if (isNumber(x)) { + imageData.left = x; + changed = true; + } + + if (isNumber(y)) { + imageData.top = y; + changed = true; + } + + if (changed) { + this.renderImage(); + } + } + + return this; + }, + + /** + * Zoom the image with a relative ratio. + * @param {number} ratio - The target ratio. + * @param {boolean} [hasTooltip=false] - Indicates if it has a tooltip or not. + * @param {Event} [_originalEvent=null] - The original event if any. + * @returns {Viewer} this + */ + zoom: function zoom(ratio) { + var hasTooltip = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + + var _originalEvent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; + + var imageData = this.imageData; + ratio = Number(ratio); + + if (ratio < 0) { + ratio = 1 / (1 - ratio); + } else { + ratio = 1 + ratio; + } + + this.zoomTo(imageData.width * ratio / imageData.naturalWidth, hasTooltip, _originalEvent); + return this; + }, + + /** + * Zoom the image to an absolute ratio. + * @param {number} ratio - The target ratio. + * @param {boolean} [hasTooltip=false] - Indicates if it has a tooltip or not. + * @param {Event} [_originalEvent=null] - The original event if any. + * @param {Event} [_zoomable=false] - Indicates if the current zoom is available or not. + * @returns {Viewer} this + */ + zoomTo: function zoomTo(ratio) { + var _this2 = this; + + var hasTooltip = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + + var _originalEvent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; + + var _zoomable = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; + + var element = this.element, + options = this.options, + pointers = this.pointers, + imageData = this.imageData; + var width = imageData.width, + height = imageData.height, + left = imageData.left, + top = imageData.top, + naturalWidth = imageData.naturalWidth, + naturalHeight = imageData.naturalHeight; + ratio = Math.max(0, ratio); + + if (isNumber(ratio) && this.viewed && !this.played && (_zoomable || options.zoomable)) { + if (!_zoomable) { + var minZoomRatio = Math.max(0.01, options.minZoomRatio); + var maxZoomRatio = Math.min(100, options.maxZoomRatio); + ratio = Math.min(Math.max(ratio, minZoomRatio), maxZoomRatio); + } + + if (_originalEvent && ratio > 0.95 && ratio < 1.05) { + ratio = 1; + } + + var newWidth = naturalWidth * ratio; + var newHeight = naturalHeight * ratio; + var offsetWidth = newWidth - width; + var offsetHeight = newHeight - height; + var oldRatio = width / naturalWidth; + + if (isFunction(options.zoom)) { + addListener(element, EVENT_ZOOM, options.zoom, { + once: true + }); + } + + if (dispatchEvent(element, EVENT_ZOOM, { + ratio: ratio, + oldRatio: oldRatio, + originalEvent: _originalEvent + }) === false) { + return this; + } + + this.zooming = true; + + if (_originalEvent) { + var offset = getOffset(this.viewer); + var center = pointers && Object.keys(pointers).length ? getPointersCenter(pointers) : { + pageX: _originalEvent.pageX, + pageY: _originalEvent.pageY + }; // Zoom from the triggering point of the event + + imageData.left -= offsetWidth * ((center.pageX - offset.left - left) / width); + imageData.top -= offsetHeight * ((center.pageY - offset.top - top) / height); + } else { + // Zoom from the center of the image + imageData.left -= offsetWidth / 2; + imageData.top -= offsetHeight / 2; + } + + imageData.width = newWidth; + imageData.height = newHeight; + imageData.ratio = ratio; + this.renderImage(function () { + _this2.zooming = false; + + if (isFunction(options.zoomed)) { + addListener(element, EVENT_ZOOMED, options.zoomed, { + once: true + }); + } + + dispatchEvent(element, EVENT_ZOOMED, { + ratio: ratio, + oldRatio: oldRatio, + originalEvent: _originalEvent + }); + }); + + if (hasTooltip) { + this.tooltip(); + } + } + + return this; + }, + + /** + * Rotate the image with a relative degree. + * @param {number} degree - The rotate degree. + * @returns {Viewer} this + */ + rotate: function rotate(degree) { + this.rotateTo((this.imageData.rotate || 0) + Number(degree)); + return this; + }, + + /** + * Rotate the image to an absolute degree. + * @param {number} degree - The rotate degree. + * @returns {Viewer} this + */ + rotateTo: function rotateTo(degree) { + var imageData = this.imageData; + degree = Number(degree); + + if (isNumber(degree) && this.viewed && !this.played && this.options.rotatable) { + imageData.rotate = degree; + this.renderImage(); + } + + return this; + }, + + /** + * Scale the image on the x-axis. + * @param {number} scaleX - The scale ratio on the x-axis. + * @returns {Viewer} this + */ + scaleX: function scaleX(_scaleX) { + this.scale(_scaleX, this.imageData.scaleY); + return this; + }, + + /** + * Scale the image on the y-axis. + * @param {number} scaleY - The scale ratio on the y-axis. + * @returns {Viewer} this + */ + scaleY: function scaleY(_scaleY) { + this.scale(this.imageData.scaleX, _scaleY); + return this; + }, + + /** + * Scale the image. + * @param {number} scaleX - The scale ratio on the x-axis. + * @param {number} [scaleY=scaleX] - The scale ratio on the y-axis. + * @returns {Viewer} this + */ + scale: function scale(scaleX) { + var scaleY = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : scaleX; + var imageData = this.imageData; + scaleX = Number(scaleX); + scaleY = Number(scaleY); + + if (this.viewed && !this.played && this.options.scalable) { + var changed = false; + + if (isNumber(scaleX)) { + imageData.scaleX = scaleX; + changed = true; + } + + if (isNumber(scaleY)) { + imageData.scaleY = scaleY; + changed = true; + } + + if (changed) { + this.renderImage(); + } + } + + return this; + }, + + /** + * Play the images + * @param {boolean} [fullscreen=false] - Indicate if request fullscreen or not. + * @returns {Viewer} this + */ + play: function play() { + var _this3 = this; + + var fullscreen = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + + if (!this.isShown || this.played) { + return this; + } + + var options = this.options, + player = this.player; + var onLoad = this.loadImage.bind(this); + var list = []; + var total = 0; + var index = 0; + this.played = true; + this.onLoadWhenPlay = onLoad; + + if (fullscreen) { + this.requestFullscreen(); + } + + addClass(player, CLASS_SHOW); + forEach(this.items, function (item, i) { + var img = item.querySelector('img'); + var image = document.createElement('img'); + image.src = getData(img, 'originalUrl'); + image.alt = img.getAttribute('alt'); + total += 1; + addClass(image, CLASS_FADE); + toggleClass(image, CLASS_TRANSITION, options.transition); + + if (hasClass(item, CLASS_ACTIVE)) { + addClass(image, CLASS_IN); + index = i; + } + + list.push(image); + addListener(image, EVENT_LOAD, onLoad, { + once: true + }); + player.appendChild(image); + }); + + if (isNumber(options.interval) && options.interval > 0) { + var play = function play() { + _this3.playing = setTimeout(function () { + removeClass(list[index], CLASS_IN); + index += 1; + index = index < total ? index : 0; + addClass(list[index], CLASS_IN); + play(); + }, options.interval); + }; + + if (total > 1) { + play(); + } + } + + return this; + }, + // Stop play + stop: function stop() { + var _this4 = this; + + if (!this.played) { + return this; + } + + var player = this.player; + this.played = false; + clearTimeout(this.playing); + forEach(player.getElementsByTagName('img'), function (image) { + removeListener(image, EVENT_LOAD, _this4.onLoadWhenPlay); + }); + removeClass(player, CLASS_SHOW); + player.innerHTML = ''; + this.exitFullscreen(); + return this; + }, + // Enter modal mode (only available in inline mode) + full: function full() { + var _this5 = this; + + var options = this.options, + viewer = this.viewer, + image = this.image, + list = this.list; + + if (!this.isShown || this.played || this.fulled || !options.inline) { + return this; + } + + this.fulled = true; + this.open(); + addClass(this.button, CLASS_FULLSCREEN_EXIT); + + if (options.transition) { + removeClass(list, CLASS_TRANSITION); + + if (this.viewed) { + removeClass(image, CLASS_TRANSITION); + } + } + + addClass(viewer, CLASS_FIXED); + viewer.setAttribute('style', ''); + setStyle(viewer, { + zIndex: options.zIndex + }); + this.initContainer(); + this.viewerData = assign({}, this.containerData); + this.renderList(); + + if (this.viewed) { + this.initImage(function () { + _this5.renderImage(function () { + if (options.transition) { + setTimeout(function () { + addClass(image, CLASS_TRANSITION); + addClass(list, CLASS_TRANSITION); + }, 0); + } + }); + }); + } + + return this; + }, + // Exit modal mode (only available in inline mode) + exit: function exit() { + var _this6 = this; + + var options = this.options, + viewer = this.viewer, + image = this.image, + list = this.list; + + if (!this.isShown || this.played || !this.fulled || !options.inline) { + return this; + } + + this.fulled = false; + this.close(); + removeClass(this.button, CLASS_FULLSCREEN_EXIT); + + if (options.transition) { + removeClass(list, CLASS_TRANSITION); + + if (this.viewed) { + removeClass(image, CLASS_TRANSITION); + } + } + + removeClass(viewer, CLASS_FIXED); + setStyle(viewer, { + zIndex: options.zIndexInline + }); + this.viewerData = assign({}, this.parentData); + this.renderViewer(); + this.renderList(); + + if (this.viewed) { + this.initImage(function () { + _this6.renderImage(function () { + if (options.transition) { + setTimeout(function () { + addClass(image, CLASS_TRANSITION); + addClass(list, CLASS_TRANSITION); + }, 0); + } + }); + }); + } + + return this; + }, + // Show the current ratio of the image with percentage + tooltip: function tooltip() { + var _this7 = this; + + var options = this.options, + tooltipBox = this.tooltipBox, + imageData = this.imageData; + + if (!this.viewed || this.played || !options.tooltip) { + return this; + } + + tooltipBox.textContent = "".concat(Math.round(imageData.ratio * 100), "%"); + + if (!this.tooltipping) { + if (options.transition) { + if (this.fading) { + dispatchEvent(tooltipBox, EVENT_TRANSITION_END); + } + + addClass(tooltipBox, CLASS_SHOW); + addClass(tooltipBox, CLASS_FADE); + addClass(tooltipBox, CLASS_TRANSITION); // Force reflow to enable CSS3 transition + // eslint-disable-next-line + + tooltipBox.offsetWidth; + addClass(tooltipBox, CLASS_IN); + } else { + addClass(tooltipBox, CLASS_SHOW); + } + } else { + clearTimeout(this.tooltipping); + } + + this.tooltipping = setTimeout(function () { + if (options.transition) { + addListener(tooltipBox, EVENT_TRANSITION_END, function () { + removeClass(tooltipBox, CLASS_SHOW); + removeClass(tooltipBox, CLASS_FADE); + removeClass(tooltipBox, CLASS_TRANSITION); + _this7.fading = false; + }, { + once: true + }); + removeClass(tooltipBox, CLASS_IN); + _this7.fading = true; + } else { + removeClass(tooltipBox, CLASS_SHOW); + } + + _this7.tooltipping = false; + }, 1000); + return this; + }, + // Toggle the image size between its natural size and initial size + toggle: function toggle() { + if (this.imageData.ratio === 1) { + this.zoomTo(this.initialImageData.ratio, true); + } else { + this.zoomTo(1, true); + } + + return this; + }, + // Reset the image to its initial state + reset: function reset() { + if (this.viewed && !this.played) { + this.imageData = assign({}, this.initialImageData); + this.renderImage(); + } + + return this; + }, + // Update viewer when images changed + update: function update() { + var element = this.element, + options = this.options, + isImg = this.isImg; // Destroy viewer if the target image was deleted + + if (isImg && !element.parentNode) { + return this.destroy(); + } + + var images = []; + forEach(isImg ? [element] : element.querySelectorAll('img'), function (image) { + if (options.filter) { + if (options.filter(image)) { + images.push(image); + } + } else { + images.push(image); + } + }); + + if (!images.length) { + return this; + } + + this.images = images; + this.length = images.length; + + if (this.ready) { + var indexes = []; + forEach(this.items, function (item, i) { + var img = item.querySelector('img'); + var image = images[i]; + + if (image) { + if (image.src !== img.src) { + indexes.push(i); + } + } else { + indexes.push(i); + } + }); + setStyle(this.list, { + width: 'auto' + }); + this.initList(); + + if (this.isShown) { + if (this.length) { + if (this.viewed) { + var index = indexes.indexOf(this.index); + + if (index >= 0) { + this.viewed = false; + this.view(Math.max(this.index - (index + 1), 0)); + } else { + addClass(this.items[this.index], CLASS_ACTIVE); + } + } + } else { + this.image = null; + this.viewed = false; + this.index = 0; + this.imageData = {}; + this.canvas.innerHTML = ''; + this.title.innerHTML = ''; + } + } + } else { + this.build(); + } + + return this; + }, + // Destroy the viewer + destroy: function destroy() { + var element = this.element, + options = this.options; + + if (!element[NAMESPACE]) { + return this; + } + + this.destroyed = true; + + if (this.ready) { + if (this.played) { + this.stop(); + } + + if (options.inline) { + if (this.fulled) { + this.exit(); + } + + this.unbind(); + } else if (this.isShown) { + if (this.viewing) { + if (this.imageRendering) { + this.imageRendering.abort(); + } else if (this.imageInitializing) { + this.imageInitializing.abort(); + } + } + + if (this.hiding) { + this.transitioning.abort(); + } + + this.hidden(); + } else if (this.showing) { + this.transitioning.abort(); + this.hidden(); + } + + this.ready = false; + this.viewer.parentNode.removeChild(this.viewer); + } else if (options.inline) { + if (this.delaying) { + this.delaying.abort(); + } else if (this.initializing) { + this.initializing.abort(); + } + } + + if (!options.inline) { + removeListener(element, EVENT_CLICK, this.onStart); + } + + element[NAMESPACE] = undefined; + return this; + } + }; + + var others = { + open: function open() { + var body = this.body; + addClass(body, CLASS_OPEN); + body.style.paddingRight = "".concat(this.scrollbarWidth + (parseFloat(this.initialBodyPaddingRight) || 0), "px"); + }, + close: function close() { + var body = this.body; + removeClass(body, CLASS_OPEN); + body.style.paddingRight = this.initialBodyPaddingRight; + }, + shown: function shown() { + var element = this.element, + options = this.options; + this.fulled = true; + this.isShown = true; + this.render(); + this.bind(); + this.showing = false; + + if (isFunction(options.shown)) { + addListener(element, EVENT_SHOWN, options.shown, { + once: true + }); + } + + if (dispatchEvent(element, EVENT_SHOWN) === false) { + return; + } + + if (this.ready && this.isShown && !this.hiding) { + this.view(this.index); + } + }, + hidden: function hidden() { + var element = this.element, + options = this.options; + this.fulled = false; + this.viewed = false; + this.isShown = false; + this.close(); + this.unbind(); + addClass(this.viewer, CLASS_HIDE); + this.resetList(); + this.resetImage(); + this.hiding = false; + + if (!this.destroyed) { + if (isFunction(options.hidden)) { + addListener(element, EVENT_HIDDEN, options.hidden, { + once: true + }); + } + + dispatchEvent(element, EVENT_HIDDEN); + } + }, + requestFullscreen: function requestFullscreen() { + var document = this.element.ownerDocument; + + if (this.fulled && !(document.fullscreenElement || document.webkitFullscreenElement || document.mozFullScreenElement || document.msFullscreenElement)) { + var documentElement = document.documentElement; // Element.requestFullscreen() + + if (documentElement.requestFullscreen) { + documentElement.requestFullscreen(); + } else if (documentElement.webkitRequestFullscreen) { + documentElement.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT); + } else if (documentElement.mozRequestFullScreen) { + documentElement.mozRequestFullScreen(); + } else if (documentElement.msRequestFullscreen) { + documentElement.msRequestFullscreen(); + } + } + }, + exitFullscreen: function exitFullscreen() { + var document = this.element.ownerDocument; + + if (this.fulled && (document.fullscreenElement || document.webkitFullscreenElement || document.mozFullScreenElement || document.msFullscreenElement)) { + // Document.exitFullscreen() + if (document.exitFullscreen) { + document.exitFullscreen(); + } else if (document.webkitExitFullscreen) { + document.webkitExitFullscreen(); + } else if (document.mozCancelFullScreen) { + document.mozCancelFullScreen(); + } else if (document.msExitFullscreen) { + document.msExitFullscreen(); + } + } + }, + change: function change(event) { + var options = this.options, + pointers = this.pointers; + var pointer = pointers[Object.keys(pointers)[0]]; + var offsetX = pointer.endX - pointer.startX; + var offsetY = pointer.endY - pointer.startY; + + switch (this.action) { + // Move the current image + case ACTION_MOVE: + this.move(offsetX, offsetY); + break; + // Zoom the current image + + case ACTION_ZOOM: + this.zoom(getMaxZoomRatio(pointers), false, event); + break; + + case ACTION_SWITCH: + { + this.action = 'switched'; + var absoluteOffsetX = Math.abs(offsetX); + + if (absoluteOffsetX > 1 && absoluteOffsetX > Math.abs(offsetY)) { + // Empty `pointers` as `touchend` event will not be fired after swiped in iOS browsers. + this.pointers = {}; + + if (offsetX > 1) { + this.prev(options.loop); + } else if (offsetX < -1) { + this.next(options.loop); + } + } + + break; + } + + default: + } // Override + + + forEach(pointers, function (p) { + p.startX = p.endX; + p.startY = p.endY; + }); + }, + isSwitchable: function isSwitchable() { + var imageData = this.imageData, + viewerData = this.viewerData; + return this.length > 1 && imageData.left >= 0 && imageData.top >= 0 && imageData.width <= viewerData.width && imageData.height <= viewerData.height; + } + }; + + var AnotherViewer = WINDOW.Viewer; + + var Viewer = + /*#__PURE__*/ + function () { + /** + * Create a new Viewer. + * @param {Element} element - The target element for viewing. + * @param {Object} [options={}] - The configuration options. + */ + function Viewer(element) { + var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + + _classCallCheck(this, Viewer); + + if (!element || element.nodeType !== 1) { + throw new Error('The first argument is required and must be an element.'); + } + + this.element = element; + this.options = assign({}, DEFAULTS, isPlainObject(options) && options); + this.action = false; + this.fading = false; + this.fulled = false; + this.hiding = false; + this.imageClicked = false; + this.imageData = {}; + this.index = this.options.initialViewIndex; + this.isImg = false; + this.isShown = false; + this.length = 0; + this.played = false; + this.playing = false; + this.pointers = {}; + this.ready = false; + this.showing = false; + this.timeout = false; + this.tooltipping = false; + this.viewed = false; + this.viewing = false; + this.wheeling = false; + this.zooming = false; + this.init(); + } + + _createClass(Viewer, [{ + key: "init", + value: function init() { + var _this = this; + + var element = this.element, + options = this.options; + + if (element[NAMESPACE]) { + return; + } + + element[NAMESPACE] = this; + var isImg = element.tagName.toLowerCase() === 'img'; + var images = []; + forEach(isImg ? [element] : element.querySelectorAll('img'), function (image) { + if (isFunction(options.filter)) { + if (options.filter.call(_this, image)) { + images.push(image); + } + } else { + images.push(image); + } + }); + this.isImg = isImg; + this.length = images.length; + this.images = images; + var ownerDocument = element.ownerDocument; + var body = ownerDocument.body || ownerDocument.documentElement; + this.body = body; + this.scrollbarWidth = window.innerWidth - ownerDocument.documentElement.clientWidth; + this.initialBodyPaddingRight = window.getComputedStyle(body).paddingRight; // Override `transition` option if it is not supported + + if (isUndefined(document.createElement(NAMESPACE).style.transition)) { + options.transition = false; + } + + if (options.inline) { + var count = 0; + + var progress = function progress() { + count += 1; + + if (count === _this.length) { + var timeout; + _this.initializing = false; + _this.delaying = { + abort: function abort() { + clearTimeout(timeout); + } + }; // build asynchronously to keep `this.viewer` is accessible in `ready` event handler. + + timeout = setTimeout(function () { + _this.delaying = false; + + _this.build(); + }, 0); + } + }; + + this.initializing = { + abort: function abort() { + forEach(images, function (image) { + if (!image.complete) { + removeListener(image, EVENT_LOAD, progress); + } + }); + } + }; + forEach(images, function (image) { + if (image.complete) { + progress(); + } else { + addListener(image, EVENT_LOAD, progress, { + once: true + }); + } + }); + } else { + addListener(element, EVENT_CLICK, this.onStart = function (_ref) { + var target = _ref.target; + + if (target.tagName.toLowerCase() === 'img' && (!isFunction(options.filter) || options.filter.call(_this, target))) { + _this.view(_this.images.indexOf(target)); + } + }); + } + } + }, { + key: "build", + value: function build() { + if (this.ready) { + return; + } + + var element = this.element, + options = this.options; + var parent = element.parentNode; + var template = document.createElement('div'); + template.innerHTML = TEMPLATE; + var viewer = template.querySelector(".".concat(NAMESPACE, "-container")); + var title = viewer.querySelector(".".concat(NAMESPACE, "-title")); + var toolbar = viewer.querySelector(".".concat(NAMESPACE, "-toolbar")); + var navbar = viewer.querySelector(".".concat(NAMESPACE, "-navbar")); + var button = viewer.querySelector(".".concat(NAMESPACE, "-button")); + var canvas = viewer.querySelector(".".concat(NAMESPACE, "-canvas")); + this.parent = parent; + this.viewer = viewer; + this.title = title; + this.toolbar = toolbar; + this.navbar = navbar; + this.button = button; + this.canvas = canvas; + this.footer = viewer.querySelector(".".concat(NAMESPACE, "-footer")); + this.tooltipBox = viewer.querySelector(".".concat(NAMESPACE, "-tooltip")); + this.player = viewer.querySelector(".".concat(NAMESPACE, "-player")); + this.list = viewer.querySelector(".".concat(NAMESPACE, "-list")); + addClass(title, !options.title ? CLASS_HIDE : getResponsiveClass(Array.isArray(options.title) ? options.title[0] : options.title)); + addClass(navbar, !options.navbar ? CLASS_HIDE : getResponsiveClass(options.navbar)); + toggleClass(button, CLASS_HIDE, !options.button); + + if (options.backdrop) { + addClass(viewer, "".concat(NAMESPACE, "-backdrop")); + + if (!options.inline && options.backdrop !== 'static') { + setData(canvas, DATA_ACTION, 'hide'); + } + } + + if (isString(options.className) && options.className) { + // In case there are multiple class names + options.className.split(REGEXP_SPACES).forEach(function (className) { + addClass(viewer, className); + }); + } + + if (options.toolbar) { + var list = document.createElement('ul'); + var custom = isPlainObject(options.toolbar); + var zoomButtons = BUTTONS.slice(0, 3); + var rotateButtons = BUTTONS.slice(7, 9); + var scaleButtons = BUTTONS.slice(9); + + if (!custom) { + addClass(toolbar, getResponsiveClass(options.toolbar)); + } + + forEach(custom ? options.toolbar : BUTTONS, function (value, index) { + var deep = custom && isPlainObject(value); + var name = custom ? hyphenate(index) : value; + var show = deep && !isUndefined(value.show) ? value.show : value; + + if (!show || !options.zoomable && zoomButtons.indexOf(name) !== -1 || !options.rotatable && rotateButtons.indexOf(name) !== -1 || !options.scalable && scaleButtons.indexOf(name) !== -1) { + return; + } + + var size = deep && !isUndefined(value.size) ? value.size : value; + var click = deep && !isUndefined(value.click) ? value.click : value; + var item = document.createElement('li'); + item.setAttribute('role', 'button'); + addClass(item, "".concat(NAMESPACE, "-").concat(name)); + + if (!isFunction(click)) { + setData(item, DATA_ACTION, name); + } + + if (isNumber(show)) { + addClass(item, getResponsiveClass(show)); + } + + if (['small', 'large'].indexOf(size) !== -1) { + addClass(item, "".concat(NAMESPACE, "-").concat(size)); + } else if (name === 'play') { + addClass(item, "".concat(NAMESPACE, "-large")); + } + + if (isFunction(click)) { + addListener(item, EVENT_CLICK, click); + } + + list.appendChild(item); + }); + toolbar.appendChild(list); + } else { + addClass(toolbar, CLASS_HIDE); + } + + if (!options.rotatable) { + var rotates = toolbar.querySelectorAll('li[class*="rotate"]'); + addClass(rotates, CLASS_INVISIBLE); + forEach(rotates, function (rotate) { + toolbar.appendChild(rotate); + }); + } + + if (options.inline) { + addClass(button, CLASS_FULLSCREEN); + setStyle(viewer, { + zIndex: options.zIndexInline + }); + + if (window.getComputedStyle(parent).position === 'static') { + setStyle(parent, { + position: 'relative' + }); + } + + parent.insertBefore(viewer, element.nextSibling); + } else { + addClass(button, CLASS_CLOSE); + addClass(viewer, CLASS_FIXED); + addClass(viewer, CLASS_FADE); + addClass(viewer, CLASS_HIDE); + setStyle(viewer, { + zIndex: options.zIndex + }); + var container = options.container; + + if (isString(container)) { + container = element.ownerDocument.querySelector(container); + } + + if (!container) { + container = this.body; + } + + container.appendChild(viewer); + } + + if (options.inline) { + this.render(); + this.bind(); + this.isShown = true; + } + + this.ready = true; + + if (isFunction(options.ready)) { + addListener(element, EVENT_READY, options.ready, { + once: true + }); + } + + if (dispatchEvent(element, EVENT_READY) === false) { + this.ready = false; + return; + } + + if (this.ready && options.inline) { + this.view(this.index); + } + } + /** + * Get the no conflict viewer class. + * @returns {Viewer} The viewer class. + */ + + }], [{ + key: "noConflict", + value: function noConflict() { + window.Viewer = AnotherViewer; + return Viewer; + } + /** + * Change the default options. + * @param {Object} options - The new default options. + */ + + }, { + key: "setDefaults", + value: function setDefaults(options) { + assign(DEFAULTS, isPlainObject(options) && options); + } + }]); + + return Viewer; + }(); + + assign(Viewer.prototype, render, events, handlers, methods, others); + + return Viewer; + +}))); \ No newline at end of file diff --git a/muk_web_preview_image/static/src/js/image.js b/muk_web_preview_image/static/src/js/image.js new file mode 100644 index 0000000..881e9a6 --- /dev/null +++ b/muk_web_preview_image/static/src/js/image.js @@ -0,0 +1,92 @@ +/********************************************************************************** +* +* Copyright (C) 2017 MuK IT GmbH +* +* This program is free software: you can redistribute it and/or modify +* it under the terms of the GNU Affero General Public License as +* published by the Free Software Foundation, either version 3 of the +* License, or (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU Affero General Public License for more details. +* +* You should have received a copy of the GNU Affero General Public License +* along with this program. If not, see . +* +**********************************************************************************/ + +odoo.define('muk_preview_markdown.PreviewContentImage', function (require) { +"use strict"; + +var core = require('web.core'); +var ajax = require('web.ajax'); +var utils = require('web.utils'); +var session = require('web.session'); + +var registry = require('muk_preview.registry'); + +var AbstractPreviewContent = require('muk_preview.AbstractPreviewContent'); + +var QWeb = core.qweb; +var _t = core._t; + +var PreviewContentImage = AbstractPreviewContent.extend({ + template: "muk_preview.PreviewContentImage", + cssLibs: [ + '/muk_web_preview_image/static/lib/viewer/viewer.css', + ], + jsLibs: [ + '/muk_web_preview_image/static/lib/viewer/viewer.js', + '/muk_web_preview_image/static/lib/viewer/jquery-viewer.js', + ], + renderPreviewContent: function() { + this.$('img').viewer({ + inline: true, + button: false, + navbar: false, + title: false, + toolbar: { + zoomIn: 1, + zoomOut: 1, + oneToOne: 1, + reset: 1, + prev: 0, + next: 0, + play: { + show: 1, + size: 'large', + }, + rotateLeft: 1, + rotateRight: 1, + flipHorizontal: 1, + flipVertical: 1, + }, + }); + }, + downloadable: true, + printable: true, +}); + +_.each([ + 'cod', 'ras', 'fif', 'gif', 'ief', 'jpeg', 'jpg', 'jpe', 'png', 'tiff', + 'tif', 'mcf', 'wbmp', 'fh4', 'fh5', 'fhc', 'ico', 'pnm', 'pbm', 'pgm', + 'ppm', 'rgb', 'xwd', 'xbm', 'xpm' +], function(extension) { + registry.add(extension, PreviewContentImage); + registry.add("." + extension, PreviewContentImage); +}); +_.each([ + 'image/cis-cod', 'image/cmu-raster', 'image/fif', 'image/gif', 'image/ief', + 'image/png', 'image/tiff', 'image/vasa', 'image/vnd.wap.wbmp', 'image/x-freehand', + 'image/x-portable-anymap', 'image/x-portable-bitmap', 'image/x-portable-graymap', + 'image/x-portable-pixmap', 'image/x-rgb', 'image/x-windowdump', 'image/x-xbitmap', + 'image/jpeg', 'image/x-icon', 'image/x-xpixmap' +], function(mimetype) { + registry.add(mimetype, PreviewContentImage); +}); + +return PreviewContentImage; + +}); diff --git a/muk_web_preview_image/static/src/js/vector.js b/muk_web_preview_image/static/src/js/vector.js new file mode 100644 index 0000000..ce1e821 --- /dev/null +++ b/muk_web_preview_image/static/src/js/vector.js @@ -0,0 +1,94 @@ +/********************************************************************************** +* +* Copyright (C) 2017 MuK IT GmbH +* +* This program is free software: you can redistribute it and/or modify +* it under the terms of the GNU Affero General Public License as +* published by the Free Software Foundation, either version 3 of the +* License, or (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU Affero General Public License for more details. +* +* You should have received a copy of the GNU Affero General Public License +* along with this program. If not, see . +* +**********************************************************************************/ + +odoo.define('muk_preview_markdown.PreviewContentVector', function (require) { +"use strict"; + +var core = require('web.core'); +var ajax = require('web.ajax'); +var utils = require('web.utils'); +var session = require('web.session'); + +var registry = require('muk_preview.registry'); + +var AbstractPreviewContent = require('muk_preview.AbstractPreviewContent'); + +var QWeb = core.qweb; +var _t = core._t; + +var PreviewContentVector = AbstractPreviewContent.extend({ + events: _.extend({}, AbstractPreviewContent.prototype.events, { + 'click .zoom-plus': '_onZoomIn', + 'click .zoom-minus': '_onZoomOut', + 'click .zoom-reset': '_onReset', + }), + template: "muk_preview.PreviewContentVector", + jsLibs: [ + '/muk_web_preview_image/static/lib/svg-pan-zoom/svg-pan-zoom.js', + ], + willStart: function() { + var def = $.ajax({ + url: this.url, + dataType: "text", + }).fail(function(jqXHR, textStatus) { + console.error(textStatus); + }).done(function(vector) { + this.vector = vector; + }.bind(this)); + return $.when(this._super.apply(this, arguments), def); + }, + renderPreviewContent: function() { + this.$('.vector-content').html(this.vector); + this.svgPanZoom = this.$("svg").svgPanZoom({ + events: { + mouseWheel: true, + doubleClick: true, + drag: true, + dragCursor: "move", + }, + animationTime: 300, + zoomFactor: 0.1, + maxZoom: 5, + panFactor: 100, + }); + return this._super.apply(this, arguments); + }, + _onZoomIn: function(event) { + console.log(this.svgPanZoom); + this.svgPanZoom.zoomIn(); + }, + _onZoomOut: function(event) { + this.svgPanZoom.zoomOut(); + }, + _onReset: function(event) { + this.svgPanZoom.reset(); + }, + downloadable: true, + printable: true, +}); + + + +registry.add('svg', PreviewContentVector); +registry.add('.svg', PreviewContentVector); +registry.add('image/svg+xml', PreviewContentVector); + +return PreviewContentVector; + +}); diff --git a/muk_web_preview_image/static/src/scss/image.scss b/muk_web_preview_image/static/src/scss/image.scss new file mode 100644 index 0000000..b92db5e --- /dev/null +++ b/muk_web_preview_image/static/src/scss/image.scss @@ -0,0 +1,39 @@ +/********************************************************************************** +* +* Copyright (C) 2017 MuK IT GmbH +* +* This program is free software: you can redistribute it and/or modify +* it under the terms of the GNU Affero General Public License as +* published by the Free Software Foundation, either version 3 of the +* License, or (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU Affero General Public License for more details. +* +* You should have received a copy of the GNU Affero General Public License +* along with this program. If not, see . +* +**********************************************************************************/ + +.mk_preview_image { + width: 100%; + height: 100%; + .viewer-container { + width: 100% ! important; + height: 100% ! important; + } + img { + display: none; + } +} + +@media print { + .mk_preview_image { + img { + display: block; + } + } +} + diff --git a/muk_web_preview_image/static/src/scss/vector.scss b/muk_web_preview_image/static/src/scss/vector.scss new file mode 100644 index 0000000..8aa9ff4 --- /dev/null +++ b/muk_web_preview_image/static/src/scss/vector.scss @@ -0,0 +1,41 @@ +/********************************************************************************** +* +* Copyright (C) 2017 MuK IT GmbH +* +* This program is free software: you can redistribute it and/or modify +* it under the terms of the GNU Affero General Public License as +* published by the Free Software Foundation, either version 3 of the +* License, or (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU Affero General Public License for more details. +* +* You should have received a copy of the GNU Affero General Public License +* along with this program. If not, see . +* +**********************************************************************************/ + +.mk_preview_vector { + width: 100%; + height: 100%; + position: absolute; + .vector-controls { + position: absolute; + bottom: 15px; + right: 25px; + z-index: 1; + .btn { + color: gray('700'); + background: transparent; + font-size: 25px; + } + } + svg { + width: 100%; + height: 100%; + position: absolute; + } +} + diff --git a/muk_web_preview_image/static/src/xml/image.xml b/muk_web_preview_image/static/src/xml/image.xml new file mode 100644 index 0000000..88bba11 --- /dev/null +++ b/muk_web_preview_image/static/src/xml/image.xml @@ -0,0 +1,30 @@ + + + + + + + + +
    + +
    +
    +
    + +
    \ No newline at end of file diff --git a/muk_web_preview_image/static/src/xml/vector.xml b/muk_web_preview_image/static/src/xml/vector.xml new file mode 100644 index 0000000..e5197f5 --- /dev/null +++ b/muk_web_preview_image/static/src/xml/vector.xml @@ -0,0 +1,44 @@ + + + + + + + + +
    +
    +
    + + + +
    +
    +
    +
    +
    +
    +
    + +
    \ No newline at end of file diff --git a/muk_web_preview_image/template/assets.xml b/muk_web_preview_image/template/assets.xml new file mode 100644 index 0000000..f9729c8 --- /dev/null +++ b/muk_web_preview_image/template/assets.xml @@ -0,0 +1,31 @@ + + + + + +